Skip to content

Commit

Permalink
Merge pull request #3126 from mirpedrol/template-customisation-email
Browse files Browse the repository at this point in the history
Template: add option to exclude email from pipeline template
  • Loading branch information
mirpedrol committed Aug 21, 2024
2 parents 92e0953 + f72a2c3 commit 43de3bc
Show file tree
Hide file tree
Showing 11 changed files with 295 additions and 262 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
- handle template features with a yaml file ([#3108](https://github.com/nf-core/tools/pull/3108))
- add templatefeatures.yml to python package ([#3112](https://github.com/nf-core/tools/pull/3112))
- add option to exclude license from pipeline template ([#3125](https://github.com/nf-core/tools/pull/3125))
- add option to exclude email from pipeline template ([#3126](https://github.com/nf-core/tools/pull/3126))

### Linting

Expand Down
2 changes: 2 additions & 0 deletions nf_core/pipeline-template/.editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@ insert_final_newline = unset
trim_trailing_whitespace = unset
indent_style = unset

{%- if email %}
[/assets/email*]
indent_size = unset
{%- endif %}

# ignore python and markdown
[*.{py,md}]
Expand Down
2 changes: 2 additions & 0 deletions nf_core/pipeline-template/.prettierignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
{%- if email %}
email_template.html
{%- endif %}
adaptivecard.json
slackreport.json
.nextflow*
Expand Down
2 changes: 1 addition & 1 deletion nf_core/pipeline-template/docs/output.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ

- `pipeline_info/`
- Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`.
- Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline.
{% if email %}- Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. {% endif %}
- Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`.
- Parameters used by the pipeline run: `params.json`.

Expand Down
4 changes: 3 additions & 1 deletion nf_core/pipeline-template/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
include { {{ short_name|upper }} } from './workflows/{{ short_name }}'
include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_{{ short_name }}_pipeline'
include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_{{ short_name }}_pipeline'
{% if igenomes %}
{%- if igenomes %}
include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_{{ short_name }}_pipeline'

/*
Expand Down Expand Up @@ -95,9 +95,11 @@ workflow {
// SUBWORKFLOW: Run completion tasks
//
PIPELINE_COMPLETION (
{%- if email %}
params.email,
params.email_on_fail,
params.plaintext_email,
{%- endif %}
params.outdir,
params.monochrome_logs,
params.hook_url,
Expand Down
2 changes: 2 additions & 0 deletions nf_core/pipeline-template/nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,11 @@ params {
// Boilerplate options
outdir = null
publish_dir_mode = 'copy'
{%- if email %}
email = null
email_on_fail = null
plaintext_email = false
{%- endif %}
monochrome_logs = false
hook_url = null
help = false
Expand Down
8 changes: 4 additions & 4 deletions nf_core/pipeline-template/nextflow_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@
"format": "directory-path",
"description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.",
"fa_icon": "fas fa-folder-open"
},
}{% if email %},
"email": {
"type": "string",
"description": "Email address for completion summary.",
"fa_icon": "fas fa-envelope",
"help_text": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.",
"pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$"
}{% if multiqc %},
}{% endif %}{% if multiqc %},
"multiqc_title": {
"type": "string",
"description": "MultiQC report title. Printed as page header, used for filename if not otherwise specified.",
Expand Down Expand Up @@ -189,7 +189,7 @@
"fa_icon": "fas fa-copy",
"enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"],
"hidden": true
},
},{% if email %}
"email_on_fail": {
"type": "string",
"description": "Email address for completion summary, only when pipeline fails.",
Expand All @@ -203,7 +203,7 @@
"description": "Send plain-text email instead of HTML.",
"fa_icon": "fas fa-remove-format",
"hidden": true
},
},{% endif %}
{%- if multiqc %}
"max_multiqc_email_size": {
"type": "string",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ include { UTILS_NFVALIDATION_PLUGIN } from '../../nf-core/utils_nfvalidation_plu
include { paramsSummaryMap } from 'plugin/nf-validation'
include { fromSamplesheet } from 'plugin/nf-validation'
include { UTILS_NEXTFLOW_PIPELINE } from '../../nf-core/utils_nextflow_pipeline'
{%- if email %}
include { completionEmail } from '../../nf-core/utils_nfcore_pipeline'
{%- endif %}
include { completionSummary } from '../../nf-core/utils_nfcore_pipeline'
include { dashedLine } from '../../nf-core/utils_nfcore_pipeline'
include { nfCoreLogo } from '../../nf-core/utils_nfcore_pipeline'
Expand Down Expand Up @@ -117,9 +119,11 @@ workflow PIPELINE_INITIALISATION {
workflow PIPELINE_COMPLETION {

take:
{%- if email %}
email // string: email address
email_on_fail // string: email address sent on pipeline failure
plaintext_email // boolean: Send plain-text email instead of HTML
{% endif %}
outdir // path: Path to output directory where results will be published
monochrome_logs // boolean: Disable ANSI colour codes in log output
hook_url // string: hook URL for notifications
Expand All @@ -133,13 +137,15 @@ workflow PIPELINE_COMPLETION {
// Completion email and summary
//
workflow.onComplete {
{%- if email %}
if (email || email_on_fail) {
{%- if multiqc %}
completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs, multiqc_report.toList())
{%- else %}
completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs, [])
{%- endif %}
}
{%- endif %}

completionSummary(monochrome_logs)

Expand Down
18 changes: 18 additions & 0 deletions nf_core/pipelines/create/templatefeatures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -257,3 +257,21 @@ license:
- "LICENSE"
nfcore_pipelines: False
custom_pipelines: True
email:
skippable_paths:
- "assets/email_template.html"
- "assets/sendmail_template.txt"
- "assets/email_template.txt"
short_description: "Enable email updates"
description: "Enable sending emails on pipeline completion."
help_text: |
Enable the option of sending an email which will include pipeline execution reports on pipeline completion.
linting:
files_exist:
- "assets/email_template.html"
- "assets/sendmail_template.txt"
- "assets/email_template.txt"
files_unchanged:
- ".prettierignore"
nfcore_pipelines: False
custom_pipelines: True
Loading

0 comments on commit 43de3bc

Please sign in to comment.