stages:
  - build artifacts
  - build docker image
  - push docker hub

build-back:
  stage: build artifacts
  image: golang:latest
  script:
    - GOOS=linux GOARCH=amd64 go build -o ${CI_PROJECT_NAME}-linux-amd64 -ldflags="-X 'github.com/vx3r/wg-gen-web/version.Version=${CI_COMMIT_SHA}'" github.com/vx3r/wg-gen-web/cmd/wg-gen-web
  artifacts:
    paths:
      - ${CI_PROJECT_NAME}-linux-amd64

build-front:
  stage: build artifacts
  image: node:10-alpine
  script:
    - cd ./ui
    - npm install
    - npm run build
    - cd ..
  artifacts:
    paths:
      - ui/dist

build:
  stage: build docker image
  image: docker:latest
  script:
    - docker info
    - docker build --build-arg COMMIT=${CI_COMMIT_SHA} --network br_docker --tag ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA} .

push:
  stage: push docker hub
  image: docker:latest
  only:
    - master
  script:
    - echo ${REGISTRY_PASSWORD} | docker login -u ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY}
    - docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}