Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
bob.learn.em
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
bob
bob.learn.em
Commits
8098311f
Commit
8098311f
authored
2 years ago
by
André MAYORAZ
Browse files
Options
Downloads
Patches
Plain Diff
[ci] putting back the macOS pipeline
parent
0cebce7f
Branches
mccnn_rebase
No related tags found
1 merge request
!68
Using citools package instead of bob devtools for the CI process
Pipeline
#65844
passed
2 years ago
Stage: qa
Stage: test
Stage: doc
Stage: dist
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
.gitlab-ci.yml
+4
-245
4 additions, 245 deletions
.gitlab-ci.yml
with
4 additions
and
245 deletions
.gitlab-ci.yml
+
4
−
245
View file @
8098311f
workflow
:
include
:
rules
:
-
project
:
bob/citools
-
if
:
'
$CI_PIPELINE_SOURCE
==
"merge_request_event"'
ref
:
master
-
if
:
'
$CI_COMMIT_BRANCH
==
$CI_DEFAULT_BRANCH'
file
:
/src/citools/data/python.yml
-
if
:
$CI_COMMIT_TAG
variables
:
PYTHONUNBUFFERED
:
"
1"
XDG_CACHE_HOME
:
"
${CI_PROJECT_DIR}/cache"
CITOOLS
:
"
git+https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.idiap.ch/bob/citools"
default
:
tags
:
-
bob
-
docker
image
:
python:3.10
stages
:
-
qa
-
test
-
doc
-
dist
-
deploy
quality
:
stage
:
qa
before_script
:
-
python3 -m venv venv
-
source venv/bin/activate
-
pip install pre-commit
script
:
-
pre-commit run --all-files --show-diff-on-failure --verbose
needs
:
[]
cache
:
key
:
pre-commit-cache
paths
:
-
${XDG_CACHE_HOME}/pre-commit
-
${XDG_CACHE_HOME}/pip
rules
:
-
exists
:
-
.pre-commit-config.yaml
tests
:
stage
:
test
image
:
python:${PYTHON}
parallel
:
matrix
:
-
PYTHON
:
[
"
3.9"
,
"
3.10"
]
TAG
:
[
"
docker"
]
tags
:
-
bob
-
${TAG}
needs
:
-
job
:
quality
optional
:
true
before_script
:
# get pip-constraints.txt from distribution
-
python3 -m venv _citools
-
source _citools/bin/activate
-
pip install "${CITOOLS}"
-
citool pip-constraints "constraints.txt"
-
deactivate
# normal test procedure
-
python3 -m venv venv
-
source venv/bin/activate
-
pip install -c constraints.txt '.[test]' pytest-cov coverage
script
:
-
pytest -sv --cov-report "html:html/coverage" --cov-report "xml:coverage.xml" --junitxml "junit-coverage.xml"
coverage
:
'
/(?:TOTAL|total|Total).*?
(100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
cache
:
key
:
test-cache-${TAG}-${PYTHON}
paths
:
-
${XDG_CACHE_HOME}/pip
artifacts
:
paths
:
-
html
reports
:
junit
:
junit-coverage.xml
coverage_report
:
coverage_format
:
cobertura
path
:
coverage.xml
documentation
:
stage
:
doc
rules
:
-
exists
:
-
doc/conf.py
needs
:
-
job
:
quality
optional
:
true
cache
:
key
:
doc-cache
paths
:
-
${XDG_CACHE_HOME}/pip
before_script
:
# get pip-constraints.txt from distribution
-
python3 -m venv _citools
-
source _citools/bin/activate
-
pip install "${CITOOLS}"
-
citool pip-constraints "constraints.txt"
-
deactivate
# normal doc-building procedure
-
python3 -m venv venv
-
source venv/bin/activate
-
pip install -c constraints.txt '.[doc]' sphinx
script
:
-
sphinx-build -aEW doc html/sphinx
-
sphinx-build -aEb doctest doc html/doctest
artifacts
:
paths
:
-
html
python-package
:
stage
:
dist
cache
:
key
:
packaging-cache
paths
:
-
${XDG_CACHE_HOME}/pip
needs
:
-
tests
before_script
:
-
python3 -m venv venv
-
source venv/bin/activate
-
pip install build twine
script
:
-
python -m build
-
twine check dist/*
artifacts
:
paths
:
-
dist
conda-package
:
stage
:
dist
# make sure we use the same image as conda-forge:
# https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/main/recipe/conda_build_config.yaml
image
:
quay.io/condaforge/linux-anvil-cos7-x86_64
variables
:
CONDA_OVERRIDE_CUDA
:
"
11.6"
needs
:
-
tests
rules
:
-
exists
:
-
conda/meta.yaml
before_script
:
-
pip install "${CITOOLS}"
-
rm -f /home/conda/.condarc
-
citool conda-config --group "${CI_PROJECT_NAMESPACE}" --visibility "${CI_PROJECT_VISIBILITY}" --tag "${CI_COMMIT_TAG}" /opt/conda/condarc
-
mamba update -n base --all
-
eval "$(/opt/conda/bin/conda shell.bash hook)"
-
PACKAGE_NAME=$(python setup.py --name 2>/dev/null)
-
PACKAGE_VERSION=$(python setup.py --version 2>/dev/null)
-
export BOB_BUILD_NUMBER=$(citool next-build --group "${CI_PROJECT_NAMESPACE}" --visibility "${CI_PROJECT_VISIBILITY}" --tag "${CI_COMMIT_TAG}" --name "${PACKAGE_NAME}" --version "${PACKAGE_VERSION}" conda-package-matches.txt)
script
:
-
mkdir dist
-
echo "-> ${PACKAGE_NAME}-${PACKAGE_VERSION} build-number is ${BOB_BUILD_NUMBER}"
-
citool conda-constraints conda/conda_build_config.yaml conda/recipe_append.yaml
-
conda info
-
conda mambabuild --output-folder=$(pwd)/dist conda
artifacts
:
paths
:
-
dist
-
conda-package-matches.txt
local-pypi
:
stage
:
deploy
needs
:
-
python-package
cache
:
key
:
pypi-cache
paths
:
-
${XDG_CACHE_HOME}/pip
rules
:
# conditions:
# - only on the main branch
# - public or private
# - for tags or not
-
if
:
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables
:
TWINE_USERNAME
:
"
gitlab-ci-token"
TWINE_PASSWORD
:
"
${CI_JOB_TOKEN}"
before_script
:
-
python3 -m venv venv
-
source venv/bin/activate
-
pip install "${CITOOLS}" twine
-
PACKAGE_NAME=$(python setup.py --name 2>/dev/null)
-
PACKAGE_VERSION=$(python setup.py --version 2>/dev/null)
script
:
# only accept to replace version if not a tag
-
test -z "${CI_COMMIT_TAG}" && citool deregister --git-url "${CI_SERVER_URL}" --token "${PYPI_PACKAGE_REGISTRY_TOKEN}" --project "${CI_PROJECT_ID}" --name "${PACKAGE_NAME}" --version "${PACKAGE_VERSION}"
-
twine upload --repository-url "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi" dist/*
pypi
:
extends
:
local-pypi
needs
:
# only uploads to official PyPI if local PyPI upload suceeded as well
-
local-pypi
rules
:
# conditions:
# - only on the main branch
# - only for public packages
# - only for tags in PEP-440 style
-
if
:
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_VISIBILITY == "public" && $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+([abc]\d*)?$/
variables
:
TWINE_USERNAME
:
"
${PYPIUSER}"
TWINE_PASSWORD
:
"
${PYPIPASS}"
script
:
-
twine upload dist/*
local-docs
:
stage
:
deploy
needs
:
-
tests
-
job
:
documentation
optional
:
true
rules
:
-
if
:
($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH)
cache
:
key
:
deploy-docs-cache
paths
:
-
${XDG_CACHE_HOME}/pip
before_script
:
-
python3 -m venv venv
-
source venv/bin/activate
-
pip install "${CITOOLS}"
script
:
# uses DOCUSER/DOCPASS environment variables
-
citool deploy-docs --package "${CI_PROJECT_PATH}" --visibility "${CI_PROJECT_VISIBILITY}" --branch "${CI_COMMIT_REF_NAME}" --tag "${CI_COMMIT_TAG}" html
conda-deploy
:
stage
:
deploy
needs
:
-
conda-package
rules
:
-
if
:
($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH)
cache
:
key
:
deploy-conda-cache
paths
:
-
${XDG_CACHE_HOME}/pip
before_script
:
-
python3 -m venv venv
-
source venv/bin/activate
-
pip install "${CITOOLS}"
script
:
# uses DOCUSER/DOCPASS environment variables
-
citool deploy-conda --visibility "${CI_PROJECT_VISIBILITY}" --tag "${CI_COMMIT_TAG}" dist/*/*.conda
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment