From 15c2935d48cff8153064ea69e24d27b070f7bdd8 Mon Sep 17 00:00:00 2001 From: Simon Hamp Date: Mon, 29 Apr 2024 14:24:47 +0100 Subject: [PATCH] Update actions (#428) * Update action versions * Use same dependency cache key naming logic Bring consistency across the whole pipeline --- .github/workflows/build-linux-arm.yml | 32 +++++++++++++++++------ .github/workflows/build-linux-x86_64.yml | 23 +++++++++------- .github/workflows/build-macos-aarch64.yml | 23 +++++++++------- .github/workflows/build-macos-x86_64.yml | 23 +++++++++------- 4 files changed, 66 insertions(+), 35 deletions(-) diff --git a/.github/workflows/build-linux-arm.yml b/.github/workflows/build-linux-arm.yml index 1a062727..20f17fb9 100644 --- a/.github/workflows/build-linux-arm.yml +++ b/.github/workflows/build-linux-arm.yml @@ -45,14 +45,30 @@ jobs: name: build ${{ inputs.version }} on ${{ inputs.operating-system }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + + # Cache composer dependencies + - id: cache-composer-deps + uses: actions/cache@v4 + with: + path: vendor + key: composer-dependencies + + # If there's no Composer cache, install dependencies + - if: steps.cache-composer-deps.outputs.cache-hit != 'true' + run: composer update --no-dev --classmap-authoritative + + - name: Generate hashed key for download cache + run: | + INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}') + echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV # Cache downloaded source - id: cache-download - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: downloads - key: php-${{ inputs.version }}-dependencies-${{ inputs.extensions }} + key: php-${{ env.INPUT_HASH }} # With or without debug - if: inputs.debug == true @@ -75,31 +91,31 @@ jobs: # Upload cli executable - if: ${{ inputs.build-cli == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-${{ inputs.version }}-linux-${{ inputs.operating-system }} path: buildroot/bin/php # Upload micro self-extracted executable - if: ${{ inputs.build-micro == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: micro-${{ inputs.version }}-linux-${{ inputs.operating-system }} path: buildroot/bin/micro.sfx # Upload fpm executable - if: ${{ inputs.build-fpm == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-fpm-${{ inputs.version }}-linux-${{ inputs.operating-system }} path: buildroot/bin/php-fpm # Upload extensions metadata - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: license-files path: buildroot/license/ - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: build-meta path: | diff --git a/.github/workflows/build-linux-x86_64.yml b/.github/workflows/build-linux-x86_64.yml index 91803677..262eb930 100644 --- a/.github/workflows/build-linux-x86_64.yml +++ b/.github/workflows/build-linux-x86_64.yml @@ -39,11 +39,11 @@ jobs: name: build ${{ inputs.version }} on Linux x86_64 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Cache composer dependencies - id: cache-composer-deps - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: vendor key: composer-dependencies @@ -52,12 +52,17 @@ jobs: - if: steps.cache-composer-deps.outputs.cache-hit != 'true' run: composer update --no-dev --classmap-authoritative + - name: Generate hashed key for download cache + run: | + INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}') + echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV + # Cache downloaded source - id: cache-download - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: downloads - key: php-${{ inputs.version }}-dependencies-${{ inputs.extensions }} + key: php-${{ env.INPUT_HASH }} # With or without debug - if: inputs.debug == true @@ -80,31 +85,31 @@ jobs: # Upload cli executable - if: ${{ inputs.build-cli == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/php # Upload micro self-extracted executable - if: ${{ inputs.build-micro == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: micro-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/micro.sfx # Upload fpm executable - if: ${{ inputs.build-fpm == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-fpm-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/php-fpm # Upload extensions metadata - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: license-files path: buildroot/license/ - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: build-meta path: | diff --git a/.github/workflows/build-macos-aarch64.yml b/.github/workflows/build-macos-aarch64.yml index f43b1ab5..591b2ad4 100644 --- a/.github/workflows/build-macos-aarch64.yml +++ b/.github/workflows/build-macos-aarch64.yml @@ -39,7 +39,7 @@ jobs: name: build ${{ inputs.version }} on macOS arm64 runs-on: macos-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Install macOS missing packages and mark os suffix - run: | @@ -58,7 +58,7 @@ jobs: # Cache composer dependencies - id: cache-composer-deps - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: vendor key: composer-dependencies @@ -67,12 +67,17 @@ jobs: - if: steps.cache-composer-deps.outputs.cache-hit != 'true' run: composer update --no-dev --classmap-authoritative + - name: Generate hashed key for download cache + run: | + INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}') + echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV + # Cache downloaded source - id: cache-download - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: downloads - key: php-${{ inputs.version }}-dependencies-${{ inputs.extensions }} + key: php-${{ env.INPUT_HASH }} # With or without debug - if: inputs.debug == true @@ -95,31 +100,31 @@ jobs: # Upload cli executable - if: ${{ inputs.build-cli == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/php # Upload micro self-extracted executable - if: ${{ inputs.build-micro == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: micro-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/micro.sfx # Upload fpm executable - if: ${{ inputs.build-fpm == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-fpm-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/php-fpm # Upload extensions metadata - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: license-files path: buildroot/license/ - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: build-meta path: | diff --git a/.github/workflows/build-macos-x86_64.yml b/.github/workflows/build-macos-x86_64.yml index a36a4f4c..5f753988 100644 --- a/.github/workflows/build-macos-x86_64.yml +++ b/.github/workflows/build-macos-x86_64.yml @@ -39,7 +39,7 @@ jobs: name: build ${{ inputs.version }} on macOS x86_64 runs-on: macos-13 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Install macOS missing packages and mark os suffix - run: | @@ -56,7 +56,7 @@ jobs: # Cache composer dependencies - id: cache-composer-deps - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: vendor key: composer-dependencies @@ -65,12 +65,17 @@ jobs: - if: steps.cache-composer-deps.outputs.cache-hit != 'true' run: composer update --no-dev --classmap-authoritative + - name: Generate hashed key for download cache + run: | + INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}') + echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV + # Cache downloaded source - id: cache-download - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: downloads - key: php-${{ inputs.version }}-dependencies-${{ inputs.extensions }} + key: php-${{ env.INPUT_HASH }} # With or without debug - if: inputs.debug == true @@ -93,31 +98,31 @@ jobs: # Upload cli executable - if: ${{ inputs.build-cli == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/php # Upload micro self-extracted executable - if: ${{ inputs.build-micro == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: micro-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/micro.sfx # Upload fpm executable - if: ${{ inputs.build-fpm == true }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: php-fpm-${{ inputs.version }}-${{ env.SPC_BUILD_OS }} path: buildroot/bin/php-fpm # Upload extensions metadata - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: license-files path: buildroot/license/ - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: build-meta path: |