e2e tests never run on PRs from forks: the Quay login step fails without secrets

オープン
#332 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
64/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
docker, github-actions, java, kubernetes
領域
ci-cd, devops, testing

調査の方向性

Start with the build-verify.yml package step around lines 52–53, then inspect tests/kuttl-test.yaml and tests/manifests/install-operator.yml to see how the test image is built, loaded and pulled. Check whether the pushed e2e image is used elsewhere, then adjust the CI and image pull behavior so fork PRs test their own image. Done when the kuttl e2e tests run successfully on fork and Dependabot PRs.

索引モデルが issue の本文から書いたものです。

説明

Describe the bug

On pull requests from forks, the build-verify-package workflow fails at the step "Package container image for operator e2e tests". This step builds the operator image, then logs in to Quay and pushes it as quay.io/microcks/microcks-operator:e2e-tests (build-verify.yml L52-53). GitHub does not pass repository secrets to PRs from forks, so the Quay username is empty and docker login fails. Because of this, the kuttl e2e tests never run on PRs from forks. Dependabot PRs fail at the same step.

Expected behavior

The e2e tests run on every PR, including PRs from forks.

Actual behavior

The step fails with Error: Cannot perform an interactive login from a non TTY device, and the e2e steps are skipped. The build and unit tests before it pass. For example #306 and #331.

How to Reproduce?

Open any PR from a fork and look at the build-verify-package run.

Microcks version or git rev

main @ 4d74e9f

Install method (docker-compose, helm chart, operator, docker-desktop extension,...)

operator (CI)

Additional information

The push may not be needed. kuttl already loads the image into the kind cluster (kindContainers in tests/kuttl-test.yaml), but tests/manifests/install-operator.yml sets imagePullPolicy: Always, so the pod pulls the image from Quay instead of using the loaded one. A possible fix is to remove the login and push and set imagePullPolicy: IfNotPresent. Only removing the push would not be enough: with Always, fork PRs would test the last image pushed to Quay instead of their own code.

Is the pushed e2e-tests image used for anything else? If not, I'm happy to send a PR.

I used AI tools while working on this and verified everything myself.

主要言語
Java
スター
14
フォーク
13
平均マージ
23分
マージ済み PR(30日)
3

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microcks/microcks-operator のほかの issue

microcks/microcks-operator の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。