From a918a59333af4b63df10987b9f1e64b2ca262e22 Mon Sep 17 00:00:00 2001 From: Fernando Hoyos <122779323+ferhoyos@users.noreply.github.com> Date: Wed, 31 Jan 2024 17:37:23 +0100 Subject: [PATCH] Upgrade download and upload github actions to v4 (#7069) --- .github/workflows/build-backend.yml | 88 ++++++++--------- .github/workflows/build-frontend.yml | 44 ++++----- .../workflows/integration-tests-backend.yml | 74 +++++++-------- ...ts-frontend-multicluster-multi-primary.yml | 90 +++++++++--------- ...s-frontend-multicluster-primary-remote.yml | 90 +++++++++--------- .../integration-tests-frontend-tempo.yml | 94 +++++++++---------- .../workflows/integration-tests-frontend.yml | 94 +++++++++---------- .github/workflows/nightly.yml | 6 +- .github/workflows/release.yml | 21 ++--- 9 files changed, 300 insertions(+), 301 deletions(-) diff --git a/.github/workflows/build-backend.yml b/.github/workflows/build-backend.yml index e869b561f0..19be2adc5d 100644 --- a/.github/workflows/build-backend.yml +++ b/.github/workflows/build-backend.yml @@ -11,47 +11,47 @@ jobs: name: Build and unit test backend runs-on: ubuntu-20.04 steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.build_branch }} - - - name: Determine go version - id: go_version - run: | - GO_VERSION=$(sed -rn 's/^GO_VERSION_KIALI \= (.*)/\1/p' Makefile) - - # Remove any pre release identifier (ie: "-SNAPSHOT") - GO_VERSION=${GO_VERSION%-*} - echo $GO_VERSION - echo "go_version=$GO_VERSION" >> $GITHUB_ENV - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: ${{ env.go_version }} - cache: true - cache-dependency-path: go.sum - - name: Lint Install - run: make lint-install - - - name: Verify code linting - run: make lint - - - name: Build - run: make -e GO_BUILD_FLAGS=${{ env.GO_BUILD_FLAGS }} -e CGO_ENABLED=${{ env.CGO_ENABLED }} clean-all build - env: - # Build with -race flag if this is a PR, otherwise it is a release and - # we don't want to build with race detection because of the perf penalty. - GO_BUILD_FLAGS: ${{ github.base_ref && '-race' }} - # The -race flag requires CGO_ENABLED - CGO_ENABLED: ${{ github.base_ref && '1' }} - - - name: Test backend - run: make -e GO_TEST_FLAGS="-race" test - - - name: Upload go binary - uses: actions/upload-artifact@v3 - with: - name: kiali - path: ~/go/bin/kiali \ No newline at end of file + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.build_branch }} + + - name: Determine go version + id: go_version + run: | + GO_VERSION=$(sed -rn 's/^GO_VERSION_KIALI \= (.*)/\1/p' Makefile) + + # Remove any pre release identifier (ie: "-SNAPSHOT") + GO_VERSION=${GO_VERSION%-*} + echo $GO_VERSION + echo "go_version=$GO_VERSION" >> $GITHUB_ENV + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.go_version }} + cache: true + cache-dependency-path: go.sum + - name: Lint Install + run: make lint-install + + - name: Verify code linting + run: make lint + + - name: Build + run: make -e GO_BUILD_FLAGS=${{ env.GO_BUILD_FLAGS }} -e CGO_ENABLED=${{ env.CGO_ENABLED }} clean-all build + env: + # Build with -race flag if this is a PR, otherwise it is a release and + # we don't want to build with race detection because of the perf penalty. + GO_BUILD_FLAGS: ${{ github.base_ref && '-race' }} + # The -race flag requires CGO_ENABLED + CGO_ENABLED: ${{ github.base_ref && '1' }} + + - name: Test backend + run: make -e GO_TEST_FLAGS="-race" test + + - name: Upload go binary + uses: actions/upload-artifact@v4 + with: + name: kiali + path: ~/go/bin/kiali diff --git a/.github/workflows/build-frontend.yml b/.github/workflows/build-frontend.yml index 088aaa2ba9..8d0c30ceff 100644 --- a/.github/workflows/build-frontend.yml +++ b/.github/workflows/build-frontend.yml @@ -15,29 +15,29 @@ jobs: name: Build and unit test frontend runs-on: ubuntu-20.04 steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.build_branch }} + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.build_branch }} - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version: "18" - cache: yarn - cache-dependency-path: frontend/yarn.lock + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: "18" + cache: yarn + cache-dependency-path: frontend/yarn.lock - - name: Build - run: make clean-all build-ui + - name: Build + run: make clean-all build-ui - - name: Test frontend - run: | - cd frontend - yarn pretty-quick --check --verbose --branch ${{ inputs.target_branch }} - yarn test + - name: Test frontend + run: | + cd frontend + yarn pretty-quick --check --verbose --branch ${{ inputs.target_branch }} + yarn test - - name: Upload frontend build - uses: actions/upload-artifact@v3 - with: - name: build - path: frontend/build/ + - name: Upload frontend build + uses: actions/upload-artifact@v4 + with: + name: build + path: frontend/build/ diff --git a/.github/workflows/integration-tests-backend.yml b/.github/workflows/integration-tests-backend.yml index cdec6749f8..8697628287 100644 --- a/.github/workflows/integration-tests-backend.yml +++ b/.github/workflows/integration-tests-backend.yml @@ -22,47 +22,47 @@ jobs: name: Backend API integration tests runs-on: ubuntu-20.04 steps: - - name: Check out code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.build_branch }} + - name: Check out code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.build_branch }} - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version-file: go.mod - # The builtin cache feature ensures that installing golangci-lint - # is consistently fast. - cache: true - cache-dependency-path: go.sum + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + # The builtin cache feature ensures that installing golangci-lint + # is consistently fast. + cache: true + cache-dependency-path: go.sum - - name: Download go binary - uses: actions/download-artifact@v3 - with: - name: kiali - path: ~/go/bin/ + - name: Download go binary + uses: actions/download-artifact@v4 + with: + name: kiali + path: ~/go/bin/ - - name: Ensure kiali binary is executable - run: chmod +x ~/go/bin/kiali + - name: Ensure kiali binary is executable + run: chmod +x ~/go/bin/kiali - - name: Download frontend build - uses: actions/download-artifact@v3 - with: - name: build - path: frontend/build + - name: Download frontend build + uses: actions/download-artifact@v4 + with: + name: build + path: frontend/build - - name: Run backend integration tests - run: hack/run-integration-tests.sh --test-suite backend $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) + - name: Run backend integration tests + run: hack/run-integration-tests.sh --test-suite backend $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) - - name: Get debug info when integration tests fail - if: failure() - run: | - mkdir debug-output - hack/ci-get-debug-info.sh --output-directory debug-output + - name: Get debug info when integration tests fail + if: failure() + run: | + mkdir debug-output + hack/ci-get-debug-info.sh --output-directory debug-output - - name: Upload debug info artifact - if: failure() - uses: actions/upload-artifact@v3 - with: - name: debug-info - path: debug-output + - name: Upload debug info artifact + if: failure() + uses: actions/upload-artifact@v4 + with: + name: debug-info + path: debug-output diff --git a/.github/workflows/integration-tests-frontend-multicluster-multi-primary.yml b/.github/workflows/integration-tests-frontend-multicluster-multi-primary.yml index 4c6a8d0382..73a8e8e42d 100644 --- a/.github/workflows/integration-tests-frontend-multicluster-multi-primary.yml +++ b/.github/workflows/integration-tests-frontend-multicluster-multi-primary.yml @@ -28,57 +28,57 @@ jobs: # avoid warnings like "tput: No value for $TERM and no -T specified" TERM: xterm steps: - - name: Check out code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.build_branch }} + - name: Check out code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.build_branch }} - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version: "18" - cache: yarn - cache-dependency-path: frontend/yarn.lock + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: "18" + cache: yarn + cache-dependency-path: frontend/yarn.lock - - name: Download go binary - uses: actions/download-artifact@v3 - with: - name: kiali - path: ~/go/bin/ + - name: Download go binary + uses: actions/download-artifact@v4 + with: + name: kiali + path: ~/go/bin/ - - name: Ensure kiali binary is executable - run: chmod +x ~/go/bin/kiali + - name: Ensure kiali binary is executable + run: chmod +x ~/go/bin/kiali - - name: Download frontend build - uses: actions/download-artifact@v3 - with: - name: build - path: frontend/build + - name: Download frontend build + uses: actions/download-artifact@v4 + with: + name: build + path: frontend/build - # Need to install frontend dependencies to run cypress tests. - - name: Install frontend dependencies - working-directory: ./frontend - run: yarn install --frozen-lockfile + # Need to install frontend dependencies to run cypress tests. + - name: Install frontend dependencies + working-directory: ./frontend + run: yarn install --frozen-lockfile - - name: Run frontend multi-cluster integration tests - run: hack/run-integration-tests.sh --test-suite frontend-multi-primary $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) + - name: Run frontend multi-cluster integration tests + run: hack/run-integration-tests.sh --test-suite frontend-multi-primary $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) - - name: Get debug info when integration tests fail - if: failure() - run: | - mkdir debug-output - hack/ci-get-debug-info.sh --output-directory debug-output --kubectl-context kind-east + - name: Get debug info when integration tests fail + if: failure() + run: | + mkdir debug-output + hack/ci-get-debug-info.sh --output-directory debug-output --kubectl-context kind-east - - name: Upload debug info artifact - if: failure() - uses: actions/upload-artifact@v3 - with: - name: debug-info - path: debug-output + - name: Upload debug info artifact + if: failure() + uses: actions/upload-artifact@v4 + with: + name: debug-info + path: debug-output - - name: Upload cypress screenshots when tests fail - uses: actions/upload-artifact@v3 - if: failure() - with: - name: cypress-screenshots - path: frontend/cypress/screenshots + - name: Upload cypress screenshots when tests fail + uses: actions/upload-artifact@v4 + if: failure() + with: + name: cypress-screenshots + path: frontend/cypress/screenshots diff --git a/.github/workflows/integration-tests-frontend-multicluster-primary-remote.yml b/.github/workflows/integration-tests-frontend-multicluster-primary-remote.yml index 8dcd886650..fa435b6e4c 100644 --- a/.github/workflows/integration-tests-frontend-multicluster-primary-remote.yml +++ b/.github/workflows/integration-tests-frontend-multicluster-primary-remote.yml @@ -28,57 +28,57 @@ jobs: # avoid warnings like "tput: No value for $TERM and no -T specified" TERM: xterm steps: - - name: Check out code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.build_branch }} + - name: Check out code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.build_branch }} - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version: "18" - cache: yarn - cache-dependency-path: frontend/yarn.lock + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: "18" + cache: yarn + cache-dependency-path: frontend/yarn.lock - - name: Download go binary - uses: actions/download-artifact@v3 - with: - name: kiali - path: ~/go/bin/ + - name: Download go binary + uses: actions/download-artifact@v4 + with: + name: kiali + path: ~/go/bin/ - - name: Ensure kiali binary is executable - run: chmod +x ~/go/bin/kiali + - name: Ensure kiali binary is executable + run: chmod +x ~/go/bin/kiali - - name: Download frontend build - uses: actions/download-artifact@v3 - with: - name: build - path: frontend/build + - name: Download frontend build + uses: actions/download-artifact@v4 + with: + name: build + path: frontend/build - # Need to install frontend dependencies to run cypress tests. - - name: Install frontend dependencies - working-directory: ./frontend - run: yarn install --frozen-lockfile + # Need to install frontend dependencies to run cypress tests. + - name: Install frontend dependencies + working-directory: ./frontend + run: yarn install --frozen-lockfile - - name: Run frontend multi-cluster integration tests - run: hack/run-integration-tests.sh --test-suite frontend-primary-remote $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) + - name: Run frontend multi-cluster integration tests + run: hack/run-integration-tests.sh --test-suite frontend-primary-remote $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) - - name: Get debug info when integration tests fail - if: failure() - run: | - mkdir debug-output - hack/ci-get-debug-info.sh --output-directory debug-output --kubectl-context kind-east + - name: Get debug info when integration tests fail + if: failure() + run: | + mkdir debug-output + hack/ci-get-debug-info.sh --output-directory debug-output --kubectl-context kind-east - - name: Upload debug info artifact - if: failure() - uses: actions/upload-artifact@v3 - with: - name: debug-info - path: debug-output + - name: Upload debug info artifact + if: failure() + uses: actions/upload-artifact@v4 + with: + name: debug-info + path: debug-output - - name: Upload cypress screenshots when tests fail - uses: actions/upload-artifact@v3 - if: failure() - with: - name: cypress-screenshots - path: frontend/cypress/screenshots + - name: Upload cypress screenshots when tests fail + uses: actions/upload-artifact@v4 + if: failure() + with: + name: cypress-screenshots + path: frontend/cypress/screenshots diff --git a/.github/workflows/integration-tests-frontend-tempo.yml b/.github/workflows/integration-tests-frontend-tempo.yml index 2c535bb04b..cd2a9a777f 100644 --- a/.github/workflows/integration-tests-frontend-tempo.yml +++ b/.github/workflows/integration-tests-frontend-tempo.yml @@ -28,59 +28,59 @@ jobs: # avoid warnings like "tput: No value for $TERM and no -T specified" TERM: xterm steps: - - name: Check out code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.build_branch }} + - name: Check out code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.build_branch }} - # This caches the yarn deps but does not touch node_modules so it's still necessary - # to run 'yarn install' later to link these into node_modules. - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version: "18" - cache: yarn - cache-dependency-path: frontend/yarn.lock + # This caches the yarn deps but does not touch node_modules so it's still necessary + # to run 'yarn install' later to link these into node_modules. + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: "18" + cache: yarn + cache-dependency-path: frontend/yarn.lock - - name: Download go binary - uses: actions/download-artifact@v3 - with: - name: kiali - path: ~/go/bin/ + - name: Download go binary + uses: actions/download-artifact@v4 + with: + name: kiali + path: ~/go/bin/ - - name: Ensure kiali binary is executable - run: chmod +x ~/go/bin/kiali + - name: Ensure kiali binary is executable + run: chmod +x ~/go/bin/kiali - - name: Download frontend build - uses: actions/download-artifact@v3 - with: - name: build - path: frontend/build + - name: Download frontend build + uses: actions/download-artifact@v4 + with: + name: build + path: frontend/build - # Need to install frontend dependencies to run cypress tests. - - name: Install frontend dependencies - working-directory: ./frontend - run: yarn install --frozen-lockfile + # Need to install frontend dependencies to run cypress tests. + - name: Install frontend dependencies + working-directory: ./frontend + run: yarn install --frozen-lockfile - - name: Run frontend integration tests - run: hack/run-integration-tests.sh --test-suite frontend-tempo $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) + - name: Run frontend integration tests + run: hack/run-integration-tests.sh --test-suite frontend-tempo $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) - - name: Get debug info when integration tests fail - if: failure() - run: | - mkdir debug-output - hack/ci-get-debug-info.sh --output-directory debug-output --kubectl-context kind-east + - name: Get debug info when integration tests fail + if: failure() + run: | + mkdir debug-output + hack/ci-get-debug-info.sh --output-directory debug-output --kubectl-context kind-east - - name: Upload debug info artifact - if: failure() - uses: actions/upload-artifact@v3 - with: - name: debug-info - path: debug-output + - name: Upload debug info artifact + if: failure() + uses: actions/upload-artifact@v4 + with: + name: debug-info + path: debug-output - - name: Upload cypress screenshots when tests fail - uses: actions/upload-artifact@v3 - if: failure() - with: - name: cypress-screenshots - path: frontend/cypress/screenshots + - name: Upload cypress screenshots when tests fail + uses: actions/upload-artifact@v4 + if: failure() + with: + name: cypress-screenshots + path: frontend/cypress/screenshots diff --git a/.github/workflows/integration-tests-frontend.yml b/.github/workflows/integration-tests-frontend.yml index 8f93515176..77da42da88 100644 --- a/.github/workflows/integration-tests-frontend.yml +++ b/.github/workflows/integration-tests-frontend.yml @@ -28,59 +28,59 @@ jobs: # avoid warnings like "tput: No value for $TERM and no -T specified" TERM: xterm steps: - - name: Check out code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.build_branch }} + - name: Check out code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.build_branch }} - # This caches the yarn deps but does not touch node_modules so it's still necessary - # to run 'yarn install' later to link these into node_modules. - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version: "18" - cache: yarn - cache-dependency-path: frontend/yarn.lock + # This caches the yarn deps but does not touch node_modules so it's still necessary + # to run 'yarn install' later to link these into node_modules. + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: "18" + cache: yarn + cache-dependency-path: frontend/yarn.lock - - name: Download go binary - uses: actions/download-artifact@v3 - with: - name: kiali - path: ~/go/bin/ + - name: Download go binary + uses: actions/download-artifact@v4 + with: + name: kiali + path: ~/go/bin/ - - name: Ensure kiali binary is executable - run: chmod +x ~/go/bin/kiali + - name: Ensure kiali binary is executable + run: chmod +x ~/go/bin/kiali - - name: Download frontend build - uses: actions/download-artifact@v3 - with: - name: build - path: frontend/build + - name: Download frontend build + uses: actions/download-artifact@v4 + with: + name: build + path: frontend/build - # Need to install frontend dependencies to run cypress tests. - - name: Install frontend dependencies - working-directory: ./frontend - run: yarn install --frozen-lockfile + # Need to install frontend dependencies to run cypress tests. + - name: Install frontend dependencies + working-directory: ./frontend + run: yarn install --frozen-lockfile - - name: Run frontend integration tests - run: hack/run-integration-tests.sh --test-suite frontend $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) + - name: Run frontend integration tests + run: hack/run-integration-tests.sh --test-suite frontend $(if [ -n "${{ inputs.istio_version }}" ]; then echo "--istio-version ${{ inputs.istio_version }}"; fi) - - name: Get debug info when integration tests fail - if: failure() - run: | - mkdir debug-output - hack/ci-get-debug-info.sh --output-directory debug-output + - name: Get debug info when integration tests fail + if: failure() + run: | + mkdir debug-output + hack/ci-get-debug-info.sh --output-directory debug-output - - name: Upload debug info artifact - if: failure() - uses: actions/upload-artifact@v3 - with: - name: debug-info - path: debug-output + - name: Upload debug info artifact + if: failure() + uses: actions/upload-artifact@v4 + with: + name: debug-info + path: debug-output - - name: Upload cypress screenshots when tests fail - uses: actions/upload-artifact@v3 - if: failure() - with: - name: cypress-screenshots - path: frontend/cypress/screenshots + - name: Upload cypress screenshots when tests fail + uses: actions/upload-artifact@v4 + if: failure() + with: + name: cypress-screenshots + path: frontend/cypress/screenshots diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 14eb1d2fce..add85d76e1 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -3,7 +3,7 @@ name: Nightly Build on: schedule: # Every night at 04:00 (UTC) - - cron: '0 4 * * *' + - cron: "0 4 * * *" workflow_dispatch: inputs: release_branch: @@ -41,7 +41,7 @@ jobs: fi QUAY_TAG="$QUAY_REPO:latest" - + echo "quay_tag=$QUAY_TAG" >> $GITHUB_ENV - name: Log information @@ -89,7 +89,7 @@ jobs: cache-dependency-path: go.sum - name: Download frontend build - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build path: frontend/build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34c5b8b833..59a6aa690f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Release on: schedule: # Every Monday at 07:00 (UTC) - - cron: '00 7 * * MON' + - cron: "00 7 * * MON" workflow_dispatch: inputs: quay_repository: @@ -72,16 +72,16 @@ jobs: run: | echo ${{ github.ref_name }} if [[ "${{ github.ref_name }}" == "master" ]]; - then + then DO_RELEASE=$(python minor.py) if [[ $DO_RELEASE == "1" ]] then - echo "release_type=minor" >> $GITHUB_ENV + echo "release_type=minor" >> $GITHUB_ENV else - echo "release_type=skip" >> $GITHUB_ENV + echo "release_type=skip" >> $GITHUB_ENV fi else - echo "release_type=patch" >> $GITHUB_ENV + echo "release_type=patch" >> $GITHUB_ENV fi - name: Determine release version @@ -102,8 +102,8 @@ jobs: then RELEASE_VERSION=$RELEASE_VERSION fi - - echo "release_version=$RELEASE_VERSION" >> $GITHUB_ENV + + echo "release_version=$RELEASE_VERSION" >> $GITHUB_ENV - name: Determine next version env: @@ -120,7 +120,7 @@ jobs: NEXT_VERSION=$(python bump.py $RELEASE_TYPE $RELEASE_VERSION) fi - echo "next_version=$NEXT_VERSION" >> $GITHUB_ENV + echo "next_version=$NEXT_VERSION" >> $GITHUB_ENV - name: Determine branch version if: ${{ env.release_type != 'skip' }} @@ -156,7 +156,7 @@ jobs: # Remove any pre release identifier (ie: "-SNAPSHOT") GO_VERSION=${GO_VERSION%-*} - echo "go_version=$GO_VERSION" >> $GITHUB_ENV + echo "go_version=$GO_VERSION" >> $GITHUB_ENV - name: Cleanup run: rm bump.py minor.py @@ -219,7 +219,6 @@ jobs: jq -r '.version |= "${RELEASE_VERSION:1}"' frontend/package.json > frontend/package.json.tmp mv frontend/package.json.tmp frontend/package.json - - name: Set up Go uses: actions/setup-go@v5 with: @@ -228,7 +227,7 @@ jobs: cache-dependency-path: go.sum - name: Download frontend build - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build path: frontend/build