kind: pipeline
name: cuddle-empty-plan
type: docker

steps:
  - name: load_secret
    image: debian:buster-slim
    volumes:
      - name: ssh
        path: /root/.ssh/
    environment:
      SSH_KEY:
        from_secret: gitea_id_ed25519
    commands:
      - mkdir -p $HOME/.ssh/
      - echo "$SSH_KEY" | base64 -d > $HOME/.ssh/id_ed25519
      - chmod -R 600 ~/.ssh
      - |
        cat >$HOME/.ssh/config <<EOL
        Host git.front.kjuulh.io
          IdentityFile $HOME/.ssh/id_ed25519
          IdentitiesOnly yes
          UserKnownHostsFile=/dev/null
          StrictHostKeyChecking no
        EOL
      - chmod 700 ~/.ssh/config

  - name: build pr
    image: kasperhermansen/{{bin_name}}:{{image_tag}}
    volumes:
      - name: ssh
        path: /root/.ssh/
    commands:
      - eval `ssh-agent`
      - ssh-add
      - echo "$DOCKER_PASSWORD" | docker login  --password-stdin --username="$DOCKER_USERNAME" docker.io
      - export CLUSTER=clank-dev
      - cuddle --version
      - {{ bin_name }} pr
    environment:
      DAGGER_CLOUD_TOKEN:
        from_secret: dagger_cloud_token
      DRONE_HOST: "https://ci.i.kjuulh.io"
      DRONE_USER: "kjuulh"
      DRONE_TOKEN: 
        from_secret: drone_token
      REGISTRY_CACHE_USERNAME:
        from_secret: registry_cache_username
      REGISTRY_CACHE_PASSWORD:
        from_secret: registry_cache_password
      REGISTRY_CACHE_TOKEN:
        from_secret: registry_cache_token
      REGISTRY_CACHE_url:
        from_secret: registry_cache_url
      DOCKER_BUILDKIT: 1
      DOCKER_PASSWORD:
        from_secret: docker_password
      DOCKER_USERNAME:
        from_secret: docker_username
      CUDDLE_SECRETS_PROVIDER: 1password
      CUDDLE_ONE_PASSWORD_DOT_ENV: ".env.ci"
      CUDDLE_SSH_AGENT: "true"
      GIT_PASSWORD:
        from_secret: git_password
      CI_PREFIX: "/mnt/ci/ci"
      DOCKER_HOST: "tcp://192.168.1.155:2376"
      CUDDLE_PLEASE_TOKEN:
        from_secret: cuddle_please_token
      OP_SERVICE_ACCOUNT_TOKEN:
        from_secret: op_service_account_token
    when:
      event:
        - pull_request
      exclude:
        - main
        - master
    depends_on:
      - "load_secret"

  - name: build main
    image: kasperhermansen/{{bin_name}}:{{image_tag}}
    volumes:
      - name: ssh
        path: /root/.ssh/
    commands:
      - eval `ssh-agent`
      - ssh-add
      - echo "$DOCKER_PASSWORD" | docker login  --password-stdin --username="$DOCKER_USERNAME" docker.io
      - export CLUSTER=clank-prod
      - cuddle --version
      - {{ bin_name }} main
    environment:
      DAGGER_CLOUD_TOKEN:
        from_secret: dagger_cloud_token
      DRONE_HOST: "https://ci.i.kjuulh.io"
      DRONE_USER: "kjuulh"
      DRONE_TOKEN: 
        from_secret: drone_token
      REGISTRY_CACHE_USERNAME:
        from_secret: registry_cache_username
      REGISTRY_CACHE_PASSWORD:
        from_secret: registry_cache_password
      REGISTRY_CACHE_TOKEN:
        from_secret: registry_cache_token
      REGISTRY_CACHE_url:
        from_secret: registry_cache_url
      DOCKER_BUILDKIT: 1
      DOCKER_PASSWORD:
        from_secret: docker_password
      DOCKER_USERNAME:
        from_secret: docker_username
      CUDDLE_SECRETS_PROVIDER: 1password
      CUDDLE_ONE_PASSWORD_DOT_ENV: ".env.ci"
      CUDDLE_SSH_AGENT: "true"
      GIT_PASSWORD:
        from_secret: git_password
      CI_PREFIX: "/mnt/ci/ci"
      DOCKER_HOST: "tcp://192.168.1.155:2376"
      CUDDLE_PLEASE_TOKEN:
        from_secret: cuddle_please_token
      OP_SERVICE_ACCOUNT_TOKEN:
        from_secret: op_service_account_token
    when:
      event:
        - push
      branch:
        - main
        - master
      exclude:
        - pull_request
    depends_on:
      - "load_secret"

volumes:
  - name: ssh
    temp: {}