Syntax Check

For immediate feedback, any new or modified files are checked before a push to git.damask.mpie.de is accepted. This is done via a pre-receive hook. Python files are checked for invalid code, unused variables, etc. using Prospector. To ensure that the DAMASK core compiles without error, gfortran is invoked with -fsyntax-only for compilation of the source code (grid solver and MSC.Marc). To skip this check, prefix the final commit message with [skip sc].

Test Suite

Extended testing is performed on each push using GitLab Continuous Integration. All tests specified in .gitlab-ci.yml run on the test machine. The pipelines give feedback on which tests failed. To skip the tests, prefix the final commit message with [skip ci].

If the test suite needs to be modified for a certain branch, the submodules feature of git allows to couple this branch with a matching commit in the PRIVATE repository.

Initialize (i.e. clone) the PRIVATE repository via git submodule update --init. Because submodules are linked as commit IDs (i.e. hashes) and not as branches, after initialization you are in detached HEAD mode and need to checkout the branch of interest (typically development). Any changes in PRIVATE need to be committed and pushed as usual. Additionally, commit the current commit ID of the PRIVATE repository in the DAMASK repository with git commit PRIVATE. By doing that, the status (i.e. the current commit ID of the PRIVATE submodule) is stored in the current branch of the DAMASK repository and will be used by the test facility.