Publish Packages #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Packages | |
on: | |
push: | |
tags: | |
- 'v*.*.*' # Match version tags like v1.0.0 | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- framework: net8.0 | |
projects: "src/AterraEngine.Unions" | |
- framework: net9.0 | |
projects: "src/AterraEngine.Unions" | |
- framework: netstandard2.0 | |
projects: "src/AterraEngine.Unions" | |
- framework: netstandard2.0 | |
projects: "src/AterraEngine.Unions.Generators" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '9.x' | |
- name: Restore dependencies | |
run: dotnet restore Unions.sln | |
- name: Build specific projects | |
run: dotnet build ${{ matrix.projects }} --configuration Release --no-restore --framework ${{ matrix.framework }} | |
- name: Save build artifacts | |
run: | | |
mkdir -p ${{ github.workspace }}/artifacts | |
find . -name '*.nupkg' -exec cp {} ${{ github.workspace }}/artifacts/ \; | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: nuget-packages # Name of the artifact | |
path: ${{ github.workspace }}/artifacts # Path to collect artifacts | |
publish: | |
needs: build # Wait for the build job to finish | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '9.x' | |
- name: Download build artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: nuget-packages # Name of the uploaded artifact to fetch | |
path: artifacts # Path to extract artifacts in this job workspace | |
- name: Publish to NuGet | |
env: | |
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} # NuGet API Key from GitHub secrets | |
run: | | |
dotnet nuget push artifacts/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate |