From 9ad93c2f5ba37183d623462c8ee6b554335090f6 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 27 Apr 2022 10:24:38 +0100 Subject: [PATCH] Attempt to use deployments to signal Netlify builds instead (#8421) --- .github/workflows/element-build-and-test.yaml | 13 ++++- .github/workflows/netlify.yaml | 57 +++++++++++++------ 2 files changed, 52 insertions(+), 18 deletions(-) diff --git a/.github/workflows/element-build-and-test.yaml b/.github/workflows/element-build-and-test.yaml index 905dbedb06..2bb95d1c0e 100644 --- a/.github/workflows/element-build-and-test.yaml +++ b/.github/workflows/element-build-and-test.yaml @@ -23,14 +23,23 @@ jobs: cache: 'yarn' - name: Fetch layered build - run: scripts/ci/layered.sh + id: layered_build + run: | + scripts/ci/layered.sh + JSSDK_SHA=$(git -C matrix-js-sdk rev-parse --short=12 HEAD) + REACT_SHA=$(git rev-parse --short=12 HEAD) + VECTOR_SHA=$(git -C element-web rev-parse --short=12 HEAD) + echo "::set-output name=VERSION::$VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA" - name: Copy config run: cp element.io/develop/config.json config.json working-directory: ./element-web - name: Build - run: CI_PACKAGE=true yarn build + env: + CI_PACKAGE: true + VERSION: "${{ steps.layered_build.outputs.VERSION }}" + run: yarn build working-directory: ./element-web - name: Upload Artifact diff --git a/.github/workflows/netlify.yaml b/.github/workflows/netlify.yaml index 1acb7e8fd1..8db9fba774 100644 --- a/.github/workflows/netlify.yaml +++ b/.github/workflows/netlify.yaml @@ -7,25 +7,37 @@ on: types: - completed jobs: - build: + deploy: runs-on: ubuntu-latest - if: > - ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' }} + if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' steps: - - name: "🔍 Read PR number" + - name: "🔍 Read PR details" id: readctx - # we need to find the PR number that corresponds to the branch, which we do by - # searching the GH API + # we need to find the PR number that corresponds to the branch, which we do by searching the GH API # The workflow_run event includes a list of pull requests, but it doesn't get populated for # forked PRs: https://docs.github.com/en/rest/reference/checks#create-a-check-run run: | head_branch='${{github.event.workflow_run.head_repository.owner.login}}:${{github.event.workflow_run.head_branch}}' echo "head branch: $head_branch" pulls_uri="https://api.github.com/repos/${{ github.repository }}/pulls?head=$(jq -Rr '@uri' <<<$head_branch)" - pr_number=$(curl -s -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' "$pulls_uri" | - jq -r '.[] | .number') + read pr_number, head_ref < <(curl -s -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' "$pulls_uri" | + jq -r '.[] | .number, .head.ref') echo "PR number: $pr_number" + echo "Head ref: $head_ref" echo "::set-output name=prnumber::$pr_number" + echo "::set-output name=headref::$head_ref" + + - name: Create Deployment ID + uses: altinukshini/deployment-action@v1.2.6 + id: deployment + with: + token: "${{ secrets.ELEMENT_BOT_TOKEN }}" + pr: true + pr_id: ${{ steps.readctx.outputs.prnumber }} + transient_environment: true + environment: Netlify + initial_status: in_progress + ref: ${{ steps.readctx.outputs.headref }} # There's a 'download artifact' action but it hasn't been updated for the # workflow_run action (https://github.com/actions/download-artifact/issues/60) @@ -69,12 +81,25 @@ jobs: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} timeout-minutes: 1 - - name: Edit PR Description - uses: Beakyn/gha-comment-pull-request@2167a7aee24f9e61ce76a23039f322e49a990409 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Update deployment status (success) + if: success() + uses: altinukshini/deployment-status@v1.0.1 with: - pull-request-number: ${{ steps.readctx.outputs.prnumber }} - description-message: | - Preview: ${{ steps.netlify.outputs.deploy-url }} - ⚠️ Do you trust the author of this PR? Maybe this build will steal your keys or give you malware. Exercise caution. Use test accounts. + token: "${{ secrets.ELEMENT_BOT_TOKEN }}" + environment_url: ${{ steps.netlify.outputs.deploy-url }} + state: "success" + deployment_id: ${{ steps.deployment.outputs.deployment_id }} + pr: true + pr_id: ${{ steps.readctx.outputs.prnumber }} + description: | + Do you trust the author of this PR? Maybe this build will steal your keys or give you malware. + Exercise caution. Use test accounts. + - name: Update deployment status (failure) + if: failure() + uses: altinukshini/deployment-status@v1.0.1 + with: + token: "${{ secrets.ELEMENT_BOT_TOKEN }}" + state: "failure" + deployment_id: ${{ steps.deployment.outputs.deployment_id }} + pr: true + pr_id: ${{ steps.readctx.outputs.prnumber }}