Skip to content

Commit

Permalink
add relay interface tests to relay workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
EasterTheBunny committed Dec 5, 2024
1 parent 7332d56 commit 7a670ca
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 2 deletions.
84 changes: 84 additions & 0 deletions .github/workflows/relay.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,87 @@ jobs:
/tmp/gotest.log
./race_coverage.txt
./integration_coverage.txt
get_projectserum_version:
name: Get ProjectSerum Version
runs-on: ubuntu-latest
outputs:
projectserum_version: ${{ steps.psversion.outputs.projectserum_version }}
steps:
- name: Checkout the repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Get ProjectSerum Version
id: psversion
uses: ./.github/actions/projectserum_version

build_wrapped_anchor_image:
name: build contract test image
runs-on: ubuntu-latest
needs: [get_projectserum_version]
steps:
- uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: cache docker build image
id: cache-image
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: contracts/docker-build.tar
key: ${{ runner.os }}-docker-pnpm-build-${{ needs.get_projectserum_version.outputs.projectserum_version }}-${{ hashFiles('**/Cargo.lock') }}
- name: build & save image
if: steps.cache-image.outputs.cache-hit != 'true'
run: |
docker buildx build . -t chainlink-solana:build --build-arg ANCHOR_CLI=${{ needs.get_projectserum_version.outputs.projectserum_version }}
docker save chainlink-solana > docker-build.tar
relay_run_interface_tests:
name: Relay Run Interface Tests
runs-on: ubuntu-latest-8cores-32GB
needs: [get_projectserum_version, build_wrapped_anchor_image]
steps:
- name: Checkout sources
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5

- name: Cache cargo target dir
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: contracts/target
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

- name: cache docker build image
id: cache-image
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
fail-on-cache-miss: true
path: contracts/docker-build.tar
key: ${{ runner.os }}-solana-docker-pnpm-build-${{ needs.get_projectserum_version.outputs.projectserum_version }}-${{ hashFiles('**/Cargo.lock') }}

- name: load cached image
run: |
docker load --input ./contracts/docker-build.tar
- name: Setup go
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
with:
go-version-file: "./integration-tests/go.mod"
check-latest: true
cache-dependency-path: "./integration-tests/go.sum"

- name: Install gotestloghelper
run: go install github.com/smartcontractkit/chainlink-testing-framework/tools/gotestloghelper@latest

- name: Install Solana CLI
run: ./scripts/install-solana-ci.sh

- name: Test
run: |
set -eoux pipefail
# compile artifacts
cd contracts && solana-keygen new -o id.json --no-bip39-passphrase
docker run -v "$(pwd)/../":/repo chainlink-solana:build bash -c "\
set -eoux pipefail &&\
RUSTUP_HOME=\"/root/.rustup\" &&\
FORCE_COLOR=1 &&\
cd /repo/contracts &&\
anchor build"
cd ..
make test_relay_integration
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ test_smoke:
cd ./integration-tests &&\
SELECTED_NETWORKS=SIMULATED go test -timeout 24h -count=1 -json $(args) -run TestSolanaOCRV2Smoke ./smoke 2>&1 | tee /tmp/gotest.log | gotestloghelper -json -tlogprefix -singlepackage -color

test_relay_integration:
cd ./integration-tests &&\
go test -timeout 1m -count=1 -json $(args) ./relayinterface/... 2>&1 | tee /tmp/gotest.log | gotestloghelper -json -tlogprefix -singlepackage -color

.PHONY: gomods
gomods: ## Install gomods
go install github.com/jmank88/[email protected]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
Package components contains the interface tests for chain components.
Package relayinterface contains the interface tests for chain components.
*/
package components
package relayinterface

import (
"context"
Expand Down

0 comments on commit 7a670ca

Please sign in to comment.