diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4441873da0bff24a5b8bcb183b5573d3d99c0755..a1a86985769caa5e56f22521d980db6765b42a33 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,14 +2,28 @@ stages: - check - test -checks: - stage: check - only: [merge_requests] - allow_failure: true +.before_script: &before_script before_script: + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY_GITLAB" | tr -d '\r' | ssh-add - + # Our self-hosted runners have persistent home directories, so here we store + # the known_hosts file in the temporary project dir and tell git to use a ssh + # command that uses this hosts file during operations + - export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$CI_PROJECT_DIR/.ssh/known_hosts" + - mkdir -p $CI_PROJECT_DIR/.ssh + - chmod 700 $CI_PROJECT_DIR/.ssh + - ssh-keyscan -p 10022 git.xfel.eu > $CI_PROJECT_DIR/.ssh/known_hosts + - ls $CI_PROJECT_DIR/.ssh + - echo $GIT_SSH_COMMAND - python3 -m venv .venv - source .venv/bin/activate - python3 -m pip install --upgrade pip + +checks: + stage: check + only: [merge_requests] + allow_failure: true + <<: *before_script script: - export PATH=/home/gitlab-runner/.local/bin:$PATH # We'd like to run the pre-commit hooks only on files that are being @@ -26,21 +40,7 @@ checks: pytest: stage: test only: [merge_requests] - before_script: - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY_GITLAB" | tr -d '\r' | ssh-add - - # Our self-hosted runners have persistent home directories, so here we store - # the known_hosts file in the temporary project dir and tell git to use a ssh - # command that uses this hosts file during operations - - export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$CI_PROJECT_DIR/.ssh/known_hosts" - - mkdir -p $CI_PROJECT_DIR/.ssh - - chmod 700 $CI_PROJECT_DIR/.ssh - - ssh-keyscan -p 10022 git.xfel.eu > $CI_PROJECT_DIR/.ssh/known_hosts - - ls $CI_PROJECT_DIR/.ssh - - echo $GIT_SSH_COMMAND - - python3 -m venv .venv - - source .venv/bin/activate - - python3 -m pip install --upgrade pip + <<: *before_script script: - python3 -m pip install ".[test]" - python3 -m pytest --cov=cal_tools --cov=xfel_calibrate --ignore=tests/legacy