Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: specify pub cache path #280

Merged
merged 1 commit into from
Mar 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ inputs:
description: 'Flutter SDK cache path'
required: false
default: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:'
pub-cache-path:
description: 'Flutter pub cache path'
required: false
default: 'default'
architecture:
description: 'The architecture of Flutter SDK executable (x64 or arm64)'
required: false
Expand All @@ -54,7 +58,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-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 }}' -a '${{ inputs.architecture }}' ${{ inputs.channel }}
shell: bash
- if: ${{ inputs.cache == 'true' }}
uses: actions/cache@v4
Expand Down
27 changes: 22 additions & 5 deletions setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ download_archive() {
if [[ "$archive_name" == *zip ]]; then
EXTRACT_PATH="$RUNNER_TEMP/_unzip_temp"
unzip -q -o "$archive_local" -d "$EXTRACT_PATH"
# Remove the folder again so that the move command can do a simple rename\
# Remove the folder again so that the move command can do a simple rename
# instead of moving the content into the target folder.
# This is a little bit of a hack since the "mv --no-target-directory"
# linux option is not available here
Expand All @@ -67,17 +67,19 @@ download_archive() {

CACHE_PATH=""
CACHE_KEY=""
PUB_CACHE_PATH=""
PUB_CACHE_KEY=""
PRINT_ONLY=""
TEST_MODE=false
ARCH=""
VERSION=""

while getopts 'tc:k:d:pa:n:' flag; do
while getopts 'tc:k:d:l:pa:n:' flag; do
case "$flag" in
c) CACHE_PATH="$OPTARG" ;;
k) CACHE_KEY="$OPTARG" ;;
d) PUB_CACHE_KEY="$OPTARG" ;;
d) PUB_CACHE_PATH="$OPTARG" ;;
l) PUB_CACHE_KEY="$OPTARG" ;;
p) PRINT_ONLY=true ;;
t) TEST_MODE=true ;;
a) ARCH="$(echo "$OPTARG" | awk '{print tolower($0)}')" ;;
Expand All @@ -97,8 +99,23 @@ CHANNEL="${ARR_CHANNEL[0]}"
[[ -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:"
# Here we specifically use `PUB_CACHE` (and not `PUB_CACHE_PATH`), because `PUB_CACHE` is what dart (and flutter) looks for in the environment
[[ -z $PUB_CACHE ]] && PUB_CACHE="$HOME/.pub-cache"
[[ -z $PUB_CACHE_PATH ]] && PUB_CACHE_PATH="default"

# `PUB_CACHE` is what Dart and Flutter looks for in the environment, while
# `PUB_CACHE_PATH` is passed in from the action.
#
# If `PUB_CACHE` is set already, then it should continue to be used. Otherwise, satisfy it
# if the action requests a custom path, or set to the Dart default values depending
# on the operating system.
if [ -z "$PUB_CACHE" ]; then
if [ "$PUB_CACHE_PATH" != "default" ]; then
PUB_CACHE="$PUB_CACHE_PATH"
elif [ "$OS_NAME" == "windows" ]; then
PUB_CACHE="$LOCALAPPDATA\\Pub\\Cache"
else
PUB_CACHE="$HOME/.pub-cache"
fi
fi

if [[ "$TEST_MODE" == true ]]; then
RELEASE_MANIFEST=$(cat "$(dirname -- "${BASH_SOURCE[0]}")/test/$MANIFEST_JSON_PATH")
Expand Down