{# You're looking at the template here, so you can ignore the below
   warning. This is the right file to edit #}

#####################################################
#                                                   #
#       THIS FILE IS GENERATED, DO NOT EDIT!        #
#                                                   #
# Generated with "ci-fairy generate-template", edit #
# .gitlab-ci/ci.template and .gitlab-ci/config.yml  #
# and rerun "ci-fairy generate-template" to change  #
# this file.                                        #
#                                                   #
#####################################################

.templates_sha: &template_sha 3d03cccd770c04e63b40325b42223495274d6a1d

include:
  - project: 'freedesktop/ci-templates'
    ref: *template_sha
    file:
      - '/templates/ci-fairy.yml'
    {% for d in distributions %}
      - '/templates/{{d.name}}.yml'
    {% endfor %}
  - template: Security/SAST.gitlab-ci.yml

stages:
  - sanity check
  - prep
  - build
  - test

variables:
  FDO_UPSTREAM_REPO: xorg/lib/libxcvt
  MESON_BUILDDIR: "builddir"
  NINJA_ARGS: ''
  MESON_ARGS: ''
  MESON_TEST_ARGS: ''
  GIT_DEPTH: 1

.policy:
  retry:
    max: 2
    when:
      - runner_system_failure
      - stuck_or_timeout_failure
  # cancel run when a newer version is pushed to the branch
  interruptible: true


# Re-generate the CI script and make sure it's the one currently checked in
# If this job fails, re-generate the gitlab-ci.yml script, see
# $SRCDIR/.gitlab-ci/generate-gitlab-ci.py
#
check-ci-script:
  extends:
    - .fdo.ci-fairy
  stage: sanity check
  script:
    - ci-fairy generate-template --verify && exit 0 || true
    - echo "Committed gitlab-ci.yml differs from generated gitlab-ci.yml. Please verify"
    - exit 1

#
# Verify that commit messages are as expected, signed-off, etc.
#
check-commit:
  extends:
    - .fdo.ci-fairy
  stage: sanity check
  script:
    - ci-fairy check-commits --signed-off-by --junit-xml=results.xml
  except:
    - master@xorg/lib/libxcvt
  variables:
    GIT_DEPTH: 100
  artifacts:
    reports:
      junit: results.xml

#
# Verify that merge request has the "allow collaboration" checkbox ticked
#
check-merge-request:
  extends:
    - .fdo.ci-fairy
  stage: sanity check
  script:
    - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
  artifacts:
    when: on_failure
    reports:
      junit: results.xml
  allow_failure: true

{% for d in distributions %}

.{{d.name}}.{{d.version}}:
  variables:
    FDO_DISTRIBUTION_VERSION: '{{d.version}}'
    FDO_DISTRIBUTION_TAG: '{{d.tag}}'

prep-{{d.name}}-{{d.version}}:
  extends:
    - .fdo.container-build@{{d.name}}
    - .{{d.name}}.{{d.version}}
  stage: prep
  variables:
    FDO_DISTRIBUTION_PACKAGES: "{{' '.join(d.packages)}}"

build-{{d.name}}-{{d.version}}:
  extends:
    - .fdo.distribution-image@{{d.name}}
    - .{{d.name}}.{{d.version}}
  stage: build
  script:
    - .gitlab-ci/meson-build.sh
{% endfor %}
