steps:
  - name: docker
    image: plugins/docker
    commands:
      - docker login docker.io -u $${DOCKERHUB_USERNAME} -p $${DOCKERHUB_PASSWORD}
      - docker build --rm=true -f Dockerfile -t $${CI_COMMIT_REF} .
      - docker tag $${CI_COMMIT_REF} $${DOCKERHUB_USERNAME}/$${CI_REPO_NAME}:latest
      - docker push $${DOCKERHUB_USERNAME}/$${CI_REPO_NAME}:latest
    secrets: [ dockerhub_username, dockerhub_password ]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  - name: caprover
    image: plugins/docker
    commands:
      - docker login docker.io -u $${DOCKERHUB_USERNAME} -p $${DOCKERHUB_PASSWORD}
      - docker run --network=host caprover/cli-caprover:2.2.3 caprover deploy --caproverUrl "$${CAPROVER_URL}" --caproverPassword "$${CAPROVER_PASSWORD}" -a "$${CI_REPO_NAME}" -i docker.io/$${DOCKERHUB_USERNAME}/$${CI_REPO_NAME}
    secrets: [ dockerhub_username, dockerhub_password, caprover_url, caprover_password ]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
