diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..17df28dbc --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,336 @@ +stages: + - prepareAll + - preprocessing + - postprocessing + - compileSpectralIntel + - compileSpectralGNU + - prepareSpectral + - spectral + - compileMarc2014 + - compileMarc2014.2 + - compileMarc2015 + - compileMarc2016 + - marc + - compileAbaqus2016 + - compileAbaqus2017 + - example + - updateMaster + - createDocumentation + +################################################################################################### +before_script: + - eval 'source $DAMASKROOT/DAMASK_env.sh' + - module purge + - cd $DAMASKROOT/PRIVATE/testing + +################################################################################################### +variables: + #================================================================================================ + # GitLab Settings + #================================================================================================ + GIT_SUBMODULE_STRATEGY: none + + #================================================================================================ + # Shortcut names + #================================================================================================ + DAMASKROOT: "$HOME/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" + GNUCompiler5_3: "Compiler/GNU/5.3" + # ------------ Defaults ---------------------------------------------- + IntelCompiler: "$IntelCompiler17_0" + GNUCompiler: "$GNUCompiler5_3" + # ++++++++++++ MPI +++++++++++++++++++++++++++++++++++++++++++++++++++ + MPICH3_2Intel17_0: "MPI/Intel/17.0/MPICH/3.2" + MPICH3_2GNU5_3: "MPI/GNU/5.3/MPICH/3.2" + # ------------ Defaults ---------------------------------------------- + MPICH_GNU: "$MPICH3_2GNU5_3" + MPICH_Intel: "$MPICH3_2Intel17_0" + # ++++++++++++ PETSc +++++++++++++++++++++++++++++++++++++++++++++++++ + PETSc3_6_4MPICH3_2Intel17_0: "Libraries/PETSc/3.6.4/Intel-17.0-MPICH-3.2" + PETSc3_7_5MPICH3_2Intel17_0: "Libraries/PETSc/3.7.5/Intel-17.0-MPICH-3.2" + PETSc3_7_5MPICH3_2GNU5_3: "Libraries/PETSc/3.7.5/GNU-5.3-MPICH-3.2" + # ------------ Defaults ---------------------------------------------- + PETSc_MPICH_Intel: "$PETSc3_7_5MPICH3_2Intel17_0" + PETSc_MPICH_GNU: "$PETSc3_7_5MPICH3_2GNU5_3" + # ++++++++++++ FEM +++++++++++++++++++++++++++++++++++++++++++++++++++ + Abaqus2016: "FEM/Abaqus/2016" + Abaqus2017: "FEM/Abaqus/2017" + MSC2014: "FEM/MSC/2014" + MSC2014_2: "FEM/MSC/2014.2" + MSC2015: "FEM/MSC/2015" + MSC2016: "FEM/MSC/2016" + # ------------ Defaults ---------------------------------------------- + Abaqus: "$Abaqus2017" + MSC: "$MSC2016" + # ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++ + Doxygen1_8_13: "Documentation/Doxygen/1.8.13" + # ------------ Defaults ---------------------------------------------- + Doxygen: "$Doxygen1_8_13" + + +################################################################################################### +checkout: + stage: prepareAll + before_script: + - echo 'Do nothing' + script: + - mkdir /tmp/GitlabCI_Pipeline_$CI_PIPELINE_ID + - git clone -b GitLabRunner git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT + - git clone git@magit1.mpie.de:damask/PRIVATE.git $DAMASKROOT/PRIVATE + - eval 'source $DAMASKROOT/DAMASK_env.sh' + - make -C $DAMASKROOT install + +################################################################################################### +OrientationRelationship: + stage: preprocessing + script: OrientationRelationship/test.py + +Pre_SeedGeneration: + stage: preprocessing + script: PreProcessing_SeedGeneration/test.py + +Pre_GeomGeneration: + stage: preprocessing + script: PreProcessing_GeomGeneration/test.py + +Pre_GeomModification: + stage: preprocessing + script: PreProcessing_GeomModification/test.py + +Pre_General: + stage: preprocessing + script: PreProcessing/test.py + +Spectral_geometryPacking: + stage: preprocessing + script: Spectral_geometryPacking/test.py + +################################################################################################### +Post_General: + stage: postprocessing + script: PostProcessing/test.py + +Post_GeometryReconstruction: + stage: postprocessing + script: Spectral_geometryReconstruction/test.py + +Post_addCurl: + stage: postprocessing + script: addCurl/test.py + +Post_addDivergence: + stage: postprocessing + script: addDivergence/test.py + +Post_addGradient: + stage: postprocessing + script: addGradient/test.py + +Post_ParaviewRelated: + stage: postprocessing + script: ParaviewRelated/test.py + +################################################################################################### +Compile_Intel: + stage: compileSpectralIntel + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - SpectralAll_compileIfort/test.py + +################################################################################################### +Compile_GNU: + stage: compileSpectralGNU + script: + - module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU + - SpectralAll_compileGfortran/test.py + +################################################################################################### +Compile_Intel_Prepare: + stage: prepareSpectral + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - make -C $DAMASKROOT clean spectral install tidy + +################################################################################################### +Spectral_PackedGeometry: + stage: spectral + script: Spectral_PackedGeometry/test.py + +Spectral_parsingArguments: + stage: spectral + script: Spectral_parsingArguments/test.py + +StateIntegration_compareVariants: + stage: spectral + script: StateIntegration_compareVariants/test.py + +nonlocal_densityConservation: + stage: spectral + script: nonlocal_densityConservation/test.py + +Spectral_ipNeighborhood: + stage: spectral + script: Spectral_ipNeighborhood/test.py + +Nonlocal_Damage_DetectChanges: + stage: spectral + script: Nonlocal_Damage_DetectChanges/test.py + +SpectralAll_restart: + stage: spectral + script: SpectralAll_restart/test.py + +SpectralAll_parsingLoadCase: + stage: spectral + script: SpectralAll_parsingLoadCase/test.py + +SpectralBasic_loadCaseRotation: + stage: spectral + script: SpectralBasic_loadCaseRotation/test.py + +Spectral_MPI: + stage: spectral + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - Spectral_MPI/test.py + +Plasticity_DetectChanges: + stage: spectral + script: Plasticity_DetectChanges/test.py + +Homogenization: + stage: spectral + script: Homogenization/test.py + +Phenopowerlaw_singleSlip: + stage: spectral + script: Phenopowerlaw_singleSlip/test.py + +HybridIA: + stage: spectral + script: HybridIA/test.py + +################################################################################################### +Marc_compileIfort2014: + stage: compileMarc2014 + script: + - module load $IntelCompiler16_0 $MSC2014 + - Marc_compileIfort/test.py -m 2014 + +################################################################################################### +Marc_compileIfort2014.2: + stage: compileMarc2014.2 + script: + - module load $IntelCompiler16_0 $MSC2014_2 + - Marc_compileIfort/test.py -m 2014.2 + +################################################################################################### +Marc_compileIfort2015: + stage: compileMarc2015 + script: + - module load $IntelCompiler16_0 $MSC2015 + - Marc_compileIfort/test.py -m 2015 + +################################################################################################### +Marc_compileIfort2016: + stage: compileMarc2016 + script: + - module load $IntelCompiler16_0 $MSC2016 + - Marc_compileIfort/test.py -m 2016 + +################################################################################################### +Hex_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - Hex_elastic/test.py + +CubicFCC_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - CubicFCC_elastic/test.py + +CubicBCC_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - CubicBCC_elastic/test.py + +J2_plasticBehavior: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - J2_plasticBehavior/test.py + +################################################################################################### +Abaqus_compile2016: + stage: compileAbaqus2016 + script: + - module load $IntelCompiler16_0 $Abaqus2016 + - Abaqus_compileIfort/test.py -a 2016 + +################################################################################################### +Abaqus_compile2017: + stage: compileAbaqus2017 + script: + - module load $IntelCompiler16_0 $Abaqus2017 + - Abaqus_compileIfort/test.py -a 2017 + +################################################################################################### +SpectralExample: + stage: example + script: SpectralAll_example/test.py + +AbaqusExample: + stage: example + script: + - module load $IntelCompiler16_0 $Abaqus + - Abaqus_example/test.py + +################################################################################################### +mergeIntoMaster: + stage: updateMaster + only: + - development + script: + - eval 'cd $DAMASKROOT' + - export DEVREV=$(git describe) + - git commit VERSION -m "[skip ci] updated version information after successful test of $DEVREV" + - git checkout master + - git merge development + - git status + - git push origin master + - git checkout development + - git push origin development + +################################################################################################### +AbaqusExp: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT abaqus_exp + +AbaqusStd: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT abaqus_std + +Marc: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT marc + +Spectral: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT spectral