Create release automatically #45
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: dotnet package | |
on: [push, pull_request, create] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
services: | |
azurite: | |
image: mcr.microsoft.com/azure-storage/azurite | |
ports: | |
- 10000:10000 | |
# No simple reciept to curl it, so, let's just wait | |
options: >- | |
--health-cmd "sleep 5" | |
--health-interval 3s | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: "6.0.100" | |
- name: Install dependencies | |
run: dotnet restore src | |
- name: Build | |
run: dotnet build --configuration Release --no-restore src | |
- name: Test | |
if: ${{ !env.ACT }} | |
run: dotnet test --no-restore --no-build --configuration Release src | |
- name: Get tag name | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
id: vars | |
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/v} | |
- name: Build and push the package package | |
if: steps.vars.outputs.tag != null | |
run: | | |
dotnet pack --no-restore --no-build --configuration Release --include-symbols --include-source -p:SymbolPackageFormat=snupkg -p:PackageVersion=${{ steps.vars.outputs.tag }} -o output/${{ steps.vars.outputs.tag }} src | |
dotnet nuget push output/${{ steps.vars.outputs.tag }}/*.nupkg --api-key ${{ secrets.NUGET_API_TOKEN }} --source https://api.nuget.org/v3/index.json | |
- name: Create release | |
if: steps.vars.outputs.tag != null | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
output/${{ steps.vars.outputs.tag }}/*.nupkg | |
generate_release_notes: true | |
# TODO: Determine the prerelease versions using the NuGet convention https://learn.microsoft.com/en-us/nuget/create-packages/prerelease-packages | |
prerelease: false | |
draft: false |