v2.2.0 - Chongqing #103
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-core merge CI | |
| # Full version × feature matrix — runs when merging dev → master. | |
| # Job dependency chain: | |
| # test-core-public (1.8.1, fast) → test-core-private (2.1.0, 2.2.0) | |
| # → test-features-matrix (QuantUMS, Parquet × versions) | |
| # If the fast 1.8.1 tests fail, all downstream jobs are skipped. | |
| on: | |
| pull_request: | |
| branches: | |
| - master | |
| - main | |
| release: | |
| types: [published] | |
| workflow_dispatch: | |
| env: | |
| NXF_ANSI_LOG: false | |
| concurrency: | |
| group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" | |
| cancel-in-progress: true | |
| jobs: | |
| # ────────────────────────────────────────────────────────────────────────── | |
| # Stage 1: Core tests with 1.8.1 (public, fast, no auth) | |
| # Must pass before private container tests run. | |
| # ────────────────────────────────────────────────────────────────────────── | |
| test-core-public: | |
| name: "Core [${{ matrix.test_profile }}] DIA-NN=1.8.1" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| test_profile: ["test_dia", "test_dia_dotd"] | |
| env: | |
| NXF_ANSI_LOG: false | |
| CAPSULE_LOG: none | |
| TEST_PROFILE: ${{ matrix.test_profile }} | |
| EXEC_PROFILE: docker | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Set up Nextflow | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: "25.10.4" | |
| - name: Disk space cleanup | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| - name: Run pipeline with test data | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} \ | |
| -profile $TEST_PROFILE,$EXEC_PROFILE \ | |
| --outdir ${TEST_PROFILE}_results | |
| - name: Gather failed logs | |
| if: failure() || cancelled() | |
| run: | | |
| mkdir -p failed_logs | |
| if [ -f "${TEST_PROFILE}_results/pipeline_info/execution_trace.txt" ]; then | |
| failed=$(grep "FAILED" ${TEST_PROFILE}_results/pipeline_info/execution_trace.txt | cut -f 2) | |
| while read -r line ; do cp $(ls work/${line}*/*.log) failed_logs/ || true ; done <<< "$failed" | |
| fi | |
| - name: Set timestamp | |
| if: always() | |
| run: echo "TS=$(date +%s)" >> $GITHUB_ENV | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() || cancelled() | |
| name: Upload failed logs | |
| with: | |
| name: failed_logs_merge_${{ matrix.test_profile }}_v1_8_1_${{ env.TS }} | |
| include-hidden-files: true | |
| path: failed_logs | |
| overwrite: false | |
| if-no-files-found: warn | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| name: Upload log | |
| with: | |
| name: nextflow_merge_${{ matrix.test_profile }}_v1_8_1_${{ env.TS }}.log | |
| include-hidden-files: true | |
| path: .nextflow.log | |
| overwrite: false | |
| if-no-files-found: warn | |
| # ────────────────────────────────────────────────────────────────────────── | |
| # Stage 2a: Core tests with private containers (2.1.0, 2.2.0) | |
| # Only runs after Stage 1 passes. | |
| # ────────────────────────────────────────────────────────────────────────── | |
| test-core-private: | |
| name: "Core [${{ matrix.test_profile }}] DIA-NN=${{ matrix.diann_version }}" | |
| needs: test-core-public | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_profile: ["test_dia", "test_dia_dotd"] | |
| diann_version: ["diann_v2_1_0", "diann_v2_2_0"] | |
| env: | |
| NXF_ANSI_LOG: false | |
| CAPSULE_LOG: none | |
| TEST_PROFILE: ${{ matrix.test_profile }} | |
| DIANN_VERSION: ${{ matrix.diann_version }} | |
| EXEC_PROFILE: docker | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Set up Nextflow | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: "25.10.4" | |
| - name: Log in to GitHub Container Registry | |
| env: | |
| GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} | |
| run: | | |
| if [ -n "$GHCR_TOKEN" ]; then | |
| echo "${{ secrets.GHCR_TOKEN }}" | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin | |
| fi | |
| - name: Disk space cleanup | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| - name: Run pipeline with test data | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} \ | |
| -profile $TEST_PROFILE,$DIANN_VERSION,$EXEC_PROFILE \ | |
| --outdir ${TEST_PROFILE}_${DIANN_VERSION}_results | |
| - name: Gather failed logs | |
| if: failure() || cancelled() | |
| run: | | |
| mkdir -p failed_logs | |
| if [ -f "${TEST_PROFILE}_${DIANN_VERSION}_results/pipeline_info/execution_trace.txt" ]; then | |
| failed=$(grep "FAILED" ${TEST_PROFILE}_${DIANN_VERSION}_results/pipeline_info/execution_trace.txt | cut -f 2) | |
| while read -r line ; do cp $(ls work/${line}*/*.log) failed_logs/ || true ; done <<< "$failed" | |
| fi | |
| - name: Set timestamp | |
| if: always() | |
| run: echo "TS=$(date +%s)" >> $GITHUB_ENV | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() || cancelled() | |
| name: Upload failed logs | |
| with: | |
| name: failed_logs_merge_${{ matrix.test_profile }}_${{ matrix.diann_version }}_${{ env.TS }} | |
| include-hidden-files: true | |
| path: failed_logs | |
| overwrite: false | |
| if-no-files-found: warn | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| name: Upload log | |
| with: | |
| name: nextflow_merge_${{ matrix.test_profile }}_${{ matrix.diann_version }}_${{ env.TS }}.log | |
| include-hidden-files: true | |
| path: .nextflow.log | |
| overwrite: false | |
| if-no-files-found: warn | |
| # ────────────────────────────────────────────────────────────────────────── | |
| # Stage 2b: Feature tests across supported DIA-NN versions | |
| # QuantUMS and Parquet against 2.1.0 and 2.2.0 | |
| # Only runs after Stage 1 passes. | |
| # ────────────────────────────────────────────────────────────────────────── | |
| test-features-matrix: | |
| name: "Feature [${{ matrix.test_profile }}] DIA-NN=${{ matrix.diann_version }}" | |
| needs: test-core-public | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # QuantUMS × {2.1.0, 2.2.0} | |
| - test_profile: test_dia_quantums | |
| diann_version: diann_v2_1_0 | |
| - test_profile: test_dia_quantums | |
| diann_version: diann_v2_2_0 | |
| # Parquet × {2.1.0, 2.2.0} | |
| - test_profile: test_dia_parquet | |
| diann_version: diann_v2_1_0 | |
| - test_profile: test_dia_parquet | |
| diann_version: diann_v2_2_0 | |
| env: | |
| NXF_ANSI_LOG: false | |
| CAPSULE_LOG: none | |
| TEST_PROFILE: ${{ matrix.test_profile }} | |
| DIANN_VERSION: ${{ matrix.diann_version }} | |
| EXEC_PROFILE: docker | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Set up Nextflow | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: "25.10.4" | |
| - name: Log in to GitHub Container Registry | |
| env: | |
| GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} | |
| run: | | |
| if [ -n "$GHCR_TOKEN" ]; then | |
| echo "${{ secrets.GHCR_TOKEN }}" | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin | |
| fi | |
| - name: Disk space cleanup | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| - name: Run pipeline with test data | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} \ | |
| -profile $TEST_PROFILE,$DIANN_VERSION,$EXEC_PROFILE \ | |
| --outdir ${TEST_PROFILE}_${DIANN_VERSION}_results | |
| - name: Gather failed logs | |
| if: failure() || cancelled() | |
| run: | | |
| mkdir -p failed_logs | |
| if [ -f "${TEST_PROFILE}_${DIANN_VERSION}_results/pipeline_info/execution_trace.txt" ]; then | |
| failed=$(grep "FAILED" ${TEST_PROFILE}_${DIANN_VERSION}_results/pipeline_info/execution_trace.txt | cut -f 2) | |
| while read -r line ; do cp $(ls work/${line}*/*.log) failed_logs/ || true ; done <<< "$failed" | |
| fi | |
| - name: Set timestamp | |
| if: always() | |
| run: echo "TS=$(date +%s)" >> $GITHUB_ENV | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() || cancelled() | |
| name: Upload failed logs | |
| with: | |
| name: failed_logs_merge_${{ matrix.test_profile }}_${{ matrix.diann_version }}_${{ env.TS }} | |
| include-hidden-files: true | |
| path: failed_logs | |
| overwrite: false | |
| if-no-files-found: warn | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| name: Upload log | |
| with: | |
| name: nextflow_merge_${{ matrix.test_profile }}_${{ matrix.diann_version }}_${{ env.TS }}.log | |
| include-hidden-files: true | |
| path: .nextflow.log | |
| overwrite: false | |
| if-no-files-found: warn |