summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/.github
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/MonoGame.Extended/.github')
-rw-r--r--Plugins/MonoGame.Extended/.github/FUNDING.yml3
-rw-r--r--Plugins/MonoGame.Extended/.github/workflows/create-release.yml80
-rw-r--r--Plugins/MonoGame.Extended/.github/workflows/pull-request-test.yml32
3 files changed, 115 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/.github/FUNDING.yml b/Plugins/MonoGame.Extended/.github/FUNDING.yml
new file mode 100644
index 0000000..e6160fa
--- /dev/null
+++ b/Plugins/MonoGame.Extended/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+github:
+ - aristurtledev
+ - craftworkgames
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
diff --git a/Plugins/MonoGame.Extended/.github/workflows/pull-request-test.yml b/Plugins/MonoGame.Extended/.github/workflows/pull-request-test.yml
new file mode 100644
index 0000000..e483e3c
--- /dev/null
+++ b/Plugins/MonoGame.Extended/.github/workflows/pull-request-test.yml
@@ -0,0 +1,32 @@
+################################################################################
+### Pull Request Test
+### Executes tests to ensure that the pull request being submitted is valid.
+### - Only runs on pull requests made to the `develop` branch
+### - Only runs if the pull request was opened or synchronized
+################################################################################
+name: Pull Request Test
+
+on:
+ pull_request:
+ branches:
+ - develop
+ - main
+ types:
+ - opened
+ - synchronize
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Clone Repository
+ uses: actions/checkout@v4
+
+ - name: Setup DotNet
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 6.0.x
+
+ - name: Test MonoGame.Extended
+ run: dotnet test --nologo --verbosity minimal --configuration Release