diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..e9ebec2 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,48 @@ +name: Release +on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+' + - '[0-9]+.[0-9]+.[0-9]+-*' + workflow_dispatch: +env: + DOTNET_NOLOGO: true +defaults: + run: + shell: pwsh +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6.0.2 + with: + fetch-depth: 0 + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5.2.0 + with: + global-json-file: global.json + - name: Build + run: dotnet build src --configuration Release + - name: Sign NuGet packages + uses: Particular/sign-nuget-packages-action@v1.0.0 + with: + client-id: ${{ secrets.AZURE_KEY_VAULT_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_KEY_VAULT_TENANT_ID }} + client-secret: ${{ secrets.AZURE_KEY_VAULT_CLIENT_SECRET }} + certificate-name: ${{ secrets.AZURE_KEY_VAULT_CERTIFICATE_NAME }} + - name: Publish artifacts + uses: actions/upload-artifact@v7.0.1 + with: + name: nugets + path: nugets/* + retention-days: 1 + - name: Push packages to testing feed + if: ${{ github.event_name == 'workflow_dispatch' }} + run: dotnet nuget push nugets\*.nupkg --api-key ${{ secrets.FEEDZIO_PUBLISH_API_KEY }} --source "${{ vars.PARTICULAR_TESTING_FEED_URL }}" + - name: Deploy + if: ${{ github.event_name == 'push' && github.ref_type == 'tag' }} + # Does not follow standard practice of targeting explicit versions because configuration is tightly coupled to Octopus Deploy configuration + uses: Particular/push-octopus-package-action@main + with: + octopus-deploy-api-key: ${{ secrets.OCTOPUS_DEPLOY_API_KEY }}