# This workflow will run whenever tests finish running. If tests pass, it will # look at the last commit message to see if it contains the phrase # "chore(deps): update all dependencies". # # If it finds a commit with that phrase, and the testing workflow has passed, # it will automatically release a new version of the project by running the # publish workflow. # # The commit message phrase above is always used by renovatebot when opening # PR's to update dependencies. If you have renovatebot enabled and set to # automatically merge in dependency updates, this can automatically release and # publish the updated version of the project. # # You can disable this action by setting the DISABLE_AUTO_RELEASE repository # variable to true. name: 'Auto-Release' on: workflow_run: workflows: ["Tests"] branches: - main types: - completed jobs: auto_release: name: Auto-Release runs-on: ubuntu-latest outputs: should_release: ${{ steps.release.outputs.should_release }} steps: - name: Checkout uses: actions/checkout@v6 with: # Use your GitHub Personal Access Token variable here. token: ${{ secrets.NUGET_KEY }} lfs: true submodules: 'recursive' - name: Check Test Results id: tests run: | echo "passed=${{ github.event.workflow_run.conclusion == 'success' }}" >> "$GITHUB_OUTPUT" - name: Check If Dependencies Changed id: deps run: | message=$(git log -1 --pretty=%B) if [[ $message == *"chore(deps)"* ]]; then echo "changed=true" >> "$GITHUB_OUTPUT" else echo "changed=false" >> "$GITHUB_OUTPUT" fi - name: Check Release Status id: release run: | echo "Tests passed: ${{ steps.tests.outputs.passed }}" echo "Dependencies changed: ${{ steps.deps.outputs.changed }}" disable_auto_release='${{ vars.DISABLE_AUTO_RELEASE }}' echo "DISABLE_AUTO_RELEASE=$disable_auto_release" if [[ ${{ steps.tests.outputs.passed }} == "true" && ${{ steps.deps.outputs.changed }} == "true" && $disable_auto_release != "true" ]]; then echo "should_release=true" >> "$GITHUB_OUTPUT" echo "Creating a release!" else echo "should_release=false" >> "$GITHUB_OUTPUT" echo "Not creating a release." fi trigger_release: uses: './.github/workflows/release.yaml' needs: auto_release if: needs.auto_release.outputs.should_release == 'true' secrets: NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} GH_BASIC: ${{ secrets.GH_BASIC }} with: bump: patch #994139c880db4bab879ae724ce1ac43b87c88e42