feat: Add initial support for DRS inputs/outputs (drs://)
#124
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: nf-ga4gh CI | |
| on: | |
| push: | |
| branches: | |
| - 'main' | |
| pull_request: | |
| types: [opened, reopened, synchronize] | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: Build nf-ga4gh | |
| if: "!contains(github.event.head_commit.message, '[ci skip]')" | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java_version: [17, 21] | |
| steps: | |
| - name: Environment | |
| run: env | sort | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| - name: Setup Java ${{ matrix.java_version }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: ${{matrix.java_version}} | |
| distribution: 'temurin' | |
| cache: 'gradle' | |
| - name: Unit tests | |
| run: make test | |
| env: | |
| GRADLE_OPTS: '-Dorg.gradle.daemon=false' | |
| e2e-test: | |
| needs: build | |
| name: Test nf-ga4gh | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java_version: [21] | |
| nextflow_version: ['25.10'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| - name: Setup Java ${{ matrix.java_version }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: ${{ matrix.java_version }} | |
| distribution: 'temurin' | |
| cache: 'gradle' | |
| - name: Install Nextflow ${{ matrix.nextflow_version }} | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: ${{ matrix.nextflow_version }} | |
| - name: Install Plugin | |
| run: | | |
| make install | |
| - name: Install TES Server | |
| run: | | |
| # Pinning install script below to stable commit for security/reproducibility | |
| # Ref: https://docs.github.com/en/actions/reference/security/secure-use#using-third-party-actions | |
| # Release: https://github.com/calypr/funnel/releases/tag/v0.11.8 | |
| INSTALL_SCRIPT=https://raw.githubusercontent.com/calypr/funnel/4103475e492dec1fd853e9863d0caad15fc504c0/install.sh | |
| curl -fsSL $INSTALL_SCRIPT | bash -s -- v0.11.8 | |
| - name: Start TES Server | |
| run: | | |
| set -euo pipefail | |
| nohup funnel server run > funnel.log 2>&1 & | |
| echo $! > funnel.pid | |
| for i in $(seq 1 10); do | |
| if curl -fsS http://localhost:8000/service-info >/dev/null 2>&1; then | |
| echo "Funnel server started" | |
| exit 0 | |
| fi | |
| sleep 1 | |
| done | |
| echo "Funnel server failed to start!" | |
| cat funnel.log | |
| exit 1 | |
| - name: Get plugin version | |
| shell: bash | |
| run: | | |
| PLUGIN_VERSION="$(cat VERSION)" | |
| echo "PLUGIN_VERSION=${PLUGIN_VERSION}" >> "$GITHUB_ENV" | |
| echo "Using plugin version: ${PLUGIN_VERSION}" | |
| - name: Install nf-canary | |
| run: | | |
| cat <<EOF > nextflow.config | |
| // Nextflow config file for running on TES Backend | |
| plugins { | |
| id 'nf-ga4gh@${PLUGIN_VERSION}' | |
| } | |
| process { | |
| executor = 'tes' | |
| // Pinning to recent LTS release for stability/security | |
| container = 'ubuntu:24.04' | |
| } | |
| tes { | |
| endpoint = 'http://localhost:8000' | |
| basicUsername = null | |
| basicPassword = null | |
| } | |
| report.enabled = true | |
| timeline.enabled = true | |
| EOF | |
| - name: Run nf-canary | |
| run: | | |
| export NXF_ANSI_LOG=false | |
| nextflow run seqeralabs/nf-canary | |
| - name: Stage Reports | |
| if: always() | |
| run: | | |
| mkdir -p $GITHUB_WORKSPACE/results | |
| # Nextflow Logs | |
| cp -f report.html timeline.html .nextflow.log $GITHUB_WORKSPACE/results/ || true | |
| # Funnel Logs | |
| cp -f $GITHUB_WORKSPACE/funnel.log $GITHUB_WORKSPACE/results/ || true | |
| - name: Upload Reports | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: test-results-nxf-${{ matrix.nextflow_version }}-java-${{ matrix.java_version }} | |
| path: results/ | |
| retention-days: 7 |