on:
workflow_dispatch: {}
name: e2e
env:
REGISTRY: ghcr.io
TARGET_IMAGE: ghcr.io/txpipe/oura-e2e:${{ github.sha }}
jobs:
build:
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
run: rustup show active-toolchain || rustup toolchain install
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: Swatinem/rust-cache@v2
with:
shared-key: docker-x86_64-unknown-linux-gnu
- name: Run cargo build
run: cargo build --target x86_64-unknown-linux-gnu --all-features --locked --release
- name: Stage binary for image
run: |
mkdir -p .github/image/bin
mv target/x86_64-unknown-linux-gnu/release/oura .github/image/bin/oura-Linux-amd64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .github/image
platforms: linux/amd64
push: true
tags: ${{ env.TARGET_IMAGE }}
test:
needs: ["build"]
runs-on: ubuntu-latest
permissions:
contents: read
packages: read
id-token: write strategy:
fail-fast: false
matrix:
include:
- name: assert-n2n-mainnet-origin-blocks
kind: n2n
- name: assert-n2n-mainnet-tip-blocks
kind: n2n
- name: assert-n2n-preview-origin-blocks
kind: n2n
- name: assert-n2n-preview-tip-blocks
kind: n2n
- name: aws-lambda-10-blocks
kind: aws
- name: aws-s3-500-blocks
kind: aws
- name: aws-sqs-10-blocks
kind: aws
- name: u5c-mainnet-tip-blocks
kind: u5c
- name: u5c-preprod-tip-blocks
kind: u5c
- name: u5c-preview-tip-blocks
kind: u5c
steps:
- uses: actions/checkout@v4
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull image
run: docker pull "$TARGET_IMAGE"
- name: Configure AWS credentials
if: matrix.kind == 'aws'
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: us-west-2
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/OuraE2ETest
role-session-name: Github-e2e-Rollout
role-duration-seconds: 3600
- name: Run ${{ matrix.name }}
env:
TEST_NAME: ${{ matrix.name }}
GITHUB_RUN_NUMBER: ${{ github.run_number }}
DMTR_UTXORPC_KEY_MAINNET: ${{ secrets.DMTR_UTXORPC_KEY_MAINNET }}
DMTR_UTXORPC_KEY_PREPROD: ${{ secrets.DMTR_UTXORPC_KEY_PREPROD }}
DMTR_UTXORPC_KEY_PREVIEW: ${{ secrets.DMTR_UTXORPC_KEY_PREVIEW }}
run: .github/e2e/scripts/run-test.sh