2121 build_images :
2222
2323 needs : cancel_previous_runs
24- runs-on : ${{ matrix.config.os }}
24+ runs-on : ubuntu-18.04
2525 if : |
2626 !endsWith(github.event.head_commit.message, '# ci skip') &&
2727 (
3535 env :
3636 BRANCH_NAME : " auto_update_docker_${{ github.run_number }}"
3737
38- strategy :
39- fail-fast : false
40- matrix :
41- config :
42- - {name: 'current', os: ubuntu-18.04, python: '3.8' }
43-
4438 steps :
4539 - uses : actions/checkout@v2
4640 with :
4943 - name : Set up Python
5044 uses : actions/setup-python@v2
5145 with :
52- python-version : ${{ matrix.config.python }}
46+ python-version : " 3.8 "
5347
5448 - name : Install package & dependencies
5549 run : |
@@ -126,9 +120,10 @@ jobs:
126120 (
127121 startsWith(github.ref, 'refs/heads') ||
128122 startsWith(github.ref, 'refs/tags') ||
129- github.event.pull_request.draft == false &&
130- !startsWith(github.ref, 'refs/heads/test_docker')
131- )
123+ github.event.pull_request.draft == false
124+ ) &&
125+ !startsWith(github.ref, 'refs/heads/test_docker') &&
126+ !startsWith(github.ref, 'refs/heads/test_benchmark')
132127
133128 steps :
134129
@@ -173,6 +168,13 @@ jobs:
173168 install_renv("docker/openproblems-r-base/r_requirements.txt")
174169 shell : Rscript {0}
175170
171+ - name : Pull Docker images
172+ if : " startsWith(github.ref, 'refs/heads/main') && github.repository == 'openproblems-bio/openproblems'"
173+ run : |
174+ cd workflow
175+ snakemake -j $(nproc) docker_pull
176+ cd ..
177+
176178 - name : Update Docker images
177179 if : " !(startsWith(github.ref, 'refs/heads/main') && github.repository == 'openproblems-bio/openproblems')"
178180 run : |
@@ -195,20 +197,15 @@ jobs:
195197 path : results
196198
197199
198- run_benchmark :
200+ run_test_benchmark :
199201 needs : run_tester
200- runs-on : ${{ matrix.config.os }}
202+ runs-on : ubuntu-18.04
201203 if : >-
202204 always() &&
203205 !endsWith(github.event.head_commit.message, '# ci skip') &&
204206 github.event_name == 'push' &&
205- needs.run_tester.result == 'success'
206-
207- strategy :
208- fail-fast : false
209- matrix :
210- config :
211- - {name: 'current', os: ubuntu-18.04, python: '3.8', java_version: 15 }
207+ needs.run_tester.result == 'success' ||
208+ !startsWith(github.ref, 'refs/heads/test_benchmark')
212209
213210 steps :
214211
@@ -217,25 +214,22 @@ jobs:
217214 fetch-depth : 1000
218215
219216 - name : Install system dependencies
220- if : runner.os == 'Linux'
221217 run : |
222218 sudo apt-get update -qq || (sudo rm /etc/apt/sources.list.d/* && sudo apt-get update -yqq)
223219 sudo apt-get install -qy libhdf5-dev pandoc gfortran libblas-dev liblapack-dev libedit-dev llvm-dev
224220
225221 - name : Set up Python
226222 uses : actions/setup-python@v2
227223 with :
228- python-version : ${{ matrix.config.python }}
224+ python-version : " 3.8 "
229225
230226 - name : Set up Java ${{ matrix.java_version }}
231227 uses : actions/setup-java@v1
232228 with :
233- java-version : ${{matrix.config.java_version}}
229+ java-version : 15
234230 architecture : x64
235231
236232 - name : Set up environment
237- env :
238- TOWER_ACCESS_TOKEN : ${{ secrets.TOWER_ACCESS_KEY }}
239233 run : |
240234 SCRIPTS_PATH=$(python3 -c 'import os, sysconfig; print(sysconfig.get_path("scripts",f"{os.name}_user"))')
241235 echo "PATH=${SCRIPTS_PATH}:${PATH}" >> $GITHUB_ENV
@@ -249,8 +243,6 @@ jobs:
249243 else
250244 echo "BRANCH=`echo ${{ github.repository }} | awk '{print $1}' FS=/ | head -c 6`-`echo ${{ github.ref }} | sed 's:refs/[a-z]*/::' | sed 's:[/_]:-:g'| head -c 33`"; \
251245 fi >> $GITHUB_ENV
252- # don't use tower if the env var is not set
253- echo "WITH_TOWER=`if [ $TOWER_ACCESS_TOKEN ]; then echo "-with-tower"; else echo; fi`" >> $GITHUB_ENV
254246
255247 - name : Cache Python packages
256248 uses : actions/cache@v2
@@ -306,14 +298,20 @@ jobs:
306298 openproblems-cli --test-hash
307299
308300 - name : Pull Docker images
309- if : " (startsWith(github.ref, 'refs/heads/main') && github.repository == 'openproblems-bio/openproblems')"
301+ if : |
302+ startsWith(github.ref, 'refs/heads/main') &&
303+ github.repository == 'openproblems-bio/openproblems'
310304 run : |
311305 cd workflow
312306 snakemake -j $(nproc) docker_pull
313307 cd ..
314308
315309 - name : Build Docker images
316- if : " !(startsWith(github.ref, 'refs/heads/main') && github.repository == 'openproblems-bio/openproblems')"
310+ if : |
311+ !(
312+ startsWith(github.ref, 'refs/heads/main') &&
313+ github.repository == 'openproblems-bio/openproblems'
314+ )
317315 run : |
318316 cd workflow
319317 snakemake -j $(nproc) docker
@@ -338,13 +336,15 @@ jobs:
338336 AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
339337 AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
340338 TOWER_ACCESS_TOKEN : ${{ secrets.TOWER_ACCESS_KEY }}
341- AWS_DEFAULT_REGION : us-west-2
342339 TOWER_WORKSPACE_ID : 53907369739130
340+ AWS_DEFAULT_REGION : us-west-2
343341 NXF_DEFAULT_DSL : 1
344342 run : |
345343 RUN_NAME="$(echo "$BRANCH" | sed "s/[^a-z]//g")_$(git rev-parse --short HEAD)_${GITHUB_RUN_ATTEMPT}"
346344 cd /mnt/openproblems-nextflow/cwd/${BRANCH}
347- nextflow run $WITH_TOWER \
345+ nextflow run \
346+ -revision v1.2 \
347+ -with-tower \
348348 -ansi-log false -resume \
349349 -profile aws,test \
350350 -work-dir "/mnt/openproblems-nextflow/work/${BRANCH}" \
@@ -364,7 +364,11 @@ jobs:
364364 path : /mnt/openproblems-nextflow/cwd/${{ env.BRANCH }}/.nextflow.log
365365
366366 - name : AWS ECR cleanup
367- if : success() && !startsWith(github.ref, 'refs/heads/main')
367+ if : |
368+ !(
369+ startsWith(github.ref, 'refs/heads/main') &&
370+ github.repository == 'openproblems-bio/openproblems'
371+ )
368372 env :
369373 AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
370374 AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -375,7 +379,10 @@ jobs:
375379 done
376380
377381 - name : AWS S3 cleanup
378- if : success() || startsWith(github.ref, 'refs/heads/main') || startsWith(github.ref, 'refs/tags')
382+ if : |
383+ success() ||
384+ startsWith(github.ref, 'refs/heads/main') ||
385+ startsWith(github.ref, 'refs/tags')
379386 env :
380387 AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
381388 AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -385,21 +392,42 @@ jobs:
385392 aws s3 rm --recursive "s3://openproblems-nextflow/bucket/${{ env.BRANCH }}"
386393 aws s3 rm --recursive "s3://openproblems-nextflow/cwd/${{ env.BRANCH }}"
387394
395+ run_full_benchmark :
396+ needs : run_test_benchmark
397+ runs-on : ubuntu-latest
398+ if : >-
399+ always() &&
400+ (needs.run_test_benchmark.result == 'success' || needs.run_test_benchmark.result == 'skipped') &&
401+ !endsWith(github.event.head_commit.message, '# ci skip') &&
402+ github.event_name == 'push' &&
403+ (
404+ startsWith(github.ref, 'refs/tags') ||
405+ startsWith(github.ref, 'refs/heads/test_benchmark')
406+ )
407+
408+ steps :
409+
388410 - name : Run full benchmark
389- if : |
390- (startsWith(github.ref, 'refs/heads/test_benchmark') || startsWith(github.ref, 'refs/tags')) &&
391- github.repository == 'openproblems-bio/openproblems'
411+ env :
412+ TOWER_WATCH_URL : https://tower.nf/orgs/openproblems-bio/workspaces/openproblems-bio/watch
413+ TOWER_WORKSPACE_ID : 53907369739130
392414 run : |
393415 generate_parameters()
394416 {
395- cat <<EOF
417+ cat <<EOF
396418 {
397- "branch": "main",
398- "github_pat": "${{ secrets.GH_WORKFLOW_PAT }}"
419+ "params" : {
420+ "branch": "main"
421+ }
399422 }
400- EOF
423+ EOF
401424 }
402- curl -H "Content-Type: application/json" \
403- -H "Authorization: Bearer ${{ secrets.TOWER_ACCESS_KEY }}" \
404- https://api.tower.nf/actions/2kxpi4Q0zNCy6wPExD8yD5/launch?workspaceId=53907369739130 \
405- --data "$(generate_parameters)"
425+ WORKFLOW_ID=$(
426+ curl -H "Content-Type: application/json" \
427+ -H "Authorization: Bearer ${{ secrets.TOWER_ACCESS_KEY }}" \
428+ https://api.tower.nf/actions/2kxpi4Q0zNCy6wPExD8yD5/launch?workspaceId=${TOWER_WORKSPACE_ID} \
429+ --data "$(generate_parameters)" | \
430+ tee /dev/stderr | \
431+ sed 's/.*"\([a-zA-Z0-9]*\)".*/\1/'
432+ )
433+ echo "Full benchmark running at ${TOWER_WATCH_URL}/${WORKFLOW_ID}" >> $GITHUB_STEP_SUMMARY
0 commit comments