1- name : Run integration checkout test
1+ name : Build and run tests
22on :
33 push :
44 branches :
99
1010jobs :
1111 podman-checkout-test :
12- runs-on : ubuntu-latest
12+ runs-on : ubuntu-24.04
13+ strategy :
14+ fail-fast : false
15+ matrix :
16+ ctrmgr : ['docker', 'podman']
17+ name : Checkout Test (${{matrix.ctrmgr}})
1318 env :
1419 AUTHNZ_EMU : " demo"
20+ COMPOSE_PROFILES : " full"
1521 ANMS_COMPOSE_OPTS : " -f docker-compose.yml"
1622 TESTENV_COMPOSE_OPTS : " -f testenv-compose.yml"
17- DOCKER_CMD : " podman "
23+ DOCKER_CMD : ${{matrix.ctrmgr}}
1824 AUTHNZ_PORT : 8084
1925 AUTHNZ_HTTPS_PORT : 8443
2026 steps :
21- - name : Start Podman API Service
27+ - name : Start Container Service
28+ if : ${{matrix.ctrmgr}} == 'podman'
2229 run : |
2330 systemctl --user start podman.socket
2431 systemctl --user enable podman.socket
25- export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
32+ export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
2633 - name : Versions
2734 run : |
28- podman -v
29- podman ps
30- podman compose ls
35+ ${DOCKER_CMD} -v
36+ ${DOCKER_CMD} compose -v
3137 - name : Checkout repository
3238 uses : actions/checkout@v4
3339 with :
@@ -36,100 +42,40 @@ jobs:
3642 run : |
3743 DOCKER_IMAGE_TAG=$(echo ${{ github.head_ref || github.ref_name }} | sed 's/[^a-zA-Z0-9\-\._]/-/g')
3844 echo "DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG}" >> $GITHUB_ENV
39- - name : Build Main
40- run : podman compose ${ANMS_COMPOSE_OPTS} build
45+ - name : Build ANMS
46+ run : ${DOCKER_CMD} compose ${ANMS_COMPOSE_OPTS} build
4147 - name : Build Agents
42- run : podman compose ${TESTENV_COMPOSE_OPTS} build
48+ run : ${DOCKER_CMD} compose ${TESTENV_COMPOSE_OPTS} build
4349 - name : Build Volume
4450 run : |
4551 ./create_volume.sh ./puppet/modules/apl_test/files/anms/tls
4652 sudo mkdir /run/anms
53+ - name : Pull Images
54+ run : ${DOCKER_CMD} compose ${ANMS_COMPOSE_OPTS} pull --ignore-buildable
4755 - name : Start
4856 run : |
49- podman compose ${TESTENV_COMPOSE_OPTS} up -d --force-recreate --wait
50- podman compose ${ANMS_COMPOSE_OPTS} up -d --force-recreate --wait
57+ # testenv started before
58+ ${DOCKER_CMD} compose ${TESTENV_COMPOSE_OPTS} up -d --force-recreate
59+ ${DOCKER_CMD} compose ${ANMS_COMPOSE_OPTS} up -d --force-recreate --wait --wait-timeout 600
5160 - name : Status
52- run : |
53- for BADSTATUS in stopped restarting; do
54- podman compose ${ANMS_COMPOSE_OPTS} ps --services --filter status=${BADSTATUS} | tee -a /tmp/notgood
55- done
56- # Show hints at what may be wrong
57- for SERVNAME in $(cat /tmp/notgood); do
58- podman compose ${ANMS_COMPOSE_OPTS} logs --tail 50 ${SERVNAME}
59- done
60- # Fail if any names are in the file
61- ! grep '[^[:space:]]' /tmp/notgood
62- - name : Test
63- run : |
64- # Checkout the running gateway+backend
65- podman build -t checkout-test checkout-test
66- podman run --network anms -v $PWD:/mnt -e XUNIT_OUTFILE=/mnt/testresults.xml -e CHECKOUT_BASE_URL=http://authnz/ -e SSL_CERT_FILE=/mnt/puppet/modules/apl_test/files/anms/tls/certs/ammos-ca-bundle.crt checkout-test
67- - name : Stop
6861 if : always()
6962 run : |
70- for OPTS_NAME in TESTENV_COMPOSE_OPTS ANMS_COMPOSE_OPTS; do
71- podman compose ${!OPTS_NAME} down --remove-orphans
72- done
73-
74- docker-checkout-test :
75- runs-on : ubuntu-latest
76- env :
77- DOCKER_BUILDKIT : " 1"
78- AUTHNZ_EMU : " demo"
79- ANMS_COMPOSE_OPTS : " -f docker-compose.yml"
80- TESTENV_COMPOSE_OPTS : " -f testenv-compose.yml"
81- DOCKER_CMD : " docker"
82- steps :
83- - name : Versions
84- run : |
85- docker -v
86- docker ps
87- docker compose ls
88- - name : Checkout repository
89- uses : actions/checkout@v4
90- with :
91- submodules : recursive
92- - name : Tag name env
93- run : |
94- DOCKER_IMAGE_TAG=$(echo ${{ github.head_ref || github.ref_name }} | sed 's/[^a-zA-Z0-9\-\._]/-/g')
95- echo "DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG}" >> $GITHUB_ENV
96- - name : Debug GitHub workspace
97- run : |
98- echo "GITHUB_WORKSPACE=${{ github.workspace }}"
99- ls -al ${{ github.workspace }}
100- - name : Build Main
101- run : |
102- docker compose ${ANMS_COMPOSE_OPTS} build builder-base builder-init builder-acelib
103- docker compose ${ANMS_COMPOSE_OPTS} build
104- - name : Build Agents
105- run : docker compose ${TESTENV_COMPOSE_OPTS} build
106- - name : Build Volume
107- run : |
108- ./create_volume.sh ./puppet/modules/apl_test/files/anms/tls
109- sudo mkdir /run/anms
110- - name : Start
111- run : |
112- docker compose ${TESTENV_COMPOSE_OPTS} up -d --force-recreate --wait
113- docker compose ${ANMS_COMPOSE_OPTS} up -d --force-recreate --wait
114- - name : Status
115- run : |
63+ ${DOCKER_CMD} compose ${ANMS_COMPOSE_OPTS} ps
11664 for BADSTATUS in stopped restarting; do
117- docker compose ${ANMS_COMPOSE_OPTS} ps --services --filter status=${BADSTATUS} | tee -a /tmp/notgood
65+ ${DOCKER_CMD} compose ${ANMS_COMPOSE_OPTS} ps --services --filter status=${BADSTATUS} | tee -a /tmp/notgood
11866 done
11967 # Show hints at what may be wrong
12068 for SERVNAME in $(cat /tmp/notgood); do
121- docker compose ${ANMS_COMPOSE_OPTS} logs --tail 50 ${SERVNAME}
69+ ${DOCKER_CMD} compose ${ANMS_COMPOSE_OPTS} logs --tail 50 ${SERVNAME}
12270 done
12371 # Fail if any names are in the file
12472 ! grep '[^[:space:]]' /tmp/notgood
12573 - name : Test
126- run : |
127- # Checkout the running gateway+backend
128- docker build -t checkout-test checkout-test
129- docker run --network anms -v $PWD:/mnt -e XUNIT_OUTFILE=/mnt/testresults.xml -e CHECKOUT_BASE_URL=http://authnz/ -e SSL_CERT_FILE=/mnt/puppet/modules/apl_test/files/anms/tls/certs/ammos-ca-bundle.crt checkout-test
74+ run : ./checkout-test/run.sh
13075 - name : Stop
13176 if : always()
13277 run : |
133- for OPTS_NAME in TESTENV_COMPOSE_OPTS ANMS_COMPOSE_OPTS; do
134- docker compose ${!OPTS_NAME} down --remove-orphans
78+ # testenv stopped after
79+ for OPTS_NAME in ANMS_COMPOSE_OPTS TESTENV_COMPOSE_OPTS; do
80+ ${DOCKER_CMD} compose ${!OPTS_NAME} down --remove-orphans
13581 done
0 commit comments