UNPKG

@hyperlane-xyz/core

Version:

Core solidity contracts for Hyperlane

184 lines (167 loc) 8.61 kB
# # This action checks PRs to see if any changeset files were added in the PR core files were changed. # If none were, it will add a comment in the PR to run changeset command to generate a changeset file. # name: Changeset on: jobs: changeset: env: TAGS: | - `#added` For any new functionality added. - `#breaking_change` For any functionality that requires manual action for the node to boot. - `#bugfix` For bug fixes. - `#changed` For any change to the existing functionality. - `#db_update` For any feature that introduces updates to database schema. - `#deprecation_notice` For any upcoming deprecation functionality. - `#internal` For changesets that need to be excluded from the final changelog. - `#nops` For any feature that is NOP facing and needs to be in the official Release Notes for the release. - `#removed` For any functionality/config that is removed. - `#updated` For any functionality that is updated. - `#wip` For any change that is not ready yet and external communication about it should be held off till it is feature complete. # For security reasons, GITHUB_TOKEN is read-only on forks, so we cannot leave comments on PRs. # This check skips the job if it is detected we are running on a fork. if: ${{ github.event.pull_request.head.repo.full_name == 'smartcontractkit/ccip' }} name: Changeset checker runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: files-changed with: token: ${{ secrets.GITHUB_TOKEN }} predicate-quantifier: every list-files: shell filters: | shared: - common/** - '!common/**/*_test.go' - plugins/** - '!plugins/**/*_test.go' core: - core/** - '!core/**/*_test.go' - '!core/**/*.md' - '!core/**/*.json' - '!core/chainlink.goreleaser.Dockerfile' - '!core/chainlink.Dockerfile' contracts: - contracts/**/*.sol - '!contracts/**/*.t.sol' core-changeset: - added: '.changeset/**' contracts-changeset: - added: 'contracts/.changeset/**' - name: Check for changeset tags for core id: changeset-tags if: ${{ steps.files-changed.outputs.core-changeset == 'true' }} shell: bash run: bash ./.github/scripts/check-changeset-tags.sh ${{ steps.files-changed.outputs.core-changeset_files }} - name: Setup pnpm uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # v3.0.0 if: ${{ steps.files-changed.outputs.core == 'true' || steps.files-changed.outputs.shared == 'true' }} with: version: ^9.0.0 - name: Setup node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 if: ${{ steps.files-changed.outputs.core == 'true' || steps.files-changed.outputs.shared == 'true' }} with: node-version: 20 cache: pnpm cache-dependency-path: ./pnpm-lock.yaml - name: Get next chainlink core version id: chainlink-version if: ${{ steps.files-changed.outputs.core == 'true' || steps.files-changed.outputs.shared == 'true' }} run: | pnpm install && pnpm changeset version echo "chainlink_version=$(jq -r '.version' package.json)" >> $GITHUB_OUTPUT env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Update Jira ticket for core id: jira if: ${{ steps.files-changed.outputs.core == 'true' || steps.files-changed.outputs.shared == 'true' }} shell: bash working-directory: ./.github/scripts/jira run: | echo "COMMIT_MESSAGE=$(git log -1 --pretty=format:'%s')" >> $GITHUB_ENV pnpm install && node update-jira-issue.js env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} JIRA_HOST: ${{ secrets.JIRA_HOST }} JIRA_USERNAME: ${{ secrets.JIRA_USERNAME }} JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} CHAINLINK_VERSION: ${{ steps.chainlink-version.outputs.chainlink_version }} PR_TITLE: ${{ github.event.pull_request.title }} BRANCH_NAME: ${{ github.event.pull_request.head.ref }} - name: Make a comment uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 # v2.5.0 if: ${{ steps.files-changed.outputs.core == 'true' || steps.files-changed.outputs.shared == 'true' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} JIRA_COMMENT: ${{ steps.jira.outputs.jiraComment }} with: message: | I see you updated files related to `core`. Please run `pnpm changeset` in the root directory to add a changeset as well as in the text include at least one of the following tags: ${{ env.TAGS }} ${{ env.JIRA_COMMENT }} reactions: eyes comment_tag: changeset-core mode: ${{ steps.files-changed.outputs.core-changeset == 'false' && 'upsert' || 'delete' }} create_if_not_exists: ${{ steps.files-changed.outputs.core-changeset == 'false' && 'true' || 'false' }} - name: Make a comment uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 # v2.5.0 if: ${{ steps.files-changed.outputs.contracts == 'true' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: message: | I see you updated files related to `contracts`. Please run `pnpm changeset` in the `contracts` directory to add a changeset. reactions: eyes comment_tag: changeset-contracts mode: ${{ steps.files-changed.outputs.contracts-changeset == 'false' && 'upsert' || 'delete' }} create_if_not_exists: ${{ steps.files-changed.outputs.contracts-changeset == 'false' && 'true' || 'false' }} - name: Check for new changeset for core if: ${{ (steps.files-changed.outputs.core == 'true' || steps.files-changed.outputs.shared == 'true') && steps.files-changed.outputs.core-changeset == 'false' }} shell: bash run: | echo "Please run pnpm changeset to add a changeset for core and include in the text at least one tag." exit 1 - name: Check for new changeset for contracts if: ${{ steps.files-changed.outputs.contracts == 'true' && steps.files-changed.outputs.contracts-changeset == 'false' }} shell: bash run: | echo "Please run pnpm changeset to add a changeset for contracts." exit 1 - name: Make a comment uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 # v2.5.0 if: ${{ steps.files-changed.outputs.core-changeset == 'true' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} JIRA_COMMENT: ${{ steps.jira.outputs.jiraComment }} with: message: | I see you added a changeset file but it does not contain a tag. Please edit the text include at least one of the following tags: ${{ env.TAGS }} ${{ env.JIRA_COMMENT }} reactions: eyes comment_tag: changeset-core-tags mode: ${{ steps.changeset-tags.outputs.has_tags == 'false' && 'upsert' || 'delete' }} create_if_not_exists: ${{ steps.changeset-tags.outputs.has_tags == 'false' && 'true' || 'false' }} - name: Check for new changeset tags for core if: ${{ steps.files-changed.outputs.core-changeset == 'true' && steps.changeset-tags.outputs.has_tags == 'false' }} shell: bash run: | echo "Please include at least one tag in the core changeset file" exit 1 - name: Collect Metrics if: always() id: collect-gha-metrics uses: smartcontractkit/push-gha-metrics-action@d9da21a2747016b3e13de58c7d4115a3d5c97935 # v3.0.1 with: id: chainlink-changesets org-id: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }} basic-auth: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }} hostname: ${{ secrets.GRAFANA_INTERNAL_HOST }} this-job-name: Changeset checker continue-on-error: true