From 8460a449988640f2301076918dbab778636e5243 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sat, 2 Mar 2024 04:32:28 +0100 Subject: [PATCH 01/10] add `precache` key --- action.yml | 6 +++++- setup.sh | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/action.yml b/action.yml index de9efa7..ff88f37 100644 --- a/action.yml +++ b/action.yml @@ -37,6 +37,10 @@ inputs: description: 'The architecture of Flutter SDK executable (x64 or arm64)' required: false default: '${{ runner.arch }}' + precache: + description: 'Whether to call flutter precache after download' + required: false + default: 'false' outputs: CACHE-PATH: value: '${{ steps.flutter-action.outputs.CACHE-PATH }}' @@ -58,7 +62,7 @@ runs: - run: chmod +x $GITHUB_ACTION_PATH/setup.sh shell: bash - id: flutter-action - run: $GITHUB_ACTION_PATH/setup.sh -p -c '${{ inputs.cache-path }}' -k '${{ inputs.cache-key }}' -d '${{ inputs.pub-cache-path }}' -l '${{ inputs.pub-cache-key }}' -n '${{ inputs.flutter-version }}' -a '${{ inputs.architecture }}' ${{ inputs.channel }} + run: $GITHUB_ACTION_PATH/setup.sh -p -c '${{ inputs.cache-path }}' -k '${{ inputs.cache-key }}' -d '${{ inputs.pub-cache-path }}' -l '${{ inputs.pub-cache-key }}' -n '${{ inputs.flutter-version }}' -x '${{ inputs.precache }}' -a '${{ inputs.architecture }}' ${{ inputs.channel }} shell: bash - if: ${{ inputs.cache == 'true' }} uses: actions/cache@v4 diff --git a/setup.sh b/setup.sh index f79d314..41f4cf9 100755 --- a/setup.sh +++ b/setup.sh @@ -73,8 +73,9 @@ PRINT_ONLY="" TEST_MODE=false ARCH="" VERSION="" +PRECACHE="" -while getopts 'tc:k:d:l:pa:n:' flag; do +while getopts 'tc:k:d:l:pa:x:n:' flag; do case "$flag" in c) CACHE_PATH="$OPTARG" ;; k) CACHE_KEY="$OPTARG" ;; @@ -83,6 +84,7 @@ while getopts 'tc:k:d:l:pa:n:' flag; do p) PRINT_ONLY=true ;; t) TEST_MODE=true ;; a) ARCH="$(echo "$OPTARG" | awk '{print tolower($0)}')" ;; + x) PRECACHE="$OPTARG" ;; n) VERSION="$OPTARG" ;; ?) exit 2 ;; esac @@ -96,6 +98,7 @@ CHANNEL="${ARR_CHANNEL[0]}" [[ -z $CHANNEL ]] && CHANNEL=stable [[ -z $VERSION ]] && VERSION=any [[ -z $ARCH ]] && ARCH=x64 +[[ -z $PRECACHE ]] && PRECACHE=false [[ -z $CACHE_PATH ]] && CACHE_PATH="$RUNNER_TEMP/flutter/:channel:-:version:-:arch:" [[ -z $CACHE_KEY ]] && CACHE_KEY="flutter-:os:-:channel:-:version:-:arch:-:hash:" [[ -z $PUB_CACHE_KEY ]] && PUB_CACHE_KEY="flutter-pub-:os:-:channel:-:version:-:arch:-:hash:" @@ -166,6 +169,7 @@ if [[ "$PRINT_ONLY" == true ]]; then echo "CHANNEL=$info_channel" echo "VERSION=$info_version" echo "ARCHITECTURE=$info_architecture" + echo "PRECACHE=$PRECACHE" echo "CACHE-KEY=$CACHE_KEY" echo "CACHE-PATH=$CACHE_PATH" echo "PUB-CACHE-KEY=$PUB_CACHE_KEY" @@ -209,3 +213,7 @@ fi echo "$CACHE_PATH/bin/cache/dart-sdk/bin" echo "$PUB_CACHE/bin" } >>"$GITHUB_PATH" + +if [ "$PRECACHE" = true ]; then + flutter precache +fi From 02fcb9410e24c0afb82a1741042f28c15a3e4be0 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 24 Mar 2024 19:34:09 +0100 Subject: [PATCH 02/10] workflow.yml: add simple `test_precache` test --- .github/workflows/workflow.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 00d747c..f5feec1 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -61,6 +61,22 @@ jobs: shell: bash - run: flutter --version shell: bash + test_precache: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./ + with: + channel: stable + flutter-version: "3.10.6" + cache: true + precache: true + - run: dart --version + shell: bash + - run: flutter --version + shell: bash + - run: ls -la /tmp/flutter + shell: test -d $FLUTTER_ROOT/bin/cache/artifacts/engine/linux-amd64-release test_print_output: runs-on: macos-latest steps: From 84eecd97e3ebfacb399159da89835a67ac7b7710 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 17:16:54 +0200 Subject: [PATCH 03/10] add log when running precache --- setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.sh b/setup.sh index 41f4cf9..1e79c21 100755 --- a/setup.sh +++ b/setup.sh @@ -215,5 +215,6 @@ fi } >>"$GITHUB_PATH" if [ "$PRECACHE" = true ]; then + echo "Will run precache..." flutter precache fi From e7398ab75519825f5c3fc51e4b9737c2a722f9b6 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 17:26:11 +0200 Subject: [PATCH 04/10] fix `test_precache` --- .github/workflows/workflow.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index f5feec1..9d9cb95 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -75,8 +75,10 @@ jobs: shell: bash - run: flutter --version shell: bash - - run: ls -la /tmp/flutter - shell: test -d $FLUTTER_ROOT/bin/cache/artifacts/engine/linux-amd64-release + - run: ls -la $FLUTTER_ROOT + shell: bash + - run: test -d $FLUTTER_ROOT/bin/cache/artifacts/engine/linux-amd64-release + shell: bash test_print_output: runs-on: macos-latest steps: From a8987030550a765dfc3c194715950590f419bfc6 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 18:09:00 +0200 Subject: [PATCH 05/10] add more debugging --- .github/workflows/workflow.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 9d9cb95..f1e5e8e 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -77,6 +77,14 @@ jobs: shell: bash - run: ls -la $FLUTTER_ROOT shell: bash + - run: ls -la $FLUTTER_ROOT/bin + shell: bash + - run: ls -la $FLUTTER_ROOT/bin/cache + shell: bash + - run: ls -la $FLUTTER_ROOT/bin/cache/artifacts + shell: bash + - run: ls -la $FLUTTER_ROOT/bin/cache/artifacts/engine + shell: bash - run: test -d $FLUTTER_ROOT/bin/cache/artifacts/engine/linux-amd64-release shell: bash test_print_output: From 31d7d296e310d9cf9d9eb93d362e19447663fb51 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 18:10:23 +0200 Subject: [PATCH 06/10] make interaction with some GITHUB_* vars conditional --- setup.sh | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/setup.sh b/setup.sh index 1e79c21..b654b09 100755 --- a/setup.sh +++ b/setup.sh @@ -83,6 +83,7 @@ while getopts 'tc:k:d:l:pa:x:n:' flag; do l) PUB_CACHE_KEY="$OPTARG" ;; p) PRINT_ONLY=true ;; t) TEST_MODE=true ;; + t) TEST_MODE=true ;; # Uses RELEASE_MANIFEST from test/ directory, instead of fetching it from Google a) ARCH="$(echo "$OPTARG" | awk '{print tolower($0)}')" ;; x) PRECACHE="$OPTARG" ;; n) VERSION="$OPTARG" ;; @@ -177,15 +178,17 @@ if [[ "$PRINT_ONLY" == true ]]; then exit 0 fi - { - echo "CHANNEL=$info_channel" - echo "VERSION=$info_version" - echo "ARCHITECTURE=$info_architecture" - echo "CACHE-KEY=$CACHE_KEY" - echo "CACHE-PATH=$CACHE_PATH" - echo "PUB-CACHE-KEY=$PUB_CACHE_KEY" - echo "PUB-CACHE-PATH=$PUB_CACHE" - } >>"$GITHUB_OUTPUT" + if [[ -n "${GITHUB_OUTPUT:-}" ]]; then + { + echo "CHANNEL=$info_channel" + echo "VERSION=$info_version" + echo "ARCHITECTURE=$info_architecture" + echo "CACHE-KEY=$CACHE_KEY" + echo "CACHE-PATH=$CACHE_PATH" + echo "PUB-CACHE-KEY=$PUB_CACHE_KEY" + echo "PUB-CACHE-PATH=$PUB_CACHE" + } >>"$GITHUB_OUTPUT" + fi exit 0 fi @@ -203,16 +206,20 @@ if [[ ! -x "$CACHE_PATH/bin/flutter" ]]; then fi fi -{ - echo "FLUTTER_ROOT=$CACHE_PATH" - echo "PUB_CACHE=$PUB_CACHE" -} >>"$GITHUB_ENV" +if [ -n "${GITHUB_ENV:-}" ]; then + { + echo "FLUTTER_ROOT=$CACHE_PATH" + echo "PUB_CACHE=$PUB_CACHE" + } >>"$GITHUB_ENV" +fi -{ - echo "$CACHE_PATH/bin" - echo "$CACHE_PATH/bin/cache/dart-sdk/bin" - echo "$PUB_CACHE/bin" -} >>"$GITHUB_PATH" +if [ -n "${GITHUB_PATH:-}" ]; then + { + echo "$CACHE_PATH/bin" + echo "$CACHE_PATH/bin/cache/dart-sdk/bin" + echo "$PUB_CACHE/bin" + } >>"$GITHUB_PATH" +fi if [ "$PRECACHE" = true ]; then echo "Will run precache..." From fcbf8cca96244c941aa0a55fc4f37c8b7843e7e9 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 18:12:22 +0200 Subject: [PATCH 07/10] fix shellcheck being angry? --- setup.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.sh b/setup.sh index b654b09..3f014de 100755 --- a/setup.sh +++ b/setup.sh @@ -83,7 +83,6 @@ while getopts 'tc:k:d:l:pa:x:n:' flag; do l) PUB_CACHE_KEY="$OPTARG" ;; p) PRINT_ONLY=true ;; t) TEST_MODE=true ;; - t) TEST_MODE=true ;; # Uses RELEASE_MANIFEST from test/ directory, instead of fetching it from Google a) ARCH="$(echo "$OPTARG" | awk '{print tolower($0)}')" ;; x) PRECACHE="$OPTARG" ;; n) VERSION="$OPTARG" ;; From a6947920226973f6353d603f95b5cb7f32c2da9b Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 18:26:00 +0200 Subject: [PATCH 08/10] more debugging --- .github/workflows/workflow.yml | 29 +++++++++++++++++------------ action.yml | 1 + 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index f1e5e8e..a8baf9c 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -68,25 +68,30 @@ jobs: - uses: ./ with: channel: stable - flutter-version: "3.10.6" + flutter-version: 3.10.6 cache: true precache: true - run: dart --version shell: bash - run: flutter --version shell: bash - - run: ls -la $FLUTTER_ROOT - shell: bash - - run: ls -la $FLUTTER_ROOT/bin - shell: bash - - run: ls -la $FLUTTER_ROOT/bin/cache - shell: bash - - run: ls -la $FLUTTER_ROOT/bin/cache/artifacts - shell: bash - - run: ls -la $FLUTTER_ROOT/bin/cache/artifacts/engine - shell: bash - - run: test -d $FLUTTER_ROOT/bin/cache/artifacts/engine/linux-amd64-release + - name: Run first test + run: | + cd $FLUTTER_ROOT/bin/cache/artifacts + test -d material_fonts shell: bash + - name: Run more tests + run: | + cd $FLUTTER_ROOT/bin/cache/artifacts/engine + test -d android-arm + test -d android-arm-profile + test -d android-arm-release + test -d android-arm64 + test -d android-arm64-profile + test -d android-arm64-release + test -d linux-x64 + test -d linux-x64-profile + test -d linux-x64-release test_print_output: runs-on: macos-latest steps: diff --git a/action.yml b/action.yml index ff88f37..745fa4b 100644 --- a/action.yml +++ b/action.yml @@ -48,6 +48,7 @@ outputs: value: '${{ steps.flutter-action.outputs.CACHE-KEY }}' CHANNEL: value: '${{ steps.flutter-action.outputs.CHANNEL }}' + description: 'The Flutter build release channel' VERSION: value: '${{ steps.flutter-action.outputs.VERSION }}' ARCHITECTURE: From d9ceed6c82cd460404bdaf3e6ddcc69dab9cf3b8 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 18:34:29 +0200 Subject: [PATCH 09/10] add tests for precache (when enabled or disabled) --- .github/workflows/workflow.yml | 36 ++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index a8baf9c..e468177 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -61,7 +61,7 @@ jobs: shell: bash - run: flutter --version shell: bash - test_precache: + test_precache_disabled: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -69,7 +69,39 @@ jobs: with: channel: stable flutter-version: 3.10.6 - cache: true + cache: false + precache: false + - run: dart --version + shell: bash + - run: flutter --version + shell: bash + - name: Run first test + run: | + cd $FLUTTER_ROOT/bin/cache/artifacts + ls -lah . + test ! -e material_fonts + shell: bash + - name: Run more tests + run: | + cd $FLUTTER_ROOT/bin/cache/artifacts/engine + test ! -e android-arm + test ! -e android-arm-profile + test ! -e android-arm-release + test ! -e android-arm64 + test ! -e android-arm64-profile + test ! -e android-arm64-release + test ! -e linux-x64 + test ! -e linux-x64-profile + test ! -e linux-x64-release + test_precache_enabled: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./ + with: + channel: stable + flutter-version: 3.10.6 + cache: false precache: true - run: dart --version shell: bash From d6d787296eb26a4d66018d2566fa9276f72ae5af Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sun, 31 Mar 2024 18:54:58 +0200 Subject: [PATCH 10/10] rerun --- .github/workflows/workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e468177..ea4480d 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -68,7 +68,7 @@ jobs: - uses: ./ with: channel: stable - flutter-version: 3.10.6 + flutter-version: 3.19.0 cache: false precache: false - run: dart --version @@ -100,7 +100,7 @@ jobs: - uses: ./ with: channel: stable - flutter-version: 3.10.6 + flutter-version: 3.19.0 cache: false precache: true - run: dart --version