This workflow builds the iceoryx2-csharp project and creates NuGet packages (coming soon).
-
Build Native Library (Multi-platform)
- Runs on: Ubuntu, macOS, and Windows
- Checks out the repository with submodules
- Sets up Rust toolchain
- Builds the iceoryx2 C FFI library in release mode
- Uploads native libraries as artifacts for each platform
-
Build .NET Library
- Downloads all native libraries from the previous step
- Sets up .NET 8.0 and 9.0
- Restores dependencies
- Builds the solution in Release configuration
- Runs tests
- Uploads build artifacts
-
Create NuGet Packages
- Downloads native libraries
- Creates NuGet packages for:
- iceoryx2 (main library)
- iceoryx2.Reactive (reactive extensions)
- Packages include native libraries for all platforms
- Uploads packages as artifacts
-
Publish to NuGet (only on tags)
- Automatically publishes packages when a tag is pushed
- Requires
NUGET_API_KEYsecret to be configured
- Push to
mainbranch - Pull requests to
mainbranch - Manual trigger via workflow_dispatch
For automatic publishing to NuGet.org:
NUGET_API_KEY: Your NuGet.org API key
The workflow produces the following artifacts:
native-linux-x64: Linux native librarynative-osx-x64: macOS native librarynative-win-x64: Windows native librarydotnet-build: Compiled .NET assembliesnuget-packages: NuGet package files (.nupkg)
The workflow runs automatically on push and pull requests. To manually trigger:
- Go to the "Actions" tab in GitHub
- Select "Build and Package" workflow
- Click "Run workflow"
- Select the branch and click "Run workflow"
To publish a new version to NuGet.org:
-
Update version numbers in:
src/Iceoryx2/Iceoryx2.csprojsrc/Iceoryx2.Reactive/Iceoryx2.Reactive.csproj
-
Commit and push changes
-
Create and push a tag:
git tag v0.1.0 git push origin v0.1.0
-
The workflow will automatically build and publish to NuGet.org