diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index b6a1919..e36720f 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -52,33 +52,36 @@ jobs: run: | # ブランチ存在確認と安全な作成/チェックアウト処理 set -euo pipefail - git fetch --all --prune - # 未追跡ファイルを一時退避(coverage.svg, coverage_table.md など) + # 必要なファイルを一時退避 mkdir -p /tmp/coverage-backup - if [ -f coverage.svg ]; then mv coverage.svg /tmp/coverage-backup/; fi - if [ -f coverage_table.md ]; then mv coverage_table.md /tmp/coverage-backup/; fi + cp coverage.svg /tmp/coverage-backup/ + cp coverage_table.md /tmp/coverage-backup/ + + # リモート情報を取得 + git fetch --all --prune - # 1) リモートの coverage-report が存在するか + # 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 switch -c coverage-report --track origin/coverage-report || git checkout -b coverage-report origin/coverage-report + git checkout -b coverage-report origin/coverage-report else - git switch coverage-report || git checkout coverage-report + 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" - # 2) リモートに無い場合は orphan で作成 - git switch --orphan coverage-report || git checkout --orphan coverage-report - # ワークツリーを初期化 + git checkout --orphan coverage-report git rm -rf . || true + git clean -fdx fi # 退避したファイルを復元 - if [ -f /tmp/coverage-backup/coverage.svg ]; then mv /tmp/coverage-backup/coverage.svg .; fi - if [ -f /tmp/coverage-backup/coverage_table.md ]; then mv /tmp/coverage-backup/coverage_table.md .; fi + cp /tmp/coverage-backup/coverage.svg . + cp /tmp/coverage-backup/coverage_table.md . - name: Update Readme id: updateReadme