Skip to content
Snippets Groups Projects
.gitlab-ci.yml 4.98 KiB
# This build file heavily uses template features from YAML so it is generic
# enough for any Bob project. Don't modify it unless you know what you're
# doing.


# Definition of our build pipeline
stages:
  - build
  - test
  - docs
  - wheels
  - deploy


# ---------
# Templates
# ---------

# Template for the build stage
# Needs to run on all supported architectures, platforms and python versions
.build_template: &build_job
  stage: build
  before_script:
    - git clean -ffdx
    - mkdir _ci
    - curl --silent "https://gitlab.idiap.ch/bob/bob.admin/raw/master/gitlab/install.sh" > _ci/install.sh
    - chmod 755 _ci/install.sh
    - ./_ci/install.sh _ci #updates
    - ./_ci/before_build.sh
  script:
    - ./_ci/build.sh
  after_script:
    - ./_ci/after_build.sh
  artifacts:
    expire_in: 1 week
    paths:
      - _ci/
      - dist/
      - sphinx/


# Template for the test stage - re-installs from uploaded wheels
# Needs to run on all supported architectures, platforms and python versions
.test_template: &test_job
  stage: test
  before_script:
    - ./_ci/install.sh _ci #updates
    - ./_ci/before_test.sh
  script:
    - ./_ci/test.sh
  after_script:
    - ./_ci/after_test.sh


# Template for the wheel uploading stage
# Needs to run against one supported architecture, platform and python version
.wheels_template: &wheels_job
  stage: wheels
  environment: intranet
  only:
    - master
    - /^v\d+\.\d+\.\d+([abc]\d*)?$/  # PEP-440 compliant version (tags)
  before_script:
    - ./_ci/install.sh _ci #updates
    - ./_ci/before_wheels.sh
  script:
    - ./_ci/wheels.sh
  after_script:
    - ./_ci/after_wheels.sh