Skip to content

test: build test binaries #2

test: build test binaries

test: build test binaries #2

name: Test Binary Caching
# Run on key branches to make sure integration is good, otherwise run on all PR's
on:
pull_request:
jobs:
build-test-binaries-concurrent:
runs-on: ubuntu22.04-32cores-128GB
strategy:
fail-fast: false
matrix:
type:
- concurrency: 4
- concurrency: 8
- concurrency: 16
- concurrency: 32
name: Build Test Binaries (${{ matrix.type.concurrency }})
env:
# We explicitly have this env var not be "CL_DATABASE_URL" to avoid having it be used by core related tests
# when they should not be using it, while still allowing us to DRY up the setup
DB_URL: postgresql://postgres:postgres@localhost:5432/chainlink_test?sslmode=disable
steps:
- name: Checkout the repo
uses: actions/[email protected]
- 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:
restore-build-cache-only: true
# piggy back on go_core_tests for caching
build-cache-version: 'go_core_tests'
- name: Build Test Binaries
shell: bash
env:
CL_DATABASE_URL: ${{ env.DB_URL }}
BUILD_CONCURRENCY: ${{ matrix.type.concurrency }}
run: |
./tools/bin/build-test-binaries-with-concurrency
- name: Debug testsout
shell: bash
run: |
# ls -lah ./testsout
# du -ch ./testsout
# Hash each file in the output directory and print the filename and hash
echo "Hashing compiled test binaries:"
for file in testsout/*; do
if [[ -f "$file" ]]; then
hash=$(sha256sum "$file" | awk '{ print $1 }')
echo "File: $file, SHA256 Hash: $hash"
fi
done