---
kind: pipeline
type: docker
name: Check

steps:
  - name: "Check"
    image: docker.nix-community.org/nixpkgs/nix-flakes:latest
    when:
      event:
        - pull_request
    environment:
      NIX_FLAGS: "--print-build-logs --verbose"
    commands:
      - 'echo DEBUG: Using NIX_FLAGS: $NIX_FLAGS'
      - nix $$NIX_FLAGS develop --command nix flake show
      - nix $$NIX_FLAGS build ".#nixosConfigurations.PubSolarOS.config.system.build.toplevel"

---
kind: pipeline
type: exec
name: Tests

steps:
  #- name: "Tests"
  #  environment:
  #    NIX_FLAGS: "--print-build-logs --verbose"
  #  commands:
  #    - 'echo DEBUG: Using NIX_FLAGS: $NIX_FLAGS'
  #    - nix $$NIX_FLAGS build ".#checks.x86_64-linux.customTestFor-PubSolarOS-firstTest"
  #    - nix-store --read-log result
  #    - nix $$NIX_FLAGS flake check
  #    - nix $$NIX_FLAGS develop --command echo OK

  - name: "Upload artifacts"
    environment:
      TRITON_DONT_SOURCE_PROFILE: 1
      PRIVATE_SSH_KEY:
        from_secret: private_ssh_key
      MANTA_USER: pub_solar
      MANTA_URL: https://eu-central.manta.greenbaum.cloud
      MANTA_KEY_ID: "02:ae:79:2b:8f:7f:51:ba:c6:3c:ea:6f:f7:bb:d1:6a"
    commands:
      - export TARGET_DIR="$${DRONE_REPO}/$${DRONE_BUILD_NUMBER}"
      - echo env var TARGET_DIR is set to $$TARGET_DIR
      - "mkdir ~/.ssh && chmod 700 ~/.ssh"
      - "echo -n $$PRIVATE_SSH_KEY > ~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519"
      - nix flake new --template "git+https://git.greenbaum.cloud/dev/tritonshell?ref=main" ./tritonshell
      - git add tritonshell
      - cd tritonshell
      - nix develop --command mput -p -f ../result/foot_wayland_info.png ~~/public/$${TARGET_DIR}
      - nix develop --command mput -p -f ../result/test-wayland.out ~~/public/$${TARGET_DIR}

trigger:
  ref:
    - refs/tags/v*
    - refs/tags/t*

---
kind: pipeline
type: docker
name: Publish ISO

steps:
  - name: "Build ISO"
    image: docker.nix-community.org/nixpkgs/nix-flakes:latest
    environment:
      NIX_FLAGS: "--print-build-logs --verbose"
    volumes:
      - name: file-exchange
        path: /var/nix/iso-cache
    commands:
      - |
        nix $$NIX_FLAGS build \
          '.#nixosConfigurations.bootstrap.config.system.build.bootstrapIso'
      - cp $(readlink -f result)/iso/*.iso /var/nix/iso-cache/

  - name: "Publish ISO"
    image: appleboy/drone-scp
    volumes:
      - name: file-exchange
        path: /var/nix/iso-cache
    settings:
      host:
        from_secret: ssh_host
      user:
        from_secret: ssh_user
      port:
        from_secret: ssh_port
      key:
        from_secret: ssh_key
      target: /srv/os
      source:
        - /var/nix/iso-cache/*.iso
      strip_components: 3

depends_on:
  - Check

trigger:
  branch:
    - main
  event:
    - push

volumes:
  - name: file-exchange
    temp: {}

---
kind: signature
hmac: dcde993164155e5f45b39c442bf619cd1cdb9172d4671a62c94c02217af9c339

...