-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create a basic GitHub Actions pipeline (#18)
* Add global.json to enforce minimum SDK version * Add basic GitHub Actions pipelines for build / test Resolves #10
- Loading branch information
1 parent
e23e7b0
commit c1b1d42
Showing
4 changed files
with
121 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
name: Main build | ||
|
||
on: | ||
workflow_dispatch: # Allow running the workflow manually from the GitHub UI | ||
push: | ||
branches: | ||
- main | ||
workflow_call: # Allow to be called from the release workflow | ||
|
||
permissions: | ||
contents: read | ||
actions: read | ||
checks: write | ||
|
||
jobs: | ||
build: | ||
strategy: | ||
matrix: | ||
os: [windows-2022, ubuntu-22.04] | ||
|
||
runs-on: ${{ matrix.os }} | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work | ||
|
||
- name: Setup .NET | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
global-json-file: ./global.json | ||
|
||
- name: NuGet Restore | ||
run: dotnet restore | ||
|
||
- name: Build | ||
run: dotnet build --no-restore --configuration Release /bl:./artifacts/logs/release/build.release.binlog | ||
|
||
- name: Test | ||
run: dotnet test --no-build --configuration Release | ||
|
||
- name: Publish Test Report | ||
uses: dorny/test-reporter@v1 | ||
if: success() || failure() | ||
with: | ||
name: .NET Test Report (${{ matrix.os }}) | ||
path: "artifacts/TestResults/**/*.trx" | ||
reporter: dotnet-trx | ||
fail-on-error: true | ||
fail-on-empty: true | ||
|
||
- name: Upload binlogs | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: binlogs-${{ matrix.os }} | ||
path: ./artifacts/logs | ||
if-no-files-found: error | ||
|
||
# TODO: Wire up building packages. Tracked by #13. | ||
# - name: Upload packages | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: packages-${{ matrix.os }} | ||
# path: | | ||
# ./artifacts/package | ||
# if-no-files-found: error |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
name: PR build | ||
|
||
on: | ||
pull_request: | ||
branches: [ "main" ] | ||
|
||
permissions: | ||
contents: read | ||
actions: read | ||
checks: write | ||
|
||
jobs: | ||
build: | ||
uses: ./.github/workflows/main.yml |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
name: Release publish | ||
|
||
on: | ||
workflow_dispatch: # Allow running the workflow manually from the GitHub UI | ||
release: | ||
types: | ||
- published # Run the workflow when a new GitHub release is published | ||
|
||
permissions: | ||
contents: read | ||
actions: read | ||
checks: write | ||
|
||
jobs: | ||
build: | ||
uses: ./.github/workflows/main.yml | ||
|
||
publish: | ||
needs: build | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Download packages | ||
uses: actions/download-artifact@v4 | ||
with: | ||
path: packages | ||
pattern: packages-windows-* | ||
merge-multiple: true | ||
- name: Publish NuGet package | ||
shell: pwsh | ||
run: | | ||
foreach ($file in (Get-ChildItem ./packages/release -Recurse -Include *.nupkg)) { | ||
echo "NuGet publish for file: '$file'" | ||
# TODO: Wire to publishing packages | ||
# dotnet nuget push $file --api-key "${{ secrets.NUGET_API_KEY }}" --source https://api.nuget.org/v3/index.json --skip-duplicate | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"sdk": { | ||
"version": "8.0.101", | ||
"rollForward": "latestFeature" | ||
} | ||
} |