Keep package from CI build as an artifact #40
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: Build & Test | |
on: | |
push: | |
branches: | |
- develop | |
tags: | |
- 'v*.*.*' | |
permissions: | |
packages: write | |
env: | |
DOTNET_VERSION: '8.0.x' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code 🔄 | |
uses: actions/checkout@v4 | |
- name: Setup .NET 📦 | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ env.DOTNET_VERSION }} | |
- name: Restore NuGet packages 📂 | |
run: dotnet restore | |
working-directory: ./ | |
- name: Build 🧱 | |
run: dotnet build --configuration Release --no-restore | |
working-directory: ./ | |
# xUnit doesn't have a nice way to exclude some testing assemblies, so execute each assembly separately for now. | |
- name: Test 🧪 | |
run: dotnet test tests/Sanctuary.Core.Tests/Sanctuary.Core.Tests.csproj --configuration Release --logger GitHubActions --no-build --collect:"XPlat Code Coverage;Format=opencover" | |
working-directory: ./ | |
- name: Upload coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-report | |
path: tests/Sanctuary.Core.Tests/TestResults/**/coverage.opencover.xml | |
- name: Publish code coverage report to Codecov (optional) | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: tests/Sanctuary.Core.Tests/TestResults/**/coverage.opencover.xml | |
- name: Pack DataIsland.Core | |
if: startsWith(github.ref, 'refs/tags/') | |
run: dotnet pack src/Sanctuary.Core/Sanctuary.Core.csproj --configuration Release /p:PackageVersion=1.0.0-${{ github.run_number }}-${{ github.sha }} | |
- name: Archive Core package | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-report | |
path: src/Sanctuary.Core/Sanctuary.Core/bin/Release/*.nupkg | |
- name: Publish | |
if: startsWith(github.ref, 'refs/tags/') | |
run: dotnet nuget push src/Sanctuary.Core/bin/Release/*.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source "https://nuget.pkg.github.com/jahav/index.json" |