-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update and rename build.yml to cicd.yml Update cicd.yml to pack and publish nuget packages to github.
- Loading branch information
Showing
2 changed files
with
97 additions
and
30 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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,97 @@ | ||
name: CI/CD | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
tags: | ||
- 'v*' | ||
|
||
jobs: | ||
build_test_pack: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup .NET | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: 8.0.x | ||
|
||
- name: Install GitVersion | ||
uses: gittools/actions/gitversion/setup@v3.0.0 | ||
with: | ||
versionSpec: '6.x' | ||
|
||
- name: Determine generated version number | ||
id: version_step # step id used as reference for output values | ||
uses: gittools/actions/gitversion/execute@v3.0.0 | ||
|
||
- name: Determine version number to use | ||
run: | | ||
## Default to using the version from GitVersion | ||
version=${{ steps.version_step.outputs.fullSemVer }} | ||
## If this is a tag, use the version from the tag | ||
if [[ ${{ github.event_name }} == 'push' && ${{ github.ref }} == 'refs/tags/v*' ]]; then | ||
version=${{ github.ref_name }} | ||
version=${version:1} ## Remove the leading 'v' | ||
fi | ||
echo "Version to use: $version" | ||
echo "VERSION=$version" >> $GITHUB_ENV | ||
- name: Restore dependencies | ||
run: dotnet restore | ||
|
||
- name: Build | ||
run: dotnet build --configuration Release --no-restore | ||
|
||
- name: Test | ||
run: dotnet test --configuration Release --no-build --verbosity normal | ||
|
||
- name: Pack | ||
run: | | ||
dotnet pack --configuration Release --no-build --output ./nupkg /p:PackageVersion=$VERSION | ||
- name: Upload NuGet package (for use by later jobs) | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: nupkg | ||
path: ./nupkg/*.nupkg | ||
|
||
publish: | ||
## Only attempt to publish if the build job was successful | ||
needs: build_test_pack | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Download NuGet package | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: nupkg | ||
path: ./nupkg | ||
|
||
## Publish to GitHub Packages - including pre-release versions | ||
- name: Publish to GitHub | ||
env: | ||
NUGET_API_KEY: ${{ secrets.GITHUB_TOKEN }} | ||
run: dotnet nuget push ./nupkg/*.nupkg --api-key $NUGET_API_KEY --source "https://nuget.pkg.github.com/DFE-Digital/index.json" | ||
|
||
## Publish to NuGet.org - only for main branch pushes | ||
##- name: Publish to NuGet.org | ||
## if: github.ref == 'refs/heads/main' && github.event_name == 'push' | ||
## env: | ||
## NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} | ||
## run: dotnet nuget push ./nupkg/*.nupkg --api-key $NUGET_API_KEY --source "https://api.nuget.org/v3/index.json" | ||
|