| @@ -0,0 +1,88 @@ | |||
| name: Release | |||
| on: | |||
| workflow_run: | |||
| workflows: ["Build and Test"] | |||
| types: | |||
| - completed | |||
| env: | |||
| MYGET_API_TOKEN: ${{ SECRETS.RINNE_MYGET_KEY }} | |||
| jobs: | |||
| build: | |||
| runs-on: windows-latest | |||
| steps: | |||
| - name: Setup .NET 6.0.x SDK | |||
| uses: actions/setup-dotnet@v3 | |||
| with: | |||
| dotnet-version: 6.0.x | |||
| - name: Check .NET info | |||
| run: dotnet --info | |||
| - name: Install dependencies | |||
| run: dotnet restore | |||
| - name: Build solution | |||
| run: dotnet build -c Release --no-restore | |||
| run-semantic-release: | |||
| runs-on: ubuntu-latest | |||
| needs: build | |||
| steps: | |||
| - name: Checkout | |||
| uses: actions/checkout@v2 | |||
| - name: Run semantic-release | |||
| run: | | |||
| export PATH=$PATH:$(yarn global bin) | |||
| yarn global add semantic-release@17.4.3 | |||
| semantic-release | |||
| release: | |||
| runs-on: windows-latest | |||
| needs: run-semantic-release | |||
| steps: | |||
| - name: Setup .NET 6.0.x SDK | |||
| uses: actions/setup-dotnet@v1 | |||
| with: | |||
| dotnet-version: 6.0.x | |||
| - name: Check .NET info | |||
| run: dotnet --info | |||
| - name: Install dependencies | |||
| run: dotnet restore | |||
| - name: Build solution | |||
| run: dotnet build -c Release --no-restore | |||
| - name: Pack packages | |||
| run: | | |||
| $LastTag = git describe --tags (git rev-list --tags --max-count=1); | |||
| echo "Last tag is: $LastTag"; | |||
| $Version = ($LastTag).TrimStart('v'); | |||
| echo "Publishing version: $Version"; | |||
| dotnet pack -c Release -o packages /p:PackageVersion=$Version /p:Version=$Version; | |||
| if($LastExitCode -ne 0) | |||
| { | |||
| Write-Warning -Message "Pack packages warming, last exit code is ${LastExitCode}." | |||
| $LastExitCode = 0; | |||
| } | |||
| - name: Upload packages artefacts | |||
| uses: actions/upload-artifact@v1.0.0 | |||
| with: | |||
| name: "drop-ci-packages" | |||
| path: './packages' | |||
| - name: Add myget nuget source | |||
| run: dotnet nuget add source https://www.myget.org/F/rinne/api/v2/package --name myget.org | |||
| - name: Push packages to myget.org | |||
| run: dotnet nuget push .\packages\*.nupkg -s myget.org -k $env:MYGET_API_TOKEN --skip-duplicate | |||