fix: update switch chain logic #46
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR approved workflow | |
on: | |
issue_comment: | |
types: | |
- created | |
pull_request_review: | |
types: | |
- submitted | |
push: | |
branches: ["master"] | |
merge_group: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-cctp | |
cancel-in-progress: true | |
env: | |
NEXT_PUBLIC_INFURA_KEY: ${{ secrets.NEXT_PUBLIC_INFURA_KEY }} | |
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID }} | |
THE_GRAPH_NETWORK_API_KEY: ${{ secrets.THE_GRAPH_NETWORK_API_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
check-files: | |
name: Check files | |
runs-on: ubuntu-latest | |
outputs: | |
run_tests: ${{ steps.check-files.outputs.run_tests }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/check-files | |
id: check-files | |
should-run-tests: | |
runs-on: ubuntu-latest | |
needs: [check-files] | |
outputs: | |
should_run: ${{ steps.should-run-tests.outputs.should_run }} | |
steps: | |
- name: Check trigger type and conditions | |
id: should-run-tests | |
run: | | |
if [[ "${{ github.event_name }}" == "issue_comment" ]]; then | |
if [[ "${{ contains(fromJson('["OWNER", "MEMBER"]'), github.event.comment.author_association) }}" == "false" ]]; then | |
echo "should_run=false" >> $GITHUB_OUTPUT | |
elif [[ "${{ github.event.comment.body }}" == "/run-cctp-tests" && "${{ github.event.issue.pull_request }}" != "" ]]; then | |
echo "should_run=true" >> $GITHUB_OUTPUT | |
else | |
echo "should_run=false" >> $GITHUB_OUTPUT | |
fi | |
elif [[ "${{ github.event_name }}" == "pull_request_review" ]]; then | |
if [[ "${{ github.event.review.state }}" == "approved" && "${{ needs.check-files.outputs.run_tests }}" == "true" && "${{ contains(github.event.pull_request.title, 'hotfix') }}" == "false" ]]; then | |
echo "should_run=true" >> $GITHUB_OUTPUT | |
else | |
echo "should_run=false" >> $GITHUB_OUTPUT | |
fi | |
else | |
echo "should_run=false" >> $GITHUB_OUTPUT | |
fi | |
build: | |
name: "Build" | |
runs-on: ubuntu-latest | |
needs: [should-run-tests] | |
if: needs.should-run-tests.outputs.should_run == 'true' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install node_modules | |
uses: OffchainLabs/actions/node-modules/install@main | |
- name: Build | |
run: yarn build | |
env: | |
NEXT_PUBLIC_IS_E2E_TEST: true | |
NEXT_PUBLIC_INFURA_KEY: ${{ secrets.NEXT_PUBLIC_INFURA_KEY }} | |
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID }} | |
THE_GRAPH_NETWORK_API_KEY: ${{ secrets.THE_GRAPH_NETWORK_API_KEY }} | |
- name: Cache build artifacts | |
uses: ./.github/actions/build-artifacts/cache | |
cctp-e2e-tests: | |
name: "CCTP E2E Tests" | |
needs: [build, check-files] | |
uses: ./.github/workflows/e2e-tests.yml | |
with: | |
test_type: 'cctp' | |
secrets: inherit | |
update-pr-status: | |
name: "Update PR Status" | |
needs: [cctp-e2e-tests] | |
runs-on: ubuntu-latest | |
if: always() | |
steps: | |
- name: Create check run | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
const { owner, repo } = context.repo; | |
let pull_number; | |
if ('${{ github.event_name }}' === 'issue_comment') { | |
pull_number = context.issue.number; | |
} else if ('${{ github.event_name }}' === 'pull_request_review') { | |
pull_number = context.payload.pull_request.number; | |
} else { | |
console.log('Unexpected event type'); | |
return; | |
} | |
// Fetch the PR data to get the latest SHA | |
const { data: pr } = await github.rest.pulls.get({ | |
owner, | |
repo, | |
pull_number: pull_number, | |
}); | |
const head_sha = pr.head.sha; | |
// Construct the URL for this workflow run | |
const workflowUrl = `https://github.com/${owner}/${repo}/actions/runs/${context.runId}`; | |
await github.rest.checks.create({ | |
owner, | |
repo, | |
name: 'CCTP Tests', | |
head_sha: head_sha, | |
status: 'completed', | |
conclusion: '${{ needs.cctp-e2e-tests.result }}', | |
output: { | |
title: 'CCTP Tests Result', | |
summary: `The CCTP tests have completed with status: ${{ needs.cctp-e2e-tests.result }}.`, | |
text: `For detailed information, please check the [workflow run](${workflowUrl}).` | |
} | |
}); |