Skip to content

[RDMM-8120] ci(nuget): publish macOS and Linux runtimes in Devolutions.Slauth - #136

Merged
metal-face (metal-face) merged 1 commit into
masterfrom
ci/RDMM-8120-nuget-macos-linux-runtimes
Oct 21, 2026
Merged

metal-face (metal-face) merged 1 commit into
masterfrom
ci/RDMM-8120-nuget-macos-linux-runtimes

Conversation

@metal-face

@metal-face metal-face (metal-face) commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Jira: RDMM-8120

Why

RDM signs embedded-browser passkeys with Devolutions.Slauth. 0.7.22 ships only win-x64 and win-arm64, so RDM on macOS (RDMM-8063) and Linux (RDMLI-4684) can't use it. The wrapper and csproj are already platform-neutral and build.ps1 already maps the osx and linux RIDs; only the publish job was Windows-only.

What

  • build.ps1: -NoPack (build, stage, test) and -PackOnly (pack what's staged; fails if nothing is). -Targets also accepts a comma list.
  • publish.yml: build-dotnet becomes four jobs:
    • build-dotnet-windows: same targets as before.
    • build-dotnet-macos: x64 + arm64, tests on arm64, dylibs signed with the Developer ID certificate.
    • build-dotnet-linux: native ubuntu-22.04 and ubuntu-22.04-arm runners, so tests run on both arches and the glibc floor stays at 2.35.
    • publish-dotnet: merges the runtimes, checks all six are there, packs once and pushes as before.

For DevOps review

  • The macOS job uses the cloudsmith-publish environment, because that's where APPLE_APP_DEV_ID_APP_CERTIFICATE* live (same as the Swift job). If you'd rather, add those secrets to another environment and I'll switch it.
  • Uses the ubuntu-22.04-arm runner (free for public repos).

Testing

  • macOS arm64, locally: build.ps1 -Targets x86_64-apple-darwin,aarch64-apple-darwin -NoPack builds both dylibs, 21/21 tests pass; -PackOnly produces a nupkg with both osx-* runtimes.
  • Not run: Windows, Linux, and dylib signing. These run only in the workflow, which needs a manual dispatch.

🤖 Generated with Claude Code

…s.Slauth

Each OS runner now builds and tests its own natives (build.ps1 -NoPack), the
macOS dylibs are Developer ID signed, and one job packs every RID
(build.ps1 -PackOnly) after checking all six are present.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 21, 2026 18:26
@metal-face
metal-face (metal-face) requested a review from a team as a code owner October 21, 2026 18:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Windows, Linux, and macOS signing paths need validation through a successful workflow run and final DevOps review.

No open issues 🎉

What changed in this PR

Extends Devolutions.Slauth NuGet publishing to include macOS and Linux native libraries alongside Windows.

Changes:

  • Separates native builds from packaging with -NoPack and -PackOnly.
  • Adds platform-specific build jobs, macOS signing, and six-runtime validation before publishing.
  • Documents the multi-platform packaging workflow.
File Description
wrappers/​dotnet/​README.md Documents platform builds and packaged runtimes.
wrappers/​dotnet/​build.ps1 Adds separate build/pack modes and comma-separated targets.
.github/​workflows/​publish.yml Builds, signs, merges, and publishes all six runtimes.

Review effort: Balanced

@metal-face
metal-face (metal-face) merged commit f3f861b into master Oct 21, 2026
7 checks passed
@metal-face
metal-face (metal-face) deleted the ci/RDMM-8120-nuget-macos-linux-runtimes branch October 21, 2026 18:49
metal-face (metal-face) added a commit that referenced this pull request Oct 21, 2026
🔖 [v0.7.22] -> [v0.7.23]

Bumps version for release, so the NuGet package can ship the macOS and Linux runtimes from #136 (RDMM-8120).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
metal-face (metal-face) added a commit that referenced this pull request Oct 21, 2026
Jira: [RDMM-8121](https://devolutions.atlassian.net/browse/RDMM-8121)

🔖 [v0.7.22] -> [v0.7.23]

Bumps the version for release. 0.7.22 is already published, so this lets
the NuGet package ship the macOS and Linux runtimes added in #136
([RDMM-8120](https://devolutions.atlassian.net/browse/RDMM-8120)).

Same three files as earlier bumps: `Cargo.toml`, `build.gradle`,
`wrappers/android/build.gradle`.

After merge: run **Publish Package** with only `nuget` checked (the
other targets default to on).

🤖 Generated with [Claude Code](https://claude.com/claude-code)


[RDMM-8121]:
https://devolutions.atlassian.net/browse/RDMM-8121?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[RDMM-8120]:
https://devolutions.atlassian.net/browse/RDMM-8120?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants