From 799318a1318305e5ffa22a77f6f497a9d6a88fec Mon Sep 17 00:00:00 2001 From: ErBW_s Date: Wed, 4 Dec 2024 03:23:57 +0800 Subject: [PATCH] feat: add git source support (#334) * try to add git source support * improve GIT_SOURCE output name * fix syntax --------- Co-authored-by: Bartek Pacia --- .github/workflows/workflow.yaml | 10 +++++++++- action.yaml | 8 ++++++++ setup.sh | 7 +++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/workflow.yaml b/.github/workflows/workflow.yaml index d8d89dd..f411529 100644 --- a/.github/workflows/workflow.yaml +++ b/.github/workflows/workflow.yaml @@ -27,9 +27,16 @@ jobs: strategy: matrix: operating-system: - [ubuntu-latest, windows-latest, macos-latest, macos-13] + - ubuntu-latest + - windows-latest + - macos-latest + - macos-13 channel: [stable, beta, master] dry-run: [true, false] + git-source: + - https://github.com/flutter/flutter.git + - https://github.com/Flutter-Foundation/flutter.git + - https://gitee.com/harmonycommando_flutter/flutter.git include: - operating-system: ubuntu-latest channel: main @@ -42,6 +49,7 @@ jobs: with: channel: ${{ matrix.channel }} dry-run: ${{ matrix.dry-run }} + git-source: ${{ matrix.git-source }} - name: Echo outputs run: | echo RUNNER-OS=${{ runner.os }} diff --git a/action.yaml b/action.yaml index 84843c0..7ca5178 100644 --- a/action.yaml +++ b/action.yaml @@ -46,6 +46,10 @@ inputs: description: If true, get outputs but do not install Flutter required: false default: "false" + git-source: + description: Git clone source + required: false + default: "https://github.com/flutter/flutter.git" outputs: CHANNEL: @@ -69,6 +73,9 @@ outputs: PUB-CACHE-PATH: value: "${{ steps.flutter-action.outputs.PUB-CACHE-PATH }}" description: Path to pub cache + GIT_SOURCE: + value: "${{ steps.flutter-action.outputs.GIT_SOURCE }}" + description: Git source of Flutter SDK repository to clone runs: using: composite @@ -97,6 +104,7 @@ runs: -c '${{ inputs.cache-path }}' \ -l '${{ inputs.pub-cache-key }}' \ -d '${{ inputs.pub-cache-path }}' \ + -g '${{ inputs.git-source }}' \ ${{ inputs.channel }} - name: Cache Flutter diff --git a/setup.sh b/setup.sh index e94659b..b9add45 100755 --- a/setup.sh +++ b/setup.sh @@ -78,8 +78,9 @@ TEST_MODE=false ARCH="" VERSION="" VERSION_FILE="" +GIT_SOURCE="" -while getopts 'tc:k:d:l:pa:n:f:' flag; do +while getopts 'tc:k:d:l:pa:n:f:g:' flag; do case "$flag" in c) CACHE_PATH="$OPTARG" ;; k) CACHE_KEY="$OPTARG" ;; @@ -96,6 +97,7 @@ while getopts 'tc:k:d:l:pa:n:f:' flag; do exit 1 fi ;; + g) GIT_SOURCE="$OPTARG" ;; ?) exit 2 ;; esac done @@ -121,6 +123,7 @@ CHANNEL="${ARR_CHANNEL[0]:-}" [ -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:" [ -z "$PUB_CACHE_PATH" ] && PUB_CACHE_PATH="default" +[ -z "$GIT_SOURCE" ] && GIT_SOURCE="https://github.com/flutter/flutter.git" # `PUB_CACHE` is what Dart and Flutter looks for in the environment, while # `PUB_CACHE_PATH` is passed in from the action. @@ -213,7 +216,7 @@ fi if [ ! -x "$CACHE_PATH/bin/flutter" ]; then if [ "$CHANNEL" = "master" ] || [ "$CHANNEL" = "main" ]; then - git clone -b "$CHANNEL" https://github.com/flutter/flutter.git "$CACHE_PATH" + git clone -b "$CHANNEL" "$GIT_SOURCE" "$CACHE_PATH" if [ "$VERSION" != "any" ]; then git config --global --add safe.directory "$CACHE_PATH" (cd "$CACHE_PATH" && git checkout "$VERSION")