Something went wrong on our end
-
Thomas Kluyver authored
# Conflicts: # tests/test_cal_tools.py
Thomas Kluyver authored# Conflicts: # tests/test_cal_tools.py
.gitlab-ci.yml 2.42 KiB
stages:
- check
- test
.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 --clear
- source .venv/bin/activate
- python3 -m pip install --upgrade pip setuptools wheel
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
# modified by this merge request, however
# `CI_MERGE_REQUEST_TARGET_BRANCH_SHA` is a 'premium' feature according to
# GitLab... so this is a workaround for extracting the hash
- export CI_MERGE_REQUEST_TARGET_BRANCH_SHA=$(git ls-remote origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME | cut -d$'\t' -f1)
- export FILES=$(git diff $CI_COMMIT_SHA $CI_MERGE_REQUEST_TARGET_BRANCH_SHA --name-only | tr '\n' ' ')
- python3 -m pip install pre-commit
- echo "Running pre-commit on diff from $CI_COMMIT_SHA to $CI_MERGE_REQUEST_TARGET_BRANCH_SHA ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME)"
# Pass list of modified files to pre-commit so that it only checks them
- echo $FILES | xargs pre-commit run --color=always --files
pytest:
stage: test
only: [merge_requests]
<<: *before_script
script:
- export LANG=C # Hopefully detect anything relying on locale
- python3 -m pip install ".[test]"
- python3 -m pytest --color yes --verbose --cov=cal_tools --cov=xfel_calibrate
# Nope... https://docs.gitlab.com/12.10/ee/user/project/merge_requests/test_coverage_visualization.html#enabling-the-feature
# - coverage xml
# artifacts:
# reports:
# cobertura: coverage.xml
cython-editable-install-test:
stage: test
only: [merge_requests]
<<: *before_script
script:
- python3 -m pip install -e ".[test]"
- python3 -m pytest --color yes --verbose ./tests/test_agipdalgs.py