---
kind: pipeline
type: kubernetes
name: linter

clone:
  disable: true

steps:
- name: clone
  image: git.cryptic.systems/volker.raschek/git:1.2.1

- name: markdown lint
  commands:
  - markdownlint *.md
  image: docker.io/volkerraschek/markdownlint:0.34.0
  resources:
    limits:
      cpu: 150
      memory: 150M

- name: golangci lint
  commands:
  - golangci-lint run
  image: docker.io/golangci/golangci-lint:v1.52.2-alpine
  resources:
    limits:
      cpu: 500
      memory: 1G

- name: email-notification
  environment:
    SMTP_FROM_ADDRESS:
      from_secret: smtp_from_address
    SMTP_FROM_NAME:
      from_secret: smtp_from_name
    SMTP_HOST:
      from_secret: smtp_host
    SMTP_USERNAME:
      from_secret: smtp_username
    SMTP_PASSWORD:
      from_secret: smtp_password
  image: docker.io/volkerraschek/drone-email:0.1.1
  resources:
    limits:
      cpu: 150
      memory: 150M
  when:
    status:
    - changed
    - failure

trigger:
  event:
    exclude:
    - tag

---
kind: pipeline
type: kubernetes
name: unit-test-amd64

clone:
  disable: true

depends_on:
- linter

node_selector:
  kubernetes.io/arch: amd64

steps:
- name: clone
  image: git.cryptic.systems/volker.raschek/git:1.2.1

- name: unit-test
  commands:
  - go test -v ./...
  image: docker.io/library/golang:1.20.0
  resources:
    limits:
      cpu: 250
      memory: 500M

trigger:
  event:
    exclude:
    - tag

---
kind: pipeline
type: kubernetes
name: unit-test-arm64

clone:
  disable: true

depends_on:
- linter

node_selector:
  kubernetes.io/arch: arm64

steps:
- name: clone
  image: git.cryptic.systems/volker.raschek/git:1.2.1

- name: unit-test
  commands:
  - go test -v ./...
  image: docker.io/library/golang:1.20.0
  resources:
    limits:
      cpu: 250
      memory: 500M

trigger:
  event:
    exclude:
    - tag

---
kind: pipeline
type: kubernetes
name: sync

clone:
  disable: true

node_selector:
  kubernetes.io/arch: amd64

steps:
- name: clone
  image: git.cryptic.systems/volker.raschek/git:1.2.1

- name: github
  image: docker.io/appleboy/drone-git-push:latest
  resources:
    limits:
      cpu: 50
      memory: 25M
  settings:
    branch: master
    remote: ssh://git@github.com/volker-raschek/dyndns-client.git
    force: true
    ssh_key:
      from_secret: ssh_key

- name: email-notification
  environment:
    SMTP_FROM_ADDRESS:
      from_secret: smtp_from_address
    SMTP_FROM_NAME:
      from_secret: smtp_from_name
    SMTP_HOST:
      from_secret: smtp_host
    SMTP_USERNAME:
      from_secret: smtp_username
    SMTP_PASSWORD:
      from_secret: smtp_password
  image: docker.io/volkerraschek/drone-email:0.1.1
  resources:
    limits:
      cpu: 150
      memory: 150M
  when:
    status:
    - changed
    - failure

trigger:
  event:
  - push
  repo:
  - volker.raschek/dyndns-client