2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Github Actionsでテスト結果を別ブランチに保存する

Posted at

方針

Github Actionsでテスト結果を別ブランチに保存するには以下の機能が必要です。

  • Github Actions flowで、別々のブランチからプルしてくる。
  • テスト結果を生成する
  • テスト結果をブランチにコミット、プッシュする。

Github Actions flowで、複数のブランチをプルする方法

リファレンスに記述してあるように、2つのブランチからチェックアウトします。
一つはプルリクのブランチ、もう一つは'ref'で'doc'ブランチを指定します。'doc'ブランチは今回出力用のブランチです。
また、それぞれ別々のディレクトリを'path'で指定します。それぞれのパスごとにブランチのファイルが配置されます。
permissionsのcontentsをwriteに指定してください。指定しないと権限エラーが発生します。


  test:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          path: build

      - name: Checkout doc
        uses: actions/checkout@v2
        with:
          ref: doc
          path: doc

テスト結果を生成する

Unitテストなどのレポート機能でHTMLなどを生成してください。Javaやnewmanなど必要な合わせて、それぞれ実行して生成してください。

      - name: newman run
        if: contains(github.event_name, 'pull_request')
        run: |
          newman run "./build/e2e/apitest.postman_collection.json" -e "./build/e2e/check-env.postman_environment.json" -r htmlextra --reporter-htmlextra-export --reporter-htmlextra-export ./doc/test_output/

プルリクとは別のブランチにコミットとプッシュする。

Git の config でコミットするために、ユーザ名とEmailを指定します。存在しないユーザ、メール、特に何を指定しても問題ありません。Gitのコミット履歴現れるだけです。
working-directoryでコミットするリポジトリのディレクトリを指定します。

      - name: doc git setting
        run: |
          git config --local user.email "githubaction@action.action"
          git config --local user.name "githubaction"
        working-directory: ./doc/test_output

コミットするときはテストの失敗のときもコミットしたいため、if: always()を指定します。
他のアクションの実行で更新されているかもしれないのでgit pullしておきます。
テスト結果でファイルを新しく生成しする場合は、git addが必要です。
git commitでコミットします。メッセージに、プルリクの参照を作成しています。プルリクのタイムラインにコミットが出てきて、参照しやすくしています。
最後にプッシュしてください。

      - name: Commit files
        if: always() && contains(github.event_name, 'pull_request')
        run: |
          git pull
          git add .
          git commit -m "add action #"$(echo $GITHUB_REF | sed -e 's/[^0-9]//g') -a
          git push origin doc
        working-directory: ./doc/test_output

最後に

Github Actionsでテスト結果をどこに出力するのがベストか?
とりあえず、開発ブランチとは別のドキュメント用のブランチに出力することで、外部から確認できるようになります。
github Pageで公開する事でウェブから確認できます。
また、ローカルでプルすることで、簡単に確認できます。

しかしながら、まだ課題として、テスト結果一回分では見れるけど、傾向など長期的な傾向が見ることはできない。そこら辺の良いツールないかね?

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?