From 0cfe5a8b58f6e41d0bd3c4c60a1f7addf31e4100 Mon Sep 17 00:00:00 2001 From: Laurents Meyer Date: Thu, 26 Oct 2023 03:41:42 +0200 Subject: [PATCH] Update auto commit workflow file to skip pull requests without artifacts. --- .github/workflows/autocommit.yml | 49 +++++++++++++++----------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/.github/workflows/autocommit.yml b/.github/workflows/autocommit.yml index 2705a3c..69841ac 100644 --- a/.github/workflows/autocommit.yml +++ b/.github/workflows/autocommit.yml @@ -1,4 +1,4 @@ -name: AutoCommit +name: AutoCommit on: workflow_run: workflows: @@ -6,19 +6,6 @@ on: types: - completed jobs: -# Info: -# runs-on: ubuntu-latest -# steps: -# - name: 'Output Information' -# shell: pwsh -# run: | -# echo 'Event: ${{ github.event.workflow_run.event }}' -# echo 'Conclusion: ${{ github.event.workflow_run.conclusion }}' -# echo 'Author: ${{ github.event.workflow_run.head_commit.author.email }}' -# - name: 'Log Event Context' -# shell: pwsh -# run: | -# echo '${{ toJson(github.event) }}' AutoCommit: runs-on: ubuntu-latest if: github.event.workflow_run.conclusion == 'success' && (github.event.workflow_run.head_commit.author.email != 'github-actions@github.com' || github.event.workflow_run.head_commit.message != '[GitHub Actions] Update green tests.') @@ -31,29 +18,39 @@ jobs: token: ${{ secrets.GH_PUBLIC_REPOSITORIES_TOKEN }} fetch-depth: 0 - name: 'Download Green Tests' - uses: actions/github-script@v3.1.0 + id: DownloadGreenTests + uses: actions/github-script@v6 with: script: | - var artifacts = await github.actions.listWorkflowRunArtifacts({ + var allArtifacts = await github.actions.listWorkflowRunArtifacts({ owner: context.repo.owner, repo: context.repo.repo, run_id: ${{ github.event.workflow_run.id }}, }); - var matchArtifact = artifacts.data.artifacts.filter((artifact) => { + + var greenTestArtifacts = allArtifacts.data.artifacts.filter((artifact) => { return artifact.name == "green-tests" - })[0]; - var download = await github.actions.downloadArtifact({ - owner: context.repo.owner, - repo: context.repo.repo, - artifact_id: matchArtifact.id, - archive_format: 'zip', }); - var fs = require('fs'); - fs.writeFileSync('${{ github.workspace }}/green-tests.zip', Buffer.from(download.data)); + + if (greenTestArtifacts.length > 0) { + var download = await github.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: greenTestArtifacts[0].id, + archive_format: 'zip', + }); + + var fs = require('fs'); + fs.writeFileSync('${{ github.workspace }}/green-tests.zip', Buffer.from(download.data)); + + core.setOutput('hasGreenTestsArtifacts', 'true'); + } - name: 'Download artifact' + if: steps.DownloadGreenTests.output.hasGreenTestsArtifacts == 'true' shell: pwsh run: Expand-Archive green-tests.zip -DestinationPath './test/EFCore.Jet.FunctionalTests/GreenTests' -Force - name: 'Commit Green Tests' + if: steps.DownloadGreenTests.output.hasGreenTestsArtifacts == 'true' shell: pwsh run: | if ((git status -s).Length -gt 0) { @@ -65,4 +62,4 @@ jobs: git push } else { echo 'Nothing to commit.' - } \ No newline at end of file + }