Skip to content

take a step towards chain accessing for executor #3382

take a step towards chain accessing for executor

take a step towards chain accessing for executor #3382

Workflow file for this run

name: End-to-end CCV Test
on:
merge_group:
pull_request:
defaults:
run:
working-directory: build/devenv
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
e2e-smoke:
permissions:
id-token: write
contents: read
pull-requests: write
runs-on: runs-on=${{ github.run_id }}/family=c6i/cpu=32+48/ram=64+96/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
strategy:
fail-fast: false
matrix:
test:
- name: TestE2ESmoke
config: env.toml
timeout: 15m
working-directory: build/devenv/tests/e2e
- name: TestE2EReorg
config: env.toml,env-src-auto-mine.toml
timeout: 5m
working-directory: build/devenv/tests/e2e
- name: TestChaos_AggregatorOutageRecovery
config: env.toml
timeout: 5m
working-directory: build/devenv/tests/e2e
- name: (TestChaos_VerifierFaultToleranceThresholdViolated|TestChaos_AllExecutorsDown|TestChaos_IndexerDown)
config: env.toml
timeout: 5m
working-directory: build/devenv/tests/e2e
- name: TestCantonSourceReader
config: env-canton-single-validator.toml
timeout: 2m
working-directory: build/devenv/tests/integration/canton
steps:
- name: Enable S3 Cache for Self-Hosted Runners
uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
- name: Checkout code
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Install Just
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3
- name: Authenticate to AWS ECR
uses: ./.github/actions/aws-ecr-auth
with:
role-to-assume: ${{ secrets.CCV_IAM_ROLE }}
aws-region: us-east-1
registry-type: public
- name: Authenticate to AWS ECR (JD)
uses: ./.github/actions/aws-ecr-auth
with:
role-to-assume: ${{ secrets.CCV_IAM_ROLE }}
aws-region: us-west-2
registry-type: private
registries: ${{ secrets.JD_REGISTRY }}
- name: Set up Go
uses: actions/setup-go@v6 # v6
with:
cache: true
go-version-file: build/devenv/go.mod
cache-dependency-path: build/devenv/go.sum
- name: Download Go dependencies
run: |
go mod download
- name: Build Docker Images
run: just build-docker-dev-ci
env:
DOCKER_BUILDKIT: 1
- name: Run CCV environment
env:
JD_IMAGE: ${{ secrets.JD_IMAGE }}
run: |
cd cmd/ccv && go install . && cd -
ccv u ${{ matrix.test.config }} && ccv obs up -m loki
- name: Run Test ${{ matrix.test.name }}
id: test_run
working-directory: ${{ matrix.test.working-directory }}
run: |
set -o pipefail
go test -v -timeout ${{ matrix.test.timeout }} -count=1 -run '${{ matrix.test.name }}'
continue-on-error: true
- name: Dump logs if they're not already dumped
if: always()
working-directory: ${{ matrix.test.working-directory }}
run: |
if [ ! -d "logs" ] || [ -z "$(ls -A logs)" ]; then
echo "Logs not found or empty. Dumping logs manually..."
ccv dl --dir-suffix "${{ matrix.test.name }}"
else
echo "Logs already exist. Skipping manual dump."
fi
- name: Sanitize test name for log artifact name
if: always()
id: sanitize_name
run: |
# The vertical bar is invalid in the uploaded artifact name, so we replace it with an underscore.
SANITIZED_NAME=$(echo "${{ matrix.test.name }}" | sed 's/[()|]/_/g')
echo "name=$SANITIZED_NAME" >> $GITHUB_OUTPUT
- name: Upload Logs
if: always()
uses: actions/upload-artifact@v4
with:
name: container-logs-standalone-${{ steps.sanitize_name.outputs.name }}
path: ${{ matrix.test.working-directory }}/logs
retention-days: 1
- name: Check test results
if: always() && steps.test_run.outcome == 'failure'
run: |
echo "${{ matrix.test.name }} tests failed."
exit 1