498 lines
15 KiB
YAML
498 lines
15 KiB
YAML
---
|
|
stages:
|
|
- prepareAll
|
|
- preprocessing
|
|
- postprocessing
|
|
- compileSpectralIntel
|
|
- compileSpectralGNU
|
|
- prepareSpectral
|
|
- spectral
|
|
- compileMarc2017
|
|
- marc
|
|
- compileAbaqus2017
|
|
- example
|
|
- performance
|
|
- createDocumentation
|
|
- saveDocumentation
|
|
- updateMaster
|
|
- clean
|
|
- releaseLock
|
|
|
|
###################################################################################################
|
|
before_script:
|
|
- if [ $(awk "/$CI_PIPELINE_ID/{print NR}" $TESTROOT/GitLabCI.queue)x == 'x' ];
|
|
then echo $CI_PIPELINE_ID >> $TESTROOT/GitLabCI.queue;
|
|
fi
|
|
- while [ $(awk "/$CI_PIPELINE_ID/{print NR}" $TESTROOT/GitLabCI.queue) != 1 ];
|
|
do sleep 5m;
|
|
done
|
|
- source $DAMASKROOT/env/DAMASK.sh
|
|
- cd $DAMASKROOT/PRIVATE/testing
|
|
|
|
###################################################################################################
|
|
variables:
|
|
# ===============================================================================================
|
|
# GitLab Settings
|
|
# ===============================================================================================
|
|
GIT_SUBMODULE_STRATEGY: none
|
|
|
|
# ===============================================================================================
|
|
# Shortcut names
|
|
# ===============================================================================================
|
|
DAMASKROOT: "$TESTROOT/GitLabCI_Pipeline_$CI_PIPELINE_ID/DAMASK"
|
|
|
|
# ===============================================================================================
|
|
# Names of module files to load
|
|
# ===============================================================================================
|
|
# ++++++++++++ Compiler ++++++++++++++++++++++++++++++++++++++++++++++
|
|
IntelCompiler16_0: "Compiler/Intel/16.0 Libraries/IMKL/2016"
|
|
IntelCompiler17_0: "Compiler/Intel/17.0 Libraries/IMKL/2017"
|
|
IntelCompiler18_1: "Compiler/Intel/18.1 Libraries/IMKL/2018"
|
|
GNUCompiler7_3: "Compiler/GNU/7.3"
|
|
# ------------ Defaults ----------------------------------------------
|
|
IntelCompiler: "$IntelCompiler18_1"
|
|
GNUCompiler: "$GNUCompiler7_3"
|
|
# ++++++++++++ MPI +++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
MPICH3_2Intel17_0: "MPI/Intel/17.0/MPICH/3.2"
|
|
MPICH3_2Intel18_1: "MPI/Intel/18.1/MPICH/3.2.1"
|
|
MPICH3_2GNU7_3: "MPI/GNU/7.3/MPICH/3.2.1"
|
|
# ------------ Defaults ----------------------------------------------
|
|
MPICH_GNU: "$MPICH3_2GNU7_3"
|
|
MPICH_Intel: "$MPICH3_2Intel18_1"
|
|
# ++++++++++++ PETSc +++++++++++++++++++++++++++++++++++++++++++++++++
|
|
PETSc3_9_1MPICH3_2Intel18_1: "Libraries/PETSc/3.9.1/Intel-18.1-MPICH-3.2.1"
|
|
PETSc3_9_1MPICH3_2GNU7_3: "Libraries/PETSc/3.9.1/GNU-7.3-MPICH-3.2.1"
|
|
# ------------ Defaults ----------------------------------------------
|
|
PETSc_MPICH_Intel: "$PETSc3_9_1MPICH3_2Intel18_1"
|
|
PETSc_MPICH_GNU: "$PETSc3_9_1MPICH3_2GNU7_3"
|
|
# ++++++++++++ FEM +++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
Abaqus2017: "FEM/Abaqus/2017"
|
|
MSC2017: "FEM/MSC/2017"
|
|
# ------------ Defaults ----------------------------------------------
|
|
Abaqus: "$Abaqus2017"
|
|
MSC: "$MSC2017"
|
|
# ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++
|
|
Doxygen1_8_13: "Documentation/Doxygen/1.8.13"
|
|
# ------------ Defaults ----------------------------------------------
|
|
Doxygen: "$Doxygen1_8_13"
|
|
|
|
|
|
###################################################################################################
|
|
checkout:
|
|
stage: prepareAll
|
|
before_script:
|
|
- echo $CI_PIPELINE_ID >> $TESTROOT/GitLabCI.queue
|
|
- while [ $(awk "/$CI_PIPELINE_ID/{print NR}" $TESTROOT/GitLabCI.queue) != 1 ];
|
|
do sleep 5m;
|
|
done
|
|
script:
|
|
- mkdir -p $DAMASKROOT
|
|
- cd $DAMASKROOT
|
|
- if [ -d DAMASK ]; then rm -rf DAMASK; fi # there might be some leftovers from a failed clone
|
|
- git clone -q git@magit1.mpie.de:damask/DAMASK.git .
|
|
- git checkout $CI_COMMIT_SHA
|
|
- git submodule update --init
|
|
- source env/DAMASK.sh
|
|
- make processing
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
OrientationRelationship:
|
|
stage: preprocessing
|
|
script: OrientationRelationship/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Pre_SeedGeneration:
|
|
stage: preprocessing
|
|
script: PreProcessing_SeedGeneration/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Pre_GeomGeneration:
|
|
stage: preprocessing
|
|
script: PreProcessing_GeomGeneration/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Pre_GeomModification:
|
|
stage: preprocessing
|
|
script: PreProcessing_GeomModification/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Pre_General:
|
|
stage: preprocessing
|
|
script: PreProcessing/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Spectral_geometryPacking:
|
|
stage: preprocessing
|
|
script: Spectral_geometryPacking/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
Post_General:
|
|
stage: postprocessing
|
|
script: PostProcessing/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Post_GeometryReconstruction:
|
|
stage: postprocessing
|
|
script: Spectral_geometryReconstruction/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Post_addCurl:
|
|
stage: postprocessing
|
|
script: addCurl/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Post_addDivergence:
|
|
stage: postprocessing
|
|
script: addDivergence/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Post_addGradient:
|
|
stage: postprocessing
|
|
script: addGradient/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Post_ParaviewRelated:
|
|
stage: postprocessing
|
|
script: ParaviewRelated/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
Compile_Intel:
|
|
stage: compileSpectralIntel
|
|
script:
|
|
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel
|
|
- SpectralAll_compile/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
Compile_GNU:
|
|
stage: compileSpectralGNU
|
|
script:
|
|
- module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU
|
|
- SpectralAll_compile/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
Compile_Intel_Prepare:
|
|
stage: prepareSpectral
|
|
script:
|
|
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel
|
|
- cd $DAMASKROOT
|
|
- make clean spectral processing
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
Spectral_PackedGeometry:
|
|
stage: spectral
|
|
script: Spectral_PackedGeometry/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Spectral_parsingArguments:
|
|
stage: spectral
|
|
script: Spectral_parsingArguments/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
StateIntegration_compareVariants:
|
|
stage: spectral
|
|
script: StateIntegration_compareVariants/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
nonlocal_densityConservation:
|
|
stage: spectral
|
|
script: nonlocal_densityConservation/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Spectral_ipNeighborhood:
|
|
stage: spectral
|
|
script: Spectral_ipNeighborhood/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Nonlocal_Damage_DetectChanges:
|
|
stage: spectral
|
|
script: Nonlocal_Damage_DetectChanges/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
SpectralAll_restart:
|
|
stage: spectral
|
|
script: SpectralAll_restart/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
SpectralAll_parsingLoadCase:
|
|
stage: spectral
|
|
script: SpectralAll_parsingLoadCase/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
SpectralBasic_loadCaseRotation:
|
|
stage: spectral
|
|
script: SpectralBasic_loadCaseRotation/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Spectral_MPI:
|
|
stage: spectral
|
|
script:
|
|
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel
|
|
- Spectral_MPI/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Plasticity_DetectChanges:
|
|
stage: spectral
|
|
script: Plasticity_DetectChanges/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Homogenization:
|
|
stage: spectral
|
|
script: Homogenization/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Phenopowerlaw_singleSlip:
|
|
stage: spectral
|
|
script: Phenopowerlaw_singleSlip/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
HybridIA:
|
|
stage: spectral
|
|
script: HybridIA/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
TextureComponents:
|
|
stage: spectral
|
|
script: TextureComponents/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
|
|
###################################################################################################
|
|
Marc_compileIfort2017:
|
|
stage: compileMarc2017
|
|
script:
|
|
- module load $IntelCompiler17_0 $MSC2017
|
|
- Marc_compileIfort/test.py -m 2017
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
Hex_elastic:
|
|
stage: marc
|
|
script:
|
|
- module load $IntelCompiler17_0 $MSC
|
|
- Hex_elastic/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
CubicFCC_elastic:
|
|
stage: marc
|
|
script:
|
|
- module load $IntelCompiler17_0 $MSC
|
|
- CubicFCC_elastic/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
CubicBCC_elastic:
|
|
stage: marc
|
|
script:
|
|
- module load $IntelCompiler17_0 $MSC
|
|
- CubicBCC_elastic/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
J2_plasticBehavior:
|
|
stage: marc
|
|
script:
|
|
- module load $IntelCompiler17_0 $MSC
|
|
- J2_plasticBehavior/test.py
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
Abaqus_compile2017:
|
|
stage: compileAbaqus2017
|
|
script:
|
|
- module load $IntelCompiler16_0 $Abaqus2017
|
|
- Abaqus_compileIfort/test.py -a 2017
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
SpectralExample:
|
|
stage: example
|
|
script: SpectralAll_example/test.py
|
|
only:
|
|
- development
|
|
|
|
AbaqusExample:
|
|
stage: example
|
|
script:
|
|
- module load $IntelCompiler16_0 $Abaqus
|
|
- Abaqus_example/test.py
|
|
only:
|
|
- development
|
|
|
|
###################################################################################################
|
|
SpectralRuntime:
|
|
stage: performance
|
|
script:
|
|
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel
|
|
- cd $DAMASKROOT
|
|
- make clean spectral processing OPTIMIZATION=AGGRESSIVE
|
|
- cd $TESTROOT/performance # location of old results
|
|
- git checkout . # undo any changes (i.e. run time data from non-development branch)
|
|
- cd $DAMASKROOT/PRIVATE/testing
|
|
- SpectralAll_runtime/test.py -d $TESTROOT/performance
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
AbaqusStd:
|
|
stage: createDocumentation
|
|
script:
|
|
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen
|
|
- $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT abaqus
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Marc:
|
|
stage: createDocumentation
|
|
script:
|
|
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen
|
|
- $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT marc
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
Spectral:
|
|
stage: createDocumentation
|
|
script:
|
|
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen
|
|
- $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT spectral
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
##################################################################################################
|
|
backupData:
|
|
stage: saveDocumentation
|
|
script:
|
|
- cd $TESTROOT/performance # location of new runtime results
|
|
- git commit -am"${CI_PIPELINE_ID}_${CI_COMMIT_SHA}"
|
|
- mkdir $BACKUP/${CI_PIPELINE_ID}_${CI_COMMIT_SHA}
|
|
- cp $TESTROOT/performance/time.txt $BACKUP/${CI_PIPELINE_ID}_${CI_COMMIT_SHA}/
|
|
- mv $TESTROOT/performance/time.png $BACKUP/${CI_PIPELINE_ID}_${CI_COMMIT_SHA}/
|
|
- cp $TESTROOT/performance/memory.txt $BACKUP/${CI_PIPELINE_ID}_${CI_COMMIT_SHA}/
|
|
- mv $TESTROOT/performance/memory.png $BACKUP/${CI_PIPELINE_ID}_${CI_COMMIT_SHA}/
|
|
- mv $DAMASKROOT/PRIVATE/documenting/DAMASK_* $BACKUP/${CI_PIPELINE_ID}_${CI_COMMIT_SHA}/
|
|
only:
|
|
- development
|
|
|
|
##################################################################################################
|
|
mergeIntoMaster:
|
|
stage: updateMaster
|
|
script:
|
|
- cd $DAMASKROOT
|
|
- export TESTEDREV=$(git describe) # might be detached from development branch
|
|
- echo $TESTEDREV > VERSION
|
|
- git commit VERSION -m "[skip ci] updated version information after successful test of $TESTEDREV"
|
|
- export UPDATEDREV=$(git describe) # tested state + 1 commit
|
|
- git checkout master
|
|
- git merge $UPDATEDREV -s recursive -X ours # conflicts occur only for inconsistent state
|
|
- git push origin master # master is now tested version and has updated VERSION file
|
|
- git checkout development
|
|
- git pull
|
|
- git merge master -s recursive -X ours -m "[skip ci] Merge branch 'master' into development" # only possible conflict is in VERSION file
|
|
- git push origin development # development is unchanged (as master is based on it) but has updated VERSION file
|
|
only:
|
|
- development
|
|
|
|
###################################################################################################
|
|
removeData:
|
|
stage: clean
|
|
before_script:
|
|
- echo 'Do nothing'
|
|
script:
|
|
- rm -rf $TESTROOT/GitLabCI_Pipeline_$CI_PIPELINE_ID
|
|
- sed -i "/$CI_PIPELINE_ID/d" $TESTROOT/GitLabCI.queue # in case pipeline was manually (web GUI) restarted and releaseLock was performed already
|
|
except:
|
|
- master
|
|
- release
|
|
|
|
###################################################################################################
|
|
removeLock:
|
|
stage: releaseLock
|
|
before_script:
|
|
- echo 'Do nothing'
|
|
when: always
|
|
script: sed -i "/$CI_PIPELINE_ID/d" $TESTROOT/GitLabCI.queue
|
|
except:
|
|
- master
|
|
- release
|