@@ -44,21 +44,12 @@ jobs:
4444 test :
4545 runs-on : ${{ matrix.os }}
4646 name : ${{ matrix.os }} python-${{ matrix.python-version }}
47- timeout-minutes : 45
47+ timeout-minutes : 10
4848 strategy :
4949 fail-fast : false
5050 matrix :
5151 os : ['ubuntu-latest']
5252 python-version : ['3.12', '3.14']
53- test-base : ['tests/f']
54- chunk : ['1/8']
55- platform : ['_local_background*']
56-
57- env :
58- # these vars are used by etc/bin/run-functional-tests
59- CYLC_TEST_PLATFORMS : ${{ matrix.platform }}
60- CYLC_COVERAGE : 1
61- REMOTE_PLATFORM : ${{ contains(matrix.platform, '_remote') }}
6253
6354 steps :
6455 - name : Checkout
@@ -81,79 +72,12 @@ jobs:
8172 subversion
8273 tree
8374
84- - name : Create global config
85- run : |
86- CONF_PATH="$HOME/.cylc/flow/8"
87- mkdir -p "$CONF_PATH"
88- touch "$CONF_PATH/global.cylc"
89- ln -s "$CONF_PATH/global.cylc" "$CONF_PATH/global-tests.cylc"
90- echo "GLOBAL_CFG_PATH=${CONF_PATH}/global.cylc" >> "$GITHUB_ENV"
91-
92- - name : Add .github/bin/ to PATH
93- # Sets up mocked mail command & any other custom executables
94- # Adding to $GITHUB_PATH does not work when using setup-micromamba and/or login shell
95- run : |
96- echo "export PATH=\"${{ github.workspace }}/.github/bin:$PATH\"" >> ~/.bash_profile
97-
9875 - name : Install
9976 run : |
10077 pip install -e ."[all]"
10178 mkdir "$HOME/cylc-run"
10279
103- - name : Swarm Configure
104- run : |
105- etc/bin/swarm --yes --debug configure
106-
107- - name : Configure git # Needed by the odd test
108- uses : cylc/release-actions/configure-git@v1
109-
110- - name : Filter Tests
111- env :
112- # NOTE: we only want the CHUNK set in this step else we will
113- # re-chunk tests later when they run
114- CHUNK : ${{ matrix.chunk }}
115- run : |
116- etc/bin/run-functional-tests \
117- --dry \
118- ${{ matrix.test-base }} \
119- > test-file
120- if [[ $REMOTE_PLATFORM == 'true' ]]; then
121- # skip tests that don't configure platform requirements
122- grep -l --color=never REQUIRE_PLATFORM $(cat test-file) > test-file
123- fi
124- echo "====== Filtered tests ======"
125- sort test-file
126-
127- - name : Test
128- id : test
129- timeout-minutes : 30
130- continue-on-error : true
131- run : |
132- echo "finished=false" >> $GITHUB_OUTPUT
133- NPROC=8
134- # NOTE: test base is purposefully un-quoted
135- etc/bin/run-functional-tests \
136- -j "${NPROC}" \
137- --state=save \
138- $(cat test-file) \
139- || (echo "finished=true" >> $GITHUB_OUTPUT && false)
140-
141- - name : Time Out
142- if : steps.test.outcome == 'failure' && steps.test.outputs.finished != 'true'
143- run : |
144- echo '::error:: tests timed-out'
145- # help to identify the tests that were running at the time
146- cylc scan --state=all --format=rich --color-blind
147- # fail the workflow
148- false
149-
150- - name : Debug
151- if : failure() && steps.test.outcome == 'failure'
152- timeout-minutes : 1
153- run : |
154- find "$HOME/cylc-run" -name '*.err' -type f \
155- -exec echo \; -exec echo '====== {} ======' \; -exec cat '{}' \;
156- find "$HOME/cylc-run" -name '*.log' -type f \
157- -exec echo \; -exec echo '====== {} ======' \; -exec cat '{}' \;
158- find "${TMPDIR:-/tmp}/${USER}/cylctb-"* -type f \
159- -exec echo \; -exec echo '====== {} ======' \; -exec cat '{}' \;
80+ - run : |
81+ for i in {1..120}; do
82+ cylc validate ./cylc/flow/etc/tutorial/cylc-forecasting-workflow
83+ done
0 commit comments