stages:
  - test
  - build

.go_template:
  image: golang:latest
  before_script:
    - make go/dependencies

.docker_template:
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - apk add git
    - apk add make
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY

dependencies:
  extends: .go_template
  stage: test
  script:
    - make go/checkDependencies

format:
  extends: .go_template
  stage: test
  script:
    - make go/checkFmt

test:
  extends: .go_template
  stage: test
  script:
    - make go/test

# build:
#   extends: .go_template
#   stage: build
#   only:
#     - main
#     - tags
#   script:
#     - git fetch --tags
#     - make build/snapshot
#   artifacts:
#     paths:
#       - dist/*.tar.gz
#       - dist/checksums.txt
#     expire_in: 1 day

docker/gitlab:
  extends: .docker_template
  stage: build
  only:
    - tags
  script:
    - make docker/build/latest
    - make docker/build/tag
    - docker push registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter

docker/gitlab/nightly:
  extends: .docker_template
  stage: build
  only:
    - main
  script:
    - make docker/build/nightly
    - docker push registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter