image: golang:latest

before_script:
  - make go/dependencies

stages:
  - test
  - build

dependencies:
  stage: test
  script:
    - make go/checkDependencies

format:
  stage: test
  script:
    - make go/checkFmt

test:
  stage: test
  script:
    - make go/test

build:
  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:
  stage: build
  only:
    - main
    - tags
  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
  script:
    - make docker/build/latest
    - make docker/build/tag
    - docker push registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter