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

clone:
  disable: true

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

- name: markdown lint
  commands:
  - markdownlint *.md
  image: git.cryptic.systems/volker.raschek/markdownlint:0.43.0
  resources:
    limits:
      cpu: 150
      memory: 150M

- name: golangci lint
  commands:
  - golangci-lint run
  image: docker.io/golangci/golangci-lint:v1.64.8-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: git.cryptic.systems/volker.raschek/drone-email:0.1.5
  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.4.0

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

trigger:
  event:
    exclude:
    - tag

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

clone:
  disable: true

depends_on:
- linter

# node_selector:
#   kubernetes.io/arch: arm64

platform:
  os: linux
  arch: arm64

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

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

trigger:
  event:
    exclude:
    - tag