variables:
  GIT_SUBMODULE_STRATEGY: recursive
  BUILDAH_LAYERS: "true"
  STORAGE_DRIVER: "vfs"

build:
  stage: build
  image: quay.io/buildah/stable
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: never
    # tagged releases do not use cache but can generate it
    - if: '"$CI_COMMIT_TAG" != ""'
      variables:
        CACHE_POLICY: push
    - if: '"$CI_COMMIT_TAG" == ""'
      variables:
        CACHE_POLICY: pull-push
  cache:
    - key: cache-$CI_COMMIT_REF_SLUG
      fallback_keys:
        - cache-$CI_DEFAULT_BRANCH
        - cache-default
      paths:
        - .cache/
      policy: $CACHE_POLICY
  before_script:
    - buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - mkdir -p .cache/build
    - buildah build -t "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}" -v "$(pwd)/.cache/build":/app/build:z .
    - buildah push "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}"
    - buildah push "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}" "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}"