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