[NONEVM-2623] Fix Trace tracker doesn't track destroyed contracts #2242
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "TON - CCIP Integration Tests" | |
on: | |
pull_request: | |
push: | |
branches: | |
- "main" | |
permissions: | |
contents: read | |
actions: read | |
env: | |
DOCKER_CACHE_KEY: ccip-e2e-images-v1 | |
DOCKER_CACHE_DIR: ${{ github.workspace }}/.cache | |
DOCKER_CACHE_TAR_NAME: ccip-e2e-docker-images.tar | |
# mylocalton docker image / CCIP E2E test database image | |
DOCKER_IMAGES: >- | |
ghcr.io/neodix42/mylocalton-docker:latest | |
postgres:16-alpine | |
jobs: | |
prepare-images: | |
name: Prepare and Cache Docker Images | |
runs-on: ubuntu-latest | |
steps: | |
- name: Prepare cache dir | |
run: mkdir -p ${{ env.DOCKER_CACHE_DIR }} | |
- name: Restore image-tar cache | |
id: cache-images | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.DOCKER_CACHE_DIR }}/${{ env.DOCKER_CACHE_TAR_NAME }} | |
key: ${{ env.DOCKER_CACHE_KEY }} | |
- name: Pull & save images on cache miss | |
if: steps.cache-images.outputs.cache-hit != 'true' | |
run: | | |
echo "Cache miss: pulling images" | |
for img in ${{ env.DOCKER_IMAGES }}; do | |
docker pull "$img" | |
done | |
echo "Saving to tarball…" | |
docker save ${{ env.DOCKER_IMAGES }} \ | |
-o ${{ env.DOCKER_CACHE_DIR }}/${{ env.DOCKER_CACHE_TAR_NAME }} | |
integration-test-matrix: | |
needs: prepare-images | |
strategy: | |
fail-fast: false | |
matrix: | |
type: | |
# Note: list of tests, add more tests here | |
- name: "TON CCIP Messaging Tests" | |
cmd: "cd integration-tests/smoke/ccip && go test ccip_ton_messaging_test.go -timeout 20m -test.parallel=2 -count=1 -json" | |
name: ${{ matrix.type.name }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
- name: Restore cached docker images | |
id: docker-cache-restore | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.DOCKER_CACHE_DIR }}/${{ env.DOCKER_CACHE_TAR_NAME }} | |
key: ${{ env.DOCKER_CACHE_KEY }} | |
- name: Load docker images | |
if: steps.docker-cache-restore.outputs.cache-hit == 'true' | |
run: | | |
echo "Cache hit for key '${{ env.DOCKER_CACHE_KEY }}'. Loading images from tarball..." | |
docker load -i ${{ env.DOCKER_CACHE_DIR }}/${{ env.DOCKER_CACHE_TAR_NAME }} | |
- name: Install Nix | |
uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f # v31 | |
with: | |
nix_path: nixpkgs=channel:nixos-unstable | |
# cache Go build artifacts and modules to speed up subsequent runs | |
# key includes go.sum files from both chainlink-ton and chainlink core repos | |
# paths are standard Go cache locations on GitHub Actions runners | |
- name: Cache Go modules | |
uses: actions/cache@v4 | |
with: | |
path: | | |
/home/runner/.cache/go-build | |
/home/runner/go/pkg/mod | |
key: go-${{ hashFiles('**/go.sum', 'chainlink/**/go.sum') }} | |
- name: Read Chainlink Core Ref from .core_version | |
id: read_core_ref | |
run: echo "CORE_REF=$(cat ./scripts/.core_version | tr -d '[:space:]')" >> $GITHUB_OUTPUT | |
# cache the entire Chainlink Core repository to avoid re-cloning | |
# key is based on the exact commit SHA from .core_version file | |
# only checkout if cache miss occurs | |
- name: Cache Chainlink Core repo | |
uses: actions/cache@v4 | |
id: core-cache | |
with: | |
path: chainlink | |
key: core-${{ steps.read_core_ref.outputs.CORE_REF }} | |
- name: Checkout Chainlink Core repo | |
if: steps.core-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: smartcontractkit/chainlink | |
ref: ${{ steps.read_core_ref.outputs.CORE_REF }} | |
path: chainlink | |
- name: Build contracts | |
run: | | |
cd contracts | |
nix develop .#contracts -c yarn && yarn build | |
- name: Setup Environment and Run Tests | |
run: | | |
export CCIP_CONTRACTS_TON_VERSION="local" | |
ln -sfn "${GITHUB_WORKSPACE}/contracts" "${GITHUB_WORKSPACE}/chainlink/contracts" | |
nix develop .#ccip-e2e -c scripts/e2e/setup-env.sh --core-dir "${GITHUB_WORKSPACE}/chainlink" | |
nix develop .#ccip-e2e -c scripts/e2e/run-test.sh --core-dir "${GITHUB_WORKSPACE}/chainlink" --test-command "${{ matrix.type.cmd }}" | |
- name: Upload e2e test logs on failure | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ccip-test-logs-${{ matrix.type.name }} | |
path: chainlink/integration-tests/smoke/ccip/logs/ | |
retention-days: 7 | |
integration-test-ccip: | |
if: always() | |
runs-on: ubuntu-latest | |
needs: [integration-test-matrix] | |
steps: | |
- name: Fail if any CCIP test failed | |
if: always() && needs.integration-test-matrix.result == 'failure' | |
run: exit 1 |