---
# SPDX-FileCopyrightText: WTF Kooperative eG <https://wtf-eg.de/>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
kind: pipeline
type: docker
name: qa

trigger:
  event:
    - push
    - pull_request
  branch:
    - main

steps:
  - name: install-lint-test
    image: python:3.11.11-alpine@sha256:783d69d8c6b9e116693f4f7140757b809f6ab463f431e4b43b2625412144bf61
    env:
      PYROOT: '/pyroot'
      PYTHONUSERBASE: '/pyroot'
    commands:
      - apk add --no-cache gcc g++ musl-dev python3-dev
      - pip3 install pipenv
      - pipenv verify
      - pipenv install --dev
      - pipenv run flake8
      - pipenv run reuse lint
      - pipenv run python -m unittest discover ki
  - name: docker-dry-run
    image: plugins/docker:20.18.4@sha256:a8d3d86853c721492213264815f1d00d3ed13f42f5c1855a02f47fa4d5f1e042
    settings:
      registry: git.wtf-eg.de
      repo: git.wtf-eg.de/kompetenzinventar/backend
      target: ki-backend
      dry_run: true
    when:
      event:
        - pull_request

---
kind: pipeline
type: docker
name: build

trigger:
  event:
    - push
  branch:
    - main

depends_on:
  - qa

steps:
  - name: docker-publish
    image: plugins/docker:20.18.4@sha256:a8d3d86853c721492213264815f1d00d3ed13f42f5c1855a02f47fa4d5f1e042
    settings:
      registry: git.wtf-eg.de
      repo: git.wtf-eg.de/kompetenzinventar/backend
      target: ki-backend
      auto_tag: true
      username:
        from_secret: "docker_username"
      password:
        from_secret: "docker_password"

---
kind: pipeline
type: docker
name: deploy

trigger:
  event:
    - push
  branch:
    - main

depends_on:
  - build

steps:
  - name: deploy-dev
    image: appleboy/drone-ssh:1.7.5@sha256:995677e073454912f26d4c0fdd2f9df2e1f5a30d6603d3f2ece667311b6babb3
    settings:
      host:
        - dev01.wtf-eg.net
      username: drone_deployment
      key:
        from_secret: "dev01_deployment_key"
      command_timeout: 2m
      script:
        - echo "Executing forced command..."


---
kind: pipeline
type: docker
name: tag-release

trigger:
  event:
    - tag

steps:
  - name: install-lint-test
    image: python:3.11.11-alpine@sha256:783d69d8c6b9e116693f4f7140757b809f6ab463f431e4b43b2625412144bf61
    env:
      PYROOT: '/pyroot'
      PYTHONUSERBASE: '/pyroot'
    commands:
      - apk add --no-cache gcc g++ musl-dev python3-dev
      - pip3 install pipenv
      - pipenv install --dev
      - pipenv run flake8
      - pipenv run reuse lint
      - pipenv run python -m unittest discover ki
  - name: docker-publish
    image: plugins/docker:20.18.4@sha256:a8d3d86853c721492213264815f1d00d3ed13f42f5c1855a02f47fa4d5f1e042
    settings:
      registry: git.wtf-eg.de
      repo: git.wtf-eg.de/kompetenzinventar/backend
      target: ki-backend
      auto_tag: true
      username:
        from_secret: "docker_username"
      password:
        from_secret: "docker_password"