From 5f402c6e67671857e289b71a43251d2ce387251f Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Thu, 11 Sep 2025 13:12:02 +0200 Subject: [PATCH 01/89] import devnet --- catalyst-gateway/tests/Earthfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 3fc4509b4e19..c4e664194ac0 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -3,6 +3,8 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.5.15 AS spectral-ci IMPORT .. AS gateway +IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:main AS devnet + # build all necessary docker images required to run `docker-compose.yml` services all-images: @@ -15,6 +17,9 @@ all-images: BUILD +package-event-db-v1 BUILD +package-haproxy +package-devent: + FROM scratch + BUILD devnet+docker # a special package for applying migrations only up to "V2_**" migrations package-event-db-v1: FROM github.com/input-output-hk/catalyst-voices/catalyst-gateway/event-db:event-db-old-signed-doc+docker From 8bcd8eb4886eab7d17dfed2eb772513ff3bb6a5f Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Thu, 11 Sep 2025 13:41:09 +0200 Subject: [PATCH 02/89] fix cspell --- catalyst-gateway/tests/Earthfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index c4e664194ac0..52c3e06277a9 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -17,7 +17,7 @@ all-images: BUILD +package-event-db-v1 BUILD +package-haproxy -package-devent: +package-devnet: FROM scratch BUILD devnet+docker # a special package for applying migrations only up to "V2_**" migrations From 49675f867604edaf17b3d524861d6cfe77cd30fd Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:39:27 +0200 Subject: [PATCH 03/89] adds docker compose overlay for localhost --- .github/workflows/gateway-tests.yml | 2 +- catalyst-gateway/tests/Earthfile | 7 +--- .../tests/docker-compose-localhost.yml | 42 +++++++++++++++++++ catalyst-gateway/tests/docker-compose.yml | 25 ++++++++--- 4 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 catalyst-gateway/tests/docker-compose-localhost.yml diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 6e78e5ce3cfe..3c96b7d309ef 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -106,7 +106,7 @@ jobs: if: false env: API_TEST_MARKS: "health_with_proxy_endpoint" - EVENT_DB_URL: "haproxy:18080" + EVENT_DB_HOST: "haproxy:18080" INDEX_DB_URL: "haproxy:18090" run: | docker stop cat-gateway || true diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 52c3e06277a9..dee5b6a82888 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -3,8 +3,7 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.5.15 AS spectral-ci IMPORT .. AS gateway -IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:main AS devnet - +IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.1 AS devnet # build all necessary docker images required to run `docker-compose.yml` services all-images: @@ -16,10 +15,8 @@ all-images: BUILD +package-rust-tests-runner BUILD +package-event-db-v1 BUILD +package-haproxy - -package-devnet: - FROM scratch BUILD devnet+docker + # a special package for applying migrations only up to "V2_**" migrations package-event-db-v1: FROM github.com/input-output-hk/catalyst-voices/catalyst-gateway/event-db:event-db-old-signed-doc+docker diff --git a/catalyst-gateway/tests/docker-compose-localhost.yml b/catalyst-gateway/tests/docker-compose-localhost.yml new file mode 100644 index 000000000000..c06031c32bc6 --- /dev/null +++ b/catalyst-gateway/tests/docker-compose-localhost.yml @@ -0,0 +1,42 @@ +# This docker compose file is a temporary workaround for the devnet environment. +# It exposes the services on localhost due to a current limitation in how the +# Mithril aggregator serves snapshots. +# This file can be removed once the aggregator is updated, allowing services +# to communicate over the standard Docker network. + +services: + cat-devnet: + network_mode: host + + event-db: + network_mode: host + profiles: + - devnet + + event-db-v1-migrations: + network_mode: host + profiles: + - devnet + + event-db-migrations: + network_mode: host + profiles: + - devnet + + scylla-node: + network_mode: host + profiles: + - devnet + + cat-gateway: + depends_on: + cat-devnet: + condition: service_healthy + network_mode: host + profiles: + - devnet + + schemathesis-runner: + network_mode: host + profiles: + - devnet \ No newline at end of file diff --git a/catalyst-gateway/tests/docker-compose.yml b/catalyst-gateway/tests/docker-compose.yml index 76538f58db74..e1569b2ad737 100644 --- a/catalyst-gateway/tests/docker-compose.yml +++ b/catalyst-gateway/tests/docker-compose.yml @@ -1,6 +1,21 @@ # cspell: words statusgossip socat services: + + cat-devnet: + image: cat-devnet:latest + container_name: cat-devnet + healthcheck: + #TODO when the issues with block initial sizes is fixed, update the healthcheck https://github.com/input-output-hk/catalyst-voices/issues/3327 + test: ["CMD-SHELL","bash /healthcheck.sh"] + start_period: 60s + interval: 30s + retries: 20 + volumes: + - data:/shared-data + profiles: + - devnet + event-db: image: event-db:latest container_name: event-db @@ -13,7 +28,6 @@ services: - DB_SUPERUSER_PASSWORD=postgres - DB_USER=catalyst-event-dev - DB_USER_PASSWORD=CHANGE_ME - - INIT_AND_DROP_DB=true - WITH_MIGRATIONS=false healthcheck: @@ -35,7 +49,6 @@ services: - DB_SUPERUSER_PASSWORD=postgres - DB_USER=catalyst-event-dev - DB_USER_PASSWORD=CHANGE_ME - - INIT_AND_DROP_DB=false - WITH_SEED_DATA=. - WITH_MIGRATIONS=true @@ -56,7 +69,6 @@ services: - DB_SUPERUSER_PASSWORD=postgres - DB_USER=catalyst-event-dev - DB_USER_PASSWORD=CHANGE_ME - - INIT_AND_DROP_DB=false - WITH_MIGRATIONS=true restart: "no" @@ -68,7 +80,7 @@ services: image: scylladb/scylla:latest container_name: scylla-node restart: unless-stopped - command: --smp 2 --memory 1G --overprovisioned 1 --api-address 0.0.0.0 + command: ${SCYLLA_CMD:--smp 2 --memory 1G --overprovisioned 1 --api-address 0.0.0.0} healthcheck: test: cqlsh -e "SHOW VERSION" || exit 1 interval: 15s @@ -86,7 +98,7 @@ services: # approximately a 25 minutes of waiting retries: 50 environment: - - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@${EVENT_DB_URL:-event-db}/CatalystEventDev + - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@${EVENT_DB_HOST:-event-db}/CatalystEventDev - CASSANDRA_PERSISTENT_URL=${INDEX_DB_URL:-scylla-node:9042} - CASSANDRA_VOLATILE_URL=${INDEX_DB_URL:-scylla-node:9042} - CHAIN_NETWORK=${ENV_TARGET:-Preprod} @@ -159,3 +171,6 @@ services: depends_on: cat-gateway: condition: service_healthy + +volumes: + data: \ No newline at end of file From 60bbaefe7b6dca17d1bea74b17b9901be969e4aa Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Thu, 11 Sep 2025 17:56:31 +0200 Subject: [PATCH 04/89] adds devnet test job --- .github/workflows/gateway-tests.yml | 94 ++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 3c96b7d309ef..919de69e9c98 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -101,7 +101,7 @@ jobs: run: | docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner -# Skip until bugfix https://github.com/input-output-hk/catalyst-voices/issues/3209 + # Skip until bugfix https://github.com/input-output-hk/catalyst-voices/issues/3209 - name: Integration health thru proxy tests if: false env: @@ -130,3 +130,95 @@ jobs: path: "**/*${{ env.COVERAGE_EXT }}" if-no-files-found: error retention-days: 1 + + devnet-tests: + name: Cat-Gateway devnet integration tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: false + haskell: false + large-packages: false + docker-images: false + swap-storage: true + + - name: Install Forge + uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 + with: + enable_caching: "true" + version: 0.21.0 + - name: Setup + uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Prepare artifacts + id : images + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+all-images + + - name: Spin up devnet + if: ${{ steps.images.conclusion == 'success' }} + run: | + export ENV_TARGET=Devnet + export SCYLLA_CMD="--smp 2 --memory 1G --overprovisioned 1 --rpc-address 0.0.0.0 --broadcast-rpc-address 127.0.0.1 --api-address 0.0.0.0 --alternator-address 0.0.0.0" + export EVENT_DB_HOST=localhost + export INDEX_DB_URL=localhost + export API_SPEC="http://localhost:3030/docs/cat-gateway.json" + docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-devnet -d + + - name: Wait for cat-devnet to become healthy + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + exit 1 + fi + sleep 5 + done + + - name: Spin up catalyst-gateway + id: gateway-started + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-gateway -d + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + exit 1 + fi + sleep 5 + done + + - name: Schemathesis tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up schemathesis-runner --exit-code-from schemathesis-runner From 83e8ada27799b47c51b4d49a0f2dcb77c4ff993a Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Fri, 12 Sep 2025 10:25:42 +0200 Subject: [PATCH 05/89] refactor en variables --- .github/workflows/gateway-tests.yml | 6 +----- catalyst-gateway/tests/docker-compose-localhost.yml | 7 +++++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index efea7b4cac61..44a145c19ccc 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -170,11 +170,6 @@ jobs: - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} run: | - export ENV_TARGET=Devnet - export SCYLLA_CMD="--smp 2 --memory 1G --overprovisioned 1 --rpc-address 0.0.0.0 --broadcast-rpc-address 127.0.0.1 --api-address 0.0.0.0 --alternator-address 0.0.0.0" - export EVENT_DB_HOST=localhost - export INDEX_DB_URL=localhost - export API_SPEC="http://localhost:3030/docs/cat-gateway.json" docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-devnet -d - name: Wait for cat-devnet to become healthy @@ -197,6 +192,7 @@ jobs: - name: Spin up catalyst-gateway id: gateway-started run: | + export ENV_TARGET=Devnet docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-gateway -d - name: Wait for cat-gateway to become healthy diff --git a/catalyst-gateway/tests/docker-compose-localhost.yml b/catalyst-gateway/tests/docker-compose-localhost.yml index c06031c32bc6..c54fbe1dae44 100644 --- a/catalyst-gateway/tests/docker-compose-localhost.yml +++ b/catalyst-gateway/tests/docker-compose-localhost.yml @@ -24,11 +24,16 @@ services: - devnet scylla-node: + command: --smp 2 --memory 1G --overprovisioned 1 --rpc-address 0.0.0.0 --broadcast-rpc-address 127.0.0.1 --api-address 0.0.0.0 --alternator-address 0.0.0.0 network_mode: host profiles: - devnet cat-gateway: + environment: + - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@localhost/CatalystEventDev + - CASSANDRA_PERSISTENT_URL=localhost:9042 + - CASSANDRA_VOLATILE_URL=localhost:9042 depends_on: cat-devnet: condition: service_healthy @@ -37,6 +42,8 @@ services: - devnet schemathesis-runner: + environment: + - API_SPEC=http://localhost:3030/docs/cat-gateway.json network_mode: host profiles: - devnet \ No newline at end of file From 780c46dceee5fe7f18f107aad9ad8e290e3d9803 Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Fri, 12 Sep 2025 12:39:19 +0200 Subject: [PATCH 06/89] move env variable --- .github/workflows/gateway-tests.yml | 1 - catalyst-gateway/tests/docker-compose-localhost.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 44a145c19ccc..e793ab060d27 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -192,7 +192,6 @@ jobs: - name: Spin up catalyst-gateway id: gateway-started run: | - export ENV_TARGET=Devnet docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-gateway -d - name: Wait for cat-gateway to become healthy diff --git a/catalyst-gateway/tests/docker-compose-localhost.yml b/catalyst-gateway/tests/docker-compose-localhost.yml index c54fbe1dae44..12f5aa164c77 100644 --- a/catalyst-gateway/tests/docker-compose-localhost.yml +++ b/catalyst-gateway/tests/docker-compose-localhost.yml @@ -34,6 +34,7 @@ services: - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@localhost/CatalystEventDev - CASSANDRA_PERSISTENT_URL=localhost:9042 - CASSANDRA_VOLATILE_URL=localhost:9042 + - CHAIN_NETWORK=Devnet depends_on: cat-devnet: condition: service_healthy From 18e23dc08d21751e09a67f66c7a7788f795b0fe1 Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Tue, 16 Sep 2025 13:10:05 +0200 Subject: [PATCH 07/89] adds test key --- .github/workflows/gateway-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index e793ab060d27..c0c1e3762cad 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -152,6 +152,11 @@ jobs: docker-images: false swap-storage: true + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: test + - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: From c16a7d9d9ea79c914bd802b552d59d183b253d33 Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Tue, 16 Sep 2025 13:11:12 +0200 Subject: [PATCH 08/89] comment out uneeded jobs --- .github/workflows/ci.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e4a7af95da6..41572036ea98 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,25 +50,25 @@ jobs: \s*FROM.*?:latest No images should be built using the 'latest' tag - ci: - if: ${{ !github.event.pull_request.draft }} - needs: [reject] - uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 - with: - forge_version: 0.21.0 - release_only: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }} + # ci: + # if: ${{ !github.event.pull_request.draft }} + # needs: [reject] + # uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 + # with: + # forge_version: 0.21.0 + # release_only: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }} gateway-integration-tests: - needs: [ci, paths-filter] + needs: [paths-filter] if: ${{ needs.paths-filter.outputs.catalyst-gateway == 'true' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') || github.base_ref == 'main'}} uses: ./.github/workflows/gateway-tests.yml - voices-integration-tests: - needs: [ci, paths-filter] - if: ${{ needs.paths-filter.outputs.catalyst-voices == 'true' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') || github.base_ref == 'main' }} - uses: ./.github/workflows/voices-tests.yml + # voices-integration-tests: + # needs: [ci, paths-filter] + # if: ${{ needs.paths-filter.outputs.catalyst-voices == 'true' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') || github.base_ref == 'main' }} + ## uses: ./.github/workflows/voices-tests.yml - test-reporting: - needs: [ci, voices-integration-tests, gateway-integration-tests ] - if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') || github.base_ref == 'main' }} - uses: ./.github/workflows/generate-allure-report.yml + # test-reporting: + # needs: [ci, voices-integration-tests, gateway-integration-tests ] + # if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') || github.base_ref == 'main' }} + # uses: ./.github/workflows/generate-allure-report.yml From 5050c0cfea897bec0cc76112cb3e2ad7065b55d8 Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Tue, 16 Sep 2025 14:20:42 +0200 Subject: [PATCH 09/89] adds key --- .config/dictionaries/project.dic | 1 + .github/workflows/gateway-tests.yml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.config/dictionaries/project.dic b/.config/dictionaries/project.dic index 1f1fdf5e0063..946a4c3bb4f1 100644 --- a/.config/dictionaries/project.dic +++ b/.config/dictionaries/project.dic @@ -393,6 +393,7 @@ vsync wallclock wasmtime Wconditional +webfactory webos Werror Wireframes diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index c0c1e3762cad..e50b8c528c4c 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -155,8 +155,8 @@ jobs: - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: - ssh-private-key: test - + ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} + - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: From 82a0628555d75816d6a36b2021e250f59cba39c0 Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Tue, 16 Sep 2025 14:56:00 +0200 Subject: [PATCH 10/89] rerun --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index e50b8c528c4c..05e290bbaa5d 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -156,7 +156,7 @@ jobs: uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} - + - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: From ba1527e432fd832ab45f2886d446dae93499817a Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Tue, 16 Sep 2025 16:29:36 +0200 Subject: [PATCH 11/89] comment out cleaning up --- .github/workflows/gateway-tests.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 05e290bbaa5d..1cce25da47a7 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -137,20 +137,20 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: + # - name: Free Disk Space (Ubuntu) + # uses: jlumbroso/free-disk-space@main + # with: # this might remove tools that are actually needed, # if set to "true" but frees about 6 GB - tool-cache: false + # tool-cache: false # all of these default to true, but feel free to set to # "false" if necessary for your workflow - android: true - dotnet: false - haskell: false - large-packages: false - docker-images: false - swap-storage: true + # android: true + # dotnet: false + # haskell: false + # large-packages: false + # docker-images: false + # swap-storage: true - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 From 839724c4f8cb2b759c4398f7808ea58eb55a142b Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Fri, 14 Nov 2025 13:25:34 +0100 Subject: [PATCH 12/89] update --- catalyst-gateway/tests/docker-compose-localhost.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catalyst-gateway/tests/docker-compose-localhost.yml b/catalyst-gateway/tests/docker-compose-localhost.yml index 12f5aa164c77..5c5b40eefeeb 100644 --- a/catalyst-gateway/tests/docker-compose-localhost.yml +++ b/catalyst-gateway/tests/docker-compose-localhost.yml @@ -1,4 +1,4 @@ -# This docker compose file is a temporary workaround for the devnet environment. +# This docker compose file is a temporary workaround for the devnet environment # It exposes the services on localhost due to a current limitation in how the # Mithril aggregator serves snapshots. # This file can be removed once the aggregator is updated, allowing services From e6da934bc10398a9ae7727493251f6dacf7e864f Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 07:41:46 +0100 Subject: [PATCH 13/89] test 1 --- .github/workflows/gateway-tests.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 1cce25da47a7..983ed07557ad 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -152,10 +152,13 @@ jobs: # docker-images: false # swap-storage: true - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.0 - with: - ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} + - name: Setup upterm session + uses: owenthereal/action-upterm@v1 + +# - name: Setup SSH Agent +# uses: webfactory/ssh-agent@v0.9.0 +# with: +# ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 From cf389c31d6d3c3a7bff2394fb9f2e15f4f9cd95e Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:26:39 +0100 Subject: [PATCH 14/89] test 2 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index d6f4475a84fb..fd450541f8dc 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -158,7 +158,7 @@ jobs: # swap-storage: true - name: Setup upterm session - uses: owenthereal/action-upterm@v1 + uses: lhotari/action-upterm@v1 # - name: Setup SSH Agent # uses: webfactory/ssh-agent@v0.9.0 From e0e25fb09dc9d2bc19b663606cd53909147cef80 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:27:53 +0100 Subject: [PATCH 15/89] test 3 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index fd450541f8dc..d6f4475a84fb 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -158,7 +158,7 @@ jobs: # swap-storage: true - name: Setup upterm session - uses: lhotari/action-upterm@v1 + uses: owenthereal/action-upterm@v1 # - name: Setup SSH Agent # uses: webfactory/ssh-agent@v0.9.0 From b721e18272a6fd7dfc460c1dfc18119b34644a86 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:31:36 +0100 Subject: [PATCH 16/89] test 3 --- .github/workflows/gateway-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index d6f4475a84fb..c46bba8afbd3 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -157,8 +157,8 @@ jobs: # docker-images: false # swap-storage: true - - name: Setup upterm session - uses: owenthereal/action-upterm@v1 + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 # - name: Setup SSH Agent # uses: webfactory/ssh-agent@v0.9.0 From e6c8b6faa3223d49c02b53184993d4cba1f768d4 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:42:45 +0100 Subject: [PATCH 17/89] test 3 --- .github/workflows/gateway-tests.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index c46bba8afbd3..8421d2863d55 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -18,6 +18,9 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Setup upterm session + uses: owenthereal/action-upterm@v1 + - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main with: @@ -122,7 +125,7 @@ jobs: uses: actions/upload-artifact@v4 if: success() || failure() with: - name: test-reports-gateway + name: test-reports-gatewayńma path: "**/*${{ env.REPORT_EXT }}" if-no-files-found: error retention-days: 1 @@ -157,8 +160,8 @@ jobs: # docker-images: false # swap-storage: true - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 +# - name: Setup upterm session +# uses: owenthereal/action-upterm@v1 # - name: Setup SSH Agent # uses: webfactory/ssh-agent@v0.9.0 From 56bf9df123dfde08073ecb836ec8c3e33280767c Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:49:25 +0100 Subject: [PATCH 18/89] test 3 --- .github/workflows/gateway-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 8421d2863d55..8c92a6e26983 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -20,6 +20,8 @@ jobs: - name: Setup upterm session uses: owenthereal/action-upterm@v1 + env: + MY_SECRET: ${{ secrets.PRIVATE_SSH_KEY }} - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main From 7670832a24f4a28f758e11d1477aa344d7521fb1 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:52:32 +0100 Subject: [PATCH 19/89] test 4 --- .github/workflows/gateway-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 8c92a6e26983..885e51a48f0c 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -18,6 +18,11 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Save SSH key to file + run: | + echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + - name: Setup upterm session uses: owenthereal/action-upterm@v1 env: From 392c0bdb75b7684fc6cdba790f2195665762863b Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:53:57 +0100 Subject: [PATCH 20/89] test 4 --- .github/workflows/gateway-tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 885e51a48f0c..4124a28e7d3c 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -20,6 +20,7 @@ jobs: - name: Save SSH key to file run: | + touch ~/.ssh/id_rsa echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa From c928365f35db06e817efb4bc81b948a29699624a Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:55:40 +0100 Subject: [PATCH 21/89] test 4 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 4124a28e7d3c..d96ae8a23a34 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -20,7 +20,7 @@ jobs: - name: Save SSH key to file run: | - touch ~/.ssh/id_rsa + mkdir -p ~/.ssh & touch ~/.ssh/id_rsa echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa From 046171ecd802e1eaca84dd07034822562c772a18 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:56:39 +0100 Subject: [PATCH 22/89] test 4 --- .github/workflows/gateway-tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index d96ae8a23a34..9450a4f81e72 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -20,7 +20,8 @@ jobs: - name: Save SSH key to file run: | - mkdir -p ~/.ssh & touch ~/.ssh/id_rsa + mkdir -p ~/.ssh + touch ~/.ssh/id_rsa echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa From 7852adf522cb0b276f0311c5a3334c33724d56cc Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 09:59:01 +0100 Subject: [PATCH 23/89] test 4 --- .github/workflows/gateway-tests.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 9450a4f81e72..d6247be6968b 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -26,9 +26,7 @@ jobs: chmod 600 ~/.ssh/id_rsa - name: Setup upterm session - uses: owenthereal/action-upterm@v1 - env: - MY_SECRET: ${{ secrets.PRIVATE_SSH_KEY }} + uses: lhotari/action-upterm@v1 - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main From b460a054db35145194213646897a718d755e60cb Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:00:24 +0100 Subject: [PATCH 24/89] test 4 --- .github/workflows/gateway-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index d6247be6968b..ae22a825dee3 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -22,11 +22,11 @@ jobs: run: | mkdir -p ~/.ssh touch ~/.ssh/id_rsa - echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa + echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 chmod 600 ~/.ssh/id_rsa - name: Setup upterm session - uses: lhotari/action-upterm@v1 + uses: owenthereal/action-upterm@v1 - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main From fba5bc950e113a6791a9e6aa76f2d9a8c95b6ddc Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:01:42 +0100 Subject: [PATCH 25/89] test 4 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index ae22a825dee3..043c32a0045c 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -26,7 +26,7 @@ jobs: chmod 600 ~/.ssh/id_rsa - name: Setup upterm session - uses: owenthereal/action-upterm@v1 + uses: lhotari/action-upterm@v1 - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main From ab3d2f0da0d5615b16b90dabdff059d4c5f6b90e Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:02:50 +0100 Subject: [PATCH 26/89] test 4 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 043c32a0045c..500d93ef8b65 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -22,7 +22,7 @@ jobs: run: | mkdir -p ~/.ssh touch ~/.ssh/id_rsa - echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 + echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/id_rsa_tmp chmod 600 ~/.ssh/id_rsa - name: Setup upterm session From fff2fb336d5ab92c9d58367688576877e0729f62 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:03:02 +0100 Subject: [PATCH 27/89] test 4 --- .github/workflows/gateway-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 500d93ef8b65..7962352f6866 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -22,8 +22,8 @@ jobs: run: | mkdir -p ~/.ssh touch ~/.ssh/id_rsa - echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/id_rsa_tmp - chmod 600 ~/.ssh/id_rsa + echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/id_rsa1 + chmod 600 ~/.ssh/id_rsa1 - name: Setup upterm session uses: lhotari/action-upterm@v1 From fadc61805a41f034ceda16b9cfb3f2f303e5652c Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:03:16 +0100 Subject: [PATCH 28/89] test 4 --- .github/workflows/gateway-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 7962352f6866..63276b12e444 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -22,11 +22,11 @@ jobs: run: | mkdir -p ~/.ssh touch ~/.ssh/id_rsa - echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/id_rsa1 + echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 chmod 600 ~/.ssh/id_rsa1 - name: Setup upterm session - uses: lhotari/action-upterm@v1 + uses: owenthereal/action-upterm@v1 - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main From 67d655178e1da1fcd827bb9c288ecd73d0959db7 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:04:21 +0100 Subject: [PATCH 29/89] test 4 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 63276b12e444..be5278b78405 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -21,7 +21,7 @@ jobs: - name: Save SSH key to file run: | mkdir -p ~/.ssh - touch ~/.ssh/id_rsa + touch ~/.ssh/id_rsa1 echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 chmod 600 ~/.ssh/id_rsa1 From 6c522fc68ed4bcbbd8b9868a6484f455ed1b5dfa Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:17:24 +0100 Subject: [PATCH 30/89] test 4 --- .github/workflows/gateway-tests.yml | 59 ++++++++++++++++------------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index be5278b78405..a2388a55e2ca 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -18,15 +18,15 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Save SSH key to file - run: | - mkdir -p ~/.ssh - touch ~/.ssh/id_rsa1 - echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 - chmod 600 ~/.ssh/id_rsa1 +# - name: Save SSH key to file +# run: | +# mkdir -p ~/.ssh +# touch ~/.ssh/id_rsa1 +# echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 +# chmod 600 ~/.ssh/id_rsa1 - - name: Setup upterm session - uses: owenthereal/action-upterm@v1 +# - name: Setup upterm session +# uses: owenthereal/action-upterm@v1 - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main @@ -152,28 +152,35 @@ jobs: steps: - uses: actions/checkout@v4 - # - name: Free Disk Space (Ubuntu) - # uses: jlumbroso/free-disk-space@main - # with: - # this might remove tools that are actually needed, - # if set to "true" but frees about 6 GB - # tool-cache: false - # all of these default to true, but feel free to set to - # "false" if necessary for your workflow - # android: true - # dotnet: false - # haskell: false - # large-packages: false - # docker-images: false - # swap-storage: true + - name: Save SSH key to file + run: | + mkdir -p ~/.ssh + touch ~/.ssh/id_rsa1 + echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 + chmod 600 ~/.ssh/id_rsa1 + +# - name: Free Disk Space (Ubuntu) +# uses: jlumbroso/free-disk-space@main +# with: +# # this might remove tools that are actually needed, +# # if set to "true" but frees about 6 GB +# tool-cache: false +# # all of these default to true, but feel free to set to +# # "false" if necessary for your workflow +# android: true +# dotnet: false +# haskell: false +# large-packages: false +# docker-images: false +# swap-storage: true # - name: Setup upterm session # uses: owenthereal/action-upterm@v1 -# - name: Setup SSH Agent -# uses: webfactory/ssh-agent@v0.9.0 -# with: -# ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 From 42ea30af9f35e2937e37f2607b54e39da332dce1 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:47:13 +0100 Subject: [PATCH 31/89] test 4 --- .github/workflows/gateway-tests.yml | 13 ++++---- utilities/tmp | 49 +++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 utilities/tmp diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index a2388a55e2ca..e14bf1ca4e65 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -152,12 +152,13 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Save SSH key to file + - name: Temp setup step run: | - mkdir -p ~/.ssh - touch ~/.ssh/id_rsa1 - echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 - chmod 600 ~/.ssh/id_rsa1 + echo "PRIVATE_SSH_KEY1=$(cat utilities/tmp)" >> $GITHUB_ENV +# mkdir -p ~/.ssh +# touch ~/.ssh/id_rsa1 +# echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 +# chmod 600 ~/.ssh/id_rsa1 # - name: Free Disk Space (Ubuntu) # uses: jlumbroso/free-disk-space@main @@ -180,7 +181,7 @@ jobs: - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: - ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} + ssh-private-key: ${{ PRIVATE_SSH_KEY1 }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 diff --git a/utilities/tmp b/utilities/tmp new file mode 100644 index 000000000000..3518ee804039 --- /dev/null +++ b/utilities/tmp @@ -0,0 +1,49 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFwAAAAdzc2gtcn +NhAAAAAwEAAQAAAgEAtzATK2Sylh/OGRcPsM3+UPO1sSbcheTFKh6pAACwwwm/h0alaK0M +6lrVPDtT5MwlTh0hQ8fAAAB2BkjED8q1W0a2io3KbV+MMLucRRZ6doKnLj8aST3yxTxPnB +ENnCYNYpMNuhT4XtxHN4dwGJtwE7HfEuZaF0DwSv6G8vGj4T5it52m5NtBEMCrCHVMe6/T +cb8q4B+XZ6VzXdFHijz6yfegG38SWG+0m3aRNJVLbQ4hJDQSmzC+ECIWKX1e8LSTp6hFMV +MFcLSSS43LJketj0NoZjkxBreq2affbnxYC4IccMhrvHm3YXN2bWpC64bNc86WRRB6TM6X +nRbBdg2K+/jKjULVTjEJgGQWOhQCW3sbIYRz5OTj6En4OMQkce2xgEgu5/GrRimZ7oUYCe +pJZ4FqBkVP81ACuNLrS67E+Bb+/KJBDeB1NPd8I67YyL4Sdt3tjel0TsXRXh4bpbo5lAW2 +cEyj3INXLuWJ+45FGoT/PaBcJXS6tMYHpdr1r9PcAh9xE/ItyRILQzbl37vSliTf7RRnyE +hCMuRkboDg95N+KqjjMT//FevM54HP5MWKmhZCFi1CCBfmooFeA+uhKsgJ5tY62hvYet5R +bkmsR14HGQ3cF7KTlK6L+FWH9NTCdDU3ObaFI5QEuSP9s6tZ5hsc4kiBWC8BXVMvKCpzqL +MAAAdA1QEb+NUBG/gAAAAHc3NoLXJzYQAAAgEAtzATK2Sylh/OGRcPsM3+UPO1sSbcheTF +Kh6pAACwwwm/h0alaK0M6lrVPDtT5MwlTh0hQ8fAAAB2BkjED8q1W0a2io3KbV+MMLucRR +Z6doKnLj8aST3yxTxPnBENnCYNYpMNuhT4XtxHN4dwGJtwE7HfEuZaF0DwSv6G8vGj4T5i +t52m5NtBEMCrCHVMe6/Tcb8q4B+XZ6VzXdFHijz6yfegG38SWG+0m3aRNJVLbQ4hJDQSmz +C+ECIWKX1e8LSTp6hFMVMFcLSSS43LJketj0NoZjkxBreq2affbnxYC4IccMhrvHm3YXN2 +bWpC64bNc86WRRB6TM6XnRbBdg2K+/jKjULVTjEJgGQWOhQCW3sbIYRz5OTj6En4OMQkce +2xgEgu5/GrRimZ7oUYCepJZ4FqBkVP81ACuNLrS67E+Bb+/KJBDeB1NPd8I67YyL4Sdt3t +jel0TsXRXh4bpbo5lAW2cEyj3INXLuWJ+45FGoT/PaBcJXS6tMYHpdr1r9PcAh9xE/ItyR +ILQzbl37vSliTf7RRnyEhCMuRkboDg95N+KqjjMT//FevM54HP5MWKmhZCFi1CCBfmooFe +A+uhKsgJ5tY62hvYet5RbkmsR14HGQ3cF7KTlK6L+FWH9NTCdDU3ObaFI5QEuSP9s6tZ5h +sc4kiBWC8BXVMvKCpzqLMAAAADAQABAAACABYlbrvZQanakH0CB7iVPsCkpfuTuidJv/hW +mpHQg44guJHvHYIpIZ2Xe537ginv8DagWOwr0u9tHtelpmZOWFx/kQPxHl7YpUci90J29D +ktlG6H3HKsVZQ4tVslyKJvC0E2i/tKG7jEIqv46Llg2UzYPSK4zH1xMVuvp7rpManCdAbE +vW9/fj87O7IbFDMDz6k5tkJAL3qtSuQ1r9Nridou4KFSXHJqlsgQrn9P6T127tTEotc2Ll +Qe+tTrPjYVbqBfPHY5FjhI7ELMEpo/IiFmwdFR6rZoL/R+Ugm2aKKDiVKtODEh+eSDI/cY +WJzGwEHW4N3anx53/2ZTYPIXswyM4F+o+Mgi48Z58JYlDR7JKd4T5wa+wZdTXsL7IMmFEx +Knd8BY/uGxrTYIAVxZN/E8rILOg93oXaII6eFKCPj1J0us0t1JM84tQ+KQvlT/lST+DE1g +aN0uulptqgenChO5o/7kYnL0x8YtnJRKe90NeWKi85AyWECFUaUifioaiCuPzdGJbTWi9q +ccaPK9zKZsTB2PYgxE2cstoT5pH05mi8GqgyY2yR45S8BbjE1U82pmjXkVjSSOUXcd9jFZ +DVutDFG6xxEXZDbCK9bSxiXU6/7+MEZECdYKCaLB2aKvMGvkse1xd7dbVwDtNq85PBNb/n +Gbym0KqyAOdPERXJlZAAABABGvmIs2IrImTYGW86PuRiXPxL+jhUFxaMk9EI+JBnRDO53a +2lX9oBPWz0ZX/AalDftnvAsL3RbK/fyvWNbxpItkrvIOxO5ORpnoFP2Zmir8j2H5SnHIYx +nHMJm1+P0KbauDIk5EJZkbwYMDHd6SXYi13r3CzD8UkextTgVngoyXFAFBK0fZ6UTNGhKF ++7/EieNYBYmT1T+AZfdIAHbUqqB1RKAQy7eCwliy1hNOmMYFcq5kr3oJHCwXuo0xP974Zd +RYteMIps+c4ReXg5RObxaljtAlRBlT7AVATO2fKpoP1Re+ni+xlgJqI8fVNHDI9a1OV0gK +579YhmD2dUm4oYIAAAEBAOG8Bfsp+GF712pATFuYy8kRUoydMcqlBVlTK8H0NNClYXXz0g +ifvOjWyBagEUtn1XQAdmptFJriOS/soU2LTx+aUSG57hfc/9zYxCpoK+a4h/EAvVwFj90+ +OOgQAp7a64q8yi+/r3/4jVK+lb/1m6OfarBvu8s1kqJaMBKGHS5gIPnAF8KC6iTXTFdbC8 +RzTBCnPJSH4n7ypP2eIyKsXec4LVlFkLKrD6Oib1ZifSg5vRLbWd+mN4rXvKq+EANZQu+C +fGG6clo9NahEnifKpZvnrNTSBxaxftn2suapn9+NjjFtrfI/946PbPQunJS/meFUab/cFk +zLlStgBBw0pu8AAAEBAM+/tF/8NMRorzidJ8t/5LqUYe0LHpNu7ic3Fcz6zsag69lsTRsO +GUcAW0kKMwUrGHqAndACCVF2XkYrBaD3Y/Iu2GkVvcg8dtrKJtsZ7jxBAMFDbTzfnwfd6G +7+s9d+O8uZor1/jGNHA13Hr2BBGZMSFISD6glnkrmH1d8Tf+Iv+lnDrqHECf3Vc8kVkQas +y9d1mav95LkvgDhg5rUZUBsHyLM0RRTtPjLn88gljImtz4pmlfMAVKfgKXvabPf+V6D0R1 +y6LnyECK4hdb0atLC2cnPvAYJze3Pavxm/psZidE8DWIp+NN9qoFmRO5oyG6CzMNP+YGHV +Rx5wY1fUOn0AAAAKZGVwbG95X2tleQE= +-----END OPENSSH PRIVATE KEY----- From c8eeefa42c588c41866b74960c2a5f4ac8b3f7d0 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 10:52:24 +0100 Subject: [PATCH 32/89] test 4 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index e14bf1ca4e65..9b1cb33f5c5c 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -181,7 +181,7 @@ jobs: - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: - ssh-private-key: ${{ PRIVATE_SSH_KEY1 }} + ssh-private-key: $PRIVATE_SSH_KEY1 - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 From d1f28aa3f774d56ce00e8bac33a06380eb68f7f4 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 11:13:24 +0100 Subject: [PATCH 33/89] test 4 --- .github/workflows/gateway-tests.yml | 7 ++--- utilities/tmp | 49 ----------------------------- 2 files changed, 3 insertions(+), 53 deletions(-) delete mode 100644 utilities/tmp diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 9b1cb33f5c5c..7fe35d6abf24 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -152,9 +152,8 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Temp setup step - run: | - echo "PRIVATE_SSH_KEY1=$(cat utilities/tmp)" >> $GITHUB_ENV +# - name: Save SSH key to file +# run: | # mkdir -p ~/.ssh # touch ~/.ssh/id_rsa1 # echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 @@ -181,7 +180,7 @@ jobs: - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: - ssh-private-key: $PRIVATE_SSH_KEY1 + ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 diff --git a/utilities/tmp b/utilities/tmp deleted file mode 100644 index 3518ee804039..000000000000 --- a/utilities/tmp +++ /dev/null @@ -1,49 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFwAAAAdzc2gtcn -NhAAAAAwEAAQAAAgEAtzATK2Sylh/OGRcPsM3+UPO1sSbcheTFKh6pAACwwwm/h0alaK0M -6lrVPDtT5MwlTh0hQ8fAAAB2BkjED8q1W0a2io3KbV+MMLucRRZ6doKnLj8aST3yxTxPnB -ENnCYNYpMNuhT4XtxHN4dwGJtwE7HfEuZaF0DwSv6G8vGj4T5it52m5NtBEMCrCHVMe6/T -cb8q4B+XZ6VzXdFHijz6yfegG38SWG+0m3aRNJVLbQ4hJDQSmzC+ECIWKX1e8LSTp6hFMV -MFcLSSS43LJketj0NoZjkxBreq2affbnxYC4IccMhrvHm3YXN2bWpC64bNc86WRRB6TM6X -nRbBdg2K+/jKjULVTjEJgGQWOhQCW3sbIYRz5OTj6En4OMQkce2xgEgu5/GrRimZ7oUYCe -pJZ4FqBkVP81ACuNLrS67E+Bb+/KJBDeB1NPd8I67YyL4Sdt3tjel0TsXRXh4bpbo5lAW2 -cEyj3INXLuWJ+45FGoT/PaBcJXS6tMYHpdr1r9PcAh9xE/ItyRILQzbl37vSliTf7RRnyE -hCMuRkboDg95N+KqjjMT//FevM54HP5MWKmhZCFi1CCBfmooFeA+uhKsgJ5tY62hvYet5R -bkmsR14HGQ3cF7KTlK6L+FWH9NTCdDU3ObaFI5QEuSP9s6tZ5hsc4kiBWC8BXVMvKCpzqL -MAAAdA1QEb+NUBG/gAAAAHc3NoLXJzYQAAAgEAtzATK2Sylh/OGRcPsM3+UPO1sSbcheTF -Kh6pAACwwwm/h0alaK0M6lrVPDtT5MwlTh0hQ8fAAAB2BkjED8q1W0a2io3KbV+MMLucRR -Z6doKnLj8aST3yxTxPnBENnCYNYpMNuhT4XtxHN4dwGJtwE7HfEuZaF0DwSv6G8vGj4T5i -t52m5NtBEMCrCHVMe6/Tcb8q4B+XZ6VzXdFHijz6yfegG38SWG+0m3aRNJVLbQ4hJDQSmz -C+ECIWKX1e8LSTp6hFMVMFcLSSS43LJketj0NoZjkxBreq2affbnxYC4IccMhrvHm3YXN2 -bWpC64bNc86WRRB6TM6XnRbBdg2K+/jKjULVTjEJgGQWOhQCW3sbIYRz5OTj6En4OMQkce -2xgEgu5/GrRimZ7oUYCepJZ4FqBkVP81ACuNLrS67E+Bb+/KJBDeB1NPd8I67YyL4Sdt3t -jel0TsXRXh4bpbo5lAW2cEyj3INXLuWJ+45FGoT/PaBcJXS6tMYHpdr1r9PcAh9xE/ItyR -ILQzbl37vSliTf7RRnyEhCMuRkboDg95N+KqjjMT//FevM54HP5MWKmhZCFi1CCBfmooFe -A+uhKsgJ5tY62hvYet5RbkmsR14HGQ3cF7KTlK6L+FWH9NTCdDU3ObaFI5QEuSP9s6tZ5h -sc4kiBWC8BXVMvKCpzqLMAAAADAQABAAACABYlbrvZQanakH0CB7iVPsCkpfuTuidJv/hW -mpHQg44guJHvHYIpIZ2Xe537ginv8DagWOwr0u9tHtelpmZOWFx/kQPxHl7YpUci90J29D -ktlG6H3HKsVZQ4tVslyKJvC0E2i/tKG7jEIqv46Llg2UzYPSK4zH1xMVuvp7rpManCdAbE -vW9/fj87O7IbFDMDz6k5tkJAL3qtSuQ1r9Nridou4KFSXHJqlsgQrn9P6T127tTEotc2Ll -Qe+tTrPjYVbqBfPHY5FjhI7ELMEpo/IiFmwdFR6rZoL/R+Ugm2aKKDiVKtODEh+eSDI/cY -WJzGwEHW4N3anx53/2ZTYPIXswyM4F+o+Mgi48Z58JYlDR7JKd4T5wa+wZdTXsL7IMmFEx -Knd8BY/uGxrTYIAVxZN/E8rILOg93oXaII6eFKCPj1J0us0t1JM84tQ+KQvlT/lST+DE1g -aN0uulptqgenChO5o/7kYnL0x8YtnJRKe90NeWKi85AyWECFUaUifioaiCuPzdGJbTWi9q -ccaPK9zKZsTB2PYgxE2cstoT5pH05mi8GqgyY2yR45S8BbjE1U82pmjXkVjSSOUXcd9jFZ -DVutDFG6xxEXZDbCK9bSxiXU6/7+MEZECdYKCaLB2aKvMGvkse1xd7dbVwDtNq85PBNb/n -Gbym0KqyAOdPERXJlZAAABABGvmIs2IrImTYGW86PuRiXPxL+jhUFxaMk9EI+JBnRDO53a -2lX9oBPWz0ZX/AalDftnvAsL3RbK/fyvWNbxpItkrvIOxO5ORpnoFP2Zmir8j2H5SnHIYx -nHMJm1+P0KbauDIk5EJZkbwYMDHd6SXYi13r3CzD8UkextTgVngoyXFAFBK0fZ6UTNGhKF -+7/EieNYBYmT1T+AZfdIAHbUqqB1RKAQy7eCwliy1hNOmMYFcq5kr3oJHCwXuo0xP974Zd -RYteMIps+c4ReXg5RObxaljtAlRBlT7AVATO2fKpoP1Re+ni+xlgJqI8fVNHDI9a1OV0gK -579YhmD2dUm4oYIAAAEBAOG8Bfsp+GF712pATFuYy8kRUoydMcqlBVlTK8H0NNClYXXz0g -ifvOjWyBagEUtn1XQAdmptFJriOS/soU2LTx+aUSG57hfc/9zYxCpoK+a4h/EAvVwFj90+ -OOgQAp7a64q8yi+/r3/4jVK+lb/1m6OfarBvu8s1kqJaMBKGHS5gIPnAF8KC6iTXTFdbC8 -RzTBCnPJSH4n7ypP2eIyKsXec4LVlFkLKrD6Oib1ZifSg5vRLbWd+mN4rXvKq+EANZQu+C -fGG6clo9NahEnifKpZvnrNTSBxaxftn2suapn9+NjjFtrfI/946PbPQunJS/meFUab/cFk -zLlStgBBw0pu8AAAEBAM+/tF/8NMRorzidJ8t/5LqUYe0LHpNu7ic3Fcz6zsag69lsTRsO -GUcAW0kKMwUrGHqAndACCVF2XkYrBaD3Y/Iu2GkVvcg8dtrKJtsZ7jxBAMFDbTzfnwfd6G -7+s9d+O8uZor1/jGNHA13Hr2BBGZMSFISD6glnkrmH1d8Tf+Iv+lnDrqHECf3Vc8kVkQas -y9d1mav95LkvgDhg5rUZUBsHyLM0RRTtPjLn88gljImtz4pmlfMAVKfgKXvabPf+V6D0R1 -y6LnyECK4hdb0atLC2cnPvAYJze3Pavxm/psZidE8DWIp+NN9qoFmRO5oyG6CzMNP+YGHV -Rx5wY1fUOn0AAAAKZGVwbG95X2tleQE= ------END OPENSSH PRIVATE KEY----- From aec3139101297516a10ceb61573ddfe24a814d69 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 11:18:48 +0100 Subject: [PATCH 34/89] test 4 --- .github/workflows/gateway-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 7fe35d6abf24..ac31c2c51292 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -177,6 +177,8 @@ jobs: # - name: Setup upterm session # uses: owenthereal/action-upterm@v1 + - run: echo "${{ secrets.PRIVATE_SSH_KEY }}" | wc -c + - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: From 234d5616eb0817a49cf58c3a0faaded8d173b0e9 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 11:21:33 +0100 Subject: [PATCH 35/89] test 4 --- .github/workflows/gateway-tests.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index ac31c2c51292..3c94a937f195 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -177,7 +177,14 @@ jobs: # - name: Setup upterm session # uses: owenthereal/action-upterm@v1 - - run: echo "${{ secrets.PRIVATE_SSH_KEY }}" | wc -c + - name: Check if secret is set + run: | + if [ -z "${{ secrets.PRIVATE_SSH_KEY }}" ]; then + echo "Secret is empty or not set" + exit 1 + else + echo "Secret is set" + fi - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 From db3b65f5d7ecdc334bdc24e789075c90ba3c801d Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 12:08:39 +0100 Subject: [PATCH 36/89] test 4 --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 27103ca6375a..63efea0179d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,6 +45,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Check if secret is set + run: | + if [ -z "${{ secrets.PRIVATE_SSH_KEY }}" ]; then + echo "Secret is empty or not set" + exit 1 + else + echo "Secret is set" + fi - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: From b0c2a25840a1ee39e6652f6a45ed927580928837 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 12:17:04 +0100 Subject: [PATCH 37/89] test 4 --- .github/workflows/ci.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 63efea0179d0..2ed534988d46 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,14 +45,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Check if secret is set - run: | - if [ -z "${{ secrets.PRIVATE_SSH_KEY }}" ]; then - echo "Secret is empty or not set" - exit 1 - else - echo "Secret is set" - fi - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: @@ -86,6 +78,8 @@ jobs: needs: [paths-filter] if: ${{ needs.paths-filter.outputs.catalyst-gateway == 'true' || github.base_ref == 'main'}} uses: ./.github/workflows/gateway-tests.yml + secrets: + PRIVATE_SSH_KEY: ${{ secrets.PRIVATE_SSH_KEY }} # voices-integration-tests: # needs: [ci, paths-filter] From e1fbc471e0a665b903f2cd6b298b16494d0c3e01 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 12:18:58 +0100 Subject: [PATCH 38/89] test 4 --- .github/workflows/gateway-tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 3c94a937f195..5c81ec90673a 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -2,6 +2,9 @@ name: Catalyst Gateway integration tests on: workflow_call: + secrets: + PRIVATE_SSH_KEY: + required: true concurrency: group: gateway-tests-${{ github.head_ref || github.ref }} From 006031aba493210557362c0d822bd0ade04446a8 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 12:41:17 +0100 Subject: [PATCH 39/89] test 4 --- catalyst-gateway/tests/Earthfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 2c34d298e6b1..e0b28bef01a9 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -3,7 +3,7 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.6.1 AS spectral-ci IMPORT .. AS gateway -IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.1 AS devnet +IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.2 AS devnet # build all necessary docker images required to run `docker-compose.yml` services all-images: From 061b586862e2a32c6d8a2a7a1e41cd72905be03a Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 13:51:59 +0100 Subject: [PATCH 40/89] test 5 --- .github/workflows/gateway-tests.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 5c81ec90673a..d7f5cb08420f 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -135,7 +135,7 @@ jobs: uses: actions/upload-artifact@v4 if: success() || failure() with: - name: test-reports-gatewayńma + name: test-reports-gateway path: "**/*${{ env.REPORT_EXT }}" if-no-files-found: error retention-days: 1 @@ -199,6 +199,7 @@ jobs: with: enable_caching: "true" version: 0.21.0 + - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 @@ -254,6 +255,11 @@ jobs: fi sleep 5 done + + if [ "$STATUS" != "healthy" ]; then + docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway + exit 1 + fi - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} From b982250fc6570c5e3e145190ad07adccb706141a Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 17 Nov 2025 14:21:22 +0100 Subject: [PATCH 41/89] test 5 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index d7f5cb08420f..a7f450b2eca9 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -251,7 +251,7 @@ jobs: fi if [ "$STATUS" == "unhealthy" ]; then echo "Container became unhealthy." - exit 1 + break fi sleep 5 done From 356901faa0e239b83260f59dc5ead6097c024870 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 18 Nov 2025 10:01:07 +0100 Subject: [PATCH 42/89] test 6 --- catalyst-gateway/tests/docker-compose-localhost.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/catalyst-gateway/tests/docker-compose-localhost.yml b/catalyst-gateway/tests/docker-compose-localhost.yml index 5c5b40eefeeb..b97384803837 100644 --- a/catalyst-gateway/tests/docker-compose-localhost.yml +++ b/catalyst-gateway/tests/docker-compose-localhost.yml @@ -35,6 +35,7 @@ services: - CASSANDRA_PERSISTENT_URL=localhost:9042 - CASSANDRA_VOLATILE_URL=localhost:9042 - CHAIN_NETWORK=Devnet + - CHAIN_FOLLOWER_DEVNET_GENESIS_KEY=0x5b33322c3235332c3138362c3230312c3137372c31312c3131372c3133352c3138372c3136372c3138312c3138382c32322c35392c3230362c3130352c3233312c3135302c3231352c33302c37382c3231322c37362c31362c3235322c3138302c37322c3133342c3133372c3234372c3136312c36385d depends_on: cat-devnet: condition: service_healthy @@ -47,4 +48,4 @@ services: - API_SPEC=http://localhost:3030/docs/cat-gateway.json network_mode: host profiles: - - devnet \ No newline at end of file + - devnet From 4631ae226662d2b53e7c5cb0432b092cc82112af Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 18 Nov 2025 13:03:12 +0100 Subject: [PATCH 43/89] test 7 --- catalyst-gateway/tests/docker-compose-localhost.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catalyst-gateway/tests/docker-compose-localhost.yml b/catalyst-gateway/tests/docker-compose-localhost.yml index b97384803837..c22acb40f48b 100644 --- a/catalyst-gateway/tests/docker-compose-localhost.yml +++ b/catalyst-gateway/tests/docker-compose-localhost.yml @@ -35,7 +35,7 @@ services: - CASSANDRA_PERSISTENT_URL=localhost:9042 - CASSANDRA_VOLATILE_URL=localhost:9042 - CHAIN_NETWORK=Devnet - - CHAIN_FOLLOWER_DEVNET_GENESIS_KEY=0x5b33322c3235332c3138362c3230312c3137372c31312c3131372c3133352c3138372c3136372c3138312c3138382c32322c35392c3230362c3130352c3233312c3135302c3231352c33302c37382c3231322c37362c31362c3235322c3138302c37322c3133342c3133372c3234372c3136312c36385d + - CHAIN_FOLLOWER_DEVNET_GENESIS_KEY=5b33322c3235332c3138362c3230312c3137372c31312c3131372c3133352c3138372c3136372c3138312c3138382c32322c35392c3230362c3130352c3233312c3135302c3231352c33302c37382c3231322c37362c31362c3235322c3138302c37322c3133342c3133372c3234372c3136312c36385d depends_on: cat-devnet: condition: service_healthy From bf958f5ca20eb5aced9d7a3d664ba7e499dc8c95 Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Tue, 18 Nov 2025 14:38:03 +0100 Subject: [PATCH 44/89] updates gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a0ce3bcdfb97..f2a5ecfbfb18 100644 --- a/.gitignore +++ b/.gitignore @@ -133,4 +133,6 @@ browser_extensions/ .env # Playwright -/browser-profiles/ \ No newline at end of file +/browser-profiles/ + +/target \ No newline at end of file From 2770b32e403768465c2752bea7fd3e76951e62e6 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 25 Nov 2025 14:48:23 +0100 Subject: [PATCH 45/89] use qa 0.0.3 --- catalyst-gateway/tests/Earthfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index e0b28bef01a9..f1dc0a4cac83 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -3,7 +3,7 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.6.1 AS spectral-ci IMPORT .. AS gateway -IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.2 AS devnet +IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.3 AS devnet # build all necessary docker images required to run `docker-compose.yml` services all-images: From 0f1ba6339931da0a460c16f3875763c3430d9b01 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 12:18:02 +0100 Subject: [PATCH 46/89] try 1 separate docker compose --- .github/workflows/gateway-tests.yml | 51 ++++---- .../tests/docker-compose-devnet.yml | 118 ++++++++++++++++++ 2 files changed, 146 insertions(+), 23 deletions(-) create mode 100644 catalyst-gateway/tests/docker-compose-devnet.yml diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 7c103ecb4dd9..dde88164f1a5 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -140,32 +140,32 @@ jobs: # echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 # chmod 600 ~/.ssh/id_rsa1 -# - name: Free Disk Space (Ubuntu) -# uses: jlumbroso/free-disk-space@main -# with: -# # this might remove tools that are actually needed, -# # if set to "true" but frees about 6 GB -# tool-cache: false -# # all of these default to true, but feel free to set to -# # "false" if necessary for your workflow -# android: true -# dotnet: false -# haskell: false -# large-packages: false -# docker-images: false -# swap-storage: true + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: false + haskell: false + large-packages: false + docker-images: false + swap-storage: true # - name: Setup upterm session # uses: owenthereal/action-upterm@v1 - - name: Check if secret is set - run: | - if [ -z "${{ secrets.PRIVATE_SSH_KEY }}" ]; then - echo "Secret is empty or not set" - exit 1 - else - echo "Secret is set" - fi +# - name: Check if secret is set +# run: | +# if [ -z "${{ secrets.PRIVATE_SSH_KEY }}" ]; then +# echo "Secret is empty or not set" +# exit 1 +# else +# echo "Secret is set" +# fi - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 @@ -239,7 +239,12 @@ jobs: exit 1 fi + - name: Devnet smoke tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up devnet-tests --exit-code-from devnet-tests + - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up schemathesis-runner --exit-code-from schemathesis-runner + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner diff --git a/catalyst-gateway/tests/docker-compose-devnet.yml b/catalyst-gateway/tests/docker-compose-devnet.yml new file mode 100644 index 000000000000..58104d66ef30 --- /dev/null +++ b/catalyst-gateway/tests/docker-compose-devnet.yml @@ -0,0 +1,118 @@ +# cspell: words statusgossip socat + +services: + + cat-devnet: + image: cat-devnet:latest + container_name: cat-devnet + healthcheck: + #TODO when the issues with block initial sizes is fixed, update the healthcheck https://github.com/input-output-hk/catalyst-voices/issues/3327 + test: ["CMD-SHELL","bash /healthcheck.sh"] + start_period: 60s + interval: 30s + retries: 20 + volumes: + - data:/shared-data + profiles: + - devnet + network_mode: host + + event-db: + image: event-db:latest + container_name: event-db + environment: + - DB_HOST=localhost + - DB_PORT=5432 + - DB_NAME=CatalystEventDev + - DB_DESCRIPTION="Catalyst Event DB" + - DB_SUPERUSER=postgres + - DB_SUPERUSER_PASSWORD=postgres + - DB_USER=catalyst-event-dev + - DB_USER_PASSWORD=CHANGE_ME + - INIT_AND_DROP_DB=true + - WITH_MIGRATIONS=true + healthcheck: + test: + [ + "CMD-SHELL", + "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_PASSWORD}", + ] + interval: 10s + timeout: 5s + retries: 10 + network_mode: host + + scylla-node: + image: scylladb/scylla:latest + container_name: scylla-node + restart: unless-stopped + command: --smp 2 --memory 1G --overprovisioned 1 --rpc-address 0.0.0.0 --broadcast-rpc-address 127.0.0.1 --api-address 0.0.0.0 --alternator-address 0.0.0.0 + healthcheck: + test: cqlsh -e "SHOW VERSION" || exit 1 + interval: 15s + timeout: 30s + retries: 10 + network_mode: host + + cat-gateway: + image: cat-gateway:latest + container_name: cat-gateway + healthcheck: + test: "curl -s -i localhost:3030/api/v1/health/started | head -n 1 | grep 204" + start_period: 30s + interval: 30s + timeout: 30s + # approximately a 25 minutes of waiting + retries: 50 + environment: + - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@localhost/CatalystEventDev + - CASSANDRA_PERSISTENT_URL=localhost:9042 + - CASSANDRA_VOLATILE_URL=localhost:9042 + - CHAIN_NETWORK=Devnet + - SIGNED_DOC_SK=0x6455585b5dcc565c8975bc136e215d6d4dd96540620f37783c564da3cb3686dd + - INTERNAL_API_KEY=123 + # - LOG_LEVEL=error + # - RUST_LOG="error,cat_gateway=debug,cardano_chain_follower=debug,mithril-client=debug" + depends_on: + event-db: + condition: service_healthy + scylla-node: + condition: service_healthy + cat-devnet: + condition: service_healthy + network_mode: host + + devnet-tests: + image: devnet-tests:latest + container_name: devnet-tests + environment: + - CARDANO_NODE_SOCKET_PATH=/shared-data/artifacts/devnet/node-pool1/ipc/node.sock + - CARDANO_CLI_BIN=/shared-data/artifacts/devnet/bin/cardano-cli + - GENESIS_WALLET_ADDR=/shared-data/artifacts/devnet/addresses/utxo1.addr + - GENESIS_WALLET_SKEY=/shared-data/artifacts/devnet/addresses/utxo1.skey + - NETWORK_MAGIC=42 + - CARDANO_API_URL=localhost:8090 + - GATEWAY_API_URL=localhost:3030 + volumes: + - data:/shared-data + depends_on: + cat-gateway: + condition: service_healthy + network_mode: host + + schemathesis-runner: + image: schemathesis-runner:latest + container_name: schemathesis-runner + environment: + - API_SPEC=${API_SPEC:-http://cat-gateway:3030/docs/cat-gateway.json} + - WAIT_FOR_SCHEMA=${WAIT_FOR_SCHEMA:-500} + - MAX_RESPONSE_TIME=${MAX_RESPONSE_TIME:-5000} + - HYPOTHESIS_MAX_EXAMPLES=${HYPOTHESIS_MAX_EXAMPLES:-100} + # place a seed value to reproduce some specific schemathesis test scenario + # - SEED="" + depends_on: + cat-gateway: + condition: service_healthy + +volumes: + data: From b4abd68989e0d5faae4cd0eaaae8b7c4e14fc27c Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 12:59:32 +0100 Subject: [PATCH 47/89] try 2 separate docker compose --- .github/workflows/gateway-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index dde88164f1a5..84e346571f53 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -191,7 +191,7 @@ jobs: - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-devnet -d + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-devnet -d - name: Wait for cat-devnet to become healthy run: | @@ -213,7 +213,7 @@ jobs: - name: Spin up catalyst-gateway id: gateway-started run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-gateway -d + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-gateway -d - name: Wait for cat-gateway to become healthy id: gateway-healthy @@ -235,7 +235,7 @@ jobs: done if [ "$STATUS" != "healthy" ]; then - docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway exit 1 fi From 130645724c888c9908755baee5d55dcef16602d5 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 13:28:06 +0100 Subject: [PATCH 48/89] try 3 separate docker compose --- .github/workflows/gateway-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 84e346571f53..fc2ae8c78299 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -191,7 +191,7 @@ jobs: - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-devnet -d + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d - name: Wait for cat-devnet to become healthy run: | @@ -213,7 +213,7 @@ jobs: - name: Spin up catalyst-gateway id: gateway-started run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml -f catalyst-gateway/tests/docker-compose-localhost.yml --profile devnet up cat-gateway -d + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d - name: Wait for cat-gateway to become healthy id: gateway-healthy From f7e6fe4585e55a876ec0b490e292729eba8346fe Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 13:48:37 +0100 Subject: [PATCH 49/89] try 4 separate docker compose --- catalyst-gateway/tests/docker-compose-devnet.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/catalyst-gateway/tests/docker-compose-devnet.yml b/catalyst-gateway/tests/docker-compose-devnet.yml index 58104d66ef30..6e83f8651ea0 100644 --- a/catalyst-gateway/tests/docker-compose-devnet.yml +++ b/catalyst-gateway/tests/docker-compose-devnet.yml @@ -13,8 +13,6 @@ services: retries: 20 volumes: - data:/shared-data - profiles: - - devnet network_mode: host event-db: @@ -113,6 +111,7 @@ services: depends_on: cat-gateway: condition: service_healthy + network_mode: host volumes: data: From f362eaf51741f3a1148aec2e70cd3ea159743a73 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 14:14:14 +0100 Subject: [PATCH 50/89] try 5 separate docker compose --- .github/workflows/gateway-tests.yml | 5 ----- catalyst-gateway/tests/docker-compose-devnet.yml | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index fc2ae8c78299..2a0d16cf3cef 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -239,11 +239,6 @@ jobs: exit 1 fi - - name: Devnet smoke tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up devnet-tests --exit-code-from devnet-tests - - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | diff --git a/catalyst-gateway/tests/docker-compose-devnet.yml b/catalyst-gateway/tests/docker-compose-devnet.yml index 6e83f8651ea0..75b59b555c59 100644 --- a/catalyst-gateway/tests/docker-compose-devnet.yml +++ b/catalyst-gateway/tests/docker-compose-devnet.yml @@ -102,7 +102,7 @@ services: image: schemathesis-runner:latest container_name: schemathesis-runner environment: - - API_SPEC=${API_SPEC:-http://cat-gateway:3030/docs/cat-gateway.json} + - API_SPEC=${API_SPEC:-http://localhost:3030/docs/cat-gateway.json} - WAIT_FOR_SCHEMA=${WAIT_FOR_SCHEMA:-500} - MAX_RESPONSE_TIME=${MAX_RESPONSE_TIME:-5000} - HYPOTHESIS_MAX_EXAMPLES=${HYPOTHESIS_MAX_EXAMPLES:-100} From a370821cb7e2999044435556189349060830503d Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 14:21:06 +0100 Subject: [PATCH 51/89] try 5 separate docker compose --- .../tests/docker-compose-devnet.yml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/catalyst-gateway/tests/docker-compose-devnet.yml b/catalyst-gateway/tests/docker-compose-devnet.yml index 75b59b555c59..c1096f60b44a 100644 --- a/catalyst-gateway/tests/docker-compose-devnet.yml +++ b/catalyst-gateway/tests/docker-compose-devnet.yml @@ -80,24 +80,6 @@ services: condition: service_healthy network_mode: host - devnet-tests: - image: devnet-tests:latest - container_name: devnet-tests - environment: - - CARDANO_NODE_SOCKET_PATH=/shared-data/artifacts/devnet/node-pool1/ipc/node.sock - - CARDANO_CLI_BIN=/shared-data/artifacts/devnet/bin/cardano-cli - - GENESIS_WALLET_ADDR=/shared-data/artifacts/devnet/addresses/utxo1.addr - - GENESIS_WALLET_SKEY=/shared-data/artifacts/devnet/addresses/utxo1.skey - - NETWORK_MAGIC=42 - - CARDANO_API_URL=localhost:8090 - - GATEWAY_API_URL=localhost:3030 - volumes: - - data:/shared-data - depends_on: - cat-gateway: - condition: service_healthy - network_mode: host - schemathesis-runner: image: schemathesis-runner:latest container_name: schemathesis-runner From 4c843d698f8521b3fa7a4c0722b1e2e36a23134a Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 14:47:28 +0100 Subject: [PATCH 52/89] try 6 add devnet smoke tests --- .github/workflows/gateway-tests.yml | 5 +++++ catalyst-gateway/tests/Earthfile | 2 ++ .../tests/docker-compose-devnet.yml | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 2a0d16cf3cef..aa7e4c4df2c3 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -239,6 +239,11 @@ jobs: exit 1 fi + - name: Devnet smoke tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + run: | + docker compose -f tests/docker-compose-devnet.yml up devnet-tests --exit-code-from devnet-tests + - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 075ac8acbd86..6fc291d336bd 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -4,6 +4,7 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.6.3 AS spectral-ci IMPORT .. AS gateway IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.3 AS devnet +IMPORT github.com/input-output-hk/catalyst-qa/tests:devnet/v0.0.3 AS devnet-tests # build all necessary docker images required to run `docker-compose.yml` services all-images: @@ -16,6 +17,7 @@ all-images: BUILD +package-event-db-v1 BUILD +package-haproxy BUILD devnet+docker + BUILD devnet-tests+docker # a special package for applying migrations only up to "V2_**" migrations package-event-db-v1: diff --git a/catalyst-gateway/tests/docker-compose-devnet.yml b/catalyst-gateway/tests/docker-compose-devnet.yml index c1096f60b44a..75b59b555c59 100644 --- a/catalyst-gateway/tests/docker-compose-devnet.yml +++ b/catalyst-gateway/tests/docker-compose-devnet.yml @@ -80,6 +80,24 @@ services: condition: service_healthy network_mode: host + devnet-tests: + image: devnet-tests:latest + container_name: devnet-tests + environment: + - CARDANO_NODE_SOCKET_PATH=/shared-data/artifacts/devnet/node-pool1/ipc/node.sock + - CARDANO_CLI_BIN=/shared-data/artifacts/devnet/bin/cardano-cli + - GENESIS_WALLET_ADDR=/shared-data/artifacts/devnet/addresses/utxo1.addr + - GENESIS_WALLET_SKEY=/shared-data/artifacts/devnet/addresses/utxo1.skey + - NETWORK_MAGIC=42 + - CARDANO_API_URL=localhost:8090 + - GATEWAY_API_URL=localhost:3030 + volumes: + - data:/shared-data + depends_on: + cat-gateway: + condition: service_healthy + network_mode: host + schemathesis-runner: image: schemathesis-runner:latest container_name: schemathesis-runner From f70be9cfb6c1ff6d443c1447d0d924093140631f Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 26 Nov 2025 14:59:53 +0100 Subject: [PATCH 53/89] try 7 add devnet smoke tests --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index aa7e4c4df2c3..fc2ae8c78299 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -242,7 +242,7 @@ jobs: - name: Devnet smoke tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | - docker compose -f tests/docker-compose-devnet.yml up devnet-tests --exit-code-from devnet-tests + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up devnet-tests --exit-code-from devnet-tests - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} From 36327e5059459f28d06b8852c95ed056005574af Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 27 Nov 2025 12:29:16 +0100 Subject: [PATCH 54/89] cleanup --- .github/workflows/gateway-tests.yml | 22 +------- catalyst-gateway/tests/Earthfile | 3 ++ .../tests/docker-compose-localhost.yml | 51 ------------------- catalyst-gateway/tests/docker-compose.yml | 24 ++------- 4 files changed, 8 insertions(+), 92 deletions(-) delete mode 100644 catalyst-gateway/tests/docker-compose-localhost.yml diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index fc2ae8c78299..9cda8c9bebc5 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -41,6 +41,7 @@ jobs: with: enable_caching: "true" version: 0.21.0 + - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 @@ -133,13 +134,6 @@ jobs: steps: - uses: actions/checkout@v4 -# - name: Save SSH key to file -# run: | -# mkdir -p ~/.ssh -# touch ~/.ssh/id_rsa1 -# echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/id_rsa1 -# chmod 600 ~/.ssh/id_rsa1 - - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main with: @@ -155,18 +149,6 @@ jobs: docker-images: false swap-storage: true -# - name: Setup upterm session -# uses: owenthereal/action-upterm@v1 - -# - name: Check if secret is set -# run: | -# if [ -z "${{ secrets.PRIVATE_SSH_KEY }}" ]; then -# echo "Secret is empty or not set" -# exit 1 -# else -# echo "Secret is set" -# fi - - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: @@ -186,7 +168,7 @@ jobs: uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 with: command: run - args: ./catalyst-gateway/tests/+all-images + args: ./catalyst-gateway/tests/+all-images-devnet - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 6fc291d336bd..dbbb9fa296ab 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -16,6 +16,9 @@ all-images: BUILD +package-rust-tests-runner BUILD +package-event-db-v1 BUILD +package-haproxy + +all-images-devnet: + FROM +all-images BUILD devnet+docker BUILD devnet-tests+docker diff --git a/catalyst-gateway/tests/docker-compose-localhost.yml b/catalyst-gateway/tests/docker-compose-localhost.yml deleted file mode 100644 index c22acb40f48b..000000000000 --- a/catalyst-gateway/tests/docker-compose-localhost.yml +++ /dev/null @@ -1,51 +0,0 @@ -# This docker compose file is a temporary workaround for the devnet environment -# It exposes the services on localhost due to a current limitation in how the -# Mithril aggregator serves snapshots. -# This file can be removed once the aggregator is updated, allowing services -# to communicate over the standard Docker network. - -services: - cat-devnet: - network_mode: host - - event-db: - network_mode: host - profiles: - - devnet - - event-db-v1-migrations: - network_mode: host - profiles: - - devnet - - event-db-migrations: - network_mode: host - profiles: - - devnet - - scylla-node: - command: --smp 2 --memory 1G --overprovisioned 1 --rpc-address 0.0.0.0 --broadcast-rpc-address 127.0.0.1 --api-address 0.0.0.0 --alternator-address 0.0.0.0 - network_mode: host - profiles: - - devnet - - cat-gateway: - environment: - - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@localhost/CatalystEventDev - - CASSANDRA_PERSISTENT_URL=localhost:9042 - - CASSANDRA_VOLATILE_URL=localhost:9042 - - CHAIN_NETWORK=Devnet - - CHAIN_FOLLOWER_DEVNET_GENESIS_KEY=5b33322c3235332c3138362c3230312c3137372c31312c3131372c3133352c3138372c3136372c3138312c3138382c32322c35392c3230362c3130352c3233312c3135302c3231352c33302c37382c3231322c37362c31362c3235322c3138302c37322c3133342c3133372c3234372c3136312c36385d - depends_on: - cat-devnet: - condition: service_healthy - network_mode: host - profiles: - - devnet - - schemathesis-runner: - environment: - - API_SPEC=http://localhost:3030/docs/cat-gateway.json - network_mode: host - profiles: - - devnet diff --git a/catalyst-gateway/tests/docker-compose.yml b/catalyst-gateway/tests/docker-compose.yml index 1600ec874c64..fbf86d6bf7e3 100644 --- a/catalyst-gateway/tests/docker-compose.yml +++ b/catalyst-gateway/tests/docker-compose.yml @@ -1,21 +1,6 @@ # cspell: words statusgossip socat services: - - cat-devnet: - image: cat-devnet:latest - container_name: cat-devnet - healthcheck: - #TODO when the issues with block initial sizes is fixed, update the healthcheck https://github.com/input-output-hk/catalyst-voices/issues/3327 - test: ["CMD-SHELL","bash /healthcheck.sh"] - start_period: 60s - interval: 30s - retries: 20 - volumes: - - data:/shared-data - profiles: - - devnet - event-db: image: event-db:latest container_name: event-db @@ -87,9 +72,9 @@ services: image: scylladb/scylla:latest container_name: scylla-node restart: unless-stopped - command: ${SCYLLA_CMD:--smp 2 --memory 1G --overprovisioned 1 --api-address 0.0.0.0} + command: --smp 2 --memory 1G --overprovisioned 1 --api-address 0.0.0.0 ports: - - 9042:9042 + - "9042:9042" healthcheck: test: cqlsh -e "SHOW VERSION" || exit 1 interval: 15s @@ -107,7 +92,7 @@ services: # approximately a 25 minutes of waiting retries: 50 environment: - - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@${EVENT_DB_HOST:-event-db}/CatalystEventDev + - EVENT_DB_URL=postgres://catalyst-event-dev:CHANGE_ME@${EVENT_DB_URL:-event-db}/CatalystEventDev - CASSANDRA_PERSISTENT_URL=${INDEX_DB_URL:-scylla-node:9042} - CASSANDRA_VOLATILE_URL=${INDEX_DB_URL:-scylla-node:9042} - CHAIN_NETWORK=${ENV_TARGET:-Preprod} @@ -185,6 +170,3 @@ services: depends_on: cat-gateway: condition: service_healthy - -volumes: - data: From 06d10d11603138f5f9dec3b3ad5f9bcaba7b45fd Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 27 Nov 2025 14:09:58 +0100 Subject: [PATCH 55/89] cleanup --- .github/workflows/gateway-tests.yml | 9 ++++++++- catalyst-gateway/tests/Earthfile | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 9cda8c9bebc5..bd18a87bb341 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -168,7 +168,14 @@ jobs: uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 with: command: run - args: ./catalyst-gateway/tests/+all-images-devnet + args: ./catalyst-gateway/tests/+all-images + + - name: Prepare artifacts devnet + id: images + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index dbbb9fa296ab..67563757e52e 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -17,8 +17,8 @@ all-images: BUILD +package-event-db-v1 BUILD +package-haproxy -all-images-devnet: - FROM +all-images +images-devnet: + FROM scratch BUILD devnet+docker BUILD devnet-tests+docker From c052bc2e51d688fe3f15e8714ff986ae319e6e12 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 27 Nov 2025 14:27:56 +0100 Subject: [PATCH 56/89] cleanup 2 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index bd18a87bb341..a82514e26357 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -171,7 +171,7 @@ jobs: args: ./catalyst-gateway/tests/+all-images - name: Prepare artifacts devnet - id: images + id: images-devnet uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 with: command: run From ede6f2749e2a90f756d3bb629513c301e3a9f53c Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 1 Dec 2025 08:12:31 +0100 Subject: [PATCH 57/89] cleanup 3 --- .github/workflows/ci.yml | 46 +++++++++++----------- catalyst-gateway/tests/api_tests/Earthfile | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ed534988d46..756305de26f4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,21 +58,21 @@ jobs: \s*FROM.*?:latest No images should be built using the 'latest' tag -# docs-only: -# if: ${{ needs.paths-filter.outputs.docs == 'true' && needs.paths-filter.outputs.not-only-docs != 'true' }} -# needs: [reject, paths-filter] -# uses: input-output-hk/catalyst-forge/.github/workflows/release.yml@ci/v1.10.0 -# with: -# releases: '[{"project":"./docs","name":"docs"}]' -# forge_version: 0.21.0 -# -# ci: -# if: ${{ (!github.event.pull_request.draft && needs.paths-filter.outputs.not-only-docs == 'true') || startsWith(github.ref, 'refs/tags/') }} -# needs: [reject, paths-filter] -# uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 -# with: -# forge_version: 0.21.0 -# release_only: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }} + docs-only: + if: ${{ needs.paths-filter.outputs.docs == 'true' && needs.paths-filter.outputs.not-only-docs != 'true' }} + needs: [reject, paths-filter] + uses: input-output-hk/catalyst-forge/.github/workflows/release.yml@ci/v1.10.0 + with: + releases: '[{"project":"./docs","name":"docs"}]' + forge_version: 0.21.0 + + ci: + if: ${{ (!github.event.pull_request.draft && needs.paths-filter.outputs.not-only-docs == 'true') || startsWith(github.ref, 'refs/tags/') }} + needs: [reject, paths-filter] + uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 + with: + forge_version: 0.21.0 + release_only: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }} gateway-integration-tests: needs: [paths-filter] @@ -81,12 +81,12 @@ jobs: secrets: PRIVATE_SSH_KEY: ${{ secrets.PRIVATE_SSH_KEY }} - # voices-integration-tests: - # needs: [ci, paths-filter] - # if: ${{ needs.paths-filter.outputs.catalyst-voices == 'true' || github.base_ref == 'main' }} - # uses: ./.github/workflows/voices-tests.yml + voices-integration-tests: + needs: [ci, paths-filter] + if: ${{ needs.paths-filter.outputs.catalyst-voices == 'true' || github.base_ref == 'main' }} + uses: ./.github/workflows/voices-tests.yml - # test-reporting: - # needs: [ci, voices-integration-tests, gateway-integration-tests ] - # if: ${{ github.base_ref == 'main' }} - # uses: ./.github/workflows/generate-allure-report.yml + test-reporting: + needs: [ci, voices-integration-tests, gateway-integration-tests ] + if: ${{ github.base_ref == 'main' }} + uses: ./.github/workflows/generate-allure-report.yml diff --git a/catalyst-gateway/tests/api_tests/Earthfile b/catalyst-gateway/tests/api_tests/Earthfile index 96d3123d3097..65aa5f00039f 100644 --- a/catalyst-gateway/tests/api_tests/Earthfile +++ b/catalyst-gateway/tests/api_tests/Earthfile @@ -29,7 +29,7 @@ package: ENV DEP_MK_SIGNED_DOC_PATH="./dep_mk_signed_doc" # Install socat - RUN apt-get update \ + RUN apt-get clean && apt-get autoremove && apt-get update \ && apt-get install -y --no-install-recommends socat \ && rm -rf /var/lib/apt/lists/* From 269169ac80a81fa0e11a1b47a3fec14fe5519390 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 1 Dec 2025 08:14:24 +0100 Subject: [PATCH 58/89] cleanup 4 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 756305de26f4..f74a3f55b580 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,7 +75,7 @@ jobs: release_only: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }} gateway-integration-tests: - needs: [paths-filter] + needs: [ci, paths-filter] if: ${{ needs.paths-filter.outputs.catalyst-gateway == 'true' || github.base_ref == 'main'}} uses: ./.github/workflows/gateway-tests.yml secrets: From b0699d9ba178843d12d9a183ac0313ff70895701 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 1 Dec 2025 10:36:01 +0100 Subject: [PATCH 59/89] remove devnet smoke tests --- .github/workflows/gateway-tests.yml | 12 ------------ catalyst-gateway/tests/Earthfile | 5 ----- 2 files changed, 17 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index a82514e26357..d961a1e41761 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -170,13 +170,6 @@ jobs: command: run args: ./catalyst-gateway/tests/+all-images - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+images-devnet - - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} run: | @@ -228,11 +221,6 @@ jobs: exit 1 fi - - name: Devnet smoke tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up devnet-tests --exit-code-from devnet-tests - - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 67563757e52e..075ac8acbd86 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -4,7 +4,6 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.6.3 AS spectral-ci IMPORT .. AS gateway IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.3 AS devnet -IMPORT github.com/input-output-hk/catalyst-qa/tests:devnet/v0.0.3 AS devnet-tests # build all necessary docker images required to run `docker-compose.yml` services all-images: @@ -16,11 +15,7 @@ all-images: BUILD +package-rust-tests-runner BUILD +package-event-db-v1 BUILD +package-haproxy - -images-devnet: - FROM scratch BUILD devnet+docker - BUILD devnet-tests+docker # a special package for applying migrations only up to "V2_**" migrations package-event-db-v1: From 7880a710481ee894d76e1aea315c7efcf0432615 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Mon, 1 Dec 2025 11:09:09 +0100 Subject: [PATCH 60/89] cleanup 1 --- .github/workflows/gateway-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index d961a1e41761..114f46bd8a41 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -36,6 +36,11 @@ jobs: docker-images: false swap-storage: true + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} + - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: From 2d2373e9899c06ba98abb6f052bc06e84b929968 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 2 Dec 2025 11:21:31 +0100 Subject: [PATCH 61/89] PR comments --- .github/workflows/ci.yml | 2 +- .github/workflows/gateway-tests.yml | 28 ++++--------------- .../tests/docker-compose-devnet.yml | 1 - 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f74a3f55b580..953b4758e505 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,7 +79,7 @@ jobs: if: ${{ needs.paths-filter.outputs.catalyst-gateway == 'true' || github.base_ref == 'main'}} uses: ./.github/workflows/gateway-tests.yml secrets: - PRIVATE_SSH_KEY: ${{ secrets.PRIVATE_SSH_KEY }} + PRIVATE_SSH_KEY: ${{ secrets.secrets.QA_REPO_SSH_KEY }} voices-integration-tests: needs: [ci, paths-filter] diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 114f46bd8a41..c5b025111088 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -39,7 +39,7 @@ jobs: - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: - ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 @@ -139,25 +139,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: - # this might remove tools that are actually needed, - # if set to "true" but frees about 6 GB - tool-cache: false - # all of these default to true, but feel free to set to - # "false" if necessary for your workflow - android: true - dotnet: false - haskell: false - large-packages: false - docker-images: false - swap-storage: true - - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: - ssh-private-key: ${{ secrets.PRIVATE_SSH_KEY }} + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 @@ -192,6 +177,7 @@ jobs: fi if [ "$STATUS" == "unhealthy" ]; then echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet exit 1 fi sleep 5 @@ -216,15 +202,11 @@ jobs: fi if [ "$STATUS" == "unhealthy" ]; then echo "Container became unhealthy." - break + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway + exit 1 fi sleep 5 done - - if [ "$STATUS" != "healthy" ]; then - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway - exit 1 - fi - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} diff --git a/catalyst-gateway/tests/docker-compose-devnet.yml b/catalyst-gateway/tests/docker-compose-devnet.yml index 75b59b555c59..31145aa36132 100644 --- a/catalyst-gateway/tests/docker-compose-devnet.yml +++ b/catalyst-gateway/tests/docker-compose-devnet.yml @@ -6,7 +6,6 @@ services: image: cat-devnet:latest container_name: cat-devnet healthcheck: - #TODO when the issues with block initial sizes is fixed, update the healthcheck https://github.com/input-output-hk/catalyst-voices/issues/3327 test: ["CMD-SHELL","bash /healthcheck.sh"] start_period: 60s interval: 30s From 24b1fc352a327a4a320a6ec62664a73248890245 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 2 Dec 2025 11:38:34 +0100 Subject: [PATCH 62/89] cleanup --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 953b4758e505..dbdd1dc73567 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,7 +79,7 @@ jobs: if: ${{ needs.paths-filter.outputs.catalyst-gateway == 'true' || github.base_ref == 'main'}} uses: ./.github/workflows/gateway-tests.yml secrets: - PRIVATE_SSH_KEY: ${{ secrets.secrets.QA_REPO_SSH_KEY }} + PRIVATE_SSH_KEY: ${{ secrets.QA_REPO_SSH_KEY }} voices-integration-tests: needs: [ci, paths-filter] From 4450322363f5e70ef01b6624ae22ff9f8f31553a Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 2 Dec 2025 12:23:44 +0100 Subject: [PATCH 63/89] cleanup 2 --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index c5b025111088..415eefbe270c 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -3,7 +3,7 @@ name: Catalyst Gateway integration tests on: workflow_call: secrets: - PRIVATE_SSH_KEY: + QA_REPO_SSH_KEY: required: true concurrency: From e284b2fff88c415f9a74fb3e1958d80d4ca14694 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 2 Dec 2025 12:26:19 +0100 Subject: [PATCH 64/89] cleanup 2 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dbdd1dc73567..edeb2f4ff196 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,7 +79,7 @@ jobs: if: ${{ needs.paths-filter.outputs.catalyst-gateway == 'true' || github.base_ref == 'main'}} uses: ./.github/workflows/gateway-tests.yml secrets: - PRIVATE_SSH_KEY: ${{ secrets.QA_REPO_SSH_KEY }} + QA_REPO_SSH_KEY: ${{ secrets.QA_REPO_SSH_KEY }} voices-integration-tests: needs: [ci, paths-filter] From 92d73bcc835d8bf0fe0834c02fb1672dd02c231e Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 2 Dec 2025 18:17:29 +0100 Subject: [PATCH 65/89] try build without cache --- .github/workflows/gateway-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 415eefbe270c..dfeb76eee517 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -44,7 +44,7 @@ jobs: - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: - enable_caching: "true" + enable_caching: "false" version: 0.21.0 - name: Setup From 1a611120df3b68c64425bfbc58cea91fafc1c080 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Tue, 2 Dec 2025 19:44:28 +0100 Subject: [PATCH 66/89] try 1 --- .github/workflows/gateway-tests.yml | 9 ++++++++- catalyst-gateway/tests/Earthfile | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index dfeb76eee517..968340237145 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -44,7 +44,7 @@ jobs: - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: - enable_caching: "false" + enable_caching: "true" version: 0.21.0 - name: Setup @@ -160,6 +160,13 @@ jobs: command: run args: ./catalyst-gateway/tests/+all-images + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet + - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} run: | diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 075ac8acbd86..283c497c93bb 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -15,6 +15,9 @@ all-images: BUILD +package-rust-tests-runner BUILD +package-event-db-v1 BUILD +package-haproxy + +images-devnet: + FROM scratch BUILD devnet+docker # a special package for applying migrations only up to "V2_**" migrations From 655f266c236b21972fc88b1d099b233b6ead3b7b Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 3 Dec 2025 14:32:39 +0100 Subject: [PATCH 67/89] try 2 --- catalyst-gateway/tests/api_tests/Earthfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/catalyst-gateway/tests/api_tests/Earthfile b/catalyst-gateway/tests/api_tests/Earthfile index f0bb05123d5f..a58f23bc28ab 100644 --- a/catalyst-gateway/tests/api_tests/Earthfile +++ b/catalyst-gateway/tests/api_tests/Earthfile @@ -14,9 +14,9 @@ builder: COPY --dir ./scripts . COPY --dir ./test_data . COPY --dir ./utils . - COPY cat-libs-rust+build/mk_signed_doc . +# COPY cat-libs-rust+build/mk_signed_doc . # mk_signed_doc cli tool for building deprecated version of documents - COPY dep-cat-libs-rust+build/mk_signed_doc ./dep_mk_signed_doc +# COPY dep-cat-libs-rust+build/mk_signed_doc ./dep_mk_signed_doc COPY cat-storage+cardano-asset-preprod/cardano-asset-preprod.json . DO python-ci+BUILDER_WITH_POETRY From e7a9ecb67176631b65a24d23c83a239ba316df25 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 3 Dec 2025 15:04:58 +0100 Subject: [PATCH 68/89] try 3, with direct commit hash --- catalyst-gateway/tests/api_tests/Earthfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/catalyst-gateway/tests/api_tests/Earthfile b/catalyst-gateway/tests/api_tests/Earthfile index a58f23bc28ab..0d3a0c321b94 100644 --- a/catalyst-gateway/tests/api_tests/Earthfile +++ b/catalyst-gateway/tests/api_tests/Earthfile @@ -1,7 +1,7 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/python:v3.6.3 AS python-ci -IMPORT github.com/input-output-hk/catalyst-libs/rust:catalyst-signed-doc/v0.0.10-mk-signed-docs-key-type AS cat-libs-rust +IMPORT github.com/input-output-hk/catalyst-libs/rust:b90f4be792bc11700b2f3504d2a5791981440412 AS cat-libs-rust IMPORT github.com/input-output-hk/catalyst-libs/rust:catalyst-signed-doc/v.0.0.4-fix-earthly-build AS dep-cat-libs-rust IMPORT github.com/input-output-hk/catalyst-storage AS cat-storage @@ -14,9 +14,9 @@ builder: COPY --dir ./scripts . COPY --dir ./test_data . COPY --dir ./utils . -# COPY cat-libs-rust+build/mk_signed_doc . + COPY cat-libs-rust+build/mk_signed_doc . # mk_signed_doc cli tool for building deprecated version of documents -# COPY dep-cat-libs-rust+build/mk_signed_doc ./dep_mk_signed_doc + COPY dep-cat-libs-rust+build/mk_signed_doc ./dep_mk_signed_doc COPY cat-storage+cardano-asset-preprod/cardano-asset-preprod.json . DO python-ci+BUILDER_WITH_POETRY From cdcb3e019d98956ecb99b2b37b699cb4da889fc2 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 3 Dec 2025 15:33:54 +0100 Subject: [PATCH 69/89] try 3, revert --- catalyst-gateway/tests/api_tests/Earthfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catalyst-gateway/tests/api_tests/Earthfile b/catalyst-gateway/tests/api_tests/Earthfile index 0d3a0c321b94..f0bb05123d5f 100644 --- a/catalyst-gateway/tests/api_tests/Earthfile +++ b/catalyst-gateway/tests/api_tests/Earthfile @@ -1,7 +1,7 @@ VERSION 0.8 IMPORT github.com/input-output-hk/catalyst-ci/earthly/python:v3.6.3 AS python-ci -IMPORT github.com/input-output-hk/catalyst-libs/rust:b90f4be792bc11700b2f3504d2a5791981440412 AS cat-libs-rust +IMPORT github.com/input-output-hk/catalyst-libs/rust:catalyst-signed-doc/v0.0.10-mk-signed-docs-key-type AS cat-libs-rust IMPORT github.com/input-output-hk/catalyst-libs/rust:catalyst-signed-doc/v.0.0.4-fix-earthly-build AS dep-cat-libs-rust IMPORT github.com/input-output-hk/catalyst-storage AS cat-storage From 98e1e3807e5c95e5e55eebc0c110e561aa3c6f89 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 3 Dec 2025 19:03:56 +0100 Subject: [PATCH 70/89] try 4, swap jobs --- .github/workflows/gateway-tests.yml | 212 ++++++++++++++-------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 968340237145..71f45e8019e0 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -15,6 +15,93 @@ env: COVERAGE_EXT: .coverage.info jobs: + devnet-tests: + name: Cat-Gateway devnet integration tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} + + - name: Install Forge + uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 + with: + enable_caching: "true" + version: 0.21.0 + + - name: Setup + uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Prepare artifacts + id : images + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+all-images + + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet + + - name: Spin up devnet + if: ${{ steps.images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d + + - name: Wait for cat-devnet to become healthy + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet + exit 1 + fi + sleep 5 + done + + - name: Spin up catalyst-gateway + id: gateway-started + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway + exit 1 + fi + sleep 5 + done + + - name: Schemathesis tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner + tests: name: Cat-Gateway integration tests runs-on: ubuntu-latest @@ -73,25 +160,25 @@ jobs: id: gateway-healthy if: ${{ steps.gateway-started.conclusion == 'success' }} run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - break - fi - sleep 5 - done - - if [ "$STATUS" != "healthy" ]; then - docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway - exit 1 - fi + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + break + fi + sleep 5 + done + + if [ "$STATUS" != "healthy" ]; then + docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway + exit 1 + fi - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} @@ -132,90 +219,3 @@ jobs: path: "**/*${{ env.COVERAGE_EXT }}" if-no-files-found: error retention-days: 1 - - devnet-tests: - name: Cat-Gateway devnet integration tests - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.0 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - - - name: Install Forge - uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 - with: - enable_caching: "true" - version: 0.21.0 - - - name: Setup - uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - - name: Prepare artifacts - id : images - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+all-images - - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+images-devnet - - - name: Spin up devnet - if: ${{ steps.images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d - - - name: Wait for cat-devnet to become healthy - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet - exit 1 - fi - sleep 5 - done - - - name: Spin up catalyst-gateway - id: gateway-started - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d - - - name: Wait for cat-gateway to become healthy - id: gateway-healthy - if: ${{ steps.gateway-started.conclusion == 'success' }} - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway - exit 1 - fi - sleep 5 - done - - - name: Schemathesis tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner From 747e4352db4b1b11ec911fcd8d9973cb75828f7f Mon Sep 17 00:00:00 2001 From: januszjanus Date: Wed, 3 Dec 2025 19:34:07 +0100 Subject: [PATCH 71/89] try 5, no swap, add space clean to devnet --- .github/workflows/gateway-tests.yml | 205 +++++++++++++++------------- 1 file changed, 110 insertions(+), 95 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 71f45e8019e0..44ca2c5ba42f 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -15,12 +15,27 @@ env: COVERAGE_EXT: .coverage.info jobs: - devnet-tests: - name: Cat-Gateway devnet integration tests + tests: + name: Cat-Gateway integration tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: false + haskell: false + large-packages: false + docker-images: false + swap-storage: true + - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: @@ -42,68 +57,84 @@ jobs: command: run args: ./catalyst-gateway/tests/+all-images - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+images-devnet - - - name: Spin up devnet + - name: Rust integration tests if: ${{ steps.images.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d - - - name: Wait for cat-devnet to become healthy - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet - exit 1 - fi - sleep 5 - done + docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner + docker compose -f catalyst-gateway/tests/docker-compose.yml down - name: Spin up catalyst-gateway id: gateway-started + if: ${{ steps.images.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d + docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach - name: Wait for cat-gateway to become healthy id: gateway-healthy if: ${{ steps.gateway-started.conclusion == 'success' }} run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway - exit 1 - fi - sleep 5 - done + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + break + fi + sleep 5 + done + + if [ "$STATUS" != "healthy" ]; then + docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway + exit 1 + fi - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner + docker compose -f catalyst-gateway/tests/docker-compose.yml up schemathesis-runner --exit-code-from schemathesis-runner + docker cp schemathesis-runner:/results/junit-report.xml ./schemathesis${{ env.REPORT_EXT }} - tests: - name: Cat-Gateway integration tests + - name: Integration API tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "preprod_indexing or unmarked" + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} + docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} + + - name: Integration health tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "health_endpoint" + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + + - name: Collect and upload test reports + uses: actions/upload-artifact@v4 + if: success() || failure() + with: + name: test-reports-gateway + path: "**/*${{ env.REPORT_EXT }}" + if-no-files-found: error + retention-days: 1 + + - name: Collect and upload test coverage + uses: actions/upload-artifact@v4 + if: success() || failure() + with: + name: coverage-reports-gateway + path: "**/*${{ env.COVERAGE_EXT }}" + if-no-files-found: error + retention-days: 1 + + devnet-tests: + name: Cat-Gateway devnet integration tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -144,17 +175,40 @@ jobs: command: run args: ./catalyst-gateway/tests/+all-images - - name: Rust integration tests + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet + + - name: Spin up devnet if: ${{ steps.images.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner - docker compose -f catalyst-gateway/tests/docker-compose.yml down + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d + + - name: Wait for cat-devnet to become healthy + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet + exit 1 + fi + sleep 5 + done - name: Spin up catalyst-gateway id: gateway-started - if: ${{ steps.images.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d - name: Wait for cat-gateway to become healthy id: gateway-healthy @@ -170,52 +224,13 @@ jobs: fi if [ "$STATUS" == "unhealthy" ]; then echo "Container became unhealthy." - break + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway + exit 1 fi sleep 5 done - - if [ "$STATUS" != "healthy" ]; then - docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway - exit 1 - fi - name: Schemathesis tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up schemathesis-runner --exit-code-from schemathesis-runner - docker cp schemathesis-runner:/results/junit-report.xml ./schemathesis${{ env.REPORT_EXT }} - - - name: Integration API tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "preprod_indexing or unmarked" - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} - docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} - - - name: Integration health tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "health_endpoint" - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - - - name: Collect and upload test reports - uses: actions/upload-artifact@v4 - if: success() || failure() - with: - name: test-reports-gateway - path: "**/*${{ env.REPORT_EXT }}" - if-no-files-found: error - retention-days: 1 - - - name: Collect and upload test coverage - uses: actions/upload-artifact@v4 - if: success() || failure() - with: - name: coverage-reports-gateway - path: "**/*${{ env.COVERAGE_EXT }}" - if-no-files-found: error - retention-days: 1 + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner From 6c0a8f80ef820ab35b6ff016dab506698bd5877e Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Wed, 3 Dec 2025 20:04:35 +0100 Subject: [PATCH 72/89] remove ssh agent from test --- .github/workflows/gateway-tests.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 44ca2c5ba42f..bf3e0da00021 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -36,11 +36,6 @@ jobs: docker-images: false swap-storage: true - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.0 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: From f13354635e855dbf6eb49c1d6d50b5f0f44db87e Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 08:05:54 +0100 Subject: [PATCH 73/89] cleanup --- .github/workflows/gateway-tests.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index bf3e0da00021..830893821c12 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -134,21 +134,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: - # this might remove tools that are actually needed, - # if set to "true" but frees about 6 GB - tool-cache: false - # all of these default to true, but feel free to set to - # "false" if necessary for your workflow - android: true - dotnet: false - haskell: false - large-packages: false - docker-images: false - swap-storage: true - - name: Setup SSH Agent uses: webfactory/ssh-agent@v0.9.0 with: From 20cf26f0bed657b02cf82d06765b30cb836e70ac Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 08:46:42 +0100 Subject: [PATCH 74/89] ssh agent cleanup try 1 --- .github/workflows/gateway-tests.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 830893821c12..ae08915b1925 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -88,12 +88,6 @@ jobs: exit 1 fi - - name: Schemathesis tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up schemathesis-runner --exit-code-from schemathesis-runner - docker cp schemathesis-runner:/results/junit-report.xml ./schemathesis${{ env.REPORT_EXT }} - - name: Integration API tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} env: @@ -135,7 +129,7 @@ jobs: - uses: actions/checkout@v4 - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.0 + uses: webfactory/ssh-agent@v0.9.1 with: ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} From 7457005e878783b131de947abab9be1c75c09f4c Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 09:47:23 +0100 Subject: [PATCH 75/89] pre build images job, try 1 --- .github/workflows/gateway-tests.yml | 348 ++++++++++++++++------------ catalyst-gateway/tests/Earthfile | 12 +- 2 files changed, 207 insertions(+), 153 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index ae08915b1925..5563ba1ef38e 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -15,27 +15,12 @@ env: COVERAGE_EXT: .coverage.info jobs: - tests: - name: Cat-Gateway integration tests + build-images: + name: Build images runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: - # this might remove tools that are actually needed, - # if set to "true" but frees about 6 GB - tool-cache: false - # all of these default to true, but feel free to set to - # "false" if necessary for your workflow - android: true - dotnet: false - haskell: false - large-packages: false - docker-images: false - swap-storage: true - - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: @@ -46,81 +31,138 @@ jobs: uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - name: Prepare artifacts - id : images + id: images uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 with: command: run args: ./catalyst-gateway/tests/+all-images - - name: Rust integration tests - if: ${{ steps.images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner - docker compose -f catalyst-gateway/tests/docker-compose.yml down + - name: Save image to tar + run: docker save event-db:latest -o event-db.tar - - name: Spin up catalyst-gateway - id: gateway-started - if: ${{ steps.images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach + - uses: actions/upload-artifact@v4 + with: + name: event-db + path: event-db.tar - - name: Wait for cat-gateway to become healthy - id: gateway-healthy - if: ${{ steps.gateway-started.conclusion == 'success' }} - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - break - fi - sleep 5 - done - - if [ "$STATUS" != "healthy" ]; then - docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway - exit 1 - fi - - - name: Integration API tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "preprod_indexing or unmarked" - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} - docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} - - - name: Integration health tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "health_endpoint" - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + tests: + name: Cat-Gateway integration tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + +# - name: Free Disk Space (Ubuntu) +# uses: jlumbroso/free-disk-space@main +# with: +# # this might remove tools that are actually needed, +# # if set to "true" but frees about 6 GB +# tool-cache: false +# # all of these default to true, but feel free to set to +# # "false" if necessary for your workflow +# android: true +# dotnet: false +# haskell: false +# large-packages: false +# docker-images: false +# swap-storage: true - - name: Collect and upload test reports - uses: actions/upload-artifact@v4 - if: success() || failure() + - name: Install Forge + uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: - name: test-reports-gateway - path: "**/*${{ env.REPORT_EXT }}" - if-no-files-found: error - retention-days: 1 - - - name: Collect and upload test coverage - uses: actions/upload-artifact@v4 - if: success() || failure() + enable_caching: "true" + version: 0.21.0 + + - name: Setup + uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Get artifacts + id: get-images + uses: actions/download-artifact@v4 with: - name: coverage-reports-gateway - path: "**/*${{ env.COVERAGE_EXT }}" - if-no-files-found: error - retention-days: 1 + name: event-db.tar + path: . + + - name: Start event-db + if: always() + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db + +# - name: Prepare artifacts +# id : images +# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 +# with: +# command: run +# args: ./catalyst-gateway/tests/+all-images + +# - name: Rust integration tests +# if: ${{ steps.images.conclusion == 'success' }} +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner +# docker compose -f catalyst-gateway/tests/docker-compose.yml down +# +# - name: Spin up catalyst-gateway +# id: gateway-started +# if: ${{ steps.images.conclusion == 'success' }} +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach +# +# - name: Wait for cat-gateway to become healthy +# id: gateway-healthy +# if: ${{ steps.gateway-started.conclusion == 'success' }} +# run: | +# echo "Waiting for container to be healthy..." +# for i in {1..500}; do +# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) +# echo "Health status: $STATUS" +# if [ "$STATUS" == "healthy" ]; then +# echo "Container is healthy!" +# break +# fi +# if [ "$STATUS" == "unhealthy" ]; then +# echo "Container became unhealthy." +# break +# fi +# sleep 5 +# done +# +# if [ "$STATUS" != "healthy" ]; then +# docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway +# exit 1 +# fi +# +# - name: Integration API tests +# if: ${{ steps.gateway-healthy.conclusion == 'success' }} +# env: +# API_TEST_MARKS: "preprod_indexing or unmarked" +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner +# docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} +# docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} +# +# - name: Integration health tests +# if: ${{ steps.gateway-healthy.conclusion == 'success' }} +# env: +# API_TEST_MARKS: "health_endpoint" +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner +# +# - name: Collect and upload test reports +# uses: actions/upload-artifact@v4 +# if: success() || failure() +# with: +# name: test-reports-gateway +# path: "**/*${{ env.REPORT_EXT }}" +# if-no-files-found: error +# retention-days: 1 +# +# - name: Collect and upload test coverage +# uses: actions/upload-artifact@v4 +# if: success() || failure() +# with: +# name: coverage-reports-gateway +# path: "**/*${{ env.COVERAGE_EXT }}" +# if-no-files-found: error +# retention-days: 1 devnet-tests: name: Cat-Gateway devnet integration tests @@ -128,10 +170,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.1 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} +# - name: Setup SSH Agent +# uses: webfactory/ssh-agent@v0.9.1 +# with: +# ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 @@ -142,69 +184,81 @@ jobs: - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - name: Prepare artifacts - id : images - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+all-images - - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + - name: Get artifacts + id: get-images + uses: actions/download-artifact@v4 with: - command: run - args: ./catalyst-gateway/tests/+images-devnet + name: event-db.tar + path: . - - name: Spin up devnet - if: ${{ steps.images.conclusion == 'success' }} + - name: Start event-db + if: always() run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d + docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db - - name: Wait for cat-devnet to become healthy - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet - exit 1 - fi - sleep 5 - done - - - name: Spin up catalyst-gateway - id: gateway-started - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d +# - name: Prepare artifacts +# id : images +# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 +# with: +# command: run +# args: ./catalyst-gateway/tests/+all-images - - name: Wait for cat-gateway to become healthy - id: gateway-healthy - if: ${{ steps.gateway-started.conclusion == 'success' }} - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway - exit 1 - fi - sleep 5 - done - - - name: Schemathesis tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner +# - name: Prepare artifacts devnet +# id: images-devnet +# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 +# with: +# command: run +# args: ./catalyst-gateway/tests/+images-devnet +# +# - name: Spin up devnet +# if: ${{ steps.images.conclusion == 'success' }} +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d +# +# - name: Wait for cat-devnet to become healthy +# run: | +# echo "Waiting for container to be healthy..." +# for i in {1..500}; do +# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) +# echo "Health status: $STATUS" +# if [ "$STATUS" == "healthy" ]; then +# echo "Container is healthy!" +# break +# fi +# if [ "$STATUS" == "unhealthy" ]; then +# echo "Container became unhealthy." +# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet +# exit 1 +# fi +# sleep 5 +# done +# +# - name: Spin up catalyst-gateway +# id: gateway-started +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d +# +# - name: Wait for cat-gateway to become healthy +# id: gateway-healthy +# if: ${{ steps.gateway-started.conclusion == 'success' }} +# run: | +# echo "Waiting for container to be healthy..." +# for i in {1..500}; do +# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) +# echo "Health status: $STATUS" +# if [ "$STATUS" == "healthy" ]; then +# echo "Container is healthy!" +# break +# fi +# if [ "$STATUS" == "unhealthy" ]; then +# echo "Container became unhealthy." +# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway +# exit 1 +# fi +# sleep 5 +# done +# +# - name: Schemathesis tests +# if: ${{ steps.gateway-healthy.conclusion == 'success' }} +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 283c497c93bb..65908e19159d 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -8,13 +8,13 @@ IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.3 AS d # build all necessary docker images required to run `docker-compose.yml` services all-images: FROM scratch - BUILD gateway+docker +# BUILD gateway+docker BUILD ../event-db+docker - BUILD ./api_tests+package - BUILD ./schemathesis_tests+package - BUILD +package-rust-tests-runner - BUILD +package-event-db-v1 - BUILD +package-haproxy +# BUILD ./api_tests+package +# BUILD ./schemathesis_tests+package +# BUILD +package-rust-tests-runner +# BUILD +package-event-db-v1 +# BUILD +package-haproxy images-devnet: FROM scratch From 36d69c6bfca79df1c29eccb3e3c7084aa27ec630 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 10:07:17 +0100 Subject: [PATCH 76/89] pre build images job, try 2 --- .github/workflows/gateway-tests.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 5563ba1ef38e..e8039351699d 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -5,6 +5,7 @@ on: secrets: QA_REPO_SSH_KEY: required: true + workflow_dispatch: concurrency: group: gateway-tests-${{ github.head_ref || github.ref }} @@ -82,6 +83,9 @@ jobs: name: event-db.tar path: . + - name: Load image + run: docker load -i event-db.tar + - name: Start event-db if: always() run: | @@ -191,6 +195,9 @@ jobs: name: event-db.tar path: . + - name: Load image + run: docker load -i event-db.tar + - name: Start event-db if: always() run: | From 70463dd0fbb12c333aed9e4ffeabc9a4eabc8dc9 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 10:11:25 +0100 Subject: [PATCH 77/89] pre build images job, try 3 --- .github/workflows/gateway-tests.yml | 1 - .github/workflows/nightly-ci.yml | 292 ++++++++++++++++++---------- 2 files changed, 191 insertions(+), 102 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index e8039351699d..36583f25d0b0 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -5,7 +5,6 @@ on: secrets: QA_REPO_SSH_KEY: required: true - workflow_dispatch: concurrency: group: gateway-tests-${{ github.head_ref || github.ref }} diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 76c5830257d8..0280e39d9b48 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -15,34 +15,12 @@ concurrency: cancel-in-progress: true jobs: - ci-nightly: - uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 - with: - forge_version: 0.21.0 - skip_deploy: true - skip_release: true - - tests: - name: nightly tests + build-images: + name: Build images runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: - # this might remove tools that are actually needed, - # if set to "true" but frees about 6 GB - tool-cache: false - # all of these default to true, but feel free to set to - # "false" if necessary for your workflow - android: true - dotnet: false - haskell: false - large-packages: false - docker-images: false - swap-storage: true - - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: @@ -53,89 +31,201 @@ jobs: uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - name: Prepare artifacts - id : images + id: images uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 with: command: run args: ./catalyst-gateway/tests/+all-images - - name: Spin up catalyst-gateway - id: gateway-started - if: ${{ steps.images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach + - name: Save image to tar + run: docker save event-db:latest -o event-db.tar - - name: Wait for cat-gateway to become healthy - id: gateway-healthy - if: ${{ steps.gateway-started.conclusion == 'success' }} - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker logs cat-gateway - exit 1 - fi - sleep 5 - done - - - name: Schemathesis tests - id: schemathesis-tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - run: | - export HYPOTHESIS_MAX_EXAMPLES=5000 - export MAX_RESPONSE_TIME=25000 - docker compose -f catalyst-gateway/tests/docker-compose.yml up schemathesis-runner --exit-code-from schemathesis-runner - - - name: Spin up catalyst-gateway with haproxy - id: gateway-with-proxy-started - env: - EVENT_DB_URL: "haproxy:18080" - INDEX_DB_URL: "haproxy:18090" - run: | - docker stop cat-gateway || true - docker compose -f catalyst-gateway/tests/docker-compose.yml up haproxy --detach - docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach + - uses: actions/upload-artifact@v4 + with: + name: event-db + path: event-db.tar + + tests: + name: Cat-Gateway integration tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 - - name: Wait for cat-gateway to become healthy - id: gateway-with-proxy-healthy - if: ${{ steps.gateway-with-proxy-started.conclusion == 'success' }} + - name: Install Forge + uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 + with: + enable_caching: "true" + version: 0.21.0 + + - name: Setup + uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Get artifacts + id: get-images + uses: actions/download-artifact@v4 + with: + name: event-db.tar + path: . + + - name: Load image + run: docker load -i event-db.tar + + - name: Start event-db + if: always() run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker logs cat-gateway - exit 1 - fi - sleep 5 - done - - - name: Integration health thru proxy tests - if: ${{ steps.gateway-with-proxy-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "health_with_proxy_endpoint" + docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db + + devnet-tests: + name: Cat-Gateway devnet integration tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Forge + uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 + with: + enable_caching: "true" + version: 0.21.0 + + - name: Setup + uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Get artifacts + id: get-images + uses: actions/download-artifact@v4 + with: + name: event-db.tar + path: . + + - name: Load image + run: docker load -i event-db.tar + + - name: Start event-db + if: always() run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - - slack-notification: - needs: tests - if: ${{ always() && needs.tests.result == 'failure' }} - uses: input-output-hk/catalyst-ci/.github/workflows/qa-notify.yml@master - with: - failed_repo: ${{ github.repository }} - failed_run_id: ${{ github.run_id }} - secrets: - slack_webhook: ${{ secrets.SLACK_WEBHOOK_URL }} + docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db + +# ci-nightly: +# uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 +# with: +# forge_version: 0.21.0 +# skip_deploy: true +# skip_release: true +# +# tests: +# name: nightly tests +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4 +# +# - name: Free Disk Space (Ubuntu) +# uses: jlumbroso/free-disk-space@main +# with: +# # this might remove tools that are actually needed, +# # if set to "true" but frees about 6 GB +# tool-cache: false +# # all of these default to true, but feel free to set to +# # "false" if necessary for your workflow +# android: true +# dotnet: false +# haskell: false +# large-packages: false +# docker-images: false +# swap-storage: true +# +# - name: Install Forge +# uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 +# with: +# enable_caching: "true" +# version: 0.21.0 +# +# - name: Setup +# uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 +# +# - name: Prepare artifacts +# id : images +# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 +# with: +# command: run +# args: ./catalyst-gateway/tests/+all-images +# +# - name: Spin up catalyst-gateway +# id: gateway-started +# if: ${{ steps.images.conclusion == 'success' }} +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach +# +# - name: Wait for cat-gateway to become healthy +# id: gateway-healthy +# if: ${{ steps.gateway-started.conclusion == 'success' }} +# run: | +# echo "Waiting for container to be healthy..." +# for i in {1..500}; do +# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) +# echo "Health status: $STATUS" +# if [ "$STATUS" == "healthy" ]; then +# echo "Container is healthy!" +# break +# fi +# if [ "$STATUS" == "unhealthy" ]; then +# echo "Container became unhealthy." +# docker logs cat-gateway +# exit 1 +# fi +# sleep 5 +# done +# +# - name: Schemathesis tests +# id: schemathesis-tests +# if: ${{ steps.gateway-healthy.conclusion == 'success' }} +# run: | +# export HYPOTHESIS_MAX_EXAMPLES=5000 +# export MAX_RESPONSE_TIME=25000 +# docker compose -f catalyst-gateway/tests/docker-compose.yml up schemathesis-runner --exit-code-from schemathesis-runner +# +# - name: Spin up catalyst-gateway with haproxy +# id: gateway-with-proxy-started +# env: +# EVENT_DB_URL: "haproxy:18080" +# INDEX_DB_URL: "haproxy:18090" +# run: | +# docker stop cat-gateway || true +# docker compose -f catalyst-gateway/tests/docker-compose.yml up haproxy --detach +# docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach +# +# - name: Wait for cat-gateway to become healthy +# id: gateway-with-proxy-healthy +# if: ${{ steps.gateway-with-proxy-started.conclusion == 'success' }} +# run: | +# echo "Waiting for container to be healthy..." +# for i in {1..500}; do +# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) +# echo "Health status: $STATUS" +# if [ "$STATUS" == "healthy" ]; then +# echo "Container is healthy!" +# break +# fi +# if [ "$STATUS" == "unhealthy" ]; then +# echo "Container became unhealthy." +# docker logs cat-gateway +# exit 1 +# fi +# sleep 5 +# done +# +# - name: Integration health thru proxy tests +# if: ${{ steps.gateway-with-proxy-healthy.conclusion == 'success' }} +# env: +# API_TEST_MARKS: "health_with_proxy_endpoint" +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner +# +# slack-notification: +# needs: tests +# if: ${{ always() && needs.tests.result == 'failure' }} +# uses: input-output-hk/catalyst-ci/.github/workflows/qa-notify.yml@master +# with: +# failed_repo: ${{ github.repository }} +# failed_run_id: ${{ github.run_id }} +# secrets: +# slack_webhook: ${{ secrets.SLACK_WEBHOOK_URL }} From 7513dcc274a113100004071362ac421dfb8ad6da Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 10:14:41 +0100 Subject: [PATCH 78/89] pre build images job, try 4 --- .github/workflows/nightly-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 0280e39d9b48..2ea3257daa08 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -48,6 +48,7 @@ jobs: tests: name: Cat-Gateway integration tests runs-on: ubuntu-latest + needs: build-images steps: - uses: actions/checkout@v4 @@ -78,6 +79,7 @@ jobs: devnet-tests: name: Cat-Gateway devnet integration tests runs-on: ubuntu-latest + needs: build-images steps: - uses: actions/checkout@v4 From 4f0ad8b73fd85705efb42577990738b85d4d9e5d Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 10:21:03 +0100 Subject: [PATCH 79/89] pre build images job, try 5 --- .github/workflows/nightly-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 2ea3257daa08..78e3c68d21c8 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -65,7 +65,7 @@ jobs: id: get-images uses: actions/download-artifact@v4 with: - name: event-db.tar + name: event-db path: . - name: Load image @@ -96,7 +96,7 @@ jobs: id: get-images uses: actions/download-artifact@v4 with: - name: event-db.tar + name: event-db path: . - name: Load image From e0ce3afbe69e410c05bc0f04305e10d5c042fe8c Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 11:09:50 +0100 Subject: [PATCH 80/89] pre build images job, try 6 --- .github/workflows/gateway-tests.yml | 262 +++++++++++++++------------- .github/workflows/nightly-ci.yml | 192 ++++++++++++++++++-- catalyst-gateway/tests/Earthfile | 19 +- 3 files changed, 327 insertions(+), 146 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 36583f25d0b0..3132c8f8f109 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -38,12 +38,22 @@ jobs: args: ./catalyst-gateway/tests/+all-images - name: Save image to tar - run: docker save event-db:latest -o event-db.tar + run: | + docker save cat-gateway:latest -o cat-gateway.tar + docker save event-db:latest -o event-db.tar + docker save api-tests-runner:latest -o api-tests-runner.tar + docker save schemathesis-runner:latest -o schemathesis-runner.tar + docker save rust-tests-runner:latest -o rust-tests-runner.tar + docker save event-db:v1 -o event-db-v1.tar + docker save haproxy-node:latest -o haproxy-node.tar + docker save cat-devnet:latest -o cat-devnet.tar + mkdir all-images + mv *.tar all-images/ - uses: actions/upload-artifact@v4 with: - name: event-db - path: event-db.tar + name: all-images + path: all-images/ tests: name: Cat-Gateway integration tests @@ -79,16 +89,19 @@ jobs: id: get-images uses: actions/download-artifact@v4 with: - name: event-db.tar - path: . + name: all-images + path: all-images/ - name: Load image - run: docker load -i event-db.tar - - - name: Start event-db - if: always() + id: load-images run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db + docker load -i cat-gateway.tar + docker load -i event-db.tar + docker load -i api-tests-runner.tar + docker load -i schemathesis-runner.tar + docker load -i rust-tests-runner.tar + docker load -i event-db-v1.tar + docker load -i haproxy-node.tar # - name: Prepare artifacts # id : images @@ -97,57 +110,57 @@ jobs: # command: run # args: ./catalyst-gateway/tests/+all-images -# - name: Rust integration tests -# if: ${{ steps.images.conclusion == 'success' }} -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner -# docker compose -f catalyst-gateway/tests/docker-compose.yml down -# -# - name: Spin up catalyst-gateway -# id: gateway-started -# if: ${{ steps.images.conclusion == 'success' }} -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach -# -# - name: Wait for cat-gateway to become healthy -# id: gateway-healthy -# if: ${{ steps.gateway-started.conclusion == 'success' }} -# run: | -# echo "Waiting for container to be healthy..." -# for i in {1..500}; do -# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) -# echo "Health status: $STATUS" -# if [ "$STATUS" == "healthy" ]; then -# echo "Container is healthy!" -# break -# fi -# if [ "$STATUS" == "unhealthy" ]; then -# echo "Container became unhealthy." -# break -# fi -# sleep 5 -# done -# -# if [ "$STATUS" != "healthy" ]; then -# docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway -# exit 1 -# fi -# -# - name: Integration API tests -# if: ${{ steps.gateway-healthy.conclusion == 'success' }} -# env: -# API_TEST_MARKS: "preprod_indexing or unmarked" -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner -# docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} -# docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} -# -# - name: Integration health tests -# if: ${{ steps.gateway-healthy.conclusion == 'success' }} -# env: -# API_TEST_MARKS: "health_endpoint" -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + - name: Rust integration tests + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner + docker compose -f catalyst-gateway/tests/docker-compose.yml down + + - name: Spin up catalyst-gateway + id: gateway-started + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + break + fi + sleep 5 + done + + if [ "$STATUS" != "healthy" ]; then + docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway + exit 1 + fi + + - name: Integration API tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "preprod_indexing or unmarked" + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} + docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} + + - name: Integration health tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "health_endpoint" + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner # # - name: Collect and upload test reports # uses: actions/upload-artifact@v4 @@ -191,16 +204,25 @@ jobs: id: get-images uses: actions/download-artifact@v4 with: - name: event-db.tar - path: . + name: all-images + path: all-images/ - name: Load image - run: docker load -i event-db.tar - - - name: Start event-db - if: always() + id: load-images run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db + docker load -i cat-gateway.tar + docker load -i event-db.tar + docker load -i api-tests-runner.tar + docker load -i schemathesis-runner.tar + docker load -i rust-tests-runner.tar + docker load -i event-db-v1.tar + docker load -i haproxy-node.tar + docker load -i cat-devnet.tar + +# - name: Start event-db +# if: always() +# run: | +# docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db # - name: Prepare artifacts # id : images @@ -216,55 +238,55 @@ jobs: # command: run # args: ./catalyst-gateway/tests/+images-devnet # -# - name: Spin up devnet -# if: ${{ steps.images.conclusion == 'success' }} -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d -# -# - name: Wait for cat-devnet to become healthy -# run: | -# echo "Waiting for container to be healthy..." -# for i in {1..500}; do -# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) -# echo "Health status: $STATUS" -# if [ "$STATUS" == "healthy" ]; then -# echo "Container is healthy!" -# break -# fi -# if [ "$STATUS" == "unhealthy" ]; then -# echo "Container became unhealthy." -# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet -# exit 1 -# fi -# sleep 5 -# done -# -# - name: Spin up catalyst-gateway -# id: gateway-started -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d -# -# - name: Wait for cat-gateway to become healthy -# id: gateway-healthy -# if: ${{ steps.gateway-started.conclusion == 'success' }} -# run: | -# echo "Waiting for container to be healthy..." -# for i in {1..500}; do -# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) -# echo "Health status: $STATUS" -# if [ "$STATUS" == "healthy" ]; then -# echo "Container is healthy!" -# break -# fi -# if [ "$STATUS" == "unhealthy" ]; then -# echo "Container became unhealthy." -# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway -# exit 1 -# fi -# sleep 5 -# done -# -# - name: Schemathesis tests -# if: ${{ steps.gateway-healthy.conclusion == 'success' }} -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner + - name: Spin up devnet + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d + + - name: Wait for cat-devnet to become healthy + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet + exit 1 + fi + sleep 5 + done + + - name: Spin up catalyst-gateway + id: gateway-started + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway + exit 1 + fi + sleep 5 + done + + - name: Schemathesis tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 78e3c68d21c8..9d6f1dd55031 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -21,6 +21,11 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.1 + with: + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} + - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: @@ -38,20 +43,44 @@ jobs: args: ./catalyst-gateway/tests/+all-images - name: Save image to tar - run: docker save event-db:latest -o event-db.tar + run: | + docker save cat-gateway:latest -o cat-gateway.tar + docker save event-db:latest -o event-db.tar + docker save api-tests-runner:latest -o api-tests-runner.tar + docker save schemathesis-runner:latest -o schemathesis-runner.tar + docker save rust-tests-runner:latest -o rust-tests-runner.tar + docker save event-db:v1 -o event-db-v1.tar + docker save haproxy-node:latest -o haproxy-node.tar + docker save cat-devnet:latest -o cat-devnet.tar + mkdir all-images + mv *.tar all-images/ - uses: actions/upload-artifact@v4 with: - name: event-db - path: event-db.tar + name: all-images + path: all-images/ tests: name: Cat-Gateway integration tests runs-on: ubuntu-latest - needs: build-images steps: - uses: actions/checkout@v4 + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: false + haskell: false + large-packages: false + docker-images: false + swap-storage: true + - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: @@ -65,21 +94,93 @@ jobs: id: get-images uses: actions/download-artifact@v4 with: - name: event-db - path: . + name: all-images + path: all-images/ - name: Load image - run: docker load -i event-db.tar + id: load-images + run: | + docker load -i cat-gateway.tar + docker load -i event-db.tar + docker load -i api-tests-runner.tar + docker load -i schemathesis-runner.tar + docker load -i rust-tests-runner.tar + docker load -i event-db-v1.tar + docker load -i haproxy-node.tar + + - name: Rust integration tests + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner + docker compose -f catalyst-gateway/tests/docker-compose.yml down + + - name: Spin up catalyst-gateway + id: gateway-started + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + break + fi + sleep 5 + done + + if [ "$STATUS" != "healthy" ]; then + docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway + exit 1 + fi - - name: Start event-db - if: always() + - name: Integration API tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "preprod_indexing or unmarked" run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} + docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} + + - name: Integration health tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "health_endpoint" + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + # + # - name: Collect and upload test reports + # uses: actions/upload-artifact@v4 + # if: success() || failure() + # with: + # name: test-reports-gateway + # path: "**/*${{ env.REPORT_EXT }}" + # if-no-files-found: error + # retention-days: 1 + # + # - name: Collect and upload test coverage + # uses: actions/upload-artifact@v4 + # if: success() || failure() + # with: + # name: coverage-reports-gateway + # path: "**/*${{ env.COVERAGE_EXT }}" + # if-no-files-found: error + # retention-days: 1 devnet-tests: name: Cat-Gateway devnet integration tests runs-on: ubuntu-latest - needs: build-images steps: - uses: actions/checkout@v4 @@ -96,16 +197,73 @@ jobs: id: get-images uses: actions/download-artifact@v4 with: - name: event-db - path: . + name: all-images + path: all-images/ - name: Load image - run: docker load -i event-db.tar + id: load-images + run: | + docker load -i cat-gateway.tar + docker load -i event-db.tar + docker load -i api-tests-runner.tar + docker load -i schemathesis-runner.tar + docker load -i rust-tests-runner.tar + docker load -i event-db-v1.tar + docker load -i haproxy-node.tar + docker load -i cat-devnet.tar + + - name: Spin up devnet + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d + + - name: Wait for cat-devnet to become healthy + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet + exit 1 + fi + sleep 5 + done + + - name: Spin up catalyst-gateway + id: gateway-started + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway + exit 1 + fi + sleep 5 + done - - name: Start event-db - if: always() + - name: Schemathesis tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner # ci-nightly: # uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 65908e19159d..99d54bbe75be 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -8,18 +8,19 @@ IMPORT github.com/input-output-hk/catalyst-qa/catalyst-devnet:devnet/v0.0.3 AS d # build all necessary docker images required to run `docker-compose.yml` services all-images: FROM scratch -# BUILD gateway+docker + BUILD gateway+docker BUILD ../event-db+docker -# BUILD ./api_tests+package -# BUILD ./schemathesis_tests+package -# BUILD +package-rust-tests-runner -# BUILD +package-event-db-v1 -# BUILD +package-haproxy - -images-devnet: - FROM scratch + BUILD ./api_tests+package + BUILD ./schemathesis_tests+package + BUILD +package-rust-tests-runner + BUILD +package-event-db-v1 + BUILD +package-haproxy BUILD devnet+docker +#images-devnet: +# FROM scratch +# BUILD devnet+docker + # a special package for applying migrations only up to "V2_**" migrations package-event-db-v1: FROM github.com/input-output-hk/catalyst-voices/catalyst-gateway/event-db:event-db-old-signed-doc+docker From f161a001bacbf48b66d178aae8d67cdf38f2131c Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 11:30:30 +0100 Subject: [PATCH 81/89] pre build images job, try 7 --- .github/workflows/nightly-ci.yml | 16 ++++++++++++---- catalyst-gateway/tests/Earthfile | 7 +++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 9d6f1dd55031..ff973e682157 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -21,10 +21,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.1 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 @@ -42,6 +38,18 @@ jobs: command: run args: ./catalyst-gateway/tests/+all-images + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.1 + with: + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} + + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet + - name: Save image to tar run: | docker save cat-gateway:latest -o cat-gateway.tar diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 99d54bbe75be..283c497c93bb 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -15,11 +15,10 @@ all-images: BUILD +package-rust-tests-runner BUILD +package-event-db-v1 BUILD +package-haproxy - BUILD devnet+docker -#images-devnet: -# FROM scratch -# BUILD devnet+docker +images-devnet: + FROM scratch + BUILD devnet+docker # a special package for applying migrations only up to "V2_**" migrations package-event-db-v1: From a9281d95b92817468a9e537407c3cbd0b2251f24 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 11:32:01 +0100 Subject: [PATCH 82/89] pre build images job, try 7 --- .github/workflows/nightly-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index ff973e682157..53ac91034f14 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -21,7 +21,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 with: @@ -71,6 +70,7 @@ jobs: tests: name: Cat-Gateway integration tests runs-on: ubuntu-latest + needs: build-images steps: - uses: actions/checkout@v4 @@ -189,6 +189,7 @@ jobs: devnet-tests: name: Cat-Gateway devnet integration tests runs-on: ubuntu-latest + needs: build-images steps: - uses: actions/checkout@v4 From 894d787ceabe4fd30c0b03f5ba3dc29535a1afc8 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 11:52:26 +0100 Subject: [PATCH 83/89] pre build images job, try 8 --- .github/workflows/nightly-ci.yml | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 53ac91034f14..99558ef3d432 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -108,13 +108,14 @@ jobs: - name: Load image id: load-images run: | - docker load -i cat-gateway.tar - docker load -i event-db.tar - docker load -i api-tests-runner.tar - docker load -i schemathesis-runner.tar - docker load -i rust-tests-runner.tar - docker load -i event-db-v1.tar - docker load -i haproxy-node.tar + docker load -i ./all-images/cat-gateway.tar + docker load -i ./all-images/event-db.tar + docker load -i ./all-images/api-tests-runner.tar + docker load -i ./all-images/schemathesis-runner.tar + docker load -i ./all-images/rust-tests-runner.tar + docker load -i ./all-images/event-db-v1.tar + docker load -i ./all-images/haproxy-node.tar + rm -rf ./all-images - name: Rust integration tests if: ${{ steps.load-images.conclusion == 'success' }} @@ -212,14 +213,15 @@ jobs: - name: Load image id: load-images run: | - docker load -i cat-gateway.tar - docker load -i event-db.tar - docker load -i api-tests-runner.tar - docker load -i schemathesis-runner.tar - docker load -i rust-tests-runner.tar - docker load -i event-db-v1.tar - docker load -i haproxy-node.tar - docker load -i cat-devnet.tar + docker load -i ./all-images/cat-gateway.tar + docker load -i ./all-images/event-db.tar + docker load -i ./all-images/api-tests-runner.tar + docker load -i ./all-images/schemathesis-runner.tar + docker load -i ./all-images/rust-tests-runner.tar + docker load -i ./all-images/event-db-v1.tar + docker load -i ./all-images/haproxy-node.tar + docker load -i ./all-images/cat-devnet.tar + rm -rf ./all-images - name: Spin up devnet if: ${{ steps.load-images.conclusion == 'success' }} From d28ae716860fd21b4cfa46e566adcb17f002e951 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 12:31:21 +0100 Subject: [PATCH 84/89] pre build images job, try 9 --- .github/workflows/nightly-ci.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 99558ef3d432..8e058e8c839d 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -37,18 +37,6 @@ jobs: command: run args: ./catalyst-gateway/tests/+all-images - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.1 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+images-devnet - - name: Save image to tar run: | docker save cat-gateway:latest -o cat-gateway.tar @@ -58,7 +46,7 @@ jobs: docker save rust-tests-runner:latest -o rust-tests-runner.tar docker save event-db:v1 -o event-db-v1.tar docker save haproxy-node:latest -o haproxy-node.tar - docker save cat-devnet:latest -o cat-devnet.tar +# docker save cat-devnet:latest -o cat-devnet.tar mkdir all-images mv *.tar all-images/ @@ -203,6 +191,18 @@ jobs: - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.1 + with: + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} + + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet + - name: Get artifacts id: get-images uses: actions/download-artifact@v4 From 66d1bd564e09725e7773d4b753a9248ff761fafe Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 12:38:42 +0100 Subject: [PATCH 85/89] pre build images job, try 9 --- .github/workflows/nightly-ci.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 8e058e8c839d..163c33ae44bf 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -191,18 +191,6 @@ jobs: - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.1 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+images-devnet - - name: Get artifacts id: get-images uses: actions/download-artifact@v4 @@ -223,6 +211,18 @@ jobs: docker load -i ./all-images/cat-devnet.tar rm -rf ./all-images + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.1 + with: + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} + + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet + - name: Spin up devnet if: ${{ steps.load-images.conclusion == 'success' }} run: | From eb43ea6689b724e614617375a32bd2a538700bc2 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 12:44:12 +0100 Subject: [PATCH 86/89] pre build images job, try 10 --- .github/workflows/nightly-ci.yml | 349 ++++------------------------- .github/workflows/voices-tests.yml | 264 +++++++++++++++++++++- 2 files changed, 307 insertions(+), 306 deletions(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 163c33ae44bf..76c5830257d8 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -15,50 +15,16 @@ concurrency: cancel-in-progress: true jobs: - build-images: - name: Build images - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Forge - uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 - with: - enable_caching: "true" - version: 0.21.0 - - - name: Setup - uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - - name: Prepare artifacts - id: images - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+all-images - - - name: Save image to tar - run: | - docker save cat-gateway:latest -o cat-gateway.tar - docker save event-db:latest -o event-db.tar - docker save api-tests-runner:latest -o api-tests-runner.tar - docker save schemathesis-runner:latest -o schemathesis-runner.tar - docker save rust-tests-runner:latest -o rust-tests-runner.tar - docker save event-db:v1 -o event-db-v1.tar - docker save haproxy-node:latest -o haproxy-node.tar -# docker save cat-devnet:latest -o cat-devnet.tar - mkdir all-images - mv *.tar all-images/ - - - uses: actions/upload-artifact@v4 - with: - name: all-images - path: all-images/ + ci-nightly: + uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 + with: + forge_version: 0.21.0 + skip_deploy: true + skip_release: true tests: - name: Cat-Gateway integration tests + name: nightly tests runs-on: ubuntu-latest - needs: build-images steps: - uses: actions/checkout@v4 @@ -86,34 +52,16 @@ jobs: - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - name: Get artifacts - id: get-images - uses: actions/download-artifact@v4 + - name: Prepare artifacts + id : images + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 with: - name: all-images - path: all-images/ - - - name: Load image - id: load-images - run: | - docker load -i ./all-images/cat-gateway.tar - docker load -i ./all-images/event-db.tar - docker load -i ./all-images/api-tests-runner.tar - docker load -i ./all-images/schemathesis-runner.tar - docker load -i ./all-images/rust-tests-runner.tar - docker load -i ./all-images/event-db-v1.tar - docker load -i ./all-images/haproxy-node.tar - rm -rf ./all-images - - - name: Rust integration tests - if: ${{ steps.load-images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner - docker compose -f catalyst-gateway/tests/docker-compose.yml down + command: run + args: ./catalyst-gateway/tests/+all-images - name: Spin up catalyst-gateway id: gateway-started - if: ${{ steps.load-images.conclusion == 'success' }} + if: ${{ steps.images.conclusion == 'success' }} run: | docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach @@ -131,129 +79,33 @@ jobs: fi if [ "$STATUS" == "unhealthy" ]; then echo "Container became unhealthy." - break + docker logs cat-gateway + exit 1 fi sleep 5 done - - if [ "$STATUS" != "healthy" ]; then - docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway - exit 1 - fi - - name: Integration API tests + - name: Schemathesis tests + id: schemathesis-tests if: ${{ steps.gateway-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "preprod_indexing or unmarked" run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} - docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} + export HYPOTHESIS_MAX_EXAMPLES=5000 + export MAX_RESPONSE_TIME=25000 + docker compose -f catalyst-gateway/tests/docker-compose.yml up schemathesis-runner --exit-code-from schemathesis-runner - - name: Integration health tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} + - name: Spin up catalyst-gateway with haproxy + id: gateway-with-proxy-started env: - API_TEST_MARKS: "health_endpoint" - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - # - # - name: Collect and upload test reports - # uses: actions/upload-artifact@v4 - # if: success() || failure() - # with: - # name: test-reports-gateway - # path: "**/*${{ env.REPORT_EXT }}" - # if-no-files-found: error - # retention-days: 1 - # - # - name: Collect and upload test coverage - # uses: actions/upload-artifact@v4 - # if: success() || failure() - # with: - # name: coverage-reports-gateway - # path: "**/*${{ env.COVERAGE_EXT }}" - # if-no-files-found: error - # retention-days: 1 - - devnet-tests: - name: Cat-Gateway devnet integration tests - runs-on: ubuntu-latest - needs: build-images - steps: - - uses: actions/checkout@v4 - - - name: Install Forge - uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 - with: - enable_caching: "true" - version: 0.21.0 - - - name: Setup - uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - - name: Get artifacts - id: get-images - uses: actions/download-artifact@v4 - with: - name: all-images - path: all-images/ - - - name: Load image - id: load-images - run: | - docker load -i ./all-images/cat-gateway.tar - docker load -i ./all-images/event-db.tar - docker load -i ./all-images/api-tests-runner.tar - docker load -i ./all-images/schemathesis-runner.tar - docker load -i ./all-images/rust-tests-runner.tar - docker load -i ./all-images/event-db-v1.tar - docker load -i ./all-images/haproxy-node.tar - docker load -i ./all-images/cat-devnet.tar - rm -rf ./all-images - - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.1 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+images-devnet - - - name: Spin up devnet - if: ${{ steps.load-images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d - - - name: Wait for cat-devnet to become healthy - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet - exit 1 - fi - sleep 5 - done - - - name: Spin up catalyst-gateway - id: gateway-started + EVENT_DB_URL: "haproxy:18080" + INDEX_DB_URL: "haproxy:18090" run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d + docker stop cat-gateway || true + docker compose -f catalyst-gateway/tests/docker-compose.yml up haproxy --detach + docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach - name: Wait for cat-gateway to become healthy - id: gateway-healthy - if: ${{ steps.gateway-started.conclusion == 'success' }} + id: gateway-with-proxy-healthy + if: ${{ steps.gateway-with-proxy-started.conclusion == 'success' }} run: | echo "Waiting for container to be healthy..." for i in {1..500}; do @@ -265,138 +117,25 @@ jobs: fi if [ "$STATUS" == "unhealthy" ]; then echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway + docker logs cat-gateway exit 1 fi sleep 5 done - - name: Schemathesis tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} + - name: Integration health thru proxy tests + if: ${{ steps.gateway-with-proxy-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "health_with_proxy_endpoint" run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner -# ci-nightly: -# uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@ci/v1.10.0 -# with: -# forge_version: 0.21.0 -# skip_deploy: true -# skip_release: true -# -# tests: -# name: nightly tests -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v4 -# -# - name: Free Disk Space (Ubuntu) -# uses: jlumbroso/free-disk-space@main -# with: -# # this might remove tools that are actually needed, -# # if set to "true" but frees about 6 GB -# tool-cache: false -# # all of these default to true, but feel free to set to -# # "false" if necessary for your workflow -# android: true -# dotnet: false -# haskell: false -# large-packages: false -# docker-images: false -# swap-storage: true -# -# - name: Install Forge -# uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 -# with: -# enable_caching: "true" -# version: 0.21.0 -# -# - name: Setup -# uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 -# -# - name: Prepare artifacts -# id : images -# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 -# with: -# command: run -# args: ./catalyst-gateway/tests/+all-images -# -# - name: Spin up catalyst-gateway -# id: gateway-started -# if: ${{ steps.images.conclusion == 'success' }} -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach -# -# - name: Wait for cat-gateway to become healthy -# id: gateway-healthy -# if: ${{ steps.gateway-started.conclusion == 'success' }} -# run: | -# echo "Waiting for container to be healthy..." -# for i in {1..500}; do -# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) -# echo "Health status: $STATUS" -# if [ "$STATUS" == "healthy" ]; then -# echo "Container is healthy!" -# break -# fi -# if [ "$STATUS" == "unhealthy" ]; then -# echo "Container became unhealthy." -# docker logs cat-gateway -# exit 1 -# fi -# sleep 5 -# done -# -# - name: Schemathesis tests -# id: schemathesis-tests -# if: ${{ steps.gateway-healthy.conclusion == 'success' }} -# run: | -# export HYPOTHESIS_MAX_EXAMPLES=5000 -# export MAX_RESPONSE_TIME=25000 -# docker compose -f catalyst-gateway/tests/docker-compose.yml up schemathesis-runner --exit-code-from schemathesis-runner -# -# - name: Spin up catalyst-gateway with haproxy -# id: gateway-with-proxy-started -# env: -# EVENT_DB_URL: "haproxy:18080" -# INDEX_DB_URL: "haproxy:18090" -# run: | -# docker stop cat-gateway || true -# docker compose -f catalyst-gateway/tests/docker-compose.yml up haproxy --detach -# docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach -# -# - name: Wait for cat-gateway to become healthy -# id: gateway-with-proxy-healthy -# if: ${{ steps.gateway-with-proxy-started.conclusion == 'success' }} -# run: | -# echo "Waiting for container to be healthy..." -# for i in {1..500}; do -# STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) -# echo "Health status: $STATUS" -# if [ "$STATUS" == "healthy" ]; then -# echo "Container is healthy!" -# break -# fi -# if [ "$STATUS" == "unhealthy" ]; then -# echo "Container became unhealthy." -# docker logs cat-gateway -# exit 1 -# fi -# sleep 5 -# done -# -# - name: Integration health thru proxy tests -# if: ${{ steps.gateway-with-proxy-healthy.conclusion == 'success' }} -# env: -# API_TEST_MARKS: "health_with_proxy_endpoint" -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner -# -# slack-notification: -# needs: tests -# if: ${{ always() && needs.tests.result == 'failure' }} -# uses: input-output-hk/catalyst-ci/.github/workflows/qa-notify.yml@master -# with: -# failed_repo: ${{ github.repository }} -# failed_run_id: ${{ github.run_id }} -# secrets: -# slack_webhook: ${{ secrets.SLACK_WEBHOOK_URL }} + slack-notification: + needs: tests + if: ${{ always() && needs.tests.result == 'failure' }} + uses: input-output-hk/catalyst-ci/.github/workflows/qa-notify.yml@master + with: + failed_repo: ${{ github.repository }} + failed_run_id: ${{ github.run_id }} + secrets: + slack_webhook: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/voices-tests.yml b/.github/workflows/voices-tests.yml index 24f8501d191f..aaef6989f654 100644 --- a/.github/workflows/voices-tests.yml +++ b/.github/workflows/voices-tests.yml @@ -13,9 +13,50 @@ env: COVERAGE_EXT: .coverage.info jobs: + build-images: + name: Build images + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Forge + uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 + with: + enable_caching: "true" + version: 0.21.0 + + - name: Setup + uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Prepare artifacts + id: images + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+all-images + + - name: Save image to tar + run: | + docker save cat-gateway:latest -o cat-gateway.tar + docker save event-db:latest -o event-db.tar + docker save api-tests-runner:latest -o api-tests-runner.tar + docker save schemathesis-runner:latest -o schemathesis-runner.tar + docker save rust-tests-runner:latest -o rust-tests-runner.tar + docker save event-db:v1 -o event-db-v1.tar + docker save haproxy-node:latest -o haproxy-node.tar + # docker save cat-devnet:latest -o cat-devnet.tar + mkdir all-images + mv *.tar all-images/ + + - uses: actions/upload-artifact@v4 + with: + name: all-images + path: all-images/ + tests: - name: Cat-Voices integration tests + name: Cat-Gateway integration tests runs-on: ubuntu-latest + needs: build-images steps: - uses: actions/checkout@v4 @@ -39,5 +80,226 @@ jobs: with: enable_caching: "true" version: 0.21.0 + - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Get artifacts + id: get-images + uses: actions/download-artifact@v4 + with: + name: all-images + path: all-images/ + + - name: Load image + id: load-images + run: | + docker load -i ./all-images/cat-gateway.tar + docker load -i ./all-images/event-db.tar + docker load -i ./all-images/api-tests-runner.tar + docker load -i ./all-images/schemathesis-runner.tar + docker load -i ./all-images/rust-tests-runner.tar + docker load -i ./all-images/event-db-v1.tar + docker load -i ./all-images/haproxy-node.tar + rm -rf ./all-images + + - name: Rust integration tests + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner + docker compose -f catalyst-gateway/tests/docker-compose.yml down + + - name: Spin up catalyst-gateway + id: gateway-started + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + break + fi + sleep 5 + done + + if [ "$STATUS" != "healthy" ]; then + docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway + exit 1 + fi + + - name: Integration API tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "preprod_indexing or unmarked" + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} + docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} + + - name: Integration health tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + env: + API_TEST_MARKS: "health_endpoint" + run: | + docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner + # + # - name: Collect and upload test reports + # uses: actions/upload-artifact@v4 + # if: success() || failure() + # with: + # name: test-reports-gateway + # path: "**/*${{ env.REPORT_EXT }}" + # if-no-files-found: error + # retention-days: 1 + # + # - name: Collect and upload test coverage + # uses: actions/upload-artifact@v4 + # if: success() || failure() + # with: + # name: coverage-reports-gateway + # path: "**/*${{ env.COVERAGE_EXT }}" + # if-no-files-found: error + # retention-days: 1 + + devnet-tests: + name: Cat-Gateway devnet integration tests + runs-on: ubuntu-latest + needs: build-images + steps: + - uses: actions/checkout@v4 + + - name: Install Forge + uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 + with: + enable_caching: "true" + version: 0.21.0 + + - name: Setup + uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 + + - name: Get artifacts + id: get-images + uses: actions/download-artifact@v4 + with: + name: all-images + path: all-images/ + + - name: Load image + id: load-images + run: | + docker load -i ./all-images/cat-gateway.tar + docker load -i ./all-images/event-db.tar + docker load -i ./all-images/api-tests-runner.tar + docker load -i ./all-images/schemathesis-runner.tar + docker load -i ./all-images/rust-tests-runner.tar + docker load -i ./all-images/event-db-v1.tar + docker load -i ./all-images/haproxy-node.tar + docker load -i ./all-images/cat-devnet.tar + rm -rf ./all-images + + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.1 + with: + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} + + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet + + - name: Spin up devnet + if: ${{ steps.load-images.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d + + - name: Wait for cat-devnet to become healthy + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet + exit 1 + fi + sleep 5 + done + + - name: Spin up catalyst-gateway + id: gateway-started + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d + + - name: Wait for cat-gateway to become healthy + id: gateway-healthy + if: ${{ steps.gateway-started.conclusion == 'success' }} + run: | + echo "Waiting for container to be healthy..." + for i in {1..500}; do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) + echo "Health status: $STATUS" + if [ "$STATUS" == "healthy" ]; then + echo "Container is healthy!" + break + fi + if [ "$STATUS" == "unhealthy" ]; then + echo "Container became unhealthy." + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway + exit 1 + fi + sleep 5 + done + + - name: Schemathesis tests + if: ${{ steps.gateway-healthy.conclusion == 'success' }} + run: | + docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner + +#jobs: +# tests: +# name: Cat-Voices integration tests +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4 +# +# - name: Free Disk Space (Ubuntu) +# uses: jlumbroso/free-disk-space@main +# with: +# # this might remove tools that are actually needed, +# # if set to "true" but frees about 6 GB +# tool-cache: false +# # all of these default to true, but feel free to set to +# # "false" if necessary for your workflow +# android: true +# dotnet: false +# haskell: false +# large-packages: false +# docker-images: false +# swap-storage: true +# +# - name: Install Forge +# uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 +# with: +# enable_caching: "true" +# version: 0.21.0 +# - name: Setup +# uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 From 4c634f074ad6f30d3f8d76d4b59118571a9d581f Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 12:46:30 +0100 Subject: [PATCH 87/89] revert workflows borrowing --- .github/workflows/voices-tests.yml | 264 +---------------------------- 1 file changed, 1 insertion(+), 263 deletions(-) diff --git a/.github/workflows/voices-tests.yml b/.github/workflows/voices-tests.yml index aaef6989f654..24f8501d191f 100644 --- a/.github/workflows/voices-tests.yml +++ b/.github/workflows/voices-tests.yml @@ -13,50 +13,9 @@ env: COVERAGE_EXT: .coverage.info jobs: - build-images: - name: Build images - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Forge - uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 - with: - enable_caching: "true" - version: 0.21.0 - - - name: Setup - uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - - name: Prepare artifacts - id: images - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+all-images - - - name: Save image to tar - run: | - docker save cat-gateway:latest -o cat-gateway.tar - docker save event-db:latest -o event-db.tar - docker save api-tests-runner:latest -o api-tests-runner.tar - docker save schemathesis-runner:latest -o schemathesis-runner.tar - docker save rust-tests-runner:latest -o rust-tests-runner.tar - docker save event-db:v1 -o event-db-v1.tar - docker save haproxy-node:latest -o haproxy-node.tar - # docker save cat-devnet:latest -o cat-devnet.tar - mkdir all-images - mv *.tar all-images/ - - - uses: actions/upload-artifact@v4 - with: - name: all-images - path: all-images/ - tests: - name: Cat-Gateway integration tests + name: Cat-Voices integration tests runs-on: ubuntu-latest - needs: build-images steps: - uses: actions/checkout@v4 @@ -80,226 +39,5 @@ jobs: with: enable_caching: "true" version: 0.21.0 - - name: Setup uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - - name: Get artifacts - id: get-images - uses: actions/download-artifact@v4 - with: - name: all-images - path: all-images/ - - - name: Load image - id: load-images - run: | - docker load -i ./all-images/cat-gateway.tar - docker load -i ./all-images/event-db.tar - docker load -i ./all-images/api-tests-runner.tar - docker load -i ./all-images/schemathesis-runner.tar - docker load -i ./all-images/rust-tests-runner.tar - docker load -i ./all-images/event-db-v1.tar - docker load -i ./all-images/haproxy-node.tar - rm -rf ./all-images - - - name: Rust integration tests - if: ${{ steps.load-images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up rust-tests-runner --exit-code-from rust-tests-runner - docker compose -f catalyst-gateway/tests/docker-compose.yml down - - - name: Spin up catalyst-gateway - id: gateway-started - if: ${{ steps.load-images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach - - - name: Wait for cat-gateway to become healthy - id: gateway-healthy - if: ${{ steps.gateway-started.conclusion == 'success' }} - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - break - fi - sleep 5 - done - - if [ "$STATUS" != "healthy" ]; then - docker compose -f catalyst-gateway/tests/docker-compose.yml logs cat-gateway - exit 1 - fi - - - name: Integration API tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "preprod_indexing or unmarked" - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - docker cp api-tests-runner:/poetry/junit-report.xml ./api-tests${{ env.REPORT_EXT }} - docker cp api-tests-runner:/poetry/coverage.lcov ./api-tests${{ env.COVERAGE_EXT }} - - - name: Integration health tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - env: - API_TEST_MARKS: "health_endpoint" - run: | - docker compose -f catalyst-gateway/tests/docker-compose.yml up api-tests-runner --exit-code-from api-tests-runner - # - # - name: Collect and upload test reports - # uses: actions/upload-artifact@v4 - # if: success() || failure() - # with: - # name: test-reports-gateway - # path: "**/*${{ env.REPORT_EXT }}" - # if-no-files-found: error - # retention-days: 1 - # - # - name: Collect and upload test coverage - # uses: actions/upload-artifact@v4 - # if: success() || failure() - # with: - # name: coverage-reports-gateway - # path: "**/*${{ env.COVERAGE_EXT }}" - # if-no-files-found: error - # retention-days: 1 - - devnet-tests: - name: Cat-Gateway devnet integration tests - runs-on: ubuntu-latest - needs: build-images - steps: - - uses: actions/checkout@v4 - - - name: Install Forge - uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 - with: - enable_caching: "true" - version: 0.21.0 - - - name: Setup - uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 - - - name: Get artifacts - id: get-images - uses: actions/download-artifact@v4 - with: - name: all-images - path: all-images/ - - - name: Load image - id: load-images - run: | - docker load -i ./all-images/cat-gateway.tar - docker load -i ./all-images/event-db.tar - docker load -i ./all-images/api-tests-runner.tar - docker load -i ./all-images/schemathesis-runner.tar - docker load -i ./all-images/rust-tests-runner.tar - docker load -i ./all-images/event-db-v1.tar - docker load -i ./all-images/haproxy-node.tar - docker load -i ./all-images/cat-devnet.tar - rm -rf ./all-images - - - name: Setup SSH Agent - uses: webfactory/ssh-agent@v0.9.1 - with: - ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - - - name: Prepare artifacts devnet - id: images-devnet - uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 - with: - command: run - args: ./catalyst-gateway/tests/+images-devnet - - - name: Spin up devnet - if: ${{ steps.load-images.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-devnet -d - - - name: Wait for cat-devnet to become healthy - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-devnet) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-devnet - exit 1 - fi - sleep 5 - done - - - name: Spin up catalyst-gateway - id: gateway-started - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up cat-gateway -d - - - name: Wait for cat-gateway to become healthy - id: gateway-healthy - if: ${{ steps.gateway-started.conclusion == 'success' }} - run: | - echo "Waiting for container to be healthy..." - for i in {1..500}; do - STATUS=$(docker inspect --format='{{.State.Health.Status}}' cat-gateway) - echo "Health status: $STATUS" - if [ "$STATUS" == "healthy" ]; then - echo "Container is healthy!" - break - fi - if [ "$STATUS" == "unhealthy" ]; then - echo "Container became unhealthy." - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml logs cat-gateway - exit 1 - fi - sleep 5 - done - - - name: Schemathesis tests - if: ${{ steps.gateway-healthy.conclusion == 'success' }} - run: | - docker compose -f catalyst-gateway/tests/docker-compose-devnet.yml up schemathesis-runner --exit-code-from schemathesis-runner - -#jobs: -# tests: -# name: Cat-Voices integration tests -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v4 -# -# - name: Free Disk Space (Ubuntu) -# uses: jlumbroso/free-disk-space@main -# with: -# # this might remove tools that are actually needed, -# # if set to "true" but frees about 6 GB -# tool-cache: false -# # all of these default to true, but feel free to set to -# # "false" if necessary for your workflow -# android: true -# dotnet: false -# haskell: false -# large-packages: false -# docker-images: false -# swap-storage: true -# -# - name: Install Forge -# uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 -# with: -# enable_caching: "true" -# version: 0.21.0 -# - name: Setup -# uses: input-output-hk/catalyst-forge/actions/setup@ci/v1.10.0 From 815f5c407f3d86782451eeb2d73a4fdb219d7990 Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 13:10:10 +0100 Subject: [PATCH 88/89] try 1 --- .github/workflows/gateway-tests.yml | 102 ++++++++++++---------------- 1 file changed, 42 insertions(+), 60 deletions(-) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 3132c8f8f109..0b4f5e8dd294 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -46,7 +46,6 @@ jobs: docker save rust-tests-runner:latest -o rust-tests-runner.tar docker save event-db:v1 -o event-db-v1.tar docker save haproxy-node:latest -o haproxy-node.tar - docker save cat-devnet:latest -o cat-devnet.tar mkdir all-images mv *.tar all-images/ @@ -61,20 +60,20 @@ jobs: steps: - uses: actions/checkout@v4 -# - name: Free Disk Space (Ubuntu) -# uses: jlumbroso/free-disk-space@main -# with: -# # this might remove tools that are actually needed, -# # if set to "true" but frees about 6 GB -# tool-cache: false -# # all of these default to true, but feel free to set to -# # "false" if necessary for your workflow -# android: true -# dotnet: false -# haskell: false -# large-packages: false -# docker-images: false -# swap-storage: true + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: false + haskell: false + large-packages: false + docker-images: false + swap-storage: true - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 @@ -95,20 +94,14 @@ jobs: - name: Load image id: load-images run: | - docker load -i cat-gateway.tar - docker load -i event-db.tar - docker load -i api-tests-runner.tar - docker load -i schemathesis-runner.tar - docker load -i rust-tests-runner.tar - docker load -i event-db-v1.tar - docker load -i haproxy-node.tar - -# - name: Prepare artifacts -# id : images -# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 -# with: -# command: run -# args: ./catalyst-gateway/tests/+all-images + docker load -i ./all-images/cat-gateway.tar + docker load -i ./all-images/event-db.tar + docker load -i ./all-images/api-tests-runner.tar + docker load -i ./all-images/schemathesis-runner.tar + docker load -i ./all-images/rust-tests-runner.tar + docker load -i ./all-images/event-db-v1.tar + docker load -i ./all-images/haproxy-node.tar + rm -rf ./all-images - name: Rust integration tests if: ${{ steps.load-images.conclusion == 'success' }} @@ -186,10 +179,10 @@ jobs: steps: - uses: actions/checkout@v4 -# - name: Setup SSH Agent -# uses: webfactory/ssh-agent@v0.9.1 -# with: -# ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.1 + with: + ssh-private-key: ${{ secrets.QA_REPO_SSH_KEY }} - name: Install Forge uses: input-output-hk/catalyst-forge/actions/install@ci/v1.10.0 @@ -210,34 +203,23 @@ jobs: - name: Load image id: load-images run: | - docker load -i cat-gateway.tar - docker load -i event-db.tar - docker load -i api-tests-runner.tar - docker load -i schemathesis-runner.tar - docker load -i rust-tests-runner.tar - docker load -i event-db-v1.tar - docker load -i haproxy-node.tar - docker load -i cat-devnet.tar - -# - name: Start event-db -# if: always() -# run: | -# docker compose -f catalyst-gateway/tests/docker-compose.yml up event-db - -# - name: Prepare artifacts -# id : images -# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 -# with: -# command: run -# args: ./catalyst-gateway/tests/+all-images + docker load -i ./all-images/cat-gateway.tar + docker load -i ./all-images/event-db.tar + docker load -i ./all-images/api-tests-runner.tar + docker load -i ./all-images/schemathesis-runner.tar + docker load -i ./all-images/rust-tests-runner.tar + docker load -i ./all-images/event-db-v1.tar + docker load -i ./all-images/haproxy-node.tar + docker load -i ./all-images/cat-devnet.tar + rm -rf ./all-images + + - name: Prepare artifacts devnet + id: images-devnet + uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 + with: + command: run + args: ./catalyst-gateway/tests/+images-devnet -# - name: Prepare artifacts devnet -# id: images-devnet -# uses: input-output-hk/catalyst-forge/actions/run@ci/v1.10.0 -# with: -# command: run -# args: ./catalyst-gateway/tests/+images-devnet -# - name: Spin up devnet if: ${{ steps.load-images.conclusion == 'success' }} run: | From 4b9a891957c079e0086297b348fa4ad966739ebd Mon Sep 17 00:00:00 2001 From: januszjanus Date: Thu, 4 Dec 2025 13:51:16 +0100 Subject: [PATCH 89/89] try 2 --- .github/workflows/gateway-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/gateway-tests.yml b/.github/workflows/gateway-tests.yml index 0b4f5e8dd294..79387fff8268 100644 --- a/.github/workflows/gateway-tests.yml +++ b/.github/workflows/gateway-tests.yml @@ -57,6 +57,7 @@ jobs: tests: name: Cat-Gateway integration tests runs-on: ubuntu-latest + needs: build-images steps: - uses: actions/checkout@v4 @@ -176,6 +177,7 @@ jobs: devnet-tests: name: Cat-Gateway devnet integration tests runs-on: ubuntu-latest + needs: build-images steps: - uses: actions/checkout@v4