ec-cube icon indicating copy to clipboard operation
ec-cube copied to clipboard

PHPバージョンごとに Docker イメージを作成する

Open nanasess opened this issue 2 years ago • 2 comments

概要(Overview・Refs Issue)

PHPバージョンごとに Docker イメージを作成し、 GitHub Container registry に push する。 例) https://github.com/nanasess/ec-cube/pkgs/container/ec-cube

方針(Policy)

以下のようなルールでタグを作成します

Event Ref Docker Tags
pull_request refs/pull/2/merge pr-2-php-<php-version>-apache
push refs/heads/4.2 4.2-php-<php-version>-apache
push tag refs/tags/4.2.0 4.2.0-php-<php-version>-apache, latest
push tag refs/tags/4.2.0-beta2-20220905 4.2.0-beta2-20220905-php-<php-version>-apache

実装に関する補足(Appendix)

docker-compose.yml で image: ghcr.io/EC-CUBE/ec-cube:4.2-php-8.1-apache のように指定することで、本PRにて生成された Docker イメージを使用することができます。 ~~本PRがマージされた後、 docker-compose.yml を変更する PR を作成します~~ image: の値を環境変数に設定することで対応しました

テスト(Test)

個人レポジトリで Docker イメージが生成されるのを確認 https://github.com/nanasess/ec-cube/pkgs/container/ec-cube

相談(Discussion)

  • ~~docker compose build の後、E2Eテストが正常に通ることを確認してから docker/build-push-action でイメージを push しているが、再ビルドされてしまう。 docker compose build した内容を再利用できないか?~~ こちら の手順を導入して対応
  • #4754 のようにランタイム向けのイメージと開発環境向けのイメージを分けたい

マイナーバージョン互換性保持のための制限事項チェックリスト

  • [ ] 既存機能の仕様変更はありません
  • [ ] フックポイントの呼び出しタイミングの変更はありません
  • [ ] フックポイントのパラメータの削除・データ型の変更はありません
  • [ ] twigファイルに渡しているパラメータの削除・データ型の変更はありません
  • [ ] Serviceクラスの公開関数の、引数の削除・データ型の変更はありません
  • [ ] 入出力ファイル(CSVなど)のフォーマット変更はありません

レビュワー確認項目

  • [ ] 動作確認
  • [ ] コードレビュー
  • [ ] E2E/Unit テスト確認(テストの追加・変更が必要かどうか)
  • [ ] 互換性が保持されているか
  • [ ] セキュリティ上の問題がないか
    • [ ] 権限を超えた操作が可能にならないか
    • [ ] 不要なファイルアップロードがないか
    • [ ] 外部へ公開されるファイルや機能の追加ではないか
    • [ ] テンプレートでのエスケープ漏れがないか

nanasess avatar Sep 15 '22 08:09 nanasess

以下の設定が必要そう https://docs.github.com/ja/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#organization%E3%81%8C%E6%89%80%E6%9C%89%E3%81%99%E3%82%8B%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%B8%E3%81%AEgithub-actions%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9

nanasess avatar Sep 15 '22 09:09 nanasess

Codecov Report

Merging #5801 (41fe91d) into 4.2 (2141a4b) will increase coverage by 0.01%. The diff coverage is n/a.

@@             Coverage Diff              @@
##                4.2    #5801      +/-   ##
============================================
+ Coverage     78.74%   78.76%   +0.01%     
- Complexity     6287     6288       +1     
============================================
  Files           470      470              
  Lines         21096    21098       +2     
============================================
+ Hits          16612    16617       +5     
+ Misses         4484     4481       -3     
Flag Coverage Δ
E2E 64.77% <ø> (+<0.01%) :arrow_up:
Unit 77.78% <ø> (+0.01%) :arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/Eccube/Repository/OrderRepository.php 95.26% <0.00%> (ø)
src/Eccube/Form/Type/Front/ContactType.php 100.00% <0.00%> (ø)
src/Eccube/Repository/ProductRepository.php 97.71% <0.00%> (ø)
src/Eccube/Repository/CustomerRepository.php 98.72% <0.00%> (ø)
src/Eccube/Service/PluginApiService.php 54.62% <0.00%> (+0.92%) :arrow_up:
.../Eccube/Doctrine/Common/CsvDataFixtures/Loader.php 80.00% <0.00%> (+5.00%) :arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov-commenter avatar Sep 15 '22 12:09 codecov-commenter

https://github.com/actions/runner/issues/1039 ~~デフォルトブランチからでないとイメージを push できないっぽい?~~ デフォルトブランチにマージされた場合のみ、 push するよう変更しました。

nanasess avatar Oct 19 '22 14:10 nanasess