Skip to content

Submitting workflow to all cloud providers using full sized data #10

Submitting workflow to all cloud providers using full sized data

Submitting workflow to all cloud providers using full sized data #10

name: full-sized tests on cloud providers
run-name: Submitting workflow to all cloud providers using full sized data
on:
release:
types: [published]
workflow_dispatch:
inputs:
test:
description: "Test profile (smaller)"
type: boolean
default: true
test_full:
description: "Full sized test"
type: boolean
default: false
aws:
description: "AWS Batch"
type: boolean
default: true
azure:
description: "Azure Batch"
type: boolean
default: true
aspera:
description: "Use Aspera to download"
type: boolean
default: true
ftp:
description: "Use FTP to download"
type: boolean
default: true
sratools:
description: "Use SRA tools to download"
type: boolean
default: true
jobs:
run-tests:
if: ${{ github.repository == 'nf-core/fetchngs' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
profile:
- test
- test_full
method:
- aspera
- ftp
- sratools
include:
- cloud: aws
compute_env: TOWER_COMPUTE_ENV
workdir: TOWER_BUCKET_AWS
- cloud: azure
compute_env: TOWER_CE_AZURE_CPU
workdir: TOWER_BUCKET_AZURE
steps:
- name: Launch
uses: seqeralabs/action-tower-launch@v2
# If inputs item contains the enabled profile (test or test_full)
# If inputs item contains the cloud provider (aws or azure)
# If is false, we negate and run the job
if: ( !contains(inputs[matrix.profile], 'false') && !contains(inputs[matrix.cloud], 'false') )
with:
run_name: "fetchngs_${{ matrix.profile }}_${{ matrix.method }}-${{ matrix.cloud}}"
profiles: ${{ matrix.profile }}
revision: ${{ github.sha }}
workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }}
compute_env: ${{ secrets[matrix.compute_env] }}
workdir: ${{ secrets[matrix.workdir] }}/work/fetchngs/work-${{ github.sha }}/${{ matrix.profile }}
parameters: |
{
"hook_url": "${{ secrets.MEGATESTS_ALERTS_SLACK_HOOK_URL }}",
"outdir": "${{ secrets[matrix.workdir] }}/fetchngs/results-${{ github.sha }}/${{ matrix.profile }}/"
}
access_token: ${{ secrets.TOWER_ACCESS_TOKEN }}
- uses: actions/upload-artifact@v3
name: Save Logs
if: success() || failure()
with:
name: tower-${{ matrix.profile }}-${{ matrix.cloud }}-${{ matrix.method }}-log
path: |
tower_action_*.log
tower_action_*.json