Skip to content

Commit be4eca9

Browse files
authored
Merge branch 'master' into 6158_azcopy_hides_error_message
2 parents cfdf0cb + ae07c96 commit be4eca9

File tree

23 files changed

+341
-102
lines changed

23 files changed

+341
-102
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Security SCA scan for branch
2+
description: Scan nextflow branch for security vulnerabilities on third-party dependencies
3+
4+
inputs:
5+
branch:
6+
description: The branch to scan for security vulnerabilities
7+
required: true
8+
9+
runs:
10+
using: "composite"
11+
steps:
12+
- name: Checkout repository first
13+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
14+
15+
- name: Checkout target branch
16+
if: ${{ inputs.branch != '' }}
17+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
18+
with:
19+
ref: ${{ inputs.branch }}
20+
fetch-depth: 0
21+
path: target-branch
22+
23+
- name: Setup Java
24+
uses: actions/setup-java@v4
25+
with:
26+
java-version: ${{ inputs.java_version || '21' }}
27+
distribution: 'temurin'
28+
architecture: x64
29+
cache: gradle
30+
31+
- name: Compile
32+
shell: bash
33+
run: |
34+
if [ -d target-branch ]; then
35+
cd target-branch
36+
fi
37+
make assemble
38+
39+
- name: assume role
40+
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df #v4.2.1
41+
with:
42+
aws-region: "eu-west-1"
43+
role-to-assume: "arn:aws:iam::730335503331:role/AmazonInspectorScanRoleForNextflow"
44+
45+
- name: Run SCA scan
46+
id: inspector
47+
uses: aws-actions/vulnerability-scan-github-action-for-amazon-inspector@5dc8a4bafed85c4c3d7070b4a7ada5b9d94041e3 #v1.2.1
48+
with:
49+
artifact_type: "repository"
50+
artifact_path: ${{ inputs.branch != '' && './target-branch' || '.' }}
51+
display_vulnerability_findings: "enabled"
52+
critical_threshold: 1
53+
high_threshold: 1
54+
55+
- name: On vulnerability threshold exceeded
56+
run: exit ${{ steps.inspector.outputs.vulnerability_threshold_exceeded }}
57+
shell: bash
58+
59+
60+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Security SCA Scan Cron weekly
2+
# This workflow runs a security scan on the specified branches of the Nextflow repository once a week
3+
4+
on:
5+
schedule:
6+
- cron: '0 0 * * 0'
7+
8+
jobs:
9+
security-scan:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
id-token: write
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
branch:
18+
- "STABLE-24.10.x"
19+
- "STABLE-25.04.x"
20+
21+
steps:
22+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
23+
- name: Run Security SCA Scan
24+
uses: ./.github/actions/security-scan-branch
25+
with:
26+
branch: ${{ matrix.branch }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Security SCA Scan Cron weekly
2+
# This workflow runs a security scan on master push
3+
4+
on:
5+
push:
6+
branches:
7+
- master
8+
jobs:
9+
security-scan:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
id-token: write
14+
15+
steps:
16+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
17+
- name: Run Security SCA Scan
18+
uses: ./.github/actions/security-scan-branch

changelog.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
NEXTFLOW CHANGE-LOG
22
===================
3+
25.04.4 - 16 Jun 2024
4+
- Fix bug in generated Groovy code (#6082) [ead2f320]
5+
- Fix default imports in included configs (#6096) [831a577b]
6+
- Fix variable checking in v2 config parser (#6097) [686ff608]
7+
- Sort linter errors/warnings by source location (#6098) [f51f339c]
8+
9+
24.10.8 - 6 Jun 2025
10+
- Add Fusion license validation [02b4dd74]
11+
- Bump nf-wave@1.7.5-patch1 [cf6af9c5]
12+
- Bump nf-tower@1.9.3-patch1 [bdef2177]
13+
14+
24.04.5 - 6 Jun 2025
15+
- Add Fusion license validation [cb7210b9]
16+
- Bump nf-wave@1.4.2-patch2 [69b63342]
17+
- Bump nf-tower@1.9.1-patch1 [8bfdc673]
18+
319
25.05.0-edge - 2 Jun 2025
420
- Add Failsafe retry mechanism in K8s (#6083) [9e675c6a]
521
- Add Platform info to Fusion license (#6142) [75f1bc52]
@@ -26,6 +42,11 @@ NEXTFLOW CHANGE-LOG
2642
- Bump nf-google@1.22.0 [0f6498f1]
2743
- Bump nf-azure@1.17.0 [0b491840]
2844

45+
25.04.3 - 2 Jun 2025
46+
- Add Platform info to Fusion license (#6142) [375db65a]
47+
- Force overwritting to trace file (#6105) [59e9d88d]
48+
- Bump nf-tower@1.11.3 [f7509bce]
49+
2950
25.04.2 - 13 May 2025
3051
- Add check subcommand in lineage (#6074) [5ba67bca]
3152
- Fix issues with `lint` console output (#6064) [7405f513]

docs/aws.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ Minimal permissions policies to be attached to the AWS account used by Nextflow
8686
"ecr:ListTagsForResource"
8787
```
8888

89+
Alternatively, you can use AWS provided `AmazonEC2ContainerRegistryReadOnly` managed policy.
90+
8991
:::{note}
9092
If you are running Fargate or Fargate Spot, you may need the following policies in addition to the listed above:
9193
```json

docs/reference/config.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ This page lists all of the available settings in the {ref}`Nextflow configuratio
88

99
## Unscoped options
1010

11+
`bucketDir`
12+
: The remote work directory used by hybrid workflows. Equivalent to the `-bucket-dir` option of the `run` command.
13+
1114
`cleanup`
1215
: If `true`, on a successful completion of a run all files in *work* directory are automatically deleted.
1316

docs/reference/process.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -848,7 +848,7 @@ process hello {
848848
errorStrategy 'retry'
849849
maxSubmitAwait '10 mins'
850850
maxRetries 3
851-
queue "${task.submitAttempt==1 : 'spot-compute' : 'on-demand-compute'}"
851+
queue "${task.submitAttempt==1 ? 'spot-compute' : 'on-demand-compute'}"
852852
853853
script:
854854
"""

modules/nextflow/src/main/groovy/nextflow/conda/CondaCache.groovy

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,6 @@ class CondaCache {
166166
str.endsWith('.txt') && !str.contains('\n')
167167
}
168168

169-
static protected String sipHash(CharSequence data) {
170-
Hashing
171-
.sipHash24()
172-
.newHasher()
173-
.putUnencodedChars(data)
174-
.hash()
175-
.toString()
176-
}
177-
178-
static protected String sipHash(Path path) {
179-
sipHash(path.toAbsolutePath().normalize().toString())
180-
}
181-
182169
/**
183170
* Get the path on the file system where store a Conda environment
184171
*
@@ -200,7 +187,6 @@ class CondaCache {
200187
try {
201188
final path = condaEnv as Path
202189
content = path.text
203-
name = 'env-' + sipHash(path)
204190

205191
}
206192
catch( NoSuchFileException e ) {
@@ -214,7 +200,6 @@ class CondaCache {
214200
try {
215201
final path = condaEnv as Path
216202
content = path.text
217-
name = 'env-' + sipHash(path)
218203
}
219204
catch( NoSuchFileException e ) {
220205
throw new IllegalArgumentException("Conda environment file does not exist: $condaEnv")
@@ -284,6 +269,11 @@ class CondaCache {
284269

285270
@PackageScope
286271
Path createLocalCondaEnv0(String condaEnv, Path prefixPath) {
272+
if( prefixPath.isDirectory() ) {
273+
log.debug "${binaryName} found local env for environment=$condaEnv; path=$prefixPath"
274+
return prefixPath
275+
}
276+
287277
log.info "Creating env using ${binaryName}: $condaEnv [cache $prefixPath]"
288278

289279
String opts = createOptions ? "$createOptions " : ''

modules/nextflow/src/main/groovy/nextflow/config/ConfigValidator.groovy

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ class ConfigValidator {
3636
* Hidden options added by ConfigBuilder
3737
*/
3838
private static final List<String> hiddenOptions = List.of(
39-
'bucketDir',
4039
'cacheable',
4140
'dumpChannels',
4241
'libDir',

modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package nextflow.scm
1818

19+
import java.net.http.HttpResponse
1920
import java.util.regex.Pattern
2021

2122
import groovy.transform.CompileDynamic
@@ -162,14 +163,11 @@ final class AzureRepositoryProvider extends RepositoryProvider {
162163
*
163164
* @param connection A {@link HttpURLConnection} connection instance
164165
*/
165-
protected checkResponse( HttpURLConnection connection ) {
166-
167-
if (connection.getHeaderFields().containsKey("x-ms-continuationtoken")) {
168-
this.continuationToken = connection.getHeaderField("x-ms-continuationtoken");
169-
} else {
170-
this.continuationToken = null
171-
}
172-
166+
protected checkResponse( HttpResponse<String> connection ) {
167+
this.continuationToken = connection
168+
.headers()
169+
.firstValue("x-ms-continuationtoken")
170+
.orElse(null)
173171
super.checkResponse(connection)
174172
}
175173

0 commit comments

Comments
 (0)