From ba31f4128208e954d6648001724887352f71ece9 Mon Sep 17 00:00:00 2001 From: Bjarne Koll Date: Tue, 28 May 2024 14:02:20 +0200 Subject: [PATCH] [ci skip] Clean up paperclip build-pr workflow Gracefully handle paperclip uploads to pull requests in case of build workflow issues. --- .github/workflows/build.yml | 13 +++++++++---- .github/workflows/pr_comment.yml | 22 +++++++++++++++------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e32e3a4335..843c1d42a9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,13 +39,18 @@ jobs: - name: Configure Build uses: actions/github-script@v7 id: determine + env: + REF_NAME: "${{ github.ref_name }}" + REF_TYPE: "${{ github.ref_type }}" + EVENT: "${{ toJSON(github.event) }}" + EVENT_TYPE: "${{ github.event_name }}" with: script: | const {owner, repo} = context.repo; - const event_name = "${{ github.event_name }}"; - const event = ${{ toJSON(github.event) }}; - const ref_type = "${{ github.ref_type }}"; - const ref_name = "${{ github.ref_name }}"; + const event_name = `${process.env.EVENT_TYPE}`; + const event = JSON.parse(`${process.env.EVENT}`); + const ref_type = `${process.env.REF_TYPE}`; + const ref_name = `${process.env.REF_NAME}`; const result = { action: "build" }; diff --git a/.github/workflows/pr_comment.yml b/.github/workflows/pr_comment.yml index 15c059b790..60bed3fd38 100644 --- a/.github/workflows/pr_comment.yml +++ b/.github/workflows/pr_comment.yml @@ -18,6 +18,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/github-script@v7 + env: + BRANCH_NAME: "${{ github.event.workflow_run.head_branch }}" + PR_OWNER: "${{ github.event.workflow_run.head_repository.owner.login }}" + PR_SHA: "${{ github.event.workflow_run.head_sha }}" + RUN_ID: "${{ github.event.workflow_run.id }}" + REPO_ID: "${{ github.event.repository.id }}" + EVENT_TYPE: "${{ github.event.workflow_run.event}}" + PULL_REQUESTS: "${{ toJSON(github.event.workflow_run.pull_requests) }}" with: # This snippet is public-domain, taken from # https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml @@ -37,17 +45,17 @@ jobs: } const { owner, repo } = context.repo; - const run_id = ${{ github.event.workflow_run.id }}; - const repo_id = ${{ github.event.repository.id }}; + const run_id = `${process.env.RUN_ID}`; + const repo_id = `${process.env.REPO_ID}`; let pulls = []; - const event_type = "${{ github.event.workflow_run.event}}"; + const event_type = `${process.env.EVENT_TYPE}`; if (event_type === "push") { // if push, it's from the same repo which means `pull_requests` is populated - pulls = ${{ toJSON(github.event.workflow_run.pull_requests) }}; + pulls = JSON.parse(`${process.env.PULL_REQUESTS}`); } else { - const pr_branch = "${{ github.event.workflow_run.head_branch }}"; - const pr_sha = "${{ github.event.workflow_run.head_sha }}"; - const pr_owner = "${{ github.event.workflow_run.head_repository.owner.login }}"; + const pr_branch = `${process.env.BRANCH_NAME}`; + const pr_sha = `${process.env.PR_SHA}`; + const pr_owner = `${process.env.PR_OWNER}`; const { data } = await github.rest.pulls.list({ owner, repo, head: `${pr_owner}:${pr_branch}`, state: "open" }); core.debug(JSON.stringify(data, null, 2)); pulls = data.filter((pr) => pr.head.sha === pr_sha && pr.labels.find((l) => l.name === "build-pr-jar"));