Skip to content

Commit e484e8a

Browse files
fix(ci): drop nf-core lint job without .nf-core.yml; document private CA on Platform
- Remove the nf-core pipelines lint step from linting.yml: dev dropped .nf-core.yml in ca70336, which broke the workflow (empty nf-core install and missing config). - Rename workflow to Pipeline linting; keep action pins aligned with Renovate targets. - Add README guidance for private CA in task containers using current process names. - Fix editorconfig continuation indent in NF_AGGREGATE workflow warning. Co-authored-by: Florian Wuennemann <flowuenne@gmail.com>
1 parent 71b00d7 commit e484e8a

3 files changed

Lines changed: 23 additions & 62 deletions

File tree

.github/workflows/linting.yml

Lines changed: 2 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
name: nf-core linting
2-
# This workflow is triggered on pushes and PRs to the repository.
3-
# It runs the `nf-core pipelines lint` and markdown lint tests to ensure
4-
# that the code meets the nf-core guidelines.
1+
name: Pipeline linting
2+
# Runs pre-commit (Prettier, editorconfig, etc.) on pushes to dev and on pull requests.
53
on:
64
push:
75
branches:
@@ -26,58 +24,3 @@ jobs:
2624

2725
- name: Run pre-commit
2826
run: pre-commit run --all-files
29-
30-
nf-core:
31-
runs-on: ubuntu-latest
32-
steps:
33-
- name: Check out pipeline code
34-
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
35-
36-
- name: Install Nextflow
37-
uses: nf-core/setup-nextflow@v2
38-
39-
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
40-
with:
41-
python-version: "3.12"
42-
architecture: "x64"
43-
44-
- name: read .nf-core.yml
45-
uses: pietrobolcato/action-read-yaml@1.1.0
46-
id: read_yml
47-
with:
48-
config: ${{ github.workspace }}/.nf-core.yml
49-
50-
- name: Install dependencies
51-
run: |
52-
python -m pip install --upgrade pip
53-
pip install nf-core==${{ steps.read_yml.outputs['nf_core_version'] }}
54-
55-
- name: Run nf-core pipelines lint
56-
if: ${{ github.base_ref != 'master' }}
57-
env:
58-
GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }}
59-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60-
GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }}
61-
run: nf-core -l lint_log.txt pipelines lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md
62-
63-
- name: Run nf-core pipelines lint --release
64-
if: ${{ github.base_ref == 'master' }}
65-
env:
66-
GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }}
67-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68-
GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }}
69-
run: nf-core -l lint_log.txt pipelines lint --release --dir ${GITHUB_WORKSPACE} --markdown lint_results.md
70-
71-
- name: Save PR number
72-
if: ${{ always() }}
73-
run: echo ${{ github.event.pull_request.number }} > PR_number.txt
74-
75-
- name: Upload linting log file artifact
76-
if: ${{ always() }}
77-
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4
78-
with:
79-
name: linting-logs
80-
path: |
81-
lint_log.txt
82-
lint_results.md
83-
PR_number.txt

README.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The pipeline fetches run data from the Seqera Platform API and generates benchma
1919

2020
- [Nextflow](https://www.nextflow.io/docs/latest/getstarted.html#installation) >=25.10.0
2121
- Account in [Seqera Platform](https://seqera.io/platform/)
22-
- [Access token](https://docs.seqera.io/platform/23.3.0/api/overview#authentication) which is your personal authorization token for the Seqera Platform CLI. This can be created in the user menu under **Your tokens**. Export the token as a shell variable directly into your terminal if running the pipelie locally. You will not need to set this if running the pipeline within the Seqera Platform as it will automatically be inherited from the executing environment.
22+
- [Access token](https://docs.seqera.io/platform/23.3.0/api/overview#authentication) which is your personal authorization token for the Seqera Platform CLI. This can be created in the user menu under **Your tokens**. Export the token as a shell variable directly into your terminal if running the pipeline locally. You will not need to set this if running the pipeline within the Seqera Platform as it will automatically be inherited from the executing environment.
2323

2424
```bash
2525
export TOWER_ACCESS_TOKEN=<your access token>
@@ -46,7 +46,25 @@ nextflow run seqeralabs/nf-aggregate \
4646
-profile docker
4747
```
4848

49-
If you are using a Seqera Platform Enterprise instance that is secured with a private CA SSL certificate not recognized by default Java certificate authorities, you can specify a custom `cacerts` store path through the `--java_truststore_path` parameter and optionally, a password with the `--java_truststore_password`. This certificate will be used to achieve connectivity with your Seqera Platform instance through API and CLI.
49+
If you are using a Seqera Platform Enterprise instance that is secured with a private CA SSL certificate not recognized by default Java certificate authorities, you can specify a custom `cacerts` store path through the `--java_truststore_path` parameter and optionally, a password with the `--java_truststore_password`. This configures the Nextflow JVM used for Seqera Platform API access (see `lib/SeqeraApi.groovy`).
50+
51+
### Seqera Platform Enterprise with a private CA (containers)
52+
53+
For API access from Nextflow, `--java_truststore_path` / `--java_truststore_password` are usually sufficient. Task containers may still lack your private CA when they open TLS connections. As a workaround, add the following under **Advanced options → Nextflow config** in Seqera Platform (replace `tower-server-url` with your Seqera host name only, without `https://`):
54+
55+
```groovy
56+
process {
57+
withName: /NORMALIZE_BENCHMARK_JSONL|AGGREGATE_BENCHMARK_REPORT_DATA|RENDER_BENCHMARK_REPORT|EXTRACT_TARBALL/ {
58+
beforeScript = '''
59+
keytool -printcert -rfc -sslserver tower-server-url:443 > PRIVATE_CERT.pem
60+
keytool -importcert -alias seqera-ca -file PRIVATE_CERT.pem -keystore truststore.jks -storepass changeit -noprompt
61+
export JAVA_TOOL_OPTIONS="-Djavax.net.ssl.trustStore=$(pwd)/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit"
62+
'''
63+
}
64+
}
65+
```
66+
67+
This downloads the server certificate, builds a small JKS truststore in the task work directory, and points the JVM inside the task at it.
5068

5169
### Benchmark reports
5270

workflows/nf_aggregate/main.nf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ workflow NF_AGGREGATE {
3333
ch_split.api.count().subscribe { n ->
3434
if (n > 0) {
3535
log.warn "Found ${n} API run(s) but --generate_benchmark_report is not enabled. " +
36-
"API runs will not produce any output. Enable --generate_benchmark_report to process them."
36+
"API runs will not produce any output. Enable --generate_benchmark_report to process them."
3737
}
3838
}
3939
}

0 commit comments

Comments
 (0)