Skip to content

Commit f8c2f76

Browse files
committed
ci: gate optional DM tests via dm_ready output
1 parent 4960f4e commit f8c2f76

1 file changed

Lines changed: 19 additions & 4 deletions

File tree

.github/workflows/build-wheels.yml

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,27 @@ jobs:
6161
/tmp/test_venv/bin/pip install dist_fixed/*.whl
6262
/tmp/test_venv/bin/python -c "import dmPython; print('dmPython version:', dmPython.version)"
6363
64+
- name: Check DM secrets availability
65+
id: dm_ready
66+
if: ${{ matrix.python-version == '3.10' }}
67+
env:
68+
DM_TEST_HOST: ${{ secrets.DM_TEST_HOST }}
69+
DM_TEST_PORT: ${{ secrets.DM_TEST_PORT }}
70+
DM_TEST_USER: ${{ secrets.DM_TEST_USER }}
71+
DM_TEST_PASSWORD: ${{ secrets.DM_TEST_PASSWORD }}
72+
run: |
73+
if [ -n "$DM_TEST_HOST" ] && [ -n "$DM_TEST_PORT" ] && [ -n "$DM_TEST_USER" ] && [ -n "$DM_TEST_PASSWORD" ]; then
74+
echo "available=true" >> "$GITHUB_OUTPUT"
75+
else
76+
echo "available=false" >> "$GITHUB_OUTPUT"
77+
fi
78+
6479
- name: Build extension for optional integration tests
65-
if: ${{ matrix.python-version == '3.10' && secrets.DM_TEST_HOST != '' && secrets.DM_TEST_PORT != '' && secrets.DM_TEST_USER != '' && secrets.DM_TEST_PASSWORD != '' }}
80+
if: ${{ matrix.python-version == '3.10' && steps.dm_ready.outputs.available == 'true' }}
6681
run: DMPYTHON_SKIP_GO_BUILD=1 python setup.py build_ext --inplace
6782

6883
- name: Run optional DM integration tests
69-
if: ${{ matrix.python-version == '3.10' && secrets.DM_TEST_HOST != '' && secrets.DM_TEST_PORT != '' && secrets.DM_TEST_USER != '' && secrets.DM_TEST_PASSWORD != '' }}
84+
if: ${{ matrix.python-version == '3.10' && steps.dm_ready.outputs.available == 'true' }}
7085
env:
7186
DYLD_LIBRARY_PATH: ${{ github.workspace }}/dpi_bridge
7287
DM_TEST_HOST: ${{ secrets.DM_TEST_HOST }}
@@ -83,14 +98,14 @@ jobs:
8398
python -m pytest -q -m requires_dm tests --cov=. --cov-report=term-missing --cov-report=xml:coverage.xml
8499
85100
- name: Upload optional integration coverage
86-
if: ${{ matrix.python-version == '3.10' && secrets.DM_TEST_HOST != '' && secrets.DM_TEST_PORT != '' && secrets.DM_TEST_USER != '' && secrets.DM_TEST_PASSWORD != '' }}
101+
if: ${{ matrix.python-version == '3.10' && steps.dm_ready.outputs.available == 'true' }}
87102
uses: actions/upload-artifact@v4
88103
with:
89104
name: coverage-wheel-baseline-py${{ matrix.python-version }}
90105
path: coverage.xml
91106

92107
- name: Skip optional integration tests (missing DM secrets)
93-
if: ${{ matrix.python-version == '3.10' && (secrets.DM_TEST_HOST == '' || secrets.DM_TEST_PORT == '' || secrets.DM_TEST_USER == '' || secrets.DM_TEST_PASSWORD == '') }}
108+
if: ${{ matrix.python-version == '3.10' && steps.dm_ready.outputs.available != 'true' }}
94109
run: |
95110
echo "::notice::SKIP_DM_INTEGRATION: DM_TEST_HOST/PORT/USER/PASSWORD secrets are not fully configured."
96111

0 commit comments

Comments
 (0)