drop .NET 7 for EOL #23
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
# This workflow will build a .NET project | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net | |
name: .NET | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
DOTNET_GENERATE_ASPNET_CERTIFICATE: false | |
jobs: | |
build: | |
runs-on: macos-latest | |
name: .NET ${{ matrix.dotnet }} | |
strategy: | |
matrix: | |
dotnet: | |
# update other matrix's version below when new latest released | |
#- 10 # REL: 2025-11-10 EOL: 2028-11-11 | |
#- 9 # REL: 2024-11-10 EOL: 2026-11-11 | |
- 8 # EOL: 2026-11-10 | |
- 6 # EOL: 2024-11-12 | |
# version support doc: https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: getargv/getargv | |
path: getargv | |
token: ${{ secrets.GH_PAT }} | |
- name: Build libgetargv | |
run: make install_dylib | |
working-directory: getargv | |
- uses: actions/checkout@v4 | |
with: | |
path: getargv.cs | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
id: setup | |
with: | |
dotnet-version: ${{ matrix.dotnet }}.0.x | |
- name: Create temporary global.json | |
run: "echo '{\"sdk\":{\"version\": \"${{ steps.setup.outputs.dotnet-version }}\"}}' > ./global.json" | |
working-directory: getargv.cs | |
- name: Restore dependencies | |
run: dotnet restore -p:TargetFramework=net${{ matrix.dotnet }}.0 | |
working-directory: getargv.cs | |
- name: Build | |
run: dotnet build --no-restore --framework net${{ matrix.dotnet }}.0 | |
working-directory: getargv.cs | |
- name: Test | |
run: dotnet test --no-build --verbosity normal --framework net${{ matrix.dotnet }}.0 | |
working-directory: getargv.cs | |
release: | |
runs-on: macos-latest | |
needs: [ build ] | |
name: Publish package | |
permissions: | |
contents: write | |
packages: write | |
strategy: | |
matrix: | |
dotnet: | |
- 8 # Check above for newest version | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: getargv/getargv | |
path: getargv | |
token: ${{ secrets.GH_PAT }} | |
- name: Build libgetargv | |
run: make install_dylib | |
working-directory: getargv | |
- uses: actions/checkout@v4 | |
with: | |
path: getargv.cs | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
id: setup | |
with: | |
dotnet-version: ${{ matrix.dotnet }}.0.x | |
- name: Create temporary global.json | |
run: "echo '{\"sdk\":{\"version\": \"${{ steps.setup.outputs.dotnet-version }}\"}}' > ./global.json" | |
working-directory: getargv.cs | |
- name: Bump version | |
id: bump_version | |
run: echo "new_version=$(./bump_version)" >> $GITHUB_OUTPUT | |
working-directory: getargv.cs | |
- name: Build | |
run: dotnet build --framework net${{ matrix.dotnet }}.0 | |
working-directory: getargv.cs | |
- name: Create the package | |
run: dotnet pack --configuration Release Getargv | |
working-directory: getargv.cs | |
- name: create && push tag | |
run: | | |
git commit -am 'release ${{ steps.bump_version.outputs.new_version }}' | |
git tag 'v${{ steps.bump_version.outputs.new_version }}' | |
git push origin tag 'v${{ steps.bump_version.outputs.new_version }}' | |
git push origin HEAD:main | |
working-directory: getargv.cs | |
- name: Publish the package to GPR | |
run: dotnet nuget push Getargv/bin/Release/*.nupkg -k $NUGET_AUTH_TOKEN -s https://nuget.pkg.github.com/getargv/index.json | |
env: | |
NUGET_AUTH_TOKEN: ${{github.token}} | |
working-directory: getargv.cs | |
- name: Publish the package to nuget.org | |
run: dotnet nuget push Getargv/bin/Release/*.nupkg -k $NUGET_AUTH_TOKEN -s https://api.nuget.org/v3/index.json | |
env: | |
NUGET_AUTH_TOKEN: ${{ secrets.NUGET_TOKEN }} | |
working-directory: getargv.cs |