Skip to content

Commit

Permalink
Merge pull request #53 from heliaxdev/yuji/workload-test
Browse files Browse the repository at this point in the history
Add workload test into CI
  • Loading branch information
yito88 authored Feb 18, 2025
2 parents 2248eb2 + 6fb8bed commit 85b99d0
Show file tree
Hide file tree
Showing 6 changed files with 462 additions and 4 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/build-namada.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@ jobs:
context: ${{ matrix.images.context }}
push: false
tags: |
ghcr.io/heliaxdev/ant-${{ matrix.images.image }}:${{ github.ref_name || github.head_ref }}${{ matrix.images.tag }}
us-central1-docker.pkg.dev/molten-verve-216720/heliax-repository/${{ matrix.images.image }}:${{ github.ref_name || github.head_ref }}${{ matrix.images.tag }}
ghcr.io/heliaxdev/ant-${{ matrix.images.image }}:${{ github.event.pull_request.head.sha }}${{ matrix.images.tag }}
us-central1-docker.pkg.dev/molten-verve-216720/heliax-repository/${{ matrix.images.image }}:${{ github.event.pull_request.head.sha }}${{ matrix.images.tag }}
cache-from: type=gha,scope=${{ matrix.images.cache_scope }}
cache-to: type=gha,scope=${{ matrix.images.cache_scope }},mode=max
build-args: |
GENESIS_TEMPLATE_VERSION=0.46.0-ant
GIT_SHA=${{ github.ref_name || github.head_ref }}
GIT_SHA=main
- name: Build & Push Image ${{ matrix.images.image }} with sha commit ${{ github.event.inputs.commit }}/${{ github.event.inputs.genesis_template_version }} (workflow dispatch)
if: ${{ github.event_name == 'workflow_dispatch' }}
uses: docker/build-push-action@v6
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Run workload test

on:
pull_request:
paths:
- 'workload/**'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
test-workload:
name: Run workload test
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: us-central1-docker.pkg.dev/molten-verve-216720/heliax-repository
username: _json_key
password: ${{ secrets.ANTITHESIS_GAR_JSON_KEY }}
- name: Login to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-docker-compose-${{ github.sha }}
restore-keys: |
${{ runner.os }}-docker-compose-
- name: Docker compose build
run: docker compose -f config/docker-compose-ci.yml build
- name: Run test
run: ./ci.sh
28 changes: 28 additions & 0 deletions ci.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
rm -rf config/validator-0
rm -rf config/validator-1
rm -rf config/validator-2
rm -rf config/fullnode
rm -rf config/container_ready

mkdir -p config/validator-0
mkdir -p config/validator-1
mkdir -p config/validator-2
mkdir -p config/fullnode
mkdir -p config/container_ready

touch config/validator-0/DO_NOT_REMOVE
touch config/validator-1/DO_NOT_REMOVE
touch config/validator-2/DO_NOT_REMOVE
touch config/fullnode/DO_NOT_REMOVE
touch config/container_ready/DO_NOT_REMOVE

docker compose -f config/docker-compose-ci.yml down
docker compose -f config/docker-compose-ci.yml up --abort-on-container-exit

docker logs workload0 | grep "Test was completed successfully"
if [ $? -eq 0 ]; then
exit 0
else
echo "!!!! Test failed !!!!"
exit 1
fi
207 changes: 207 additions & 0 deletions config/docker-compose-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
networks:
namada-net:
driver: bridge
ipam:
config:
- subnet: 30.0.0.0/24
services:
check:
container_name: check
environment:
- RPC=30.0.0.14:27658
- MASP_INDEXER_URL=http://30.0.0.20:5000
hostname: check
build:
context: ../check
dockerfile: Dockerfile
image: local-check:latest
networks:
namada-net:
ipv4_address: 30.0.0.19
restart: on-failure
volumes:
- ./container_ready/:/container_ready
fullnode:
container_name: fullnode
entrypoint: /entrypoint.sh
environment:
- NAMADA_TOKIO_THREADS=4
- NAMADA_RAYON_THREADS=4
- NAMADA_LOG=info
- NAMADA_LOG_FMT=json
- NAMADA_TM_STDOUT="true"
- CMT_LOG_LEVEL=info
- NAMADA_CMT_STDOUT=true
- BASE_DIR=/fullnode
hostname: fullnode
image: ghcr.io/heliaxdev/ant-namada:main
networks:
namada-net:
ipv4_address: 30.0.0.15
volumes:
- ./fullnode/:/fullnode
- ./container_ready/:/container_ready
- ./namada.sh:/entrypoint.sh
genesis:
container_name: genesis
environment:
- VALIDATOR0_ADDR=30.0.0.12:27657
- VALIDATOR1_ADDR=30.0.0.13:27657
- VALIDATOR2_ADDR=30.0.0.14:27657
hostname: genesis
image: ghcr.io/heliaxdev/ant-namada-genesis:main
networks:
namada-net:
ipv4_address: 30.0.0.11
volumes:
- ./validator-0/:/validator-0
- ./validator-1/:/validator-1
- ./validator-2/:/validator-2
- ./fullnode/:/fullnode
- ./container_ready/:/container_ready
masp-block-filter:
container_name: masp-block-filter
depends_on:
postgres:
condition: service_healthy
environment:
- COMETBFT_URL=http://30.0.0.12:27658
- DATABASE_URL=postgres://postgres:password@30.0.0.21:5432/masp_indexer_local
hostname: masp-block-filter
image: ghcr.io/heliaxdev/ant-masp-indexer-block-filter:master
networks:
namada-net:
ipv4_address: 30.0.0.23
restart: on-failure
masp-chain:
container_name: masp-chain
depends_on:
postgres:
condition: service_healthy
environment:
- COMETBFT_URL=http://30.0.0.12:27658
- DATABASE_URL=postgres://postgres:password@30.0.0.21:5432/masp_indexer_local
hostname: masp-chain
image: ghcr.io/heliaxdev/ant-masp-indexer-chain:master
networks:
namada-net:
ipv4_address: 30.0.0.22
restart: on-failure
masp-webserver:
container_name: masp-webserver
environment:
- PORT=5000
- COMETBFT_URL=http://30.0.0.12:27658
- DATABASE_URL=postgres://postgres:password@30.0.0.21:5432/masp_indexer_local
hostname: masp-webserver
image: ghcr.io/heliaxdev/ant-masp-indexer-webserver:master
networks:
namada-net:
ipv4_address: 30.0.0.20
restart: on-failure
postgres:
container_name: postgres
environment:
PGUSER: postgres
POSTGRES_DB: masp_indexer_local
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
healthcheck:
interval: 5s
retries: 5
start_period: 80s
test:
- CMD
- pg_isready
- -d
- masp_indexer_local
timeout: 10s
image: postgres:16-alpine
networks:
namada-net:
ipv4_address: 30.0.0.21
validator0:
container_name: validator0
entrypoint: /entrypoint.sh
environment:
- NAMADA_TOKIO_THREADS=4
- NAMADA_RAYON_THREADS=4
- NAMADA_LOG=info
- NAMADA_LOG_FMT=json
- TM_LOG_LEVEL=p2p:none,pex:error
- CMT_LOG_LEVEL=p2p:none,pex:error
- NAMADA_CMT_STDOUT=true
- BASE_DIR=/validator-0
hostname: validator0
image: ghcr.io/heliaxdev/ant-namada:main
networks:
namada-net:
ipv4_address: 30.0.0.12
volumes:
- ./validator-0/:/validator-0
- ./container_ready/:/container_ready
- ./namada.sh:/entrypoint.sh
validator1:
container_name: validator1
entrypoint: /entrypoint.sh
environment:
- NAMADA_TOKIO_THREADS=4
- NAMADA_RAYON_THREADS=4
- NAMADA_LOG=info
- NAMADA_LOG_FMT=json
- TM_LOG_LEVEL=p2p:none,pex:error
- CMT_LOG_LEVEL=p2p:none,pex:error
- NAMADA_CMT_STDOUT=true
- BASE_DIR=/validator-1
hostname: validator1
image: ghcr.io/heliaxdev/ant-namada:main
networks:
namada-net:
ipv4_address: 30.0.0.13
volumes:
- ./validator-1/:/validator-1
- ./container_ready/:/container_ready
- ./namada.sh:/entrypoint.sh
validator2:
container_name: validator2
entrypoint: /entrypoint.sh
environment:
- NAMADA_TOKIO_THREADS=4
- NAMADA_RAYON_THREADS=4
- NAMADA_LOG=info
- NAMADA_LOG_FMT=json
- TM_LOG_LEVEL=p2p:none,pex:error
- CMT_LOG_LEVEL=p2p:none,pex:error
- NAMADA_CMT_STDOUT=true
- BASE_DIR=/validator-2
hostname: validator2
image: ghcr.io/heliaxdev/ant-namada:main
networks:
namada-net:
ipv4_address: 30.0.0.14
volumes:
- ./validator-2/:/validator-2
- ./container_ready/:/container_ready
- ./namada.sh:/entrypoint.sh
workload0:
container_name: workload0
environment:
- RPC=30.0.0.14:27658
- FAUCET_SK=00dfd790bd727b708f8b846374c596d886eaf1ebf0fc4394530e0a9b24aa630963
- MASP_INDEXER_URL=http://30.0.0.20:5000
- WORKLOAD_ID=0
- NO_CHECK=false
hostname: workload0
build:
context: ../workload
dockerfile: Dockerfile
args:
TEST_SCRIPT: test_run.sh
image: local-workload:latest
networks:
namada-net:
ipv4_address: 30.0.0.16
restart: no
volumes:
- ./container_ready/:/container_ready
version: '3.8'
3 changes: 2 additions & 1 deletion workload/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ COPY --from=cacher /app/target target
RUN cargo build --release --locked

FROM docker.io/debian:bookworm-slim
ARG TEST_SCRIPT="docker_run.sh"
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --assume-yes \
ca-certificates \
curl \
Expand All @@ -33,7 +34,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-instal
WORKDIR /app

COPY --from=builder /app/target/release/namada-chain-workload /app/namada-chain-workload
COPY --from=builder /app/docker_run.sh /app/run.sh
COPY --from=builder /app/${TEST_SCRIPT} /app/run.sh
COPY --from=builder /app/scripts/ /opt/antithesis/test/v1/namada/

RUN chmod +x /app/run.sh && chmod -R +x /opt/antithesis/test/v1/namada/
Expand Down
Loading

0 comments on commit 85b99d0

Please sign in to comment.