From 3560259998d903de87489bc8616035d24b5e620f Mon Sep 17 00:00:00 2001 From: Elior Erez Date: Sat, 1 Aug 2026 00:36:39 -0400 Subject: [PATCH 1/2] OSAC-3523: Deploy PR's own osac-installer for mono-repo-resident components Pass installer-repo/installer-ref through to the e2e reusable workflows so PRs touching fulfillment-service, osac-operator, osac-aap, or bare-metal-fulfillment-operator deploy osac-installer from the same fork/ref, matching the existing components[].repo/.ref pattern. Also removes the two nested e2e workflow files under osac-installer/.github/ that GitHub never discovers there (workflows only run from the repo root's .github/workflows/) and that duplicated the root callers. --- .github/workflows/e2e-bmaas-full-install.yml | 7 +++ .github/workflows/e2e-caas-full-install.yml | 13 +++-- .github/workflows/e2e-vmaas-full-install.yml | 7 +++ .../workflows/e2e-bmaas-full-install.yml | 46 ----------------- .../workflows/e2e-vmaas-full-install.yml | 49 ------------------- 5 files changed, 24 insertions(+), 98 deletions(-) delete mode 100644 osac-installer/.github/workflows/e2e-bmaas-full-install.yml delete mode 100644 osac-installer/.github/workflows/e2e-vmaas-full-install.yml diff --git a/.github/workflows/e2e-bmaas-full-install.yml b/.github/workflows/e2e-bmaas-full-install.yml index 3ae77e4b14..f414745d72 100644 --- a/.github/workflows/e2e-bmaas-full-install.yml +++ b/.github/workflows/e2e-bmaas-full-install.yml @@ -71,6 +71,13 @@ jobs: with: test-suite: ${{ inputs.test-suite || 'bmaas' }} test-filter: ${{ inputs.test-filter || '' }} + # osac-installer now lives as a subdirectory of this same monorepo checkout + # (its Chart.yaml deps resolve fulfillment-service/osac-operator/osac-aap/BMF + # as ../../../ siblings within it), so a PR touching those components + # must deploy from this PR's own fork/ref, not the reusable workflow's + # standalone-repo default. + installer-repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} + installer-ref: ${{ github.event.pull_request.head.ref || github.ref_name }} # Build all component images from the PR's fork/branch (same monorepo checkout) components: '[{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"fulfillment-service/Containerfile","imageKey":"service.images.service"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-operator/Containerfile","imageKey":"operator.image.repository"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-aap/execution-environment/execution-environment.yaml","imageKey":"aap.bootstrap.image","buildType":"ansible-builder"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"bare-metal-fulfillment-operator/Containerfile","imageKey":"bmf.image.repository"}]' # Pass author_association for fork PR authorization (empty for non-fork PRs) diff --git a/.github/workflows/e2e-caas-full-install.yml b/.github/workflows/e2e-caas-full-install.yml index 71ee198c66..0e90f5c300 100644 --- a/.github/workflows/e2e-caas-full-install.yml +++ b/.github/workflows/e2e-caas-full-install.yml @@ -78,6 +78,13 @@ jobs: with: test-suite: ${{ inputs.test-suite || 'caas' }} test-filter: ${{ inputs.test-filter || '' }} + # osac-installer now lives as a subdirectory of this same monorepo checkout + # (its Chart.yaml deps resolve fulfillment-service/osac-operator/osac-aap/BMF + # as ../../../ siblings within it), so a PR touching those components + # must deploy from this PR's own fork/ref, not the reusable workflow's + # standalone-repo default. + installer-repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} + installer-ref: ${{ github.event.pull_request.head.ref || github.ref_name }} # Build all component images from the PR's fork/branch (same monorepo checkout) components: '[{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"fulfillment-service/Containerfile","imageKey":"service.images.service"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-operator/Containerfile","imageKey":"operator.image.repository"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"bare-metal-fulfillment-operator/Containerfile","imageKey":"bmf.image.repository"}]' # Pass author_association for fork PR authorization (empty for non-fork PRs) @@ -88,9 +95,9 @@ jobs: test-infra-repository: osac-project/osac-test-infra test-infra-ref: ${{ inputs.test-infra-ref || 'main' }} # CaaS-specific inputs (cluster-template, caas-domain, flavor-image, - # flavor-name, namespace, installer-repo/ref, etc.) are left at the - # reusable workflow's own defaults -- none are required and this - # caller has no need to override them today. + # flavor-name, namespace, etc.) are left at the reusable workflow's own + # defaults -- none are required and this caller has no need to override + # them today. e2e: if: always() diff --git a/.github/workflows/e2e-vmaas-full-install.yml b/.github/workflows/e2e-vmaas-full-install.yml index 75c70ae9df..4069bd964d 100644 --- a/.github/workflows/e2e-vmaas-full-install.yml +++ b/.github/workflows/e2e-vmaas-full-install.yml @@ -78,6 +78,13 @@ jobs: with: test-suite: ${{ inputs.test-suite || 'vmaas' }} test-filter: ${{ inputs.test-filter || '' }} + # osac-installer now lives as a subdirectory of this same monorepo checkout + # (its Chart.yaml deps resolve fulfillment-service/osac-operator/osac-aap/BMF + # as ../../../ siblings within it), so a PR touching those components + # must deploy from this PR's own fork/ref, not the reusable workflow's + # standalone-repo default. + installer-repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} + installer-ref: ${{ github.event.pull_request.head.ref || github.ref_name }} # Build all component images from the PR's fork/branch (same monorepo checkout) components: '[{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"fulfillment-service/Containerfile","imageKey":"service.images.service"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-operator/Containerfile","imageKey":"operator.image.repository"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-aap/execution-environment/execution-environment.yaml","imageKey":"aap.bootstrap.image","buildType":"ansible-builder"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"bare-metal-fulfillment-operator/Containerfile","imageKey":"bmf.image.repository"}]' # Pass author_association for fork PR authorization (empty for non-fork PRs) diff --git a/osac-installer/.github/workflows/e2e-bmaas-full-install.yml b/osac-installer/.github/workflows/e2e-bmaas-full-install.yml deleted file mode 100644 index 53221f1ee3..0000000000 --- a/osac-installer/.github/workflows/e2e-bmaas-full-install.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -name: E2E BMaaS Full Install - -on: - pull_request: - branches: [main] - paths-ignore: - - 'OWNERS' - - 'LICENSE' - - '*.md' - - 'docs/**' - schedule: - - cron: "0 */2 * * *" - workflow_dispatch: - inputs: - test-suite: - description: "Test suite (bmaas, or empty for all)" - required: false - default: "bmaas" - test-filter: - description: "pytest -k filter" - required: false - default: "" - test-infra-ref: - description: "Branch/ref of osac-test-infra" - required: false - default: "main" - -concurrency: - group: e2e-bmaas-full-install-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: ${{ github.event_name == 'pull_request' }} - -jobs: - e2e-bmaas-full-install: - uses: osac-project/osac-test-infra/.github/workflows/e2e-bmaas-full-install.yml@main - with: - test-suite: ${{ inputs.test-suite || 'bmaas' }} - test-filter: ${{ inputs.test-filter || '' }} - installer-repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - installer-ref: ${{ github.event.pull_request.head.ref || github.ref_name }} - fork-pr-author-association: ${{ github.event.pull_request.head.repo.fork && github.event.pull_request.author_association || '' }} - fork-pr-author: ${{ github.event.pull_request.head.repo.fork && github.event.pull_request.user.login || '' }} - pr-number: ${{ github.event.pull_request.number }} - test-infra-repository: osac-project/osac-test-infra - test-infra-ref: ${{ inputs.test-infra-ref || 'main' }} - notify-on-failure: ${{ github.event_name == 'schedule' }} diff --git a/osac-installer/.github/workflows/e2e-vmaas-full-install.yml b/osac-installer/.github/workflows/e2e-vmaas-full-install.yml deleted file mode 100644 index b0d0a507f6..0000000000 --- a/osac-installer/.github/workflows/e2e-vmaas-full-install.yml +++ /dev/null @@ -1,49 +0,0 @@ ---- -name: E2E VMaaS Full Install - -on: - pull_request: - branches: [main] - paths-ignore: - - 'OWNERS' - - 'LICENSE' - - '*.md' - - 'docs/**' - schedule: - - cron: "0 */2 * * *" - workflow_dispatch: - inputs: - test-suite: - description: "Test suite (vmaas, caas, or empty for all)" - required: false - default: "vmaas" - test-filter: - description: "pytest -k filter" - required: false - default: "" - test-infra-ref: - description: "Branch/ref of osac-test-infra" - required: false - default: "main" - -concurrency: - group: e2e-vmaas-full-install-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: ${{ github.event_name == 'pull_request' }} - -jobs: - e2e-vmaas-full-install: - uses: osac-project/osac-test-infra/.github/workflows/e2e-vmaas-full-install.yml@main - with: - test-suite: ${{ inputs.test-suite || 'vmaas' }} - test-filter: ${{ inputs.test-filter || '' }} - # Clone the installer from the PR's fork/branch so we test the actual PR content - installer-repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - installer-ref: ${{ github.event.pull_request.head.ref || github.ref_name }} - # Pass author_association for fork PR authorization (empty for non-fork PRs) - fork-pr-author-association: ${{ github.event.pull_request.head.repo.fork && github.event.pull_request.author_association || '' }} - fork-pr-author: ${{ github.event.pull_request.head.repo.fork && github.event.pull_request.user.login || '' }} - pr-number: ${{ github.event.pull_request.number }} - # Checkout osac-test-infra for tests/Containerfile (not the caller repo) - test-infra-repository: osac-project/osac-test-infra - test-infra-ref: ${{ inputs.test-infra-ref || 'main' }} - notify-on-failure: ${{ github.event_name == 'schedule' }} From 932b356d6d2670aefabe380e2efcb762a557725d Mon Sep 17 00:00:00 2001 From: Elior Erez Date: Sat, 1 Aug 2026 10:41:39 -0400 Subject: [PATCH 2/2] TEMP: point bmaas e2e at test-infra hotfix branch for verification --- .github/workflows/e2e-bmaas-full-install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-bmaas-full-install.yml b/.github/workflows/e2e-bmaas-full-install.yml index f414745d72..196afd963a 100644 --- a/.github/workflows/e2e-bmaas-full-install.yml +++ b/.github/workflows/e2e-bmaas-full-install.yml @@ -67,7 +67,7 @@ jobs: e2e-bmaas-full-install: needs: changes if: needs.changes.outputs.should-run == 'true' - uses: osac-project/osac-test-infra/.github/workflows/e2e-bmaas-full-install.yml@main + uses: eliorerz/osac-test-infra/.github/workflows/e2e-bmaas-full-install.yml@osac-3528-drop-dead-osac-ui-followup with: test-suite: ${{ inputs.test-suite || 'bmaas' }} test-filter: ${{ inputs.test-filter || '' }}