Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.26 KiB
Newer Older
# Definition of global variables (all stages)
variables:
  PYTHONUNBUFFERED: "1"
  CONDA_ROOT: "${CI_PROJECT_DIR}/miniconda"
André Anjos's avatar
André Anjos committed
  PRE_COMMIT_HOME: "${CI_PROJECT_DIR}/.cache/pre-commit"
  - if [[ $CI_RUNNER_TAGS == *"docker,"* ]]; then git config --global --add safe.directory ${CI_PROJECT_DIR}; fi
  - python3 ./bob/devtools/bootstrap.py -vv build
  - source ${CONDA_ROOT}/etc/profile.d/conda.sh
  - conda activate base

# Definition of our build pipeline order
stages:
André Anjos's avatar
André Anjos committed
  - deploy


# Build targets
  stage: build
    paths:
      - miniconda.sh
André Anjos's avatar
André Anjos committed
      - ${PRE_COMMIT_HOME}
.build_linux_template:
  variables:
    BUILD_EGG: "true"
    - docker
  image: quay.io/condaforge/linux-anvil-cos7-x86_64
  artifacts:
    paths:
      - ${CONDA_ROOT}/conda-bld/linux-64/*.conda
      - ${CONDA_ROOT}/conda-bld/noarch/*.conda
      - ${CONDA_ROOT}/conda-bld/linux-64/*.tar.bz2
      - ${CONDA_ROOT}/conda-bld/noarch/*.tar.bz2
  cache:
    key: "linux-cache"


.build_macos_intel_template:
    - macos
    - intel
  artifacts:
    paths:
      - ${CONDA_ROOT}/conda-bld/osx-64/*.conda
      - ${CONDA_ROOT}/conda-bld/osx-64/*.tar.bz2
  cache:
    key: "macos-intel-cache"


.build_macos_arm_template:
  extends: .build_template
  tags:
    - macos
    - arm
  artifacts:
    paths:
      - ${CONDA_ROOT}/conda-bld/osx-arm64/*.conda
      - ${CONDA_ROOT}/conda-bld/osx-arm64/*.tar.bz2
  cache:
    key: "macos-arm-cache"


code_quality:
  tags:
    - docker
  stage: qa
  image: quay.io/condaforge/linux-anvil-cos7-x86_64
  cache:
    key: "$CI_JOB_STAGE"
    paths:
      - ${PRE_COMMIT_HOME}

  before_script:
    - git config --global --add safe.directory ${CI_PROJECT_DIR}

  script:
    - sudo yum install -y git python3-pip
    - pip3 install pre-commit
    - pre-commit run --all-files --show-diff-on-failure


Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
build_linux_bob_devel:
  extends: .build_linux_template
  variables:
    # The version of cuda at Idiap
    CONDA_OVERRIDE_CUDA: "11.6"
  # run bob-devel test only when bob/devtools/data/conda_build_config.yaml changes
  only:
    changes:
      - bob/devtools/data/conda_build_config.yaml
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
  script:
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
    - sudo yum install -y mesa-libGL-devel  # need this for pyopengl
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
    - python3 ./bob/devtools/build.py -vv build-bob-devel

build_linux_deps:
  extends: .build_linux_template
  # run deps test only when deps changes
  only:
    changes:
      - deps/**/*
  script:
    - python3 ./bob/devtools/build.py -vv build-deps

build_linux_bob_devtools:
  extends: .build_linux_template
  script:
    - python3 ./bob/devtools/build.py -vv build-devtools --twine-check

Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
build_macos_intel_bob_devel:
  extends: .build_macos_intel_template
  # run bob-devel test only when bob/devtools/data/conda_build_config.yaml changes
  only:
    changes:
      - bob/devtools/data/conda_build_config.yaml
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
  script:
    - python3 ./bob/devtools/build.py -vv build-bob-devel
build_macos_arm_bob_devel:
  extends: .build_macos_arm_template
  # run bob-devel test only when bob/devtools/data/conda_build_config.yaml changes
  only:
    changes:
      - bob/devtools/data/conda_build_config.yaml
  script:
    - python3 ./bob/devtools/build.py -vv build-bob-devel

build_macos_intel_deps:
  extends: .build_macos_intel_template
  # run deps test only when deps changes
  only:
    changes:
      - deps/**/*
  script:
    - python3 ./bob/devtools/build.py -vv build-deps

build_macos_arm_deps:
  extends: .build_macos_arm_template
  # run deps test only when deps changes
  only:
    changes:
      - deps/**/*
  script:
    - python3 ./bob/devtools/build.py -vv build-deps

build_macos_intel_bob_devtools:
  extends: .build_macos_intel_template
  script:
    - python3 ./bob/devtools/build.py -vv build-devtools

build_macos_arm_bob_devtools:
  extends: .build_macos_arm_template
  script:
    - python3 ./bob/devtools/build.py -vv build-devtools

André Anjos's avatar
André Anjos committed
# Deploy targets
.release_template:
  before_script:
    - python3 ./bob/devtools/bootstrap.py -vv local base
André Anjos's avatar
André Anjos committed
    - source ${CONDA_ROOT}/etc/profile.d/conda.sh
    - python3 ./bob/devtools/bootstrap.py -vv local base
    - source ${CONDA_ROOT}/etc/profile.d/conda.sh
    - conda activate base
    - bdt ci clean -vv
André Anjos's avatar
André Anjos committed
  dependencies:
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
    - build_linux_bob_devel
    - build_linux_deps
    - build_linux_bob_devtools
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
    - build_macos_intel_bob_devel
    - build_macos_intel_deps
    - build_macos_intel_bob_devtools
    - build_macos_arm_bob_devel
    - build_macos_arm_deps
    - build_macos_arm_bob_devtools
André Anjos's avatar
André Anjos committed
  tags:
André Anjos's avatar
André Anjos committed
    paths:
      - miniconda.sh


.deploy_template:
  extends: .release_template

  stage: deploy
  script:
    - bdt ci base-deploy -vv
    - bdt ci deploy -vv


André Anjos's avatar
André Anjos committed
deploy_beta:
André Anjos's avatar
André Anjos committed
  environment: beta
  only:
    - master


deploy_stable:
André Anjos's avatar
André Anjos committed
  environment: stable
  only:
    - /^v\d+\.\d+\.\d+([abc]\d*)?$/  # PEP-440 compliant version (tags)
  except:
    - branches
  extends: .release_template
  stage: pypi
  environment: pypi
  only:
    - /^v\d+\.\d+\.\d+([abc]\d*)?$/  # PEP-440 compliant version (tags)
  except:
    - branches
  script:
    - bdt ci pypi -vv dist/*.zip