Build & Publish Release #29
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: Build & Publish Release | |
on: [workflow_dispatch] | |
jobs: | |
BuildAndPublish: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
- name: Extract Version | |
shell: pwsh | |
run: | | |
$version = select-string -Path 'Directory.Build.Props' -Pattern '<VersionPrefix>(.*)<\/VersionPrefix>' -AllMatches | % { $_.Matches } | % { $_.Groups[1].Value } | |
echo "VERSION=$version" | |
echo "VERSION=$version" >> $Env:GITHUB_ENV | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: '8.0.x' | |
- name: Build Myra.MonoGame | |
run: dotnet build build\Myra.MonoGame.sln --configuration Release | |
- name: Build Myra.Stride | |
run: dotnet build build\Myra.Stride.sln --configuration Release | |
- name: Build Myra.PlatformAgnostic | |
run: dotnet build build\Myra.PlatformAgnostic.sln --configuration Release | |
- name: Test | |
run: dotnet test build\Myra.MonoGame.sln --verbosity normal | |
- name: Build Binary Distribution | |
shell: pwsh | |
run: ./buildBinaryDistribution.ps1 ${{env.VERSION}} | |
- name: Install NuGet | |
uses: NuGet/setup-nuget@v2 | |
- name: Publish Myra.MonoGame to MyGet | |
run: nuget.exe push src\Myra\bin\MonoGame\Release\Myra.*.nupkg ${{secrets.MYGET_APIKEY}} -Source https://www.myget.org/F/abarim-games/api/v2/package | |
- name: Publish Myra.PlatformAgnostic to MyGet | |
run: nuget.exe push src\Myra\bin\PlatformAgnostic\Release\Myra.PlatformAgnostic.*.nupkg ${{secrets.MYGET_APIKEY}} -Source https://www.myget.org/F/abarim-games/api/v2/package | |
- name: Publish Myra.MonoGame to NuGet | |
run: nuget.exe push src\Myra\bin\MonoGame\Release\Myra.*.nupkg ${{secrets.NUGET_APIKEY}} -Source https://api.nuget.org/v3/index.json | |
- name: Publish Myra.Stride to NuGet | |
run: nuget.exe push src\Myra\bin\Stride\Release\Myra.Stride.*.nupkg ${{secrets.NUGET_APIKEY}} -Source https://api.nuget.org/v3/index.json | |
- name: Publish Myra.PlatformAgnostic to NuGet | |
run: nuget.exe push src\Myra\bin\PlatformAgnostic\Release\Myra.PlatformAgnostic.*.nupkg ${{secrets.NUGET_APIKEY}} -Source https://api.nuget.org/v3/index.json | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
tag_name: ${{ env.VERSION }} | |
release_name: ${{ env.VERSION }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps | |
asset_path: ./Myra.${{ env.VERSION }}.zip | |
asset_name: Myra.${{ env.VERSION }}.zip | |
asset_content_type: application/zip |