Skip to content
Snippets Groups Projects
.gitlab-ci.yml 8.68 KiB
---
stages:
  - prepare
  - build
  - collect
  - deploy

workflow:
  rules:
    - if: '$CI_COMMIT_TAG'
      when: never
    - if: '$CI_PIPELINE_SOURCE == "push"'
      when: always
    - when: never

# Anchors

.release_rules: &release_rules
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      when: never
    - if: "$CI_COMMIT_MESSAGE =~ /#release/"
      when: always
    - when: never

# When changing, also make changes to copies in the build stage
.beta_rules: &beta_rules
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      when: never
    - if: "$CI_COMMIT_MESSAGE =~ /#release/"
      when: never
    - when: always

.dev_rules: &dev_rules
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      when: always
    - when: never



# ========================================================================
# Stage: prepare
#
# Builds unpacked extensions from the source files.
# ========================================================================

.prepare:
  stage: prepare
  image: python:3.7-stretch
  artifacts:
    paths:
      - version
      - build/**

prepare:dev:
  stage: prepare
  image: python:3.7-stretch
  script:
    - VERSION=$(python3 scripts/update-version.py -n)
    - bash scripts/build.sh --version "$VERSION"
  <<: *dev_rules

prepare:beta:
  extends: .prepare
  script:
    - python3 scripts/update-version.py -k "$SSH_TAGGING_KEY" -i build -f build -o version -v
    - bash scripts/build.sh --version "$(cat version)"
  <<: *beta_rules