From 4b66c178e45ab622cf71dfa58b5f58757216ca46 Mon Sep 17 00:00:00 2001 From: Pavel Busko Date: Tue, 3 Nov 2026 13:11:29 +0100 Subject: [PATCH] Build filserver image using cf-k8s-releases for e2e testing --- .../build-fileserver-image/action.yaml | 58 +++++++++++++++++++ .github/workflows/e2e.yml | 16 ++--- .github/workflows/go.yaml | 14 ----- .github/workflows/kind-cats.yaml | 18 +++--- Makefile | 2 +- 5 files changed, 76 insertions(+), 32 deletions(-) create mode 100644 .github/actions/build-fileserver-image/action.yaml diff --git a/.github/actions/build-fileserver-image/action.yaml b/.github/actions/build-fileserver-image/action.yaml new file mode 100644 index 00000000..e25ce083 --- /dev/null +++ b/.github/actions/build-fileserver-image/action.yaml @@ -0,0 +1,58 @@ +name: Build fileserver image + +inputs: + ref: + required: true + +outputs: + load-images: + value: ${{ steps.build.outputs.list }} + values-file: + value: ${{ steps.values.outputs.file }} + +runs: + using: composite + steps: + - uses: docker/setup-buildx-action@v4 + - uses: actions/setup-go@v7 + with: + go-version: stable + - uses: actions/checkout@v7 + with: + repository: cloudfoundry/diego-release + path: diego-release + submodules: true + - uses: actions/checkout@v7 + with: + repository: cloudfoundry/cf-k8s-releases + path: cf-k8s-releases + - name: Bump diego-release's cnbapplifecycle to the commit under test + shell: bash + working-directory: ${{ github.workspace }}/diego-release/src/code.cloudfoundry.org + run: | + go get -u code.cloudfoundry.org/cnbapplifecycle@${{ inputs.ref }} + go mod vendor + - name: Build fileserver image + id: build + shell: bash + working-directory: ${{ github.workspace }}/cf-k8s-releases/diego + env: + BUILDX_BAKE_ENTITLEMENTS_FS: "0" + run: | + docker buildx bake fileserver --load \ + --set fileserver.contexts.src="${{ github.workspace }}/diego-release/src" \ + --set fileserver.contexts.config="${{ github.workspace }}/diego-release/config" + echo "list=$(docker buildx bake fileserver --print | jq -r '[.target[].tags[]] | join(",")')" >> "$GITHUB_OUTPUT" + - name: Pin diego helm chart to the built fileserver + id: values + shell: bash + working-directory: ${{ github.workspace }}/cf-k8s-releases + run: | + yq -e -i '.fileserver.image.repository = "fileserver"' diego/helm/values.yaml + file="${{ runner.temp }}/state-values.yaml" + cat > "$file" <> "$GITHUB_OUTPUT" diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 2fa9e96b..fba6e6a9 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -12,16 +12,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - - uses: cloudfoundry/kind-deployment/.github/actions/setup-cf@main + - name: Build fileserver image + id: fileserver + uses: ./.github/actions/build-fileserver-image + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + - uses: cloudfoundry/kind-deployment/.github/actions/setup-cf@v0.26.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Build cnbapplifecycle.tgz - run: make copy-binaries package - - name: Load updated cnbapplifecycle.tgz into kind - run: | - kubectl cp bin/cnb_app_lifecycle.tgz \ - cf-system/$(kubectl get pod -n cf-system -l app.kubernetes.io/name=fileserver \ - -o jsonpath='{.items[0].metadata.name}'):fileserver/v1/static/cnb_app_lifecycle/cnb_app_lifecycle.tgz + load-images: ${{ steps.fileserver.outputs.load-images }} + additional-values-files: ${{ steps.fileserver.outputs.values-file }} - name: Run E2E tests for java run: | cf push hello-java -f examples/hello-java/manifest.yaml diff --git a/.github/workflows/go.yaml b/.github/workflows/go.yaml index fdfa6f7c..cbdd6c19 100644 --- a/.github/workflows/go.yaml +++ b/.github/workflows/go.yaml @@ -28,17 +28,3 @@ jobs: with: go-version: stable - run: make lint - diego-compat: - runs-on: ubuntu-latest - if: github.actor == 'dependabot[bot]' && github.event_name == 'pull_request' - steps: - - uses: actions/checkout@v7 - with: - repository: cloudfoundry/diego-release - ref: develop - submodules: recursive - - uses: actions/setup-go@v7 - with: - go-version: stable - - run: | - cd src/code.cloudfoundry.org && go get -u code.cloudfoundry.org/cnbapplifecycle@${{ github.event.pull_request.head.sha }} diff --git a/.github/workflows/kind-cats.yaml b/.github/workflows/kind-cats.yaml index c9cdb322..cf421b0d 100644 --- a/.github/workflows/kind-cats.yaml +++ b/.github/workflows/kind-cats.yaml @@ -13,17 +13,17 @@ jobs: contents: read steps: - uses: actions/checkout@v7 - - uses: cloudfoundry/kind-deployment/.github/actions/setup-cf@v0.25.0 + - name: Build fileserver image + id: fileserver + uses: ./.github/actions/build-fileserver-image + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + - uses: cloudfoundry/kind-deployment/.github/actions/setup-cf@v0.26.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Build cnbapplifecycle.tgz - run: make copy-binaries package - - name: Load updated cnbapplifecycle.tgz into kind - run: | - kubectl cp bin/cnb_app_lifecycle.tgz \ - cf-system/$(kubectl get pod -n cf-system -l app.kubernetes.io/name=fileserver \ - -o jsonpath='{.items[0].metadata.name}'):fileserver/v1/static/cnb_app_lifecycle/cnb_app_lifecycle.tgz - - uses: cloudfoundry/kind-deployment/.github/actions/setup-cf-tests@v0.25.0 + load-images: ${{ steps.fileserver.outputs.load-images }} + additional-values-files: ${{ steps.fileserver.outputs.values-file }} + - uses: cloudfoundry/kind-deployment/.github/actions/setup-cf-tests@v0.26.0 with: test-repo: cf-acceptance-tests config-template: ${{ github.workspace }}/.github/cats-config.tpl diff --git a/Makefile b/Makefile index bfb0f097..2e7b30bf 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ integration: build copy-binaries: mkdir -p bin/diego/ CONTAINER=$$(docker create ghcr.io/cloudfoundry/k8s/fileserver:latest); \ - docker cp $$CONTAINER:fileserver/v1/static/cnb_app_lifecycle/cnb_app_lifecycle.tgz bin/diego/; \ + docker cp $$CONTAINER:/static/cnb_app_lifecycle/cnb_app_lifecycle.tgz bin/diego/; \ docker rm $$CONTAINER tar -xf bin/diego/cnb_app_lifecycle.tgz -C bin/diego/ mv bin/diego/diego-sshd bin/