Skip to content

TES tags support + Configurable polling interval + Log request URL on error #81

TES tags support + Configurable polling interval + Log request URL on error

TES tags support + Configurable polling interval + Log request URL on error #81

Workflow file for this run

name: nf-ga4gh CI
on:
push:
branches:
- 'master'
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:
nextflow_version: [
'25.10',
]
java_version: [
21,
]
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: |
# https://github.com/ohsu-comp-bio/funnel/releases/tag/v0.11.8
curl -fsSL https://ohsu-comp-bio.github.io/funnel/install.sh | bash -s -- v0.11.8
- name: Start TES Server
run: |
funnel server run > funnel.log 2>&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'
container = 'ubuntu:latest'
}
params {
// 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