Files
install-jq-action/action.yaml
Michael Busby 945d84920f Support running action inside containers (#10)
* Add container tests

* Update github actions path to fix container compat
2023-11-07 14:47:46 -06:00

87 lines
2.9 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"
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: bash +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 non-1.7'
if: (runner.os == 'Linux' || runner.os == 'macOS') && (inputs.version == '1.5' || inputs.version == '1.6') && (steps.jq-check-unix.outputs.found == 'false' || inputs.force == 'true')
shell: bash
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') && inputs.version == '1.7' && (steps.jq-check-unix.outputs.found == 'false' || inputs.force == 'true')
shell: bash
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 non-1.7'
if: runner.os == 'Windows' && (inputs.version == '1.5' || 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' && inputs.version == '1.7' && (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