diff --git a/.github/workflows/create-test-lint-wf-template.yml b/.github/workflows/create-test-lint-wf-template.yml index cfa0a50079..8a893ce9f0 100644 --- a/.github/workflows/create-test-lint-wf-template.yml +++ b/.github/workflows/create-test-lint-wf-template.yml @@ -42,6 +42,7 @@ jobs: - "template_skip_igenomes.yml" - "template_skip_ci.yml" - "template_skip_code_linters.yml" + - "template_skip_gitpod.yml" runner: # use the runner given by the input if it is dispatched manually, run on github if it is a rerun or on self-hosted by default - ${{ github.event.inputs.runners || github.run_number > 1 && 'ubuntu-latest' || 'self-hosted' }} @@ -107,6 +108,10 @@ jobs: run: | printf "org: my-prefix\nskip: code_linters" > create-test-lint-wf/template_skip_code_linters.yml + - name: Create template skip gitpod + run: | + printf "org: my-prefix\nskip: gitpod" > create-test-lint-wf/template_skip_gitpod.yml + # Create a pipeline from the template - name: create a pipeline from the template ${{ matrix.TEMPLATE }} run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index aea91cb51a..df11c64169 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - Use filename in code block for `params.yml` ([#3055](https://github.com/nf-core/tools/pull/3055)) - Remove release announcement for non nf-core pipelines ([#3072](https://github.com/nf-core/tools/pull/3072)) - add option to exclude code linters for custom pipeline template ([#3084](https://github.com/nf-core/tools/pull/3084)) +- add option to exclude gitpod for custom pipeline template ([#3100](https://github.com/nf-core/tools/pull/3100)) ### Linting diff --git a/nf_core/pipeline-template/nextflow.config b/nf_core/pipeline-template/nextflow.config index 2e6a56b001..8a6ca6b327 100644 --- a/nf_core/pipeline-template/nextflow.config +++ b/nf_core/pipeline-template/nextflow.config @@ -178,11 +178,13 @@ profiles { wave.freeze = true wave.strategy = 'conda,container' } + {%- if gitpod %} gitpod { executor.name = 'local' executor.cpus = 4 executor.memory = 8.GB } + {%- endif %} test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } } diff --git a/nf_core/pipelines/create/create.py b/nf_core/pipelines/create/create.py index 42e4a6ad7b..8f279df190 100644 --- a/nf_core/pipelines/create/create.py +++ b/nf_core/pipelines/create/create.py @@ -101,6 +101,7 @@ def __init__( ".prettierrc.yml", ".github/workflows/fix-linting.yml", ], + "gitpod": [".gitpod.yml"], } # Get list of files we're skipping with the supplied skip keys self.skip_paths = set(sp for k in skip_paths for sp in skippable_paths[k]) @@ -210,6 +211,7 @@ def obtain_jinja_params_dict(self, features_to_skip, pipeline_dir): "igenomes": {"file": True, "content": True}, "nf_core_configs": {"file": False, "content": True}, "code_linters": {"file": True, "content": True}, + "gitpod": {"file": True, "content": True}, } # Set the parameters for the jinja template diff --git a/nf_core/pipelines/create/custompipeline.py b/nf_core/pipelines/create/custompipeline.py index 0925fb5bab..e839042187 100644 --- a/nf_core/pipelines/create/custompipeline.py +++ b/nf_core/pipelines/create/custompipeline.py @@ -51,6 +51,13 @@ - prettier (https://github.com/prettier/prettier): enforces a consistent style (indentation, quoting, line length, etc). """ +markdown_gitpod = """ +Gitpod (https://www.gitpod.io/) provides standardized and automated development environments. + +Including this to your pipeline will provide an environment with the latest version of nf-core/tools installed and all its requirements. +This is useful to have all the tools ready for pipeline development. +""" + class CustomPipeline(Screen): """Select if the pipeline will use genomic data.""" @@ -96,6 +103,12 @@ def compose(self) -> ComposeResult: "The pipeline will include code linters and CI tests to lint your code: pre-commit, editor-config and prettier.", "code_linters", ), + PipelineFeature( + markdown_gitpod, + "Include a gitpod environment", + "Include the configuration required to use Gitpod.", + "gitpod", + ), classes="features-container", ) yield Center( diff --git a/tests/__snapshots__/test_create_app.ambr b/tests/__snapshots__/test_create_app.ambr index 5e5b005de0..531ea098bf 100644 --- a/tests/__snapshots__/test_create_app.ambr +++ b/tests/__snapshots__/test_create_app.ambr @@ -851,257 +851,257 @@ font-weight: 700; } - .terminal-2778615119-matrix { + .terminal-4194849765-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-2778615119-title { + .terminal-4194849765-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-2778615119-r1 { fill: #c5c8c6 } - .terminal-2778615119-r2 { fill: #e3e3e3 } - .terminal-2778615119-r3 { fill: #989898 } - .terminal-2778615119-r4 { fill: #e1e1e1 } - .terminal-2778615119-r5 { fill: #4ebf71;font-weight: bold } - .terminal-2778615119-r6 { fill: #1e1e1e } - .terminal-2778615119-r7 { fill: #0178d4 } - .terminal-2778615119-r8 { fill: #454a50 } - .terminal-2778615119-r9 { fill: #e2e2e2 } - .terminal-2778615119-r10 { fill: #808080 } - .terminal-2778615119-r11 { fill: #e2e3e3;font-weight: bold } - .terminal-2778615119-r12 { fill: #000000 } - .terminal-2778615119-r13 { fill: #e4e4e4 } - .terminal-2778615119-r14 { fill: #14191f } - .terminal-2778615119-r15 { fill: #507bb3 } - .terminal-2778615119-r16 { fill: #dde6ed;font-weight: bold } - .terminal-2778615119-r17 { fill: #001541 } - .terminal-2778615119-r18 { fill: #7ae998 } - .terminal-2778615119-r19 { fill: #0a180e;font-weight: bold } - .terminal-2778615119-r20 { fill: #008139 } - .terminal-2778615119-r21 { fill: #fea62b;font-weight: bold } - .terminal-2778615119-r22 { fill: #a7a9ab } - .terminal-2778615119-r23 { fill: #e2e3e3 } + .terminal-4194849765-r1 { fill: #c5c8c6 } + .terminal-4194849765-r2 { fill: #e3e3e3 } + .terminal-4194849765-r3 { fill: #989898 } + .terminal-4194849765-r4 { fill: #e1e1e1 } + .terminal-4194849765-r5 { fill: #4ebf71;font-weight: bold } + .terminal-4194849765-r6 { fill: #1e1e1e } + .terminal-4194849765-r7 { fill: #0178d4 } + .terminal-4194849765-r8 { fill: #454a50 } + .terminal-4194849765-r9 { fill: #e2e2e2 } + .terminal-4194849765-r10 { fill: #808080 } + .terminal-4194849765-r11 { fill: #e2e3e3;font-weight: bold } + .terminal-4194849765-r12 { fill: #000000 } + .terminal-4194849765-r13 { fill: #e4e4e4 } + .terminal-4194849765-r14 { fill: #14191f } + .terminal-4194849765-r15 { fill: #507bb3 } + .terminal-4194849765-r16 { fill: #dde6ed;font-weight: bold } + .terminal-4194849765-r17 { fill: #001541 } + .terminal-4194849765-r18 { fill: #7ae998 } + .terminal-4194849765-r19 { fill: #0a180e;font-weight: bold } + .terminal-4194849765-r20 { fill: #008139 } + .terminal-4194849765-r21 { fill: #fea62b;font-weight: bold } + .terminal-4194849765-r22 { fill: #a7a9ab } + .terminal-4194849765-r23 { fill: #e2e3e3 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - nf-core create + nf-core create - - - - nf-core create — Create a new pipeline with the nf-core pipeline template - - - Template features - - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Use reference The pipeline will  Hide help  - ▁▁▁▁▁▁▁▁        genomesbe configured to ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - use a copy of the  - most common  - reference genome  - files from  - iGenomes - - - Nf-core pipelines are configured to use a copy of the most common  - reference genome files. - - By selecting this option, your pipeline will include a configuration - file specifying the paths to these files. - - The required code to use these files will also be included in the  - template. When the pipeline user provides an appropriate genome key, - the pipeline will automatically download the required reference ▂▂ - files. - - - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Add Github CI The pipeline will  Show help  - ▁▁▁▁▁▁▁▁        testsinclude several ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - GitHub actions for - Continuous  - Integration (CI)  - testing - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Add Github badgesThe README.md file Show help  - ▁▁▁▁▁▁▁▁of the pipeline ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - will include  - GitHub badges - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -  Back  Continue  - ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - -  d Toggle dark mode  q Quit  + + + + nf-core create — Create a new pipeline with the nf-core pipeline template + + + Template features + + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Use reference The pipeline will  Hide help  + ▁▁▁▁▁▁▁▁        genomesbe configured to ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + use a copy of the  + most common  + reference genome  + files from  + iGenomes + + + Nf-core pipelines are configured to use a copy of the most common  + reference genome files. + + By selecting this option, your pipeline will include a configuration + file specifying the paths to these files. + + The required code to use these files will also be included in the  + template. When the pipeline user provides an appropriate genome key, + the pipeline will automatically download the required reference ▂▂ + files. + + + ▃▃ + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Add Github CI The pipeline will  Show help  + ▁▁▁▁▁▁▁▁        testsinclude several ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + GitHub actions for + Continuous  + Integration (CI)  + testing + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Add Github badgesThe README.md file Show help  + ▁▁▁▁▁▁▁▁of the pipeline ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + will include  + GitHub badges + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +  Back  Continue  + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + +  d Toggle dark mode  q Quit  @@ -2233,255 +2233,254 @@ font-weight: 700; } - .terminal-763408100-matrix { + .terminal-423998432-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-763408100-title { + .terminal-423998432-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-763408100-r1 { fill: #c5c8c6 } - .terminal-763408100-r2 { fill: #e3e3e3 } - .terminal-763408100-r3 { fill: #989898 } - .terminal-763408100-r4 { fill: #e1e1e1 } - .terminal-763408100-r5 { fill: #4ebf71;font-weight: bold } - .terminal-763408100-r6 { fill: #1e1e1e } - .terminal-763408100-r7 { fill: #507bb3 } - .terminal-763408100-r8 { fill: #e2e2e2 } - .terminal-763408100-r9 { fill: #808080 } - .terminal-763408100-r10 { fill: #dde6ed;font-weight: bold } - .terminal-763408100-r11 { fill: #001541 } - .terminal-763408100-r12 { fill: #14191f } - .terminal-763408100-r13 { fill: #454a50 } - .terminal-763408100-r14 { fill: #7ae998 } - .terminal-763408100-r15 { fill: #e2e3e3;font-weight: bold } - .terminal-763408100-r16 { fill: #0a180e;font-weight: bold } - .terminal-763408100-r17 { fill: #000000 } - .terminal-763408100-r18 { fill: #008139 } - .terminal-763408100-r19 { fill: #fea62b;font-weight: bold } - .terminal-763408100-r20 { fill: #a7a9ab } - .terminal-763408100-r21 { fill: #e2e3e3 } + .terminal-423998432-r1 { fill: #c5c8c6 } + .terminal-423998432-r2 { fill: #e3e3e3 } + .terminal-423998432-r3 { fill: #989898 } + .terminal-423998432-r4 { fill: #e1e1e1 } + .terminal-423998432-r5 { fill: #4ebf71;font-weight: bold } + .terminal-423998432-r6 { fill: #1e1e1e } + .terminal-423998432-r7 { fill: #507bb3 } + .terminal-423998432-r8 { fill: #e2e2e2 } + .terminal-423998432-r9 { fill: #808080 } + .terminal-423998432-r10 { fill: #dde6ed;font-weight: bold } + .terminal-423998432-r11 { fill: #001541 } + .terminal-423998432-r12 { fill: #454a50 } + .terminal-423998432-r13 { fill: #7ae998 } + .terminal-423998432-r14 { fill: #e2e3e3;font-weight: bold } + .terminal-423998432-r15 { fill: #0a180e;font-weight: bold } + .terminal-423998432-r16 { fill: #000000 } + .terminal-423998432-r17 { fill: #008139 } + .terminal-423998432-r18 { fill: #fea62b;font-weight: bold } + .terminal-423998432-r19 { fill: #a7a9ab } + .terminal-423998432-r20 { fill: #e2e3e3 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - nf-core create + nf-core create - - - - nf-core create — Create a new pipeline with the nf-core pipeline template - - - Template features - - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Use reference The pipeline will  Show help  - ▁▁▁▁▁▁▁▁        genomesbe configured to ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - use a copy of the  - most common  - reference genome  - files from  - iGenomes - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Add Github CI The pipeline will  Show help  - ▁▁▁▁▁▁▁▁        testsinclude several ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - GitHub actions for - Continuous  - Integration (CI)  - testing - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Add Github badgesThe README.md file Show help  - ▁▁▁▁▁▁▁▁of the pipeline ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - will include  - GitHub badges - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Add configuration         The pipeline will  Show help  - ▁▁▁▁▁▁▁▁        filesinclude ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - configuration  - profiles  - containing custom  - parameters  - requried to run  - nf-core pipelines  - at different ▁▁ - institutions - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -         Use code lintersThe pipeline will  Show help  - ▁▁▁▁▁▁▁▁include code ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -  Back  Continue  - ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - -  d Toggle dark mode  q Quit  + + + + nf-core create — Create a new pipeline with the nf-core pipeline template + + + Template features + + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Use reference The pipeline will  Show help  + ▁▁▁▁▁▁▁▁        genomesbe configured to ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + use a copy of the  + most common  + reference genome  + files from  + iGenomes + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Add Github CI The pipeline will  Show help  + ▁▁▁▁▁▁▁▁        testsinclude several ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + GitHub actions for + Continuous  + Integration (CI)  + testing + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Add Github badgesThe README.md file Show help  + ▁▁▁▁▁▁▁▁of the pipeline ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + will include  + GitHub badges + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Add configuration         The pipeline will  Show help  + ▁▁▁▁▁▁▁▁        filesinclude ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + configuration  + profiles  + containing custom  + parameters  + requried to run  + nf-core pipelines  + at different  + institutions + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +         Use code lintersThe pipeline will  Show help  + ▁▁▁▁▁▁▁▁include code ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +  Back  Continue  + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + +  d Toggle dark mode  q Quit  diff --git a/tests/data/pipeline_create_template_skip.yml b/tests/data/pipeline_create_template_skip.yml index d9ef405c51..c18d810cd9 100644 --- a/tests/data/pipeline_create_template_skip.yml +++ b/tests/data/pipeline_create_template_skip.yml @@ -12,3 +12,4 @@ skip_features: - igenomes - nf_core_configs - code_linters + - gitpod