Skip to content
Snippets Groups Projects
Commit 2af3c1ea authored by Anke Kreuzer's avatar Anke Kreuzer
Browse files

Problems with the gitlab-ci

parents 9b0183d3 6d590502
No related branches found
No related tags found
No related merge requests found
stages:
- test
- deploy
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
variables:
TARGET_BRANCH: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
- if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
when: never
- if: '$CI_COMMIT_BRANCH'
variables:
TARGET_BRANCH: '2023'
check_style:
stage: test
tags: [ public-docker ]
image: $CI_REGISTRY/easybuild-docker/easybuild-docker/rocky8-eb-test:latest
script:
- git config --global --add safe.directory $CI_PROJECT_DIR
- ml purge && ml EasyBuild # to load latest EasyBuild dev version
- ml --version && which -a eb && eb --version && eb --show-system-info
- export SYSTEMNAME="juwelsbooster" # Make this the default for packages like NVHPC
- export EASYBUILD_INCLUDE_EASYBLOCKS="$CI_PROJECT_DIR/Custom_EasyBlocks/*.py,$CI_PROJECT_DIR/Custom_EasyBlocks/generic/*.py"
- export EASYBUILD_INCLUDE_MODULE_NAMING_SCHEMES="$CI_PROJECT_DIR/Custom_MNS/*.py"
- export EASYBUILD_INCLUDE_TOOLCHAINS="$CI_PROJECT_DIR/Custom_Toolchains/*.py"
- export EASYBUILD_ROBOT="$CI_PROJECT_DIR/Golden_Repo"
- export EASYBUILD_HOOKS="$CI_PROJECT_DIR/Custom_Hooks/eb_hooks.py"
# Let's make this a system where all the packages can be installed, so all of them can be checked without aborting
- export LMOD_SYSTEM_NAME="juwels"
- OVERLAYS=$(ls Overlays)
- for i in $OVERLAYS; do
- export EASYBUILD_ROBOT="$EASYBUILD_ROBOT:$CI_PROJECT_DIR/Overlays/$i"
- done
- export EASYBUILD_MODULE_NAMING_SCHEME="FlexibleCustomHierarchicalMNS"
- export EASYBUILD_MODULECLASSES="astro,base,bio,cae,chem,compiler,data,debugger,devel,"
- export EASYBUILD_MODULECLASSES=$EASYBUILD_MODULECLASSES"geo,ide,lang,lib,math,mpi,numlib,perf,phys,quantum,sidecompiler,"
- export EASYBUILD_MODULECLASSES=$EASYBUILD_MODULECLASSES"system,toolchain,tools,vis"
- export EASYBUILD_CUDA_COMPUTE_CAPABILITIES="8.0"
- faulty=""
- export TIP_COMMIT=$CI_COMMIT_SHA
- if [ "x$CI_COMMIT_BRANCH" = "x$TARGET_BRANCH" ]; then
- export BASE_COMMIT=$CI_COMMIT_BEFORE_SHA
- else
- export BASE_COMMIT=$(git merge-base "$TIP_COMMIT" "origin/$TARGET_BRANCH")
- fi
- printf "Checking changes between base %s (%s) and tip %s (%s)\n" "$BASE_COMMIT" "$(git describe --all --exclude pipeline/* $BASE_COMMIT 2> /dev/null)" "$TIP_COMMIT" "$(git describe --all --exclude pipeline/* $TIP_COMMIT 2> /dev/null)"
- eb_list=$(git diff-tree --no-commit-id -r "$BASE_COMMIT" "$TIP_COMMIT" | awk '$5 ~ /^M|^A/ && $6 ~ /eb$/ {print($6)}')
- echo "List of files to be checked $eb_list"
- for i in $eb_list; do
- echo "Checking $(basename $i) ..."
- if [[ $(basename $i) == *AMBER* ]]; then
- sg amber -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg amber -c "eb --dry-run $i" || faulty="$faulty $i"
- elif [[ $(basename $i) == *CPMD* ]]; then
- sg cpmd -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg cpmd -c "eb --dry-run $i" || faulty="$faulty $i"
- elif [[ $(basename $i) == *NAMD* ]]; then
- sg namd -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg namd -c "eb --dry-run $i" || faulty="$faulty $i"
- elif [[ $(basename $i) == *Turbomole* ]]; then
- sg turbomol -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg turbomol -c "eb --dry-run $i" || faulty="$faulty $i"
- else
- eb --check-style --check-contrib $i || faulty="$faulty $i"
- eb --dry-run $i || faulty="$faulty $i"
- fi
- done
- if [ -n "$faulty" ]; then echo "Faulty EasyConfigs... $faulty"; exit 1; fi
full_check_style:
when: manual
stage: test
tags: [ public-docker ]
image: $CI_REGISTRY/easybuild-docker/easybuild-docker/rocky8-eb-test:latest
script:
- ml purge && ml EasyBuild # to load latest EasyBuild dev version
- export SYSTEMNAME="juwelsbooster" # Make this the default for packages like NVHPC
- export EASYBUILD_INCLUDE_EASYBLOCKS="$CI_PROJECT_DIR/Custom_EasyBlocks/*.py,$CI_PROJECT_DIR/Custom_EasyBlocks/generic/*.py"
- export EASYBUILD_INCLUDE_MODULE_NAMING_SCHEMES="$CI_PROJECT_DIR/Custom_MNS/*.py"
- export EASYBUILD_INCLUDE_TOOLCHAINS="$CI_PROJECT_DIR/Custom_Toolchains/*.py"
- export EASYBUILD_ROBOT="$CI_PROJECT_DIR/Golden_Repo"
- export EASYBUILD_HOOKS="$CI_PROJECT_DIR/Custom_Hooks/eb_hooks.py"
# Let's make this a system where all the packages can be installed, so all of them can be checked without aborting
- export LMOD_SYSTEM_NAME="juwels"
- OVERLAYS=$(ls Overlays)
- for i in $OVERLAYS; do
- export EASYBUILD_ROBOT="$EASYBUILD_ROBOT:$CI_PROJECT_DIR/Overlays/$i"
- done
- export EASYBUILD_MODULE_NAMING_SCHEME="FlexibleCustomHierarchicalMNS"
- export EASYBUILD_MODULECLASSES="astro,base,bio,cae,chem,compiler,data,debugger,devel,"
- export EASYBUILD_MODULECLASSES=$EASYBUILD_MODULECLASSES"geo,ide,lang,lib,math,mpi,numlib,perf,phys,quantum,sidecompiler,"
- export EASYBUILD_MODULECLASSES=$EASYBUILD_MODULECLASSES"system,toolchain,tools,vis"
- export EASYBUILD_CUDA_COMPUTE_CAPABILITIES="8.0"
- for i in $(find Golden_Repo -name "*.eb"); do
- echo "Checking $(basename $i) ..."
- if [[ $(basename $i) == *AMBER* ]]; then
- sg amber -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg amber -c "eb --dry-run $i" || faulty="$faulty $i"
- elif [[ $(basename $i) == *CPMD* ]]; then
- sg cpmd -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg cpmd -c "eb --dry-run $i" || faulty="$faulty $i"
- elif [[ $(basename $i) == *NAMD* ]]; then
- sg namd -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg namd -c "eb --dry-run $i" || faulty="$faulty $i"
- elif [[ $(basename $i) == *Turbomole* ]]; then
- sg turbomol -c "eb --check-style --check-contrib $i" || faulty="$faulty $i"
- sg turbomol -c "eb --dry-run $i" || faulty="$faulty $i"
- else
- eb --check-style --check-contrib $i || faulty="$faulty $i"
- eb --dry-run $i || faulty="$faulty $i"
- fi
- done
- if [ -n "$faulty" ]; then echo "Faulty EasyConfigs... $faulty"; exit 1; fi
sync_repo_on_HPC:
stage: deploy
tags:
- jacamar
- shell
script:
- cd /p/fastdata/zam/swmanage/EasyBuild/$TARGET_BRANCH
- hostname
- echo 'Pulling branch '$TARGET_BRANCH
- git pull https://$GITLAB_USER:$GITLAB_TOKEN@gitlab.jsc.fz-juelich.de/software-team/easybuild.git $TARGET_BRANCH
rules:
- if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH'
update_acls:
stage: deploy
parallel:
matrix:
- SYSTEM:
- juwels
- juwels_booster
- jurecadc
- jusuf
- hdfml
tags:
- jacamar
- ${SYSTEM}
- shell
needs: ['sync_repo_on_HPC']
script:
- hostname
- ml Stages/$TARGET_BRANCH
- pushd /p/fastdata/zam/swmanage/EasyBuild/$STAGE/bin
- ./setacls -c ../acls.yml --force -m
rules:
- if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH'
changes:
- 'acls.yml'
push_public_mirror:
stage: deploy
tags:
- jacamar
- juwels_booster
- shell
needs: ['sync_repo_on_HPC']
script:
- hostname
- ml Stages/$TARGET_BRANCH
- cd /p/project/cswmanage/easybuilders-JSC/$TARGET_BRANCH
- git pull
- ./filter.sh
- git add -A
- git commit -a -m "Sync"
- git push https://$GITHUB_USER:$GITHUB_TOKEN@github.com/easybuilders/JSC.git
rules:
- if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH'
when: manual
pull_public_mirror:
stage: deploy
tags:
- jacamar
- shell
script:
- hostname
- cd /p/usersoftware/swmanage/user_installations/$TARGET_BRANCH/
- git pull
rules:
- if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment