Verified Commit 9809a2fe authored by Roman Lacko's avatar Roman Lacko
Browse files

Add .gitlab-ci

parent 6fb31d72
Loading
Loading
Loading
Loading

.gitlab-ci.yml

0 → 100644
+53 −0
Original line number Diff line number Diff line
default:
  image: docker:28-cli
  tags:
    - shared-fi-dind
  services:
    - docker:28-dind-rootless
  before_script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin

variables:

stages:
  - build
  - test
  - release

# NOTE: The repository must have Container Registry feature enabled in
# order to use ‹$CI_REGISTRY_IMAGE› variable.
variables:
  CR_VERSION: 2.4.3
  CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
  CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:$CR_VERSION
  DOCKER_HOST: "unix:///runner/services/docker/docker.sock"

build:
  stage: build
  script:
    - docker build --build-arg cr_version=$CR_VERSION -t $CONTAINER_TEST_IMAGE .
    - docker push $CONTAINER_TEST_IMAGE

test:
  image: $CONTAINER_TEST_IMAGE
  stage: test
  script:
    - cd test
    - meson setup build
    - ninja -C build
    - build/criterion-test -Oxml:report.xml
  artifacts:
    when: always
    paths:
      - test/report.xml
    reports:
      junit: test/report.xml

release:
  stage: release
  script:
    - docker pull $CONTAINER_TEST_IMAGE
    - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
    - docker push $CONTAINER_RELEASE_IMAGE
  rules:
    - if: $CI_COMMIT_BRANCH == "main"