From e7db471e5a0dcae84060f615d02e1b1be7773cb8 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 3 Jul 2024 13:08:12 -0500 Subject: [PATCH 01/12] refactor: Clean up the logic and let Sentieon figure it out --- modules/nf-core/sentieon/bwamem/main.nf | 11 +---------- modules/nf-core/sentieon/bwamem/tests/nextflow.config | 6 +++++- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 6ed6a840150..0b9f6250c23 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -3,10 +3,6 @@ process SENTIEON_BWAMEM { label 'process_high' label 'sentieon' - // NOTE this is not required for the process to run, but it is required for the process to be run in GitHub actions or nf-core MegaTests - // The rest of the secrets aren't really "secrets" because they're not sensitive information for users - // secret SENTIEON_AUTH_DATA - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -28,8 +24,7 @@ process SENTIEON_BWAMEM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + """ if [ "\${SENTIEON_LICSRVR_IP}" ]; then # NOTE: This is how pipeline users will use Sentieon in real world @@ -44,10 +39,6 @@ process SENTIEON_BWAMEM { echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE fi - if [ "\${SENTIEON_AUTH_MECH}" ] && [ "\${SENTIEON_AUTH_DATA}" ]; then - # NOTE: This should only happen in GitHub Actions or nf-core/megatests - echo "If sentieon_auth_mech and sentieon_auth_data are non-empty strings, then Sentieon is mostly likely being run with some test-license." - fi INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow.config b/modules/nf-core/sentieon/bwamem/tests/nextflow.config index 76a54c9963d..b78b177de97 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow.config @@ -1,7 +1,11 @@ env { - SENTIEON_LICSRVR_IP = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This should only happen in GitHub actions or nf-core MegaTests SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // SENTIEON_LICENSE_BASE64 = secrets.SENTIEON_LICENSE_BASE64 } process { From 319acbc74251490a4c83e2dfe73bae623ff4935b Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 9 Jul 2024 17:46:54 -0500 Subject: [PATCH 02/12] refactor: Remove Sentieon license server IP check --- modules/nf-core/sentieon/bwamem/main.nf | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 0b9f6250c23..b4e7d368944 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -26,11 +26,7 @@ process SENTIEON_BWAMEM { def prefix = task.ext.prefix ?: "${meta.id}" """ - if [ "\${SENTIEON_LICSRVR_IP}" ]; then - # NOTE: This is how pipeline users will use Sentieon in real world - echo "Using a Sentieon License Server" - export SENTIEON_LICENSE="\${SENTIEON_LICSRVR_IP}" - else + if [ "\${SENTIEON_LICENSE_BASE64}" ]; then # NOTE: This is how pipeline users will test out Sentieon echo "Localhost license file" # The license file is stored as a nextflow variable like, for instance, this: From 663400e7794a5adab3368b0d3f3dccd88aeb64cb Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 10 Jul 2024 15:58:47 -0500 Subject: [PATCH 03/12] fix: Add a -n --- modules/nf-core/sentieon/bwamem/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index b4e7d368944..2dfc061bd28 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -26,7 +26,7 @@ process SENTIEON_BWAMEM { def prefix = task.ext.prefix ?: "${meta.id}" """ - if [ "\${SENTIEON_LICENSE_BASE64}" ]; then + if [ -n "\${SENTIEON_LICENSE_BASE64}" ]; then # NOTE: This is how pipeline users will test out Sentieon echo "Localhost license file" # The license file is stored as a nextflow variable like, for instance, this: From 0d31ccf2810ee1ceb53f337ecabdc7a034b7530c Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 15 Jul 2024 16:00:03 -0500 Subject: [PATCH 04/12] Try accessing secrets in the module? --- modules/nf-core/sentieon/bwamem/main.nf | 7 +++---- modules/nf-core/sentieon/bwamem/tests/nextflow.config | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 2dfc061bd28..efbbef77c2b 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -24,18 +24,17 @@ process SENTIEON_BWAMEM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? secrets.SENTIEON_LICENSE_BASE64 : "" """ - if [ -n "\${SENTIEON_LICENSE_BASE64}" ]; then + if [ -n $sentieonLicense ]; then # NOTE: This is how pipeline users will test out Sentieon echo "Localhost license file" # The license file is stored as a nextflow variable like, for instance, this: # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE + echo -e "$sentieonLicense" | base64 -d > \$SENTIEON_LICENSE fi - INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` sentieon bwa mem \\ diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow.config b/modules/nf-core/sentieon/bwamem/tests/nextflow.config index b78b177de97..717fb52c7ab 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow.config @@ -5,7 +5,7 @@ env { SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file - // SENTIEON_LICENSE_BASE64 = secrets.SENTIEON_LICENSE_BASE64 + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } process { From ee9b6dd6d476700f94a9fae633de696d0f7ec799 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 15 Jul 2024 17:07:45 -0500 Subject: [PATCH 05/12] fix: Use Nextflow for if statement --- modules/nf-core/sentieon/bwamem/main.nf | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index efbbef77c2b..cf9c2dff17b 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -24,16 +24,13 @@ process SENTIEON_BWAMEM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? secrets.SENTIEON_LICENSE_BASE64 : "" + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" + """ - if [ -n $sentieonLicense ]; then - # NOTE: This is how pipeline users will test out Sentieon - echo "Localhost license file" - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "$sentieonLicense" | base64 -d > \$SENTIEON_LICENSE - fi + $sentieonLicense INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` From 12dc32f5b3ce3f6f601e51c3b692adc6661d0dae Mon Sep 17 00:00:00 2001 From: maxulysse Date: Tue, 16 Jul 2024 14:27:28 +0200 Subject: [PATCH 06/12] update snapshot --- modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 82803e860b1..75863429d3e 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -7,12 +7,12 @@ "id": "test", "single_end": true }, - "test.bam:md5,c95a3243fcd7df16481f67ad0466696b", + "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" ] ], [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,4fd9b026ff2306cc292cd695e11d5628" ], "test.bam" ], From 66869413c97336aff119b50d6570eee1b74270b8 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Tue, 16 Jul 2024 14:31:10 +0200 Subject: [PATCH 07/12] update snapshot --- modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 75863429d3e..bc5824c0c2c 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -8,11 +8,11 @@ "single_end": true }, "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", - "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" + "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" ] ], [ - "versions.yml:md5,4fd9b026ff2306cc292cd695e11d5628" + "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" ], "test.bam" ], From 7bd3338c8b9b3a603c25a1163b04723644e6878f Mon Sep 17 00:00:00 2001 From: maxulysse Date: Tue, 16 Jul 2024 15:15:16 +0200 Subject: [PATCH 08/12] extend logic to all main.nf --- modules/nf-core/sentieon/applyvarcal/main.nf | 23 +++-------------- modules/nf-core/sentieon/bwamem/main.nf | 1 - modules/nf-core/sentieon/datametrics/main.nf | 23 +++-------------- modules/nf-core/sentieon/dedup/main.nf | 23 +++-------------- .../nf-core/sentieon/dnamodelapply/main.nf | 23 +++-------------- modules/nf-core/sentieon/dnascope/main.nf | 23 +++-------------- modules/nf-core/sentieon/gvcftyper/main.nf | 21 +++------------- modules/nf-core/sentieon/haplotyper/main.nf | 23 +++-------------- modules/nf-core/sentieon/readwriter/main.nf | 24 +++--------------- modules/nf-core/sentieon/tnfilter/main.nf | 23 +++-------------- .../nf-core/sentieon/tnhaplotyper2/main.nf | 23 +++-------------- modules/nf-core/sentieon/tnscope/main.nf | 23 +++-------------- modules/nf-core/sentieon/varcal/main.nf | 25 +++---------------- modules/nf-core/sentieon/wgsmetrics/main.nf | 23 +++-------------- 14 files changed, 52 insertions(+), 249 deletions(-) diff --git a/modules/nf-core/sentieon/applyvarcal/main.nf b/modules/nf-core/sentieon/applyvarcal/main.nf index d0493e4768b..9f64f5a2f32 100644 --- a/modules/nf-core/sentieon/applyvarcal/main.nf +++ b/modules/nf-core/sentieon/applyvarcal/main.nf @@ -3,8 +3,6 @@ process SENTIEON_APPLYVARCAL { label 'process_low' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -26,24 +24,11 @@ process SENTIEON_APPLYVARCAL { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver -r ${fasta} --algo ApplyVarCal \\ -v $vcf \\ diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index cf9c2dff17b..f38fcae9211 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -24,7 +24,6 @@ process SENTIEON_BWAMEM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : "" diff --git a/modules/nf-core/sentieon/datametrics/main.nf b/modules/nf-core/sentieon/datametrics/main.nf index 1a68c9db96b..e430f1e53ec 100644 --- a/modules/nf-core/sentieon/datametrics/main.nf +++ b/modules/nf-core/sentieon/datametrics/main.nf @@ -3,8 +3,6 @@ process SENTIEON_DATAMETRICS { label 'process_medium' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -31,24 +29,11 @@ process SENTIEON_DATAMETRICS { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def input = bam.sort().collect{"-i $it"}.join(' ') - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon \\ driver \\ diff --git a/modules/nf-core/sentieon/dedup/main.nf b/modules/nf-core/sentieon/dedup/main.nf index c76aa839176..625875895fe 100644 --- a/modules/nf-core/sentieon/dedup/main.nf +++ b/modules/nf-core/sentieon/dedup/main.nf @@ -3,8 +3,6 @@ process SENTIEON_DEDUP { label 'process_medium' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -36,25 +34,12 @@ process SENTIEON_DEDUP { def prefix = task.ext.prefix ?: "${meta.id}" def suffix = task.ext.suffix ?: ".cram" // The suffix should be either ".cram" or ".bam". def metrics = task.ext.metrics ?: "${prefix}${suffix}.metrics" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' def input_list = bam.collect{"-i $it"}.join(' ') + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver $args $input_list -r ${fasta} --algo LocusCollector $args2 --fun score_info ${prefix}.score sentieon driver $args3 -t $task.cpus $input_list -r ${fasta} --algo Dedup $args4 --score_info ${prefix}.score --metrics ${metrics} ${prefix}${suffix} diff --git a/modules/nf-core/sentieon/dnamodelapply/main.nf b/modules/nf-core/sentieon/dnamodelapply/main.nf index 97c2986d299..b4b10ce4d09 100644 --- a/modules/nf-core/sentieon/dnamodelapply/main.nf +++ b/modules/nf-core/sentieon/dnamodelapply/main.nf @@ -3,8 +3,6 @@ process SENTIEON_DNAMODELAPPLY { label 'process_high' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -27,24 +25,11 @@ process SENTIEON_DNAMODELAPPLY { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver \\ -t $task.cpus \\ diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index a69f40cdb37..63d7d23b8a2 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -3,8 +3,6 @@ process SENTIEON_DNASCOPE { label 'process_high' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -40,8 +38,6 @@ process SENTIEON_DNASCOPE { def model_cmd = ml_model ? " --model ${ml_model}" : '' def pcr_indel_model_cmd = pcr_indel_model ? " --pcr_indel_model ${pcr_indel_model}" : '' def prefix = task.ext.prefix ?: "${meta.id}" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' def vcf_cmd = "" def gvcf_cmd = "" def base_cmd = '--algo DNAscope ' + dbsnp_cmd + ' ' @@ -54,22 +50,11 @@ process SENTIEON_DNASCOPE { gvcf_cmd = base_cmd + args3 + ' ' + model_cmd + pcr_indel_model_cmd + ' --emit_mode gvcf ' + prefix + '.g.vcf.gz' } + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver $args -r $fasta -t $task.cpus -i $bam $interval $vcf_cmd $gvcf_cmd diff --git a/modules/nf-core/sentieon/gvcftyper/main.nf b/modules/nf-core/sentieon/gvcftyper/main.nf index 09265ad66a7..3711614ecae 100644 --- a/modules/nf-core/sentieon/gvcftyper/main.nf +++ b/modules/nf-core/sentieon/gvcftyper/main.nf @@ -27,26 +27,13 @@ process SENTIEON_GVCFTYPER { script: def prefix = task.ext.prefix ?: "${meta.id}" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' def gvcfs_input = '-v ' + gvcfs.join(' -v ') def dbsnp_cmd = dbsnp ? "--dbsnp $dbsnp" : "" + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver -r ${fasta} --algo GVCFtyper ${gvcfs_input} ${dbsnp_cmd} ${prefix}.vcf.gz diff --git a/modules/nf-core/sentieon/haplotyper/main.nf b/modules/nf-core/sentieon/haplotyper/main.nf index 8001fa66458..d6ff0d843f9 100644 --- a/modules/nf-core/sentieon/haplotyper/main.nf +++ b/modules/nf-core/sentieon/haplotyper/main.nf @@ -3,8 +3,6 @@ process SENTIEON_HAPLOTYPER { label 'process_medium' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -36,8 +34,6 @@ process SENTIEON_HAPLOTYPER { def prefix = task.ext.prefix ?: "${meta.id}" def dbsnp_command = dbsnp ? "-d $dbsnp " : "" def interval_command = intervals ? "--interval $intervals" : "" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' def vcf_cmd = "" def gvcf_cmd = "" def base_cmd = '--algo Haplotyper ' + dbsnp_command @@ -50,22 +46,11 @@ process SENTIEON_HAPLOTYPER { gvcf_cmd = base_cmd + args3 + ' --emit_mode gvcf ' + prefix + '.g.vcf.gz' } + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver $args -r $fasta -t $task.cpus -i $input $interval_command $vcf_cmd $gvcf_cmd diff --git a/modules/nf-core/sentieon/readwriter/main.nf b/modules/nf-core/sentieon/readwriter/main.nf index 178d9a03e70..9c7f4863214 100644 --- a/modules/nf-core/sentieon/readwriter/main.nf +++ b/modules/nf-core/sentieon/readwriter/main.nf @@ -3,8 +3,6 @@ process SENTIEON_READWRITER { label 'process_medium' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -34,25 +32,11 @@ process SENTIEON_READWRITER { def prefix = task.ext.prefix ?: "${meta.id}" format = input.extension == "bam" ? "bam" : "cram" index = format == "bam" ? "bam.bai" : "cram.crai" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi - + $sentieonLicense sentieon \\ driver \\ diff --git a/modules/nf-core/sentieon/tnfilter/main.nf b/modules/nf-core/sentieon/tnfilter/main.nf index 9d31f5c0dae..57f8f20f57a 100644 --- a/modules/nf-core/sentieon/tnfilter/main.nf +++ b/modules/nf-core/sentieon/tnfilter/main.nf @@ -3,8 +3,6 @@ process SENTIEON_TNFILTER { label 'process_medium' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -28,27 +26,14 @@ process SENTIEON_TNFILTER { def args = task.ext.args ?: '' // options for the driver def args2 = task.ext.args2 ?: '' // options for --algo TNfilter def prefix = task.ext.prefix ?: "${meta.id}" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' def contamination_command = contamination ? " --contamination ${contamination} " : '' def segments_command = segments ? segments.collect{"--tumor_segments $it"}.join(' ') : '' def orientation_priors_command = orientation_priors ? orientation_priors.collect{"--orientation_priors $it"}.join(' ') : '' + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver -r $fasta \\ $args \\ diff --git a/modules/nf-core/sentieon/tnhaplotyper2/main.nf b/modules/nf-core/sentieon/tnhaplotyper2/main.nf index 10f4106d10a..dfa9796754a 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/main.nf +++ b/modules/nf-core/sentieon/tnhaplotyper2/main.nf @@ -3,8 +3,6 @@ process SENTIEON_TNHAPLOTYPER2 { label 'process_high' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -35,8 +33,6 @@ process SENTIEON_TNHAPLOTYPER2 { task.ext.when == null || task.ext.when script: - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' def args = task.ext.args ?: '' // options for "sentieon driver" def args2 = task.ext.args2 ?: '' // options for the TNhaplotyper2 algorithm. It could be something like "--tumor_sample --normal_sample " def args3 = task.ext.args3 ?: '' // options for the OrientationBias algorithm. It could be something like "--tumor_sample " @@ -57,22 +53,11 @@ process SENTIEON_TNHAPLOTYPER2 { contamination_cmd = "--algo ContaminationModel $args4 --vcf $germline_resource --tumor_segments ${prefix}.segments ${prefix}.contamination_data.tsv" } + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver \\ -t $task.cpus \\ diff --git a/modules/nf-core/sentieon/tnscope/main.nf b/modules/nf-core/sentieon/tnscope/main.nf index 0f8c2759d7a..ac13542f978 100644 --- a/modules/nf-core/sentieon/tnscope/main.nf +++ b/modules/nf-core/sentieon/tnscope/main.nf @@ -3,8 +3,6 @@ process SENTIEON_TNSCOPE { label 'process_high' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -35,24 +33,11 @@ process SENTIEON_TNSCOPE { def dbsnp_str = dbsnp ? "--dbsnp ${dbsnp}" : '' def pon_str = pon ? "--pon ${pon}" : '' def prefix = task.ext.prefix ?: "${meta.id}" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver \\ -t $task.cpus \\ diff --git a/modules/nf-core/sentieon/varcal/main.nf b/modules/nf-core/sentieon/varcal/main.nf index ea62c53accf..7c85c121020 100644 --- a/modules/nf-core/sentieon/varcal/main.nf +++ b/modules/nf-core/sentieon/varcal/main.nf @@ -3,8 +3,6 @@ process SENTIEON_VARCAL { label 'process_low' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -47,26 +45,11 @@ process SENTIEON_VARCAL { labels_command += "--resource ${items[1]} --resource_param ${items[0]} " } } - - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' - + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon driver -r ${fasta} --algo VarCal \\ -v $vcf \\ diff --git a/modules/nf-core/sentieon/wgsmetrics/main.nf b/modules/nf-core/sentieon/wgsmetrics/main.nf index bba6188d82b..fad8d071700 100644 --- a/modules/nf-core/sentieon/wgsmetrics/main.nf +++ b/modules/nf-core/sentieon/wgsmetrics/main.nf @@ -3,8 +3,6 @@ process SENTIEON_WGSMETRICS { label 'process_medium' label 'sentieon' - secret 'SENTIEON_LICENSE_BASE64' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : @@ -28,24 +26,11 @@ process SENTIEON_WGSMETRICS { def input = bam.sort().collect{"-i $it"}.join(' ') def prefix = task.ext.prefix ?: "${meta.id}" def interval = intervals_list ? "--interval ${intervals_list}" : "" - def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' - def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? + "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : + "" """ - if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. - export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) - else # Localhost license file - # The license file is stored as a nextflow variable like, for instance, this: - # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) - export SENTIEON_LICENSE=\$(mktemp) - echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE - fi - - if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then - # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. - export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) - export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) - echo "Decoded and exported Sentieon test-license system environment variables" - fi + $sentieonLicense sentieon \\ driver \\ From 76884d2a3d9dc9dfbc31b788026e0ac6ee7decaf Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 17 Jul 2024 09:29:42 -0500 Subject: [PATCH 09/12] ci: Add Sentieon logic to pytest-workflow --- .github/workflows/test.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eb7144b5fd0..45c55a3bb07 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -408,6 +408,8 @@ jobs: tags: vt/decompose env: NXF_ANSI_LOG: false + SENTIEON_LICENSE_MESSAGE: ${{ secrets.SENTIEON_LICENSE_MESSAGE }} + SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }} steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 @@ -462,8 +464,20 @@ jobs: echo $(realpath $CONDA)/condabin >> $GITHUB_PATH echo $(realpath python) >> $GITHUB_PATH + # FIXME Remove once https://github.com/nf-core/sarek/issues/1380 is closed + # Set up secrets + - name: Set up nextflow secrets + # TODO Only run if the tag includes `sentieon` + if: env.SENTIEON_ENCRYPTION_KEY != null && env.SENTIEON_LICENSE_MESSAGE != null + run: | + nextflow secrets set SENTIEON_AUTH_DATA $(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "${{ secrets.SENTIEON_ENCRYPTION_KEY }}" --message "${{ secrets.SENTIEON_LICENSE_MESSAGE }}") + # Test the module - name: Run pytest-workflow + # FIXME Remove once https://github.com/nf-core/sarek/issues/1380 is closed + env: + SENTIEON_LICSRVR_IP: ${{ secrets.SENTIEON_LICSRVR_IP }} + SENTIEON_AUTH_MECH: "GitHub Actions - token" # only use one thread for pytest-workflow to avoid race condition on conda cache. run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes From 5357a5f56333c194b4784f3c4c5efda62d4ec4b3 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 17 Jul 2024 10:08:43 -0500 Subject: [PATCH 10/12] test(sentieon): Add env section to every config --- .../nf-core/sentieon/applyvarcal/nextflow.config | 10 ++++++++++ .../modules/nf-core/sentieon/bwaindex/nextflow.config | 10 ++++++++++ .../nf-core/sentieon/datametrics/nextflow.config | 10 ++++++++++ tests/modules/nf-core/sentieon/dedup/nextflow.config | 10 ++++++++++ .../nf-core/sentieon/dnamodelapply/nextflow.config | 10 ++++++++++ .../modules/nf-core/sentieon/dnascope/nextflow.config | 10 ++++++++++ .../modules/nf-core/sentieon/gvcftyper/nextflow.config | 10 ++++++++++ .../nf-core/sentieon/haplotyper/nextflow.config | 10 ++++++++++ .../nf-core/sentieon/readwriter/nextflow.config | 10 ++++++++++ .../modules/nf-core/sentieon/tnfilter/nextflow.config | 10 ++++++++++ .../nf-core/sentieon/tnhaplotyper2/nextflow.config | 10 ++++++++++ tests/modules/nf-core/sentieon/tnscope/nextflow.config | 10 ++++++++++ tests/modules/nf-core/sentieon/varcal/nextflow.config | 10 ++++++++++ .../nf-core/sentieon/wgsmetrics/nextflow.config | 10 ++++++++++ 14 files changed, 140 insertions(+) diff --git a/tests/modules/nf-core/sentieon/applyvarcal/nextflow.config b/tests/modules/nf-core/sentieon/applyvarcal/nextflow.config index cf2c328e162..cd22bbdc325 100644 --- a/tests/modules/nf-core/sentieon/applyvarcal/nextflow.config +++ b/tests/modules/nf-core/sentieon/applyvarcal/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/bwaindex/nextflow.config b/tests/modules/nf-core/sentieon/bwaindex/nextflow.config index 8730f1c4b93..c3a1bc0b3d8 100644 --- a/tests/modules/nf-core/sentieon/bwaindex/nextflow.config +++ b/tests/modules/nf-core/sentieon/bwaindex/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/datametrics/nextflow.config b/tests/modules/nf-core/sentieon/datametrics/nextflow.config index ccf30410f8d..578ce50b6a5 100644 --- a/tests/modules/nf-core/sentieon/datametrics/nextflow.config +++ b/tests/modules/nf-core/sentieon/datametrics/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/dedup/nextflow.config b/tests/modules/nf-core/sentieon/dedup/nextflow.config index 3e13bd97106..1a9f6c55a62 100644 --- a/tests/modules/nf-core/sentieon/dedup/nextflow.config +++ b/tests/modules/nf-core/sentieon/dedup/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/dnamodelapply/nextflow.config b/tests/modules/nf-core/sentieon/dnamodelapply/nextflow.config index 2ad8bd0d405..eb8b84cfdcd 100644 --- a/tests/modules/nf-core/sentieon/dnamodelapply/nextflow.config +++ b/tests/modules/nf-core/sentieon/dnamodelapply/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/dnascope/nextflow.config b/tests/modules/nf-core/sentieon/dnascope/nextflow.config index ccf30410f8d..578ce50b6a5 100644 --- a/tests/modules/nf-core/sentieon/dnascope/nextflow.config +++ b/tests/modules/nf-core/sentieon/dnascope/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/gvcftyper/nextflow.config b/tests/modules/nf-core/sentieon/gvcftyper/nextflow.config index a52914c1e30..3e4d1c9900c 100644 --- a/tests/modules/nf-core/sentieon/gvcftyper/nextflow.config +++ b/tests/modules/nf-core/sentieon/gvcftyper/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/haplotyper/nextflow.config b/tests/modules/nf-core/sentieon/haplotyper/nextflow.config index db7a89a9530..8cd0e2a5c37 100644 --- a/tests/modules/nf-core/sentieon/haplotyper/nextflow.config +++ b/tests/modules/nf-core/sentieon/haplotyper/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/readwriter/nextflow.config b/tests/modules/nf-core/sentieon/readwriter/nextflow.config index ccf30410f8d..578ce50b6a5 100644 --- a/tests/modules/nf-core/sentieon/readwriter/nextflow.config +++ b/tests/modules/nf-core/sentieon/readwriter/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/tnfilter/nextflow.config b/tests/modules/nf-core/sentieon/tnfilter/nextflow.config index c4389c49133..9d36373d18a 100644 --- a/tests/modules/nf-core/sentieon/tnfilter/nextflow.config +++ b/tests/modules/nf-core/sentieon/tnfilter/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + def test_niche_data_dir = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me" params { niche_test { diff --git a/tests/modules/nf-core/sentieon/tnhaplotyper2/nextflow.config b/tests/modules/nf-core/sentieon/tnhaplotyper2/nextflow.config index 3b3bf1c1302..b09f68e1dc6 100644 --- a/tests/modules/nf-core/sentieon/tnhaplotyper2/nextflow.config +++ b/tests/modules/nf-core/sentieon/tnhaplotyper2/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/tnscope/nextflow.config b/tests/modules/nf-core/sentieon/tnscope/nextflow.config index 7e75c78a570..74d2a487c30 100644 --- a/tests/modules/nf-core/sentieon/tnscope/nextflow.config +++ b/tests/modules/nf-core/sentieon/tnscope/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/varcal/nextflow.config b/tests/modules/nf-core/sentieon/varcal/nextflow.config index a2f63e10891..c3fd1ccdc30 100644 --- a/tests/modules/nf-core/sentieon/varcal/nextflow.config +++ b/tests/modules/nf-core/sentieon/varcal/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/nf-core/sentieon/wgsmetrics/nextflow.config b/tests/modules/nf-core/sentieon/wgsmetrics/nextflow.config index ccf30410f8d..578ce50b6a5 100644 --- a/tests/modules/nf-core/sentieon/wgsmetrics/nextflow.config +++ b/tests/modules/nf-core/sentieon/wgsmetrics/nextflow.config @@ -1,3 +1,13 @@ +env { + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } From 4e30b8f4dc0182e2946c53dc86e78bb90ba2749e Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 19 Jul 2024 15:48:09 -0500 Subject: [PATCH 11/12] Revert "ci: Add Sentieon logic to pytest-workflow" This reverts commit 76884d2a3d9dc9dfbc31b788026e0ac6ee7decaf. --- .github/workflows/test.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 45c55a3bb07..eb7144b5fd0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -408,8 +408,6 @@ jobs: tags: vt/decompose env: NXF_ANSI_LOG: false - SENTIEON_LICENSE_MESSAGE: ${{ secrets.SENTIEON_LICENSE_MESSAGE }} - SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }} steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 @@ -464,20 +462,8 @@ jobs: echo $(realpath $CONDA)/condabin >> $GITHUB_PATH echo $(realpath python) >> $GITHUB_PATH - # FIXME Remove once https://github.com/nf-core/sarek/issues/1380 is closed - # Set up secrets - - name: Set up nextflow secrets - # TODO Only run if the tag includes `sentieon` - if: env.SENTIEON_ENCRYPTION_KEY != null && env.SENTIEON_LICENSE_MESSAGE != null - run: | - nextflow secrets set SENTIEON_AUTH_DATA $(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "${{ secrets.SENTIEON_ENCRYPTION_KEY }}" --message "${{ secrets.SENTIEON_LICENSE_MESSAGE }}") - # Test the module - name: Run pytest-workflow - # FIXME Remove once https://github.com/nf-core/sarek/issues/1380 is closed - env: - SENTIEON_LICSRVR_IP: ${{ secrets.SENTIEON_LICSRVR_IP }} - SENTIEON_AUTH_MECH: "GitHub Actions - token" # only use one thread for pytest-workflow to avoid race condition on conda cache. run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes From 8edbe8f91e0278f4fa3131ec49089fe898697aaa Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 19 Jul 2024 15:48:25 -0500 Subject: [PATCH 12/12] test: Remove pytest_modules for sentieon --- tests/config/pytest_modules.yml | 42 --------------------------------- 1 file changed, 42 deletions(-) diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 49aed145a6b..9dfa0527b43 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1385,48 +1385,6 @@ segemehl/index: semibin/singleeasybin: - modules/nf-core/semibin/singleeasybin/** - tests/modules/nf-core/semibin/singleeasybin/** -sentieon/applyvarcal: - - modules/nf-core/sentieon/applyvarcal/** - - tests/modules/nf-core/sentieon/applyvarcal/** -sentieon/bwaindex: - - modules/nf-core/sentieon/bwaindex/** - - tests/modules/nf-core/sentieon/bwaindex/** -sentieon/datametrics: - - modules/nf-core/sentieon/datametrics/** - - tests/modules/nf-core/sentieon/datametrics/** -sentieon/dedup: - - modules/nf-core/sentieon/dedup/** - - tests/modules/nf-core/sentieon/dedup/** -sentieon/dnamodelapply: - - modules/nf-core/sentieon/dnamodelapply/** - - tests/modules/nf-core/sentieon/dnamodelapply/** -sentieon/dnascope: - - modules/nf-core/sentieon/dnascope/** - - tests/modules/nf-core/sentieon/dnascope/** -sentieon/gvcftyper: - - modules/nf-core/sentieon/gvcftyper/** - - tests/modules/nf-core/sentieon/gvcftyper/** -sentieon/haplotyper: - - modules/nf-core/sentieon/haplotyper/** - - tests/modules/nf-core/sentieon/haplotyper/** -sentieon/readwriter: - - modules/nf-core/sentieon/readwriter/** - - tests/modules/nf-core/sentieon/readwriter/** -sentieon/tnfilter: - - modules/nf-core/sentieon/tnfilter/** - - tests/modules/nf-core/sentieon/tnfilter/** -sentieon/tnhaplotyper2: - - modules/nf-core/sentieon/tnhaplotyper2/** - - tests/modules/nf-core/sentieon/tnhaplotyper2/** -sentieon/tnscope: - - modules/nf-core/sentieon/tnscope/** - - tests/modules/nf-core/sentieon/tnscope/** -sentieon/varcal: - - modules/nf-core/sentieon/varcal/** - - tests/modules/nf-core/sentieon/varcal/** -sentieon/wgsmetrics: - - modules/nf-core/sentieon/wgsmetrics/** - - tests/modules/nf-core/sentieon/wgsmetrics/** seqsero2: - modules/nf-core/seqsero2/** - tests/modules/nf-core/seqsero2/**