# .woodpecker/ci.yml — Disinto CI pipeline
# Runs on every push and pull request.
#
# Steps:
#   1. shellcheck   — lint all .sh files (warnings+errors)
#   2. duplicate-detection — report copy-pasted code blocks (fails only on new duplicates for PRs)

when:
  event: [push, pull_request]

steps:
  - name: shellcheck
    image: koalaman/shellcheck-alpine:stable
    commands:
      - find . -name "*.sh" -not -path "./.git/*" -print0 | xargs -0 -r shellcheck --severity=warning

  - name: agent-smoke
    image: alpine:3
    commands:
      - apk add --no-cache bash
      - bash .woodpecker/agent-smoke.sh

  - name: duplicate-detection
    image: python:3-alpine
    commands:
      - apk add --no-cache git
      - python3 .woodpecker/detect-duplicates.py
    environment:
      DIFF_BASE: ${CI_COMMIT_TARGET_BRANCH}
