diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index b6a1919..67ed1fe 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -2,10 +2,10 @@ name: Python Test on: workflow_dispatch: - pull_request: + push: branches: - main - - develop + # - develop paths: - 'src/**' - 'tests/**' @@ -35,6 +35,18 @@ jobs: run: | pytest --junitxml=pytest.xml --cov-report term-missing --cov=src tests/ | tee pytest-coverage.txt + - name: Generate coverage-report Branch AND README.md + 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 . # すべてのファイルを削除 + else + git checkout coverage-report + fi + - name: Coverage Report id: CoverageReport if: success() # テスト成功時のみ実行 @@ -46,40 +58,6 @@ jobs: generate_coverage.save_table() EOF - - name: Generate coverage-report Branch AND README.md - id: generateCoverageReportBranch - if: success() # テスト成功時のみ実行 - 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 - - # 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 - 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 - - # 退避したファイルを復元 - 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 - - name: Update Readme id: updateReadme run: | @@ -102,4 +80,4 @@ jobs: 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 + git push https://actions-bot:${{ secrets.CICD_GITEA_TOKEN }}@gitea.pglikers.com/data-science/cloud-run-job-base.git coverage-report --force diff --git a/readme/python_init.md b/readme/python_init.md index 2a4d137..99d6c9f 100644 --- a/readme/python_init.md +++ b/readme/python_init.md @@ -77,3 +77,4 @@ sh scripts/generate_linter.sh ruff check . --output-format json --output-file ruff-report.json ``` +`--output-file`は`github`など様々な形式が指定できます \ No newline at end of file