name: AutoCommit on: workflow_run: workflows: - PullRequest 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.') steps: - name: Checkout uses: actions/checkout@v3 with: repository: ${{ github.event.workflow_run.head_repository.full_name }} ref: ${{ github.event.workflow_run.head_branch }} token: ${{ secrets.GH_PUBLIC_REPOSITORIES_TOKEN }} fetch-depth: 0 - name: 'Download Green Tests' uses: actions/github-script@v3.1.0 with: script: | var artifacts = 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) => { 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)); - name: 'Download artifact' shell: pwsh run: Expand-Archive green-tests.zip -DestinationPath './test/EFCore.Jet.FunctionalTests/GreenTests' -Force - name: 'Commit Green Tests' shell: pwsh run: | if ((git status -s).Length -gt 0) { git config --global user.name github-actions git config --global user.email github-actions@github.com git add ./test/EFCore.Jet.FunctionalTests/GreenTests/ git status git commit -m "[GitHub Actions] Update green tests." git push } else { echo 'Nothing to commit.' }