kind: pipeline
type: docker
name: default

steps:
  - name: build-dotnet
    image: mcr.microsoft.com/dotnet/sdk:6.0
    environment:
      LANG: en_US.UTF-8
      LC_ALL: en_US.UTF-8
      DOTNET_CLI_UI_LANGUAGE: en-US
    commands:
      - dotnet publish Aberwyn/Aberwyn.csproj -c Release -o out

  - name: build-docker
    image: plugins/docker
    settings:
      registry: 192.168.1.9:3000
      repo: 192.168.1.9:3000/tai/aberwyn/aberwyn
      username:
        from_secret: gitea_username
      password:
        from_secret: gitea_token
      dockerfile: Aberwyn/Dockerfile
      context: .
      tags:
        - latest
      insecure: true

  - name: restart-unraid-container
    image: appleboy/drone-ssh
    settings:
      host: 192.168.1.108
      port: 22
      username:
        from_secret: unraid_ssh_user
      key:
        from_secret: unraid_ssh_private_key
      script:
        - docker pull 192.168.1.9:3000/tai/aberwyn/aberwyn:latest
        - docker stop Aberwyn || true
        - docker rm Aberwyn || true
        - docker run -d --name='Aberwyn' --net='br0' -e TZ='Europe/Berlin' -p 80:80 192.168.1.9:3000/tai/aberwyn/aberwyn:latest

  - name: notify-result
    image: alpine
    when:
      status:
        - success
        - failure
    commands:
      - apk add --no-cache curl
      - |
        if [ "$DRONE_BUILD_STATUS" = "success" ]; then
          curl -X POST http://192.168.1.196:8123/api/webhook/aberwyn_update_success
        else
          curl -X POST http://192.168.1.196:8123/api/webhook/aberwyn_update_failed
        fi
