0e98e1cccd
* Refactor CI to run integration tests as separate workflow * Tool restore * correct cache path * conditionally use container registry * use sln because net8 * fix typo * Correct trait filter * Correct mistake again * fix again * fml * clarify names * hopefully we're properly filtering test categories now * maybe this? * What does this do? * revert is test project changes * IsTestProject fix * Correct test setup for automate * maybe fix unit tests * docker-compose-file alighment * remove debug * Ok tests should now pass
63 lines
1.8 KiB
YAML
63 lines
1.8 KiB
YAML
name: .NET Build and Publish
|
|
|
|
on:
|
|
push:
|
|
tags: ["3.*.*"]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
environment:
|
|
name: "nuget.org"
|
|
permissions:
|
|
id-token: write # enable GitHub OIDC token issuance for this job
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: 8.x.x
|
|
cache: true
|
|
cache-dependency-path: "**/packages.lock.json"
|
|
|
|
- id: set-version
|
|
name: Set version to output
|
|
run: |
|
|
TAG=${{ github.ref_name }}
|
|
if [[ "${{ github.ref }}" != refs/tags/* ]]; then
|
|
TAG="3.0.99.${{ github.run_number }}"
|
|
fi
|
|
SEMVER="${TAG}"
|
|
FILE_VERSION=$(echo "$TAG" | sed -E 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
|
|
FILE_VERSION="$FILE_VERSION.${{ github.run_number }}"
|
|
|
|
echo "semver=$SEMVER" >> "$GITHUB_OUTPUT"
|
|
echo "fileVersion=$FILE_VERSION" >> "$GITHUB_OUTPUT"
|
|
|
|
echo $SEMVER
|
|
echo $FILE_VERSION
|
|
|
|
- name: 🔫 Build and Pack
|
|
run: ./build.sh pack
|
|
env:
|
|
SEMVER: ${{ steps.set-version.outputs.SEMVER }}
|
|
FILE_VERSION: ${{ steps.set-version.outputs.FILE_VERSION }}
|
|
|
|
- name: Upload coverage reports to Codecov with GitHub Action
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
files: tests/**/coverage.xml
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
- name: NuGet login (OIDC → temp API key)
|
|
uses: NuGet/login@v1
|
|
id: login
|
|
with:
|
|
user: ${{ secrets.NUGET_USER }}
|
|
|
|
- name: Push to nuget.org
|
|
run: dotnet nuget push output/*.nupkg --source "https://api.nuget.org/v3/index.json" --api-key ${{steps.login.outputs.NUGET_API_KEY}}
|