Skip to content

Commit 01f145e

Browse files
committed
Adding a final step to verify the results from the multi-server test logs. Also using env variables to make it easy to change the OS used for the docker build.
1 parent d5d71ac commit 01f145e

1 file changed

Lines changed: 29 additions & 6 deletions

File tree

.github/workflows/ci-multi-server-tests.yml

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ on:
1414
jobs:
1515
test-5hs-autoaccept:
1616
runs-on: ubuntu-24.04
17+
18+
env:
19+
DOCKER_BUILD_OS: ubuntu22
20+
MULTI_SERVER_TEST_LOG: build/tests/multi-server/freeradius-multi-server/multi_server_test.log
21+
1722
steps:
1823
# Checkout, but defer pulling LFS objects until we've restored the cache
1924
- uses: actions/checkout@v4
@@ -58,20 +63,38 @@ jobs:
5863
- name: Build Docker image for multi-server test environment
5964
run: |
6065
./configure
61-
make docker.ubuntu22.build
66+
make docker.${DOCKER_BUILD_OS}.build
6267
6368
# List all images
6469
docker images --all
6570
66-
# Retag image to what the compose/test harness expects
67-
docker tag freeradius4/ubuntu22:latest fr-build-ubuntu22:latest
71+
# Retag image to what the multi-server test's docker compose environment expects
72+
docker tag freeradius4/${DOCKER_BUILD_OS}:latest fr-build-${DOCKER_BUILD_OS}:latest
6873
69-
docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}' | grep -E 'freeradius4/ubuntu22|fr-build-ubuntu22'
74+
docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}' | grep -E "freeradius4/${DOCKER_BUILD_OS}|fr-build-${DOCKER_BUILD_OS}"
7075
7176
- name: Run test-5hs-autoaccept test
7277
run: |
73-
if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -q '^fr-build-ubuntu22:latest$'; then
74-
echo "Error: fr-build-ubuntu22:latest Docker image not found and required for multi-server test environment."
78+
if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -q "^fr-build-${DOCKER_BUILD_OS}:latest$"; then
79+
echo "Error: fr-build-${DOCKER_BUILD_OS}:latest Docker image not found and required for multi-server test environment."
7580
exit 1
7681
fi
7782
make -f src/tests/multi-server/all.mk test-5hs-autoaccept
83+
84+
- name: Verify test results
85+
run: |
86+
echo "==== ${MULTI_SERVER_TEST_LOG} ===="
87+
cat "${MULTI_SERVER_TEST_LOG}"
88+
89+
if grep -q '\[Failed\]' "${MULTI_SERVER_TEST_LOG}"; then
90+
echo "Test failed: Found [Failed] in log"
91+
grep '\[Failed\]' "${MULTI_SERVER_TEST_LOG}"
92+
exit 1
93+
fi
94+
95+
if ! grep -q '\[Passed\] Matched:' "${MULTI_SERVER_TEST_LOG}"; then
96+
echo "Test failed: No [Passed] Matched: found in log"
97+
exit 1
98+
fi
99+
100+
echo "Test results verified: No [Failed] found and at least one [Passed] Matched: present."

0 commit comments

Comments
 (0)