- Add .woodpecker/ci.yml: two-step pipeline (shellcheck + duplicate detection) - Add .woodpecker/detect-duplicates.py: sliding-window hash detection (5-line windows, 2+ files) plus grep-based anti-pattern checks (hardcoded CI_STATE, hardcoded WOODPECKER_REPO_ID). Runs as failure: ignore so CI stays green while findings are visible in logs. - Add .shellcheckrc: disable SC1090/SC1091 (dynamic source paths are intentional; all scripts use the same lib/env.sh pattern) - Update projects/disinto.toml: woodpecker_repo_id = 4, remove bypass comment Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
18 lines
561 B
YAML
18 lines
561 B
YAML
# .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 (non-blocking)
|
|
|
|
steps:
|
|
- name: shellcheck
|
|
image: koalaman/shellcheck-alpine:stable
|
|
commands:
|
|
- find . -name "*.sh" -not -path "./.git/*" -print0 | xargs -0 shellcheck --severity=warning
|
|
|
|
- name: duplicate-detection
|
|
image: python:3-alpine
|
|
commands:
|
|
- python3 .woodpecker/detect-duplicates.py
|
|
failure: ignore
|