From b618f0bd5b2ce0e9e17388f0a7bc3f0a345c6593 Mon Sep 17 00:00:00 2001 From: Damjan Smickovski Date: Thu, 21 Dec 2023 10:11:41 +0100 Subject: [PATCH] Bumping CI --- .github/workflows/e2e_testnet_daily.yml | 129 +++++++++++++++++++++--- 1 file changed, 113 insertions(+), 16 deletions(-) diff --git a/.github/workflows/e2e_testnet_daily.yml b/.github/workflows/e2e_testnet_daily.yml index e378c6db2..06e6e651a 100644 --- a/.github/workflows/e2e_testnet_daily.yml +++ b/.github/workflows/e2e_testnet_daily.yml @@ -34,20 +34,98 @@ concurrency: cancel-in-progress: true jobs: + changes: + environment: integration + name: Check Paths That Require Tests To Run + runs-on: ubuntu-latest + steps: + - name: Checkout the repo + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 + id: changes + with: + filters: | + src: + - '**/*.go' + - '**/*go.sum' + - '**/*go.mod' + - '.github/workflows/integration-tests.yml' + - '**/*Dockerfile' + - 'core/**/config/**/*.toml' + - name: Collect Metrics + if: always() + id: collect-gha-metrics + uses: smartcontractkit/push-gha-metrics-action@d1618b772a97fd87e6505de97b872ee0b1f1729a # v2.0.2 + with: + basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} + hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} + this-job-name: Check Paths That Require Tests To Run + continue-on-error: true + outputs: + src: ${{ steps.changes.outputs.src }} + get_solana_sha: + name: Get Solana Sha From Go Mod + environment: Integration + runs-on: ubuntu-latest + outputs: + sha: ${{ steps.getsha.outputs.sha }} + steps: + - name: Checkout the repo + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + ref: ${{ github.event.pull_request.head.sha || github.event.merge_group.head_sha }} + - name: Setup Go + uses: ./.github/actions/setup-go + with: + only-modules: "true" + - name: Get the sha from go mod + id: getshortsha + run: | + sol_ver=$(go list -m -json github.com/smartcontractkit/chainlink-solana | jq -r .Version) + if [ -z "${sol_ver}" ]; then + echo "Error: could not get the solana version from the go.mod file, look above for error(s)" + exit 1 + fi + short_sha="${sol_ver##*-}" + echo "short sha is: ${short_sha}" + echo "short_sha=${short_sha}" >> "$GITHUB_OUTPUT" + - name: Checkout solana + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + repository: smartcontractkit/chainlink-solana + ref: develop + fetch-depth: 0 + path: solanapath + - name: Get long sha + id: getsha + run: | + cd solanapath + full_sha=$(git rev-parse ${{steps.getshortsha.outputs.short_sha}}) + if [ -z "${full_sha}" ]; then + echo "Error: could not get the full sha from the short sha using git, look above for error(s)" + exit 1 + fi + echo "sha is: ${full_sha}" + echo "sha=${full_sha}" >> "$GITHUB_OUTPUT" + get_projectserum_version: name: Get ProjectSerum Version environment: integration runs-on: ubuntu-latest + needs: [ get_solana_sha ] outputs: projectserum_version: ${{ steps.psversion.outputs.projectserum_version }} steps: - - name: Checkout the repo + - name: Checkout the solana repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + repository: smartcontractkit/chainlink-solana + ref: ${{ needs.get_solana_sha.outputs.sha }} - name: Get ProjectSerum Version id: psversion - uses: ./.github/actions/projectserum_version + uses: smartcontractkit/chainlink-solana/.github/actions/projectserum_version@4b971869e26b79c7ce3fb7c98005cc2e3f350915 # stable action on Oct 12 2022 - test-image-exists: + solana-test-image-exists: environment: integration permissions: checks: write @@ -56,37 +134,56 @@ jobs: contents: read name: Check If Solana Test Image Exists runs-on: ubuntu-latest + needs: [ get_solana_sha ] outputs: exists: ${{ steps.check-image.outputs.exists }} steps: - name: Check if image exists id: check-image - uses: smartcontractkit/chainlink-github-actions/docker/image-exists@ad22fbd6f4d108b82aaf49b527bcf40f32babea8 # v2.2.1 + uses: smartcontractkit/chainlink-github-actions/docker/image-exists@e865e376b8c2d594028c8d645dd6c47169b72974 # v2.2.16 with: repository: chainlink-solana-tests - tag: ${{ github.sha }} + tag: ${{ needs.get_solana_sha.outputs.sha }} AWS_REGION: ${{ secrets.QA_AWS_REGION }} AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} e2e_custom_build_artifacts: - name: E2E Custom Build Artifacts - environment: integration - permissions: - id-token: write - contents: read - runs-on: ubuntu-latest - needs: [get_projectserum_version, test-image-exists] + name: Solana Build Artifacts + runs-on: ubuntu20.04-16cores-64GB + needs: + [ + changes, + get_projectserum_version, + solana-test-image-exists, + get_solana_sha, + ] container: image: projectserum/build:${{ needs.get_projectserum_version.outputs.projectserum_version }} env: RUSTUP_HOME: "/root/.rustup" FORCE_COLOR: 1 steps: - - name: Checkout the repo - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - name: Collect Metrics + if: needs.changes.outputs.src == 'true' + id: collect-gha-metrics + uses: smartcontractkit/push-gha-metrics-action@d1618b772a97fd87e6505de97b872ee0b1f1729a # v2.0.2 + with: + basic-auth: ${{ secrets.GRAFANA_CLOUD_BASIC_AUTH }} + hostname: ${{ secrets.GRAFANA_CLOUD_HOST }} + this-job-name: Solana Build Artifacts + continue-on-error: true + - name: Checkout the solana repo + # Use v3.6.0 because the custom runner (container configured above) + # doesn't have node20 installed which is required for versions >=4 + uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + with: + repository: smartcontractkit/chainlink-solana + ref: ${{ needs.get_solana_sha.outputs.sha }} - name: Build contracts - if: needs.test-image-exists.outputs.exists == 'false' - uses: ./.github/actions/build_contract_artifacts + if: needs.changes.outputs.src == 'true' && needs.solana-test-image-exists.outputs.exists == 'false' + uses: smartcontractkit/chainlink-solana/.github/actions/build_contract_artifacts@23816fcf7d380a30c87b6d87e4fb0ca94419b259 # stable action on April 17 2023 + with: + ref: ${{ needs.get_solana_sha.outputs.sha }} e2e_custom_build_custom_chainlink_image: name: E2E Custom Build Custom CL Image