diff options
Diffstat (limited to 'Plugins/MonoGame.Extended/.github/workflows/create-release.yml')
-rw-r--r-- | Plugins/MonoGame.Extended/.github/workflows/create-release.yml | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/.github/workflows/create-release.yml b/Plugins/MonoGame.Extended/.github/workflows/create-release.yml new file mode 100644 index 0000000..f42b96e --- /dev/null +++ b/Plugins/MonoGame.Extended/.github/workflows/create-release.yml @@ -0,0 +1,80 @@ +################################################################################ +### Build MonoGame.Extended (Develop) +### Clones the `develop` branch and performs a build, test, then pack of the +### Monogame.Extended source code. Once the build job is finished, the deploy +### job will upload the nupkg files created to the MonoGame.Extended GitHub +### +### - Only runs on a push to the `develop` branch +################################################################################ +name: "Create Release" + +on: + workflow_dispatch: + inputs: + prerelease: + description: 'Is this a prerelease?' + required: true + default: 'true' + source-feed: + description: | + Which source feed to publish to? + (Valid values are 'NuGet' or 'GitHub') + required: true + default: GitHub + +jobs: + build: + name: "Build MonoGame.Extended" + runs-on: ubuntu-latest + env: + IS_PRERELEASE: ${{ inputs.prerelease == 'true' }} + BUILD_NUMBER: ${{ inputs.prerelease == 'true' && github.run_number || '' }} + + steps: + - name: Clone Repository + uses: actions/checkout@v4 + + - name: Setup Dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.0.x + + - name: Build MonoGame.Extended + run: dotnet build --nologo --verbosity minimal --configuration Release + + - name: Test MonoGame.Extended + run: dotnet test --nologo --verbosity minimal --configuration Release + + - name: Pack MonoGame.Extended + run: dotnet pack --nologo --verbosity minimal --configuration Release + + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + with: + name: build-artifacts + path: ./.artifacts/source/package/release/*.nupkg + + deploy: + name: "Deploy NuGets" + runs-on: ubuntu-latest + needs: [ build ] + permissions: + packages: write + contents: write + + steps: + - name: "Download Artifacts" + uses: actions/download-artifact@v4 + with: + name: build-artifacts + path: ./.artifacts + + - name: "Push Packages" + env: + SOURCE_URL: ${{ inputs.source-feed == 'GitHub' && 'https://nuget.pkg.github.com/craftworkgames/index.json' || inputs.source-feed == 'NuGet' && 'https://api.nuget.org/v3/index.json' }} + API_KEY: ${{ inputs.source-feed == 'GitHub' && secrets.GITHUB_TOKEN || inputs.source-feed == 'NuGet' && secrets.NUGET_ACCESS_TOKEN }} + run: | + PACKAGES=(".artifacts/*.nupkg") + for PACKAGE in "${PACKAGES[@]}"; do + dotnet nuget push "$PACKAGE" --source "$SOURCE_URL" --skip-duplicate --api-key "$API_KEY" + done |