image: docker-registry.schukai.com:443/nixos-ci-devenv:latest

services:
  - docker:dind


variables:
  # The repo name as used in
  # https://github.com/nix-community/NUR/blob/master/repos.json
  NIXOS_VERSION: "23.05"
  NIXPKGS_ALLOW_UNFREE: "1"
  NIXPKGS_ALLOW_INSECURE: "1"
  DOCKER_DRIVER: overlay2
  #GIT_DEPTH: 10


stages:
#  - build
  - tag
  - release


tag-it:
  stage: tag
  script:
    - git config user.email "''${GITLAB_USER_EMAIL}"
    - git config user.name "''${GITLAB_USER_NAME:-"Gitlab CI"}"
    - git config credential.helper '!f() { echo "username=gitlab-ci-token"; echo "password=''${CI_JOB_TOKEN}"; }; f'
    - git config pull.rebase true
    - git config http.sslVerify "false"
    - git remote set-url origin https://pad:''${GITLAB_TOKEN}@''${CI_REPOSITORY_URL#*@}
    - git fetch --all --tags --unshallow
    - git reset --hard origin/master
    - git checkout $CI_COMMIT_REF_NAME
    - git pull origin $CI_COMMIT_REF_NAME
    - version auto exit-code-if-no-bump
    - git push origin $CI_COMMIT_REF_NAME
  only:
    ## regex to x.y branches and master
    - master
  except:
    - tags

release:
  stage: release
  image:
    name: goreleaser/goreleaser
    entrypoint: ['']
  only:
    - tags
  variables:
    # Disable shallow cloning so that goreleaser  can diff between tags to
    GIT_DEPTH: 0
  script:
    - goreleaser release --clean


#before_script:
#  - nix shell nixpkgs#coreutils-full -c mkdir -p /certs/client/
#  - nix shell nixpkgs#coreutils-full -c ln -fs /etc/ssl/certs/ca-bundle.crt /certs/client/ca.pem
#  - echo > .env-gitlab-ci
#  - variables=("HOME=$HOME" "CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME" "CI_REPOSITORY_URL=$CI_REPOSITORY_URL" "GITLAB_TOKEN=$GITLAB_TOKEN" "CI_JOB_TOKEN=$CI_JOB_TOKEN" "GITLAB_USER_EMAIL=$GITLAB_USER_EMAIL" "GITLAB_USER_NAME=\"$GITLAB_USER_NAME\"" "CI_REGISTRY_USER=$CI_REGISTRY_USER" "CI_PROJECT_ID=$CI_PROJECT_ID" "CI_PROJECT_DIR=$CI_PROJECT_DIR" "CI_API_V4_URL=$CI_API_V4_URL" "CI_PROJECT_NAME=$CI_PROJECT_NAME" "CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA"); for var in "${variables[@]}"; do echo "$var" >> .env-gitlab-ci; done
#  - cat .env-gitlab-ci
#
#after_script:
#  - if [ -f .env-gitlab-ci ]; then rm .env-gitlab-ci; fi
#
#build:
#  stage: build
#  tags:
#    - nixos
#  script:
#    - devenv shell build-app
#
#  cache:
#    - key: nixos
#      paths:
#        - /nix/store
#  
#  artifacts:
#    paths:
#      - dist
#
#deploy:
#  stage: deploy
#  tags:
#    - nixos
#  script:
#    - devenv shell -c deploy-app
#
#  when: on_success
#
#  cache:
#    - key: nixos
#      paths:
#        - /nix/store
#
#
#  artifacts:
#    paths:
#      - dist