From a31014048b3765637e977a052144f03578fd1ec3 Mon Sep 17 00:00:00 2001 From: Erik Burton Date: Fri, 6 Dec 2024 17:16:06 -0800 Subject: [PATCH] test: no nested composite actions --- .../actions/setup-ci-core-tests/action.yml | 47 ------------- .github/workflows/ci-core-partial.yml | 60 +++++++++++++--- .github/workflows/ci-core.yml | 69 +++++++++++++++++-- 3 files changed, 113 insertions(+), 63 deletions(-) diff --git a/.github/actions/setup-ci-core-tests/action.yml b/.github/actions/setup-ci-core-tests/action.yml index c8f86f90442..7edef38fdd5 100644 --- a/.github/actions/setup-ci-core-tests/action.yml +++ b/.github/actions/setup-ci-core-tests/action.yml @@ -7,62 +7,15 @@ inputs: The directory to run go mod download in. If not provided, it will not run go mod download. required: false default: "" - - evm-ref-override: - description: | - Overrides the evm/relayer dependency version - required: false db-url: description: | The expected database URL required: true - mod-cache-version: - description: | - The version of the module cache to use. Used for cache busting. - required: false - - build-cache-version: - description: | - The version of the build cache to use. Used for scoping build caches. - required: false - - restore-build-cache-only: - description: | - Whether to create a build cache - required: false - default: "false" - runs: using: composite steps: - - name: Setup NodeJS - uses: ./.github/actions/setup-nodejs - with: - prod: "true" - - - name: Setup Go - uses: ./.github/actions/setup-go - with: - cache-version: ${{ inputs.mod-cache-version }} - build-cache-version: ${{ inputs.build-cache-version }} - restore-build-cache-only: ${{ inputs.restore-build-cache-only }} - - - name: Replace chainlink-evm deps - if: ${{ inputs.evm-ref-override != ''}} - shell: bash - run: go get github.com/smartcontractkit/chainlink-integrations/evm/relayer@${{ inputs.evm-ref-override }} - - - name: Setup Solana - uses: ./.github/actions/setup-solana - - - name: Setup wasmd - uses: ./.github/actions/setup-wasmd - - - name: Setup Postgres - uses: ./.github/actions/setup-postgres - - name: Touching core/web/assets/index.html shell: bash run: mkdir -p core/web/assets && touch core/web/assets/index.html diff --git a/.github/workflows/ci-core-partial.yml b/.github/workflows/ci-core-partial.yml index aed18b42bea..dd65d18caf2 100644 --- a/.github/workflows/ci-core-partial.yml +++ b/.github/workflows/ci-core-partial.yml @@ -59,6 +59,26 @@ jobs: - name: Checkout the repo uses: actions/checkout@v4.2.1 + - name: Setup NodeJS + uses: ./.github/actions/setup-nodejs + with: + prod: "true" + + - name: Setup Go + uses: ./.github/actions/setup-go + with: + build-cache-version: ${{ matrix.type.test-suite }} + restore-build-cache-only: "false" + + - name: Setup Solana + uses: ./.github/actions/setup-solana + + - name: Setup wasmd + uses: ./.github/actions/setup-wasmd + + - name: Setup Postgres + uses: ./.github/actions/setup-postgres + - name: Setup CI Core Environment uses: ./.github/actions/setup-ci-core-tests with: @@ -169,16 +189,27 @@ jobs: run-fuzz-tests: name: Tests (fuzz) runs-on: ubuntu22.04-32cores-128GB + if: ${{ github.event_name == 'schedule' }} env: DB_URL: postgresql://postgres:postgres@localhost:5432/chainlink_test?sslmode=disable steps: - name: Checkout the repo uses: actions/checkout@v4.2.1 - - name: Change Modtime of Files (cache optimization) - shell: bash - run: | - find . -type f,d -exec touch -r {} -d '1970-01-01T00:00:01' {} \; || true + - name: Setup Go + uses: ./.github/actions/setup-go + with: + build-cache-version: "fuzz" + restore-build-cache-only: "true" + + - name: Setup Solana + uses: ./.github/actions/setup-solana + + - name: Setup wasmd + uses: ./.github/actions/setup-wasmd + + - name: Setup Postgres + uses: ./.github/actions/setup-postgres - name: Setup CI Core Environment uses: ./.github/actions/setup-ci-core-tests @@ -206,21 +237,32 @@ jobs: run-race-tests: name: Tests (race) runs-on: ubuntu22.04-32cores-128GB + if: ${{ github.event_name == 'schedule' }} env: DB_URL: postgresql://postgres:postgres@localhost:5432/chainlink_test?sslmode=disable steps: - name: Checkout the repo uses: actions/checkout@v4.2.1 - - name: Change Modtime of Files (cache optimization) - shell: bash - run: | - find . -type f,d -exec touch -r {} -d '1970-01-01T00:00:01' {} \; || true + - name: Setup Go + uses: ./.github/actions/setup-go + with: + build-cache-version: "race" + restore-build-cache-only: "true" + + - name: Setup Solana + uses: ./.github/actions/setup-solana + + - name: Setup wasmd + uses: ./.github/actions/setup-wasmd + + - name: Setup Postgres + uses: ./.github/actions/setup-postgres - name: Setup CI Core Environment uses: ./.github/actions/setup-ci-core-tests with: - build-cache-version: "race" + build-cache-version: "fuzz" restore-build-cache-only: "true" db-url: ${{ env.DB_URL }} diff --git a/.github/workflows/ci-core.yml b/.github/workflows/ci-core.yml index 7ac82ab7908..c38ecd918ae 100644 --- a/.github/workflows/ci-core.yml +++ b/.github/workflows/ci-core.yml @@ -154,19 +154,74 @@ jobs: uses: actions/checkout@v4.2.1 - name: Change Modtime of Files (cache optimization) - if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} shell: bash run: | find . -type f,d -exec touch -r {} -d '1970-01-01T00:00:01' {} \; || true - - - name: Setup CI Core Environment + + - name: Setup NodeJS if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} - uses: ./.github/actions/setup-ci-core-tests + uses: ./.github/actions/setup-nodejs with: - db-url: ${{ env.DB_URL }} - evm-ref-override: ${{ github.event.inputs.evm-ref }} - build-cache-version: ${{ matrix.type.cmd }} + prod: "true" + + - name: Setup Go + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + uses: ./.github/actions/setup-go + with: + # race/fuzz tests don't benefit repeated caching, so restore from develop's build cache restore-build-cache-only: ${{ matrix.type.cmd == 'go_core_fuzz' }} + build-cache-version: ${{ matrix.type.cmd }} + + - name: Replace chainlink-evm deps + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' && inputs.evm-ref != ''}} + shell: bash + run: go get github.com/smartcontractkit/chainlink-integrations/evm/relayer@${{ inputs.evm-ref }} + + - name: Setup Solana + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + uses: ./.github/actions/setup-solana + + - name: Setup wasmd + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + uses: ./.github/actions/setup-wasmd + + - name: Setup Postgres + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + uses: ./.github/actions/setup-postgres + + - name: Touching core/web/assets/index.html + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + run: mkdir -p core/web/assets && touch core/web/assets/index.html + + - name: Download Go vendor packages + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + run: go mod download + + - name: Build binary + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + run: go build -o chainlink.test . + + - name: Setup DB + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + run: ./chainlink.test local db preparetest + env: + CL_DATABASE_URL: ${{ env.DB_URL }} + + - name: Install LOOP Plugins + if: ${{ needs.filter.outputs.should-run-ci-core == 'true' }} + run: | + pushd $(go list -m -f "{{.Dir}}" github.com/smartcontractkit/chainlink-feeds) + go install ./cmd/chainlink-feeds + popd + pushd $(go list -m -f "{{.Dir}}" github.com/smartcontractkit/chainlink-data-streams) + go install ./mercury/cmd/chainlink-mercury + popd + pushd $(go list -m -f "{{.Dir}}" github.com/smartcontractkit/chainlink-solana) + go install ./pkg/solana/cmd/chainlink-solana + popd + pushd $(go list -m -f "{{.Dir}}" github.com/smartcontractkit/chainlink-starknet/relayer) + go install ./pkg/chainlink/cmd/chainlink-starknet + popd - name: Increase Timeouts for Fuzz/Race # Increase timeouts for scheduled runs only