ry.yamafuji ee22bc876d
Some checks failed
Python Test / python-test (pull_request) Failing after 8s
修正
2025-12-04 09:21:31 +09:00

109 lines
3.6 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.

name: Python Test
on:
workflow_dispatch:
pull_request:
branches:
- main
- develop
paths:
- 'src/**'
- 'tests/**'
- '.github/workflows/pytest.yml'
- 'requirements.txt'
- 'requirements-dev.txt'
jobs:
python-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
id: installDependencies
run: |
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run Python Test
id: runPyTest
run: |
pytest --junitxml=pytest.xml --cov-report term-missing --cov=src tests/ | tee pytest-coverage.txt
- name: Coverage Report
id: CoverageReport
if: success() # テスト成功時のみ実行
run: |
coverage-badge -o coverage.svg
python - <<EOF
from scripts.generate_coverage import GenerateCoverage
generate_coverage = GenerateCoverage()
generate_coverage.save_table()
EOF
- name: Generate coverage-report Branch AND README.md
id: generateCoverageReportBranch
if: success() # テスト成功時のみ実行
run: |
# ブランチ存在確認と安全な作成/チェックアウト処理
set -euo pipefail
# 必要なファイルを一時退避
mkdir -p /tmp/coverage-backup
cp coverage.svg /tmp/coverage-backup/
cp coverage_table.md /tmp/coverage-backup/
# リモート情報を取得
git fetch --all --prune
# coverage-report ブランチへ切り替え
if git ls-remote --exit-code origin coverage-report >/dev/null 2>&1; then
echo "Remote branch exists: origin/coverage-report"
if ! git rev-parse --verify coverage-report >/dev/null 2>&1; then
git checkout -b coverage-report origin/coverage-report
else
git checkout coverage-report
fi
# 既存ファイルをクリアREADME.mdとcoverage.svgのみ残す
git rm -rf . || true
git clean -fdx
else
echo "Remote branch missing; creating orphan local branch coverage-report"
git checkout --orphan coverage-report
git rm -rf . || true
git clean -fdx
fi
# 退避したファイルを復元
cp /tmp/coverage-backup/coverage.svg .
cp /tmp/coverage-backup/coverage_table.md .
- name: Update Readme
id: updateReadme
run: |
echo "# Pytest Report" > README.md
echo "" >> README.md
echo "![test](coverage.svg)" >> README.md
echo "" >> README.md
cat coverage_table.md >> README.md
cat README.md
- name: Check files before upload
id: checkFiles
run: ls -l README.md coverage.svg
- name: Commit Test Report To coverage-report Branch
id: commitTestReport
if: success() # テスト成功時のみ実行
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add README.md coverage.svg
git commit -m "Update coverage report"
git push https://actions-bot:${{ secrets.GITEA_TOKEN }}@gitea.pglikers.com/data-science/cloud-run-job-base.git coverage-report --force