From f1e55b6a15a9e39b8260cb7f450894af762ac38d Mon Sep 17 00:00:00 2001 From: Tom Wieczorek Date: Fri, 12 Jan 2024 18:09:32 +0100 Subject: [PATCH] Use upload/download to share airgap bundles between tests This removes the cache hack that was used to share the prebuilt image bundles with the integration tests. The upload/download action is now reasonably fast. Signed-off-by: Tom Wieczorek --- .../workflows/build-airgap-image-bundle.yml | 19 ++++++++++--------- .github/workflows/go.yml | 17 ++++------------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build-airgap-image-bundle.yml b/.github/workflows/build-airgap-image-bundle.yml index e01c8c64c245..cd42fd0a7347 100644 --- a/.github/workflows/build-airgap-image-bundle.yml +++ b/.github/workflows/build-airgap-image-bundle.yml @@ -20,9 +20,6 @@ jobs: name: "${{ inputs.target-os }}-${{ inputs.target-arch }}" runs-on: ubuntu-22.04 - outputs: - cache-key: ${{ steps.cache-airgap-image-bundle-calc-key.outputs.cache-key }} - env: TARGET_OS: ${{ inputs.target-os }} TARGET_ARCH: ${{ inputs.target-arch }} @@ -38,11 +35,9 @@ jobs: with: name: airgap-image-list-${{ inputs.target-os }}-${{ inputs.target-arch }} - # Capture the calculated image bundle source hash in a build output, so - # it can be shared between the cache actions in this job and in the - # smoketests. Do this in a separate step, as the hashFiles function is - # evaluated before the step execution. So all the required files need to - # exist before that. + # Capture the calculated image bundle source hash in a separate step, as + # the hashFiles function is evaluated before the step execution. So all + # the required files need to exist before that. - name: "Cache :: Airgap image bundle :: Calculate cache key" id: cache-airgap-image-bundle-calc-key env: @@ -56,7 +51,6 @@ jobs: with: key: ${{ steps.cache-airgap-image-bundle-calc-key.outputs.cache-key }} path: airgap-image-bundle-${{ inputs.target-os }}-${{ inputs.target-arch }}.tar - lookup-only: true - name: "Build :: Airgap image bundle" if: steps.cache-airgap-image-bundle.outputs.cache-hit != 'true' @@ -64,3 +58,10 @@ jobs: mkdir -p "embedded-bins/staging/$TARGET_OS/bin" make --touch airgap-images.txt make "airgap-image-bundle-$TARGET_OS-$TARGET_ARCH.tar" + + - name: "Upload :: Airgap image bundle" + uses: actions/upload-artifact@v4 + with: + name: airgap-image-bundle-${{ inputs.target-os }}-${{ inputs.target-arch }} + path: airgap-image-bundle-${{ inputs.target-os }}-${{ inputs.target-arch }}.tar + compression: 0 diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index dbd603b0f93b..fd9d527ddf60 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -235,23 +235,14 @@ jobs: chmod +x k0s ./k0s sysinfo - - name: Cache airgap image bundle - id: cache-airgap-image-bundle + - name: Download airgap image bundle if: contains(matrix.smoke-suite, 'airgap') - uses: actions/cache@v3 + uses: actions/download-artifact@v4 with: - key: ${{ needs.build-airgap-image-bundle.outputs.cache-key }} - path: airgap-image-bundle-linux-amd64.tar + name: airgap-image-bundle-linux-amd64 - name: Run inttest - env: - NEEDS_AIRGAP_IMAGE_BUNDLE: ${{ contains(matrix.smoke-suite, 'airgap') }} - run: | - [ "$NEEDS_AIRGAP_IMAGE_BUNDLE" != true ] || [ -f airgap-image-bundle-linux-amd64.tar ] || { - echo Airgap image bundle file missing! - exit 1 - } - make -C inttest ${{ matrix.smoke-suite }} + run: make -C inttest ${{ matrix.smoke-suite }} - name: Collect k0s logs and support bundle if: failure()