Skip to content

v0.4.3

v0.4.3 #16

Workflow file for this run

name: Publish NuGet package
on:
release:
types: [published]
permissions:
contents: read
jobs:
version:
name: Resolve package version
runs-on: ubuntu-latest
outputs:
value: ${{ steps.version.outputs.value }}
steps:
- name: Validate release version
id: version
shell: bash
env:
RELEASE_TAG: ${{ github.event.release.tag_name }}
RELEASE_IS_PRERELEASE: ${{ github.event.release.prerelease }}
run: |
version="${RELEASE_TAG#v}"
if [[ ! "$version" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ ]]; then
echo "Expected a SemVer version such as v0.1.0 or 0.1.0-preview.1; got '$RELEASE_TAG'." >&2
exit 1
fi
if [[ "$RELEASE_IS_PRERELEASE" == "true" && "$version" != *-* ]]; then
echo "GitHub prereleases must use a prerelease version; got '$version'." >&2
exit 1
fi
if [[ "$RELEASE_IS_PRERELEASE" != "true" && "$version" == *-* ]]; then
echo "Stable GitHub releases must use a stable version; got '$version'." >&2
exit 1
fi
echo "value=$version" >> "$GITHUB_OUTPUT"
verify:
name: Verify release
needs: version
uses: ./.github/workflows/verify.yml
with:
package-version: ${{ needs.version.outputs.value }}
release-tag: ${{ github.event.release.tag_name }}
publish:
name: Publish to nuget.org
needs: [version, verify]
runs-on: ubuntu-latest
environment: nuget
permissions:
contents: read
id-token: write
steps:
- name: Download verified package
uses: actions/download-artifact@v4
with:
name: TheBuilder.WebAnalytics-package
path: artifacts
- name: Exchange OIDC token for production API key
id: login
uses: NuGet/login@v1
with:
user: ${{ secrets.NUGET_USER }}
- name: Publish package to nuget.org
run: >-
dotnet nuget push artifacts/*.nupkg
--api-key "${{ steps.login.outputs.NUGET_API_KEY }}"
--source https://api.nuget.org/v3/index.json