test/.woodpecker.yml
2026-07-09 12:16:53 -07:00

103 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 全体像
# PR と push で 別の処理 が走ります。
#NOTE depends_on なし → 並列実行
#WARN failure: ignore がないため、Drep が失敗すると パイプライン全体が ❌ になり、マージが止まる可能性があります。
# pull_request イベント
# ├─ php-lint … PHP 構文チェック(マージ前の CI
# └─ ai-review … Drep による AI コードレビュー
# ↑
# depends_on なし → 並列実行
# push イベントdevelop ブランチのみ)
# └─ deploy … EC2 へ SSH してデプロイ確認
steps:
# 疎通テスト
# hello:
# image: alpine:latest
# commands:
# - echo "Woodpecker is working!"
# PHP構文チェックmerge前
php-lint:
image: php:8.3-cli
commands:
- find . -name "*.php" -print0 | xargs -0 -n1 php -l
when:
event:
- pull_request
# AI コードレビューskip-ai-review ラベル付き PR はスキップ)
# 成功時に ai-reviewed ラベルを Gitea API で付与
ai-review:
image: ghcr.io/slb350/drep:latest
environment:
GITEA_TOKEN:
from_secret: gitea_token
DREP_LLM_API_KEY:
from_secret: drep_llm_api_key
OPENAI_API_KEY:
from_secret: drep_llm_api_key
DREP_LLM_ENDPOINT: https://openrouter.ai/api/v1
DREP_LLM_MODEL: nvidia/nemotron-3-ultra-550b-a55b:free
commands:
- |
case ",${CI_COMMIT_PULL_REQUEST_LABELS}," in
*",skip-ai-review,"*)
echo "★ skip-ai-review label detected — skipping AI review"
exit 0
;;
esac
cat > /tmp/config.yaml <<EOF
gitea:
url: https://gitea.git.mitchecp.com
token: $${GITEA_TOKEN}
repositories:
- ${CI_REPO_OWNER}/*
llm:
enabled: true
endpoint: $${DREP_LLM_ENDPOINT}
api_key: $${DREP_LLM_API_KEY}
model: $${DREP_LLM_MODEL}
temperature: 0.2
timeout: 120
max_tokens: 4096
database_url: sqlite:////tmp/drep.db
documentation:
enabled: true
markdown_checks: false
EOF
export DREP_CONFIG=/tmp/config.yaml
echo "★ Running drep review for ${CI_REPO} PR #${CI_COMMIT_PULL_REQUEST}"
drep review "${CI_REPO}" "${CI_COMMIT_PULL_REQUEST}"
echo "★ Adding ai-reviewed label to PR #${CI_COMMIT_PULL_REQUEST}"
python3 ci/add-ai-reviewed-label.py
when:
event:
- pull_request
# 本番デプロイ
deploy:
image: alpine:latest
environment:
SSH_KEY:
from_secret: mitchecp_ssh_key
#WARN secret key(.pem) の追加は gitea ではなく woodpecker 側に必要。
#NOTE $$SSH_KEY は Woodpecker が $$ → $ に変換してから shell 実行PID 展開ではない)
commands:
- apk add --no-cache openssh-client
- mkdir -p ~/.ssh
- echo "$$SSH_KEY" > ~/.ssh/mitchecp.pem
- chmod 600 ~/.ssh/mitchecp.pem
- ssh-keyscan gitea.git.mitchecp.com >> ~/.ssh/known_hosts
- ssh -i ~/.ssh/mitchecp.pem ec2-user@gitea.git.mitchecp.com "cd /home/ec2-user && touch woodpecker.created.develop.txt"
when:
branch:
- develop
event:
- push