mirror of
https://github.com/dcarbone/install-jq-action.git
synced 2026-02-11 18:46:56 +08:00
87 lines
3.1 KiB
YAML
87 lines
3.1 KiB
YAML
name: Install jq
|
|
description: |
|
|
Installs a version of jq into the job tool cache using simple shell scripts
|
|
|
|
branding:
|
|
icon: copy
|
|
color: orange
|
|
|
|
inputs:
|
|
version:
|
|
required: false
|
|
description: "Version of jq to install."
|
|
default: "1.7.1"
|
|
force:
|
|
required: false
|
|
description: "If 'true', does not check for existing jq installation before continuing."
|
|
default: 'false'
|
|
|
|
outputs:
|
|
found:
|
|
description: "If 'true', jq was already found on this runner"
|
|
value: "${{ steps.jq-check-unix.outputs.found == 'true' || steps.jq-check-windows.outputs.found == 'true' }}"
|
|
installed:
|
|
description: "If 'true', jq was installed by this action"
|
|
value: "${{ inputs.force == 'true' || steps.jq-check-unix.outputs.found == 'false' || steps.jq-check-windows.outputs.found == 'false' }}"
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: 'Check for jq - Unix-ish'
|
|
id: jq-check-unix
|
|
if: (runner.os == 'Linux' || runner.os == 'macOS')
|
|
shell: sh +e {0}
|
|
# language=sh
|
|
run: |
|
|
_jq_bin="$(which jq)"
|
|
if [ -f "${_jq_bin}" ]; then
|
|
echo "found=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "found=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: 'Install jq - Unix-ish sub-1.7'
|
|
if: (runner.os == 'Linux' || runner.os == 'macOS') && (startsWith(inputs.version, '1.5') || startsWith(inputs.version, '1.6')) && (steps.jq-check-unix.outputs.found == 'false' || inputs.force == 'true')
|
|
shell: sh
|
|
env:
|
|
JQ_VERSION: '${{ inputs.version }}'
|
|
# language=sh
|
|
run: ${GITHUB_ACTION_PATH}/scripts/unixish.sh
|
|
|
|
- name: 'Install jq - Unix-ish 1.7+'
|
|
if: (runner.os == 'Linux' || runner.os == 'macOS') && (startsWith(inputs.version, '1.7') || startsWith(inputs.version, '1.8')) && (steps.jq-check-unix.outputs.found == 'false' || inputs.force == 'true')
|
|
shell: sh
|
|
env:
|
|
JQ_VERSION: '${{ inputs.version }}'
|
|
# language=sh
|
|
run: ${GITHUB_ACTION_PATH}/scripts/unixish-17.sh
|
|
|
|
- name: 'Check for jq - Windows-ish'
|
|
id: jq-check-windows
|
|
if: runner.os == 'Windows'
|
|
shell: powershell
|
|
# language=powershell
|
|
run: |
|
|
if (Get-Command "jq.exe" -ErrorAction SilentlyContinue)
|
|
{
|
|
Add-Content $Env:GITHUB_OUTPUT "found=true"
|
|
}
|
|
else
|
|
{
|
|
Add-Content $Env:GITHUB_OUTPUT "found=false"
|
|
}
|
|
|
|
- name: 'Install jq - Windows-ish sub-1.7'
|
|
if: runner.os == 'Windows' && (startsWith(inputs.version, '1.5') || startsWith(inputs.version, '1.6')) && (steps.jq-check-windows.outputs.found == 'false' || inputs.force == 'true')
|
|
shell: powershell
|
|
env:
|
|
JQ_VERSION: '${{ inputs.version }}'
|
|
run: ${{ github.action_path }}\scripts\windowsish.ps1
|
|
|
|
- name: 'Install jq - Windows-ish 1.7+'
|
|
if: runner.os == 'Windows' && (startsWith(inputs.version, '1.7') || startsWith(inputs.version, '1.8')) && (steps.jq-check-windows.outputs.found == 'false' || inputs.force == 'true')
|
|
shell: powershell
|
|
env:
|
|
JQ_VERSION: '${{ inputs.version }}'
|
|
run: ${{ github.action_path }}\scripts\windowsish-17.ps1
|