Skip to content

Commit

Permalink
fix: "curl: (43) A libcurl function was given a bad argument"
Browse files Browse the repository at this point in the history
  • Loading branch information
sebthom committed Jul 19, 2024
1 parent 2a27e05 commit 499165e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 21 deletions.
7 changes: 4 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,21 @@ jobs:
matrix:
os:
- ubuntu-latest
- macos-latest
- macos-12 # x64
- macos-latest # ARM
- windows-latest

steps:
- name: Git Checkout
uses: actions/checkout@v4 #https://github.com/actions/checkout

- name: Install jq '1.5''
- name: Install jq '1.5'
id: install-jq-1_5
uses: ./
with:
version: 1.5

- name: Test jq '1.5''
- name: Test jq '1.5'
run: |
set -euxo pipefail
jq --version
Expand Down
42 changes: 24 additions & 18 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ outputs:
runs:
using: 'composite'
steps:

##################################################
# Setup Cache
##################################################
Expand Down Expand Up @@ -58,23 +58,23 @@ runs:
function get_installed_version() {
"${1:-$app_home/$app_target_bin}" --version | cut -d- -f2
}
INPUTS_VERSION_LOWERCASE="$(tr '[:upper:]' '[:lower:]' <<<"$INPUTS_VERSION")"
if [[ $INPUTS_VERSION_LOWERCASE == 'any' ]] && hash jq &>/dev/null; then
# set outputs
echo "need_cache_update=false" | tee -a "$GITHUB_OUTPUT"
case "$RUNNER_OS" in
Windows) echo "path=$(cygpath -w "$(which jq)")" | tee -a "$GITHUB_OUTPUT" ;;
*) echo "path=$(which jq)" | tee -a "$GITHUB_OUTPUT" ;;
esac
echo "version=$(get_installed_version "$(which jq)")" | tee -a "$GITHUB_OUTPUT"
else
APP_REPO_ROOT=https://github.com/stedolan/jq
case "$RUNNER_OS" in
macOS)
app_home="$RUNNER_TEMP/jq"
Expand All @@ -99,26 +99,32 @@ runs:
app_source_bin='jq-win64.exe'
;;
esac
echo "app_home: $app_home"
echo "app_source_bin: $app_source_bin"
echo "app_target_bin: $app_target_bin"
function get_latest_version() {
curl -sSfL --max-time 5 -o /dev/null -w '%{url_effective}' $APP_REPO_ROOT/releases/latest | grep -o '[^/]*$' | cut -d- -f2
# temporary workaround for https://github.com/curl/curl/issues/13845
if [[ $RUNNER_OS == "Windows" ]]; then
(set -x; powershell -Command "(Invoke-WebRequest -Uri '$APP_REPO_ROOT/releases/latest' -Method Head -MaximumRedirection 0 -ErrorAction Ignore -UseBasicParsing).Headers.Location" | grep -o '[^/]*$' | cut -c2-)
return
fi
(set -x; curl -sSfL --max-time 5 -o /dev/null -w '%{url_effective}' $APP_REPO_ROOT/releases/latest | grep -o '[^/]*$' | cut -c2-)
}
app_downloaded=false
function download_app() {
app_download_url="$APP_REPO_ROOT/releases/download/jq-$1/$app_source_bin"
echo "Downloading [$app_download_url]..."
mkdir -p "$app_home"
curl -fsSL --max-time 10 --retry 3 --retry-delay 5 -o "$app_home/$app_target_bin" "$app_download_url"
(set -x; curl -fsSL --max-time 10 --retry 3 --retry-delay 5 -o "$app_home/$app_target_bin" "$app_download_url")
chmod 777 "$app_home/$app_target_bin"
app_downloaded=true
}
case "$INPUTS_VERSION_LOWERCASE" in
any)
if [[ ! -f "$app_home/$app_target_bin" ]]; then
Expand Down Expand Up @@ -146,9 +152,9 @@ runs:
fi
;;
esac
echo "$RUNNER_TEMP/jq" >> "$GITHUB_PATH"
# prepare cache update
if [[ $INPUTS_USE_CACHE == 'true' && ${ACT:-} != 'true' ]]; then # $ACT is set when running via nektos/act
if [[ $app_downloaded == 'true' ]]; then
Expand All @@ -163,15 +169,15 @@ runs:
else
need_cache_update=false
fi
# set outputs
echo "need_cache_update=$need_cache_update" | tee -a "$GITHUB_OUTPUT"
case "$RUNNER_OS" in
Windows) echo "path=$(cygpath -w "$app_home/$app_target_bin")" | tee -a "$GITHUB_OUTPUT" ;;
*) echo "path=$app_home/$app_target_bin" | tee -a "$GITHUB_OUTPUT" ;;
esac
echo "version=$(get_installed_version)" | tee -a "$GITHUB_OUTPUT"
fi
echo '::endgroup::'
Expand Down

0 comments on commit 499165e

Please sign in to comment.