mirror of
https://github.com/MillironX/nf-configs.git
synced 2024-11-24 09:09:56 +00:00
Proper user tests now :-)
This commit is contained in:
parent
7e3efcac5c
commit
cb876594a3
3 changed files with 79 additions and 2 deletions
3
.github/workflows/main.yml
vendored
3
.github/workflows/main.yml
vendored
|
@ -19,5 +19,8 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
wget -qO- get.nextflow.io | bash
|
wget -qO- get.nextflow.io | bash
|
||||||
sudo mv nextflow /usr/local/bin/
|
sudo mv nextflow /usr/local/bin/
|
||||||
|
- name: Check whether profiles are all tested appropriately
|
||||||
|
run: |
|
||||||
|
python ${GITHUB_WORKSPACE}/bin/cchecker.py ${GITHUB_WORKSPACE}/nfcore_custom.config ${GITHUB_WORKSPACE}/.github/workflows/main.yml
|
||||||
- name: "Check profile"
|
- name: "Check profile"
|
||||||
run: nextflow run ${GITHUB_WORKSPACE}/configtest.nf --custom_config_base=${GITHUB_WORKSPACE} -profile ${{ matrix.profile }}
|
run: nextflow run ${GITHUB_WORKSPACE}/configtest.nf --custom_config_base=${GITHUB_WORKSPACE} -profile ${{ matrix.profile }}
|
71
bin/cchecker.py
Normal file
71
bin/cchecker.py
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#######################################################################
|
||||||
|
## Created on November 26 to check pipeline configs for nf-core/configs
|
||||||
|
#######################################################################
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import re
|
||||||
|
|
||||||
|
############################################
|
||||||
|
############################################
|
||||||
|
## PARSE ARGUMENTS
|
||||||
|
############################################
|
||||||
|
############################################
|
||||||
|
|
||||||
|
Description = 'Double check custom config file and github actions file to test all cases'
|
||||||
|
Epilog = """Example usage: python cchecker.py <nfcore_custom.config> <github_actions_file>"""
|
||||||
|
|
||||||
|
argParser = argparse.ArgumentParser(description=Description, epilog=Epilog)
|
||||||
|
## REQUIRED PARAMETERS
|
||||||
|
argParser.add_argument('CUSTOM_CONFIG', help="Input nfcore_custom.config.")
|
||||||
|
argParser.add_argument('GITHUB_CONFIG', help="Input Github Actions YAML")
|
||||||
|
|
||||||
|
args = argParser.parse_args()
|
||||||
|
|
||||||
|
############################################
|
||||||
|
############################################
|
||||||
|
## MAIN FUNCTION
|
||||||
|
############################################
|
||||||
|
############################################
|
||||||
|
|
||||||
|
def check_config(Config, Github):
|
||||||
|
|
||||||
|
regex = 'includeConfig*'
|
||||||
|
ERROR_STR = 'ERROR: Please check config file! Did you really update the profiles?'
|
||||||
|
|
||||||
|
## CHECK Config First
|
||||||
|
config_profiles = set()
|
||||||
|
with open(Config, 'r') as cfg:
|
||||||
|
for line in cfg:
|
||||||
|
if re.search(regex, line):
|
||||||
|
hit = line.split('/')[2].split('.')[0]
|
||||||
|
config_profiles.add(hit)
|
||||||
|
|
||||||
|
###Check Github Config now
|
||||||
|
tests = set()
|
||||||
|
with open(Github, 'r') as ghfile:
|
||||||
|
for line in ghfile:
|
||||||
|
if re.search('profile: ', line):
|
||||||
|
line = line.replace('\'','').replace('[','').replace(']','')
|
||||||
|
profiles = line.split(':')[1].split(',')
|
||||||
|
for p in profiles:
|
||||||
|
tests.add(p)
|
||||||
|
|
||||||
|
print(len(tests))
|
||||||
|
print(len(config_profiles))
|
||||||
|
|
||||||
|
###Check if sets are equal
|
||||||
|
if tests == config_profiles:
|
||||||
|
sys.exit(0)
|
||||||
|
else:
|
||||||
|
#Maybe report what is missing here too
|
||||||
|
#print("Tests don't seem to test these profiles properly!\n")
|
||||||
|
# print(config_profiles.difference(tests))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
check_config(Config=args.CUSTOM_CONFIG,Github=args.GITHUB_CONFIG)
|
|
@ -11,6 +11,7 @@
|
||||||
params.custom_config_version = 'master'
|
params.custom_config_version = 'master'
|
||||||
params.custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}"
|
params.custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}"
|
||||||
|
|
||||||
|
//Please use a new line per includeConfig section to allow easier linting/parsing. Thank you.
|
||||||
profiles {
|
profiles {
|
||||||
awsbatch { includeConfig "${params.custom_config_base}/conf/awsbatch.config" }
|
awsbatch { includeConfig "${params.custom_config_base}/conf/awsbatch.config" }
|
||||||
bigpurple { includeConfig "${params.custom_config_base}/conf/bigpurple.config" }
|
bigpurple { includeConfig "${params.custom_config_base}/conf/bigpurple.config" }
|
||||||
|
@ -21,7 +22,8 @@ profiles {
|
||||||
cfc { includeConfig "${params.custom_config_base}/conf/cfc.config" }
|
cfc { includeConfig "${params.custom_config_base}/conf/cfc.config" }
|
||||||
crick { includeConfig "${params.custom_config_base}/conf/crick.config" }
|
crick { includeConfig "${params.custom_config_base}/conf/crick.config" }
|
||||||
czbiohub_aws { includeConfig "${params.custom_config_base}/conf/czbiohub_aws.config" }
|
czbiohub_aws { includeConfig "${params.custom_config_base}/conf/czbiohub_aws.config" }
|
||||||
czbiohub_aws_highpriority { includeConfig "${params.custom_config_base}/conf/czbiohub_aws.config"; includeConfig "${params.custom_config_base}/conf/czbiohub_aws_highpriority.config" }
|
czbiohub_aws_highpriority { includeConfig "${params.custom_config_base}/conf/czbiohub_aws.config";
|
||||||
|
includeConfig "${params.custom_config_base}/conf/czbiohub_aws_highpriority.config" }
|
||||||
denbi_qbic { includeConfig "${params.custom_config_base}/conf/denbi_qbic.config" }
|
denbi_qbic { includeConfig "${params.custom_config_base}/conf/denbi_qbic.config" }
|
||||||
genouest { includeConfig "${params.custom_config_base}/conf/genouest.config" }
|
genouest { includeConfig "${params.custom_config_base}/conf/genouest.config" }
|
||||||
gis { includeConfig "${params.custom_config_base}/conf/gis.config" }
|
gis { includeConfig "${params.custom_config_base}/conf/gis.config" }
|
||||||
|
@ -34,7 +36,8 @@ profiles {
|
||||||
shh { includeConfig "${params.custom_config_base}/conf/shh.config" }
|
shh { includeConfig "${params.custom_config_base}/conf/shh.config" }
|
||||||
uct_hex { includeConfig "${params.custom_config_base}/conf/uct_hex.config" }
|
uct_hex { includeConfig "${params.custom_config_base}/conf/uct_hex.config" }
|
||||||
uppmax { includeConfig "${params.custom_config_base}/conf/uppmax.config" }
|
uppmax { includeConfig "${params.custom_config_base}/conf/uppmax.config" }
|
||||||
uppmax_devel { includeConfig "${params.custom_config_base}/conf/uppmax.config"; includeConfig "${params.custom_config_base}/conf/uppmax_devel.config" }
|
uppmax_devel { includeConfig "${params.custom_config_base}/conf/uppmax.config";
|
||||||
|
includeConfig "${params.custom_config_base}/conf/uppmax_devel.config" }
|
||||||
uzh { includeConfig "${params.custom_config_base}/conf/uzh.config" }
|
uzh { includeConfig "${params.custom_config_base}/conf/uzh.config" }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue