|
12 | 12 | workflow_dispatch: |
13 | 13 |
|
14 | 14 | jobs: |
| 15 | + pre-test: |
| 16 | + runs-on: ubuntu-latest |
| 17 | + outputs: |
| 18 | + selfhosted: 0 |
| 19 | + #selfhosted: ${{ github.repository_owner == 'FreeRADIUS' && '1' || '0' }} |
| 20 | + steps: |
| 21 | + - run: echo "Pre-test job; checking if using self-hosted runners" |
| 22 | + |
15 | 23 | test-5hs-autoaccept: |
16 | | - runs-on: ubuntu-24.04 |
| 24 | + needs: pre-test |
| 25 | + runs-on: ${{ needs.pre-test.outputs.selfhosted == '1' && 'self-hosted' || 'ubuntu-24.04' }} |
17 | 26 |
|
18 | 27 | env: |
19 | | - DOCKER_BUILD_OS: ubuntu22 |
| 28 | + MULTI_SERVER_ENV_DOCKER_BUILD_OS: ubuntu24 |
20 | 29 | MULTI_SERVER_TEST_LOG: build/tests/multi-server/freeradius-multi-server/multi_server_test.log |
21 | 30 |
|
22 | 31 | steps: |
@@ -61,31 +70,34 @@ jobs: |
61 | 70 | sudo mk-build-deps -irt"apt-get -y --no-install-recommends" scripts/ci/extra-packages.debian.control |
62 | 71 |
|
63 | 72 | - name: Build Docker image for multi-server test environment |
| 73 | + if: ${{ needs.pre-test.outputs.selfhosted != '1' }} |
64 | 74 | run: | |
65 | 75 | ./configure |
66 | | - make docker.${DOCKER_BUILD_OS}.build |
| 76 | + make docker.${MULTI_SERVER_ENV_DOCKER_BUILD_OS}.build |
67 | 77 |
|
68 | 78 | # List all images |
69 | 79 | docker images --all |
70 | 80 |
|
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 |
| 81 | + # Tag freeradius build image using using a non-OS specific name to be used with the multi-server docker compose environment. |
| 82 | + docker tag freeradius4/${MULTI_SERVER_ENV_DOCKER_BUILD_OS}:latest freeradius-build:latest |
| 83 | +
|
| 84 | + - name: Get pre-built Docker image for self-hosted runner test |
| 85 | + if: ${{ needs.pre-test.outputs.selfhosted == '1' }} |
| 86 | + run: | |
| 87 | + docker pull docker.internal.networkradius.com/self-hosted-${MULTI_SERVER_ENV_DOCKER_BUILD_OS}:latest |
73 | 88 |
|
74 | | - docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}' | grep -E "freeradius4/${DOCKER_BUILD_OS}|fr-build-${DOCKER_BUILD_OS}" |
| 89 | + # Tag freeradius build image using using a non-OS specific name to be used with the multi-server docker compose environment. |
| 90 | + docker tag docker.internal.networkradius.com/self-hosted-${MULTI_SERVER_ENV_DOCKER_BUILD_OS}:latest freeradius-build:latest |
75 | 91 |
|
76 | 92 | - name: Run test-5hs-autoaccept test |
| 93 | + if: ${{ needs.pre-test.outputs.selfhosted != '1' }} |
77 | 94 | run: | |
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." |
| 95 | + if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -q "^freeradius-build:latest$"; then |
| 96 | + echo "Error: freeradius-build:latest Docker image not found and required for multi-server test environment." |
80 | 97 | exit 1 |
81 | 98 | fi |
82 | 99 | make -f src/tests/multi-server/all.mk test-5hs-autoaccept |
83 | 100 |
|
84 | | - # Display contents of the multi-server test log file for debugging purposes, |
85 | | - # regardless of test success or failure. |
86 | | - echo "============ ${MULTI_SERVER_TEST_LOG} ============" |
87 | | - cat "${MULTI_SERVER_TEST_LOG}" |
88 | | -
|
89 | 101 | - name: Verify test results |
90 | 102 | shell: bash |
91 | 103 | run: | |
|
0 commit comments