type: docker
kind: pipeline
name: "drone-dagger-test"

steps:
  - name: "build"
    image: harbor.front.kjuulh.io/docker-proxy/library/docker:dind
    volumes:
      - name: dockersock
        path: /var/run
    environment:
      DOCKER_BUILDKIT: 1
      HARBOR_DOCKER_HOST: "harbor.front.kjuulh.io"
      HARBOR_DOCKER_USERNAME:
        from_secret: "harbor_docker_username"
      HARBOR_DOCKER_PASSWORD:
        from_secret: "harbor_docker_password"
    commands:
      - sleep 5
      - apk add git
      - mkdir -p tmp/dagger-go
      - git clone "https://git.front.kjuulh.io/kjuulh/dagger-go.git" tmp/dagger-go
      - >
        echo "$${HARBOR_DOCKER_PASSWORD}" | docker login
        --password-stdin
        --username="$${HARBOR_DOCKER_USERNAME}"
        "$${HARBOR_DOCKER_HOST}"
      - >
        docker pull harbor.front.kjuulh.io/kjuulh/dagger-go-builder:${DRONE_COMMIT} || 
        (docker build -t harbor.front.kjuulh.io/kjuulh/dagger-go-builder:${DRONE_COMMIT} -f tmp/dagger-go/Dockerfile . && docker push harbor.front.kjuulh.io/kjuulh/dagger-go-builder:${DRONE_COMMIT})
      - >
        docker run
        -e DRONE_REPO_NAME="${DRONE_REPO_NAME}"
        -e HARBOR_DOCKER_HOST=$${HARBOR_DOCKER_HOST}
        -e HARBOR_DOCKER_USERNAME=$${HARBOR_DOCKER_USERNAME}
        -e HARBOR_DOCKER_PASSWORD=$${HARBOR_DOCKER_PASSWORD}
        -v "$PWD/:/src/"
        -v /var/run/docker.sock:/var/run/docker.sock
        harbor.front.kjuulh.io/kjuulh/dagger-go-builder:${DRONE_COMMIT}
        sh -c 'echo "$$HARBOR_DOCKER_PASSWORD" |  docker login
        --password-stdin
        --username="$$HARBOR_DOCKER_USERNAME"
        "$${HARBOR_DOCKER_HOST}"
        && dagger-go build golangbin'

services:
  - name: docker
    image: docker:dind
    privileged: true
    volumes:
      - name: dockersock
        path: /var/run

volumes:
  - name: dockersock
    temp: {}
