Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 27 additions & 13 deletions .github/workflows/native-multi-platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ jobs:
build_config: Release
library_path: build/libannoy_c.so
release_asset_name: libannoy_c-linux-x64.so
- id: macos-x64
runs_on: macos-13
build_config: Release
library_path: build/libannoy_c.dylib
release_asset_name: libannoy_c-macos-x64.dylib
# - id: macos-x64
# runs_on: macos-15-intel
# build_config: Release
# library_path: build/libannoy_c.dylib
# release_asset_name: libannoy_c-macos-x64.dylib

steps:
- name: Checkout repo
Expand Down Expand Up @@ -141,8 +141,8 @@ jobs:
-OutputPath "dist/annoy.net.unitypackage" `
-PackageRoot "dev.trainhead.annoy.net" `
-WindowsLibrary "release-assets/windows-x64/annoy_c-windows-x64.dll" `
-LinuxLibrary "release-assets/linux-x64/libannoy_c-linux-x64.so" `
-MacLibrary "release-assets/macos-x64/libannoy_c-macos-x64.dylib"
-LinuxLibrary "release-assets/linux-x64/libannoy_c-linux-x64.so"
# -MacLibrary "release-assets/macos-x64/libannoy_c-macos-x64.dylib"

- name: Upload unitypackage artifact
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -189,16 +189,19 @@ jobs:
-OutputDirectory "dist/nuget" `
-PackageVersion "${{ env.ANNOY_PACKAGE_VERSION }}" `
-WindowsLibrary "release-assets/windows-x64/annoy_c-windows-x64.dll" `
-LinuxLibrary "release-assets/linux-x64/libannoy_c-linux-x64.so" `
-MacLibrary "release-assets/macos-x64/libannoy_c-macos-x64.dylib"
-LinuxLibrary "release-assets/linux-x64/libannoy_c-linux-x64.so"
# -MacLibrary "release-assets/macos-x64/libannoy_c-macos-x64.dylib"

- name: Run NuGet smoke tests
shell: pwsh
run: |
$restorePackagesPath = "$pwd/.nuget-packages"
$localPackageSource = "$pwd/dist/nuget"
$publicPackageSource = "https://api.nuget.org/v3/index.json"

dotnet restore tests/Annoy.NuGetSmoke/Annoy.NuGetSmoke.csproj `
--source "$pwd/dist/nuget" `
--source $localPackageSource `
--source $publicPackageSource `
-p:AnnoyPackageVersion="${{ env.ANNOY_PACKAGE_VERSION }}" `
-p:RestorePackagesPath=$restorePackagesPath

Expand Down Expand Up @@ -237,37 +240,48 @@ jobs:
with:
generate_release_notes: true
fail_on_unmatched_files: true
# macOS artifacts are temporarily disabled in CI.
files: |
release-assets/**/*.dll
release-assets/**/*.so
release-assets/**/*.dylib
release-assets/**/*.unitypackage
release-assets/**/*.nupkg

publish-nuget:
name: Publish NuGet package
needs: package-nuget
if: startsWith(github.ref, 'refs/tags/') && secrets.NUGET_API_KEY != ''
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-24.04
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}

steps:
- name: Skip publish when NuGet key is not configured
if: env.NUGET_API_KEY == ''
shell: pwsh
run: |
Write-Host "NUGET_API_KEY is not set. Skipping NuGet publish."

- name: Setup .NET
if: env.NUGET_API_KEY != ''
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x

- name: Download NuGet artifact
if: env.NUGET_API_KEY != ''
uses: actions/download-artifact@v4
with:
name: nuget-package
path: nuget-artifacts

- name: Publish package to NuGet.org
if: env.NUGET_API_KEY != ''
shell: pwsh
run: |
Get-ChildItem "nuget-artifacts/*.nupkg" | ForEach-Object {
dotnet nuget push $_.FullName `
--api-key "${{ secrets.NUGET_API_KEY }}" `
--api-key "$env:NUGET_API_KEY" `
--source "https://api.nuget.org/v3/index.json" `
--skip-duplicate
}
Loading