Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
5f402c6
import devnet
kukkok3 Sep 11, 2025
8bcd8eb
fix cspell
kukkok3 Sep 11, 2025
49675f8
adds docker compose overlay for localhost
kukkok3 Sep 11, 2025
6b90c98
Merge branch 'main' into feat/runs-schemathesis-on-devnet
kukkok3 Sep 11, 2025
60bbaef
adds devnet test job
kukkok3 Sep 11, 2025
37adedc
Merge branch 'feat/runs-schemathesis-on-devnet' of https://github.com…
kukkok3 Sep 11, 2025
83e8ada
refactor en variables
kukkok3 Sep 12, 2025
780c46d
move env variable
kukkok3 Sep 12, 2025
18e23dc
adds test key
kukkok3 Sep 16, 2025
c16a7d9
comment out uneeded jobs
kukkok3 Sep 16, 2025
621075b
Merge branch 'main' into feat/runs-schemathesis-on-devnet
kukkok3 Sep 16, 2025
5050c0c
adds key
kukkok3 Sep 16, 2025
82a0628
rerun
kukkok3 Sep 16, 2025
ba1527e
comment out cleaning up
kukkok3 Sep 16, 2025
839724c
update
kukkok3 Nov 14, 2025
e6da934
test 1
oldGreg5 Nov 17, 2025
31be0de
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Nov 17, 2025
cf389c3
test 2
oldGreg5 Nov 17, 2025
e0e25fb
test 3
oldGreg5 Nov 17, 2025
b721e18
test 3
oldGreg5 Nov 17, 2025
e6c8b6f
test 3
oldGreg5 Nov 17, 2025
56bf9df
test 3
oldGreg5 Nov 17, 2025
7670832
test 4
oldGreg5 Nov 17, 2025
392c0bd
test 4
oldGreg5 Nov 17, 2025
c928365
test 4
oldGreg5 Nov 17, 2025
046171e
test 4
oldGreg5 Nov 17, 2025
7852adf
test 4
oldGreg5 Nov 17, 2025
b460a05
test 4
oldGreg5 Nov 17, 2025
fba5bc9
test 4
oldGreg5 Nov 17, 2025
ab3d2f0
test 4
oldGreg5 Nov 17, 2025
fff2fb3
test 4
oldGreg5 Nov 17, 2025
fadc618
test 4
oldGreg5 Nov 17, 2025
67d6551
test 4
oldGreg5 Nov 17, 2025
6c522fc
test 4
oldGreg5 Nov 17, 2025
42ea30a
test 4
oldGreg5 Nov 17, 2025
c8eeefa
test 4
oldGreg5 Nov 17, 2025
d1f28aa
test 4
oldGreg5 Nov 17, 2025
aec3139
test 4
oldGreg5 Nov 17, 2025
234d561
test 4
oldGreg5 Nov 17, 2025
db3b65f
test 4
oldGreg5 Nov 17, 2025
b0c2a25
test 4
oldGreg5 Nov 17, 2025
e1fbc47
test 4
oldGreg5 Nov 17, 2025
006031a
test 4
oldGreg5 Nov 17, 2025
061b586
test 5
oldGreg5 Nov 17, 2025
b982250
test 5
oldGreg5 Nov 17, 2025
356901f
test 6
oldGreg5 Nov 18, 2025
d8f1517
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Nov 18, 2025
4631ae2
test 7
oldGreg5 Nov 18, 2025
bf958f5
updates gitignore
kukkok3 Nov 18, 2025
2770b32
use qa 0.0.3
oldGreg5 Nov 25, 2025
9e93c3c
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Nov 25, 2025
0f1ba63
try 1 separate docker compose
oldGreg5 Nov 26, 2025
acbb6f5
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Nov 26, 2025
b4abd68
try 2 separate docker compose
oldGreg5 Nov 26, 2025
691fad6
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Nov 26, 2025
1306457
try 3 separate docker compose
oldGreg5 Nov 26, 2025
f7e6fe4
try 4 separate docker compose
oldGreg5 Nov 26, 2025
f362eaf
try 5 separate docker compose
oldGreg5 Nov 26, 2025
a370821
try 5 separate docker compose
oldGreg5 Nov 26, 2025
4c843d6
try 6 add devnet smoke tests
oldGreg5 Nov 26, 2025
f70be9c
try 7 add devnet smoke tests
oldGreg5 Nov 26, 2025
36327e5
cleanup
oldGreg5 Nov 27, 2025
1420522
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Nov 27, 2025
06d10d1
cleanup
oldGreg5 Nov 27, 2025
c052bc2
cleanup 2
oldGreg5 Nov 27, 2025
fca749c
Merge branch 'refs/heads/main' into feat/runs-schemathesis-on-devnet
oldGreg5 Nov 28, 2025
b9ebb3e
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Dec 1, 2025
ede6f27
cleanup 3
oldGreg5 Dec 1, 2025
2f518c2
Merge remote-tracking branch 'origin/feat/runs-schemathesis-on-devnet…
oldGreg5 Dec 1, 2025
269169a
cleanup 4
oldGreg5 Dec 1, 2025
b0699d9
remove devnet smoke tests
oldGreg5 Dec 1, 2025
7880a71
cleanup 1
oldGreg5 Dec 1, 2025
9e09702
Merge branch 'main' into feat/runs-schemathesis-on-devnet
kukkok3 Dec 2, 2025
ebc3bd3
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Dec 2, 2025
2d2373e
PR comments
oldGreg5 Dec 2, 2025
3d690fb
Merge remote-tracking branch 'origin/feat/runs-schemathesis-on-devnet…
oldGreg5 Dec 2, 2025
380634f
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Dec 2, 2025
24b1fc3
cleanup
oldGreg5 Dec 2, 2025
4450322
cleanup 2
oldGreg5 Dec 2, 2025
e284b2f
cleanup 2
oldGreg5 Dec 2, 2025
900ad2e
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Dec 2, 2025
92d73bc
try build without cache
oldGreg5 Dec 2, 2025
1a61112
try 1
oldGreg5 Dec 2, 2025
655f266
try 2
oldGreg5 Dec 3, 2025
e7a9ecb
try 3, with direct commit hash
oldGreg5 Dec 3, 2025
cdcb3e0
try 3, revert
oldGreg5 Dec 3, 2025
98e1e38
try 4, swap jobs
oldGreg5 Dec 3, 2025
747e435
try 5, no swap, add space clean to devnet
oldGreg5 Dec 3, 2025
6c0a8f8
remove ssh agent from test
kukkok3 Dec 3, 2025
f133546
cleanup
oldGreg5 Dec 4, 2025
20cf26f
ssh agent cleanup try 1
oldGreg5 Dec 4, 2025
7457005
pre build images job, try 1
oldGreg5 Dec 4, 2025
36d69c6
pre build images job, try 2
oldGreg5 Dec 4, 2025
bddf261
Merge branch 'main' into feat/runs-schemathesis-on-devnet
oldGreg5 Dec 4, 2025
70463dd
pre build images job, try 3
oldGreg5 Dec 4, 2025
7513dcc
pre build images job, try 4
oldGreg5 Dec 4, 2025
4f0ad8b
pre build images job, try 5
oldGreg5 Dec 4, 2025
e0ce3af
pre build images job, try 6
oldGreg5 Dec 4, 2025
f161a00
pre build images job, try 7
oldGreg5 Dec 4, 2025
a9281d9
pre build images job, try 7
oldGreg5 Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .config/dictionaries/project.dic
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,7 @@ vsync
wallclock
wasmtime
Wconditional
webfactory
webos
Werror
Wireframes
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ jobs:
needs: [ci, paths-filter]
if: ${{ needs.paths-filter.outputs.catalyst-gateway == 'true' || github.base_ref == 'main'}}
uses: ./.github/workflows/gateway-tests.yml
secrets:
QA_REPO_SSH_KEY: ${{ secrets.QA_REPO_SSH_KEY }}

voices-integration-tests:
needs: [ci, paths-filter]
Expand Down
249 changes: 208 additions & 41 deletions .github/workflows/gateway-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ name: Catalyst Gateway integration tests

on:
workflow_call:
secrets:
QA_REPO_SSH_KEY:
required: true

concurrency:
group: gateway-tests-${{ github.head_ref || github.ref }}
Expand All @@ -12,51 +15,110 @@ 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:
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
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
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: 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 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

- name: Rust integration tests
if: ${{ steps.images.conclusion == 'success' }}
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.images.conclusion == 'success' }}
if: ${{ steps.load-images.conclusion == 'success' }}
run: |
docker compose -f catalyst-gateway/tests/docker-compose.yml up cat-gateway --detach

Expand Down Expand Up @@ -84,12 +146,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:
Expand All @@ -105,21 +161,132 @@ jobs:
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

- name: Collect and upload test reports
uses: actions/upload-artifact@v4
if: success() || failure()
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.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:
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: all-images
path: all-images/

- 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

# - 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
Loading