build:
  image: php:8.1

  before_script:
    # Install some stuff that the image doesn't come with
    - apt update -yqq
    - apt install git libpq-dev libzip-dev zip make wget gnupg -yqq

    # Install phive
    - wget -O phive.phar https://phar.io/releases/phive.phar
    - wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
    - gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
    - gpg --verify phive.phar.asc phive.phar
    - chmod +x phive.phar
    - mv phive.phar /usr/local/bin/phive

    # install phpab
    - phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
  script:
    - make tar
  rules:
    - if: $CI_COMMIT_BRANCH

release:
  image: php:8.1

  before_script:
    # Install some stuff that the image doesn't come with
    - apt update -yqq
    - apt install git libpq-dev libzip-dev zip make wget gnupg -yqq

    # Install phive
    - wget -O phive.phar https://phar.io/releases/phive.phar
    - wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
    - gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
    - gpg --verify phive.phar.asc phive.phar
    - chmod +x phive.phar
    - mv phive.phar /usr/local/bin/phive

    # install phpab
    - phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
  script:
    - make redist
    - mkdir ncc_$CI_COMMIT_TAG
    - cp -r build/src/* ncc_$CI_COMMIT_TAG/
  artifacts:
    paths:
      - ncc_$CI_COMMIT_TAG/
  rules:
    - if: $CI_COMMIT_TAG

ncc-docker-build:
  image: docker:latest
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    - |
      if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
        tag=""
        echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'"
      else
        tag=":$CI_COMMIT_REF_SLUG"
        echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
      fi
    - docker build --no-cache --pull -t "$CI_REGISTRY_IMAGE${tag}" .
    - docker push "$CI_REGISTRY_IMAGE${tag}"
  rules:
    - if: $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_BRANCH == 'dev'
      exists:
        - Dockerfile
