diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index b4454e3..360f983 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -50,12 +50,25 @@ jobs: id: generateCoverageReportBranch if: success() # テスト成功時のみ実行 run: | - # coverage-report ブランチが存在しない場合は作成 あればチェックアウト - if ! git ls-remote --exit-code origin coverage-report; then - git checkout --orphan coverage-report - git rm -rf . # すべてのファイルを削除 + # ブランチ存在確認と安全な作成/チェックアウト処理 + set -euo pipefail + git fetch --all --prune + + # 1) リモートの 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 + else + git switch coverage-report || git checkout coverage-report + fi else - git checkout coverage-report + echo "Remote branch missing; creating orphan local branch coverage-report" + # 2) リモートに無い場合は orphan で作成 + git switch --orphan coverage-report || git checkout --orphan coverage-report + # ワークツリーを初期化 + git rm -rf . || true fi - name: Update Readme