pipeline:
  backend:
    image: rust
    environment:
      - DATABASE_URL=postgres://postgres:password@database:5432/postgres
      - GIT_HASH=8e77345f1597e40c2e266cb4e6dee74888918a61 # dummy value
      - OPEN_API_DOCS=8e77345f1597e40c2e266cb4e6dee74888918a61
      - COMPILED_DATE=2021-07-21
    commands:
      - curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&\
      - apt update && apt-get -y --no-install-recommends install nodejs tar gpg curl wget
      - npm install --global yarn
      - rustup component add rustfmt
      - rustup component add clippy
      - make dev-env
      - make migrate
      - make frontend
      - make lint
      - make test

  build_docker_img:
    image: plugins/docker
    when:
      event: [pull_request]
    settings:
      dry_run: true
      repo: mcaptcha/survey
      tags: latest

  build_and_publish_docker_img:
    image: plugins/docker
    when:
      event: [push, tag, deployment]
    settings:
      username: mcaptcha
      password:
        from_secret: DOCKER_TOKEN
      repo: mcaptcha/survey
      tags: latest

        #  publish_bins:
        #    image: rust
        #    when:
        #      event: [push, tag, deployment]
        #    commands:
        #      - apt update
        #      - apt-get -y --no-install-recommends install gpg tar curl wget
        #      - echo -n "$RELEASE_BOT_GPG_SIGNING_KEY" | gpg --batch --import --pinentry-mode loopback
        #      - scripts/bin-publish.sh publish master latest $DUMBSERVE_PASSWORD
        #    secrets: [RELEASE_BOT_GPG_SIGNING_KEY, DUMBSERVE_PASSWORD, GPG_PASSWORD]

services:
  database:
    image: postgres
    environment:
      - POSTGRES_PASSWORD=password
