Skip to content

Adding auto merge

Adding auto merge #330

Workflow file for this run

name: Build and Release
on:
push:
branches: [ main ]
paths-ignore:
- 'README.md'
- 'Images/*'
- 'docs/*'
pull_request:
branches: [ main ]
workflow_dispatch:
defaults:
run:
shell: pwsh
env:
configuration: Release
baseVersion: 1.0.3
jobs:
automerge:
if: ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- uses: fastify/github-action-merge-dependabot@v3.6.2
with:
use-github-auto-merge: true
build-mac:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set Version
run: |
echo "buildVersion=${{ env.baseVersion }}.${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "nugetVersion=${{ env.baseVersion }}-ci${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Build and Test
uses: ./.github/actions/build-and-test
timeout-minutes: 5
with:
suffix: mac
configuration: ${{ env.configuration }}
build_version: ${{ env.buildVersion }}
nuget_token: ${{ secrets.GITHUB_TOKEN }}
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set Version
run: |
echo "buildVersion=${{ env.baseVersion }}.${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "nugetVersion=${{ env.baseVersion }}-ci${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Build and Test
uses: ./.github/actions/build-and-test
timeout-minutes: 5
with:
suffix: ubuntu
configuration: ${{ env.configuration }}
build_version: ${{ env.buildVersion }}
nuget_token: ${{ secrets.GITHUB_TOKEN }}
build-windows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set Version
run: |
echo "buildVersion=${{ env.baseVersion }}.${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "nugetVersion=${{ env.baseVersion }}-ci${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Build and Test
uses: ./.github/actions/build-and-test
timeout-minutes: 10
with:
suffix: windows
configuration: ${{ env.configuration }}
build_version: ${{ env.buildVersion }}
nuget_token: ${{ secrets.GITHUB_TOKEN }}
# Must pack on Windows so it contains .NET Framework
- name: Pack
if: ${{ github.event_name != 'pull_request' }}
run: dotnet pack -p:PackageVersion=${{ env.nugetVersion }} --configuration ${{ env.configuration }} --output ${{ github.workspace }}/NuGetPreview
- name: Pack
if: ${{ github.event_name != 'pull_request' }}
run: dotnet pack -p:PackageVersion=${{ env.baseVersion }} --configuration ${{ env.configuration }} --output ${{ github.workspace }}/NuGetRelease
- name: Upload Artifacts
if: ${{ github.event_name != 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: NuGetPreview
path: ${{ github.workspace }}/NuGetPreview/*nupkg
if-no-files-found: error
- name: Upload Artifacts
if: ${{ github.event_name != 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: NuGetRelease
path: ${{ github.workspace }}/NuGetRelease/*nupkg
if-no-files-found: error
ci-deployment:
needs: [build-windows, build-linux, build-mac]
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
environment: CI
steps:
- uses: actions/download-artifact@v4
with:
name: NuGetPreview
- name: Push NuGet
run: dotnet nuget push ${{ github.workspace }}/*nupkg --source https://api.nuget.org/v3/index.json -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate
release-deployment:
needs: ci-deployment
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
environment: Release
steps:
- uses: actions/download-artifact@v4
with:
name: NuGetRelease
- name: Release
uses: softprops/action-gh-release@v2
with:
files: ${{ github.workspace }}/*nupkg
generate_release_notes: true
name: Release ${{ env.baseVersion }}
tag_name: v${{ env.baseVersion }}
fail_on_unmatched_files: true
token: ${{ secrets.GITHUB_TOKEN }}
env:
GITHUB_REPOSITORY: my_gh_org/my_gh_repo
- name: Push NuGet
run: dotnet nuget push ${{ github.workspace }}/*nupkg --source https://api.nuget.org/v3/index.json -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate