Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.92 KiB
Newer Older
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
include:
  - local: templates/Rules.yaml
  - local: templates/Runners/eole-docker.yaml
  - local: templates/Lint/Commitlint.yaml
  - local: templates/Docker.yaml
  - local: templates/Release/Semantic-release.yaml

.docker-matrix:
  parallel:
    matrix:
      - IMAGE_NAME: [commitlint, semantic-release-gitlab]

###############################################################################
# `build` stage: `*-docker-build`
###############################################################################
# Suffix all jobs to avoid conflict with other jobs names
build-docker:
  extends:
    - .docker-matrix
    - .build-docker-image

###############################################################################
# `release` stage: `semantic-release`, `*-docker-tag`
###############################################################################
# Suffix all jobs to avoid conflict with other jobs names
.tag-docker:
  extends:
    - .docker-matrix
    - .tag-docker-image

## dev images
tag dev:
  extends:
    - .tag-docker
    - .on-dev
  variables:
    IMAGE_TAG: dev

## testing images
tag testing:
  extends:
    - .tag-docker
    - .on-testing
  variables:
    IMAGE_TAG: testing

## stable images
.tag-stable:
  extends: .tag-docker
  variables:
    SOURCE_TAG: testing

tag release:
  extends: .tag-stable

tag major:
  extends: .tag-stable
  before_script:
    - export RELEASE_PREFIX=${RELEASE_PREFIX:-release/}
    - export RELEASE=${CI_COMMIT_TAG#${RELEASE_PREFIX}}
    - export IMAGE_TAG=${RELEASE%%.*}

tag minor:
  extends:
    - .tag-stable
  before_script:
    - export RELEASE_PREFIX=${RELEASE_PREFIX:-release/}
    - export RELEASE=${CI_COMMIT_TAG#${RELEASE_PREFIX}}
    - export IMAGE_TAG=${RELEASE%.${RELEASE##*.}}

tag stable:
  extends: .tag-stable
  variables:
    IMAGE_TAG: stable

tag latest:
  extends: .tag-stable
  variables:
    IMAGE_TAG: latest