GitHub Actionsによるカバレッジの実行
ここでは次の内容をGitHub Actionsを利用して実行します
カバレッジのレポートを生成(HTML、XML)
XMLファイルをもとに、カバレッジのバッジを生成
レポート(HTML)とバッジを
coverage
ブランチにコミット・プッシュ
YAMLファイルの作成
.github/workflows/coverage.yml
ファイルを作成し、下記の内容を記述します
1name: coverage
2on:
3 push:
4 branches: [ main ]
5env:
6 BRANCH_NAME: coverage
7jobs:
8 generate-coverage:
9 runs-on: ubuntu-latest
10 steps:
11 - name: checkout
12 uses: actions/checkout@v3
13 - name: pip install
14 uses: actions/setup-python@v3
15 with:
16 python-version: '3.10'
17 - run: |
18 python -m pip install --upgrade pip
19 python -m pip install pytest coverage pytest-cov "genbadge[coverage]"
20 - name: genarate coverage and badge
21 run: |
22 pytest --cov=connpass_client tests
23 coverage html
24 mv htmlcov/* .
25 coverage xml
26 genbadge coverage -i - < coverage.xml
27 - name: commit and push
28 run: |
29 git config --local user.email "actions@github.com"
30 git config --local user.name "GitHub Actions"
31 git fetch origin $BRANCH_NAME && git push --delete origin $BRANCH_NAME
32 git checkout --orphan $BRANCH_NAME
33 git rm -rf .
34 git add .
35 git commit -m "generate coverage"
36 git push origin $BRANCH_NAME
2on:
3 push:
4 branches: [ main ]
main
ブランチにプッシュされた場合に、ワークフローにトリガーされます
See also
6env:
7 BRANCH_NAME: coverage
環境変数 BRANCH_NAME
に coverage
を設定しています
See also
12 uses: actions/checkout@v3
このステップで actions/checkout@v3 を実行します
リポジトリをランナーにチェックアウトするアクションであり、コードに対してスクリプトまたはほかのアクション (ビルド、ツールやテスト、ツールなど) を実行できます
See also
14 uses: actions/setup-python@v3
15 with:
16 python-version: '3.10'
このステップで actions/setup-python@v3 を実行します
このアクションは、GitHub Actionsのユーザーに対して、次の機能を提供します
PythonまたはPyPyのバージョンをインストールし、(デフォルトで)PATHに追加
オプションでpip、pipenv、poetryの依存関係をキャッシュ
エラー出力のためのプロブレムマッチャーを登録
23 coverage html
24 mv htmlcov/* .
25 coverage xml
Coverage.py を利用してカバレッジのレポートを生成しています
coverage html
コマンドでカバレッジのレポートをHTML形式に出力します
See also
coverage xml
コマンドでカバレッジデータを Cobertura と互換性のあるXML形式に出力します
See also
26 genbadge coverage -i - < coverage.xml
genbadge を利用してバッジを生成します
31 git fetch origin $BRANCH_NAME && git push --delete origin $BRANCH_NAME
$BRANCH_NAME
ブランチを確認し、ブランチが存在している場合は削除します
32 git checkout --orphan $BRANCH_NAME
空の $BRANCH_NAME
ブランチを生成します
ワークフローの実行
コミット、プッシュします
git add .
git commit -m "Add Github Actions coverage"
git push orgin main
ブラウザからforkしたリポジトリにアクセスし、 Actions
からワークフローの結果を確認します
リポジトリの Code
に移動し、 coverage
ブランチがあることを確認します
coverage
ブランチに coverage-badge.svg
が作成されていることを確認します