44 lines
1.1 KiB
YAML
44 lines
1.1 KiB
YAML
name: Get submodule hash
|
|
description: Tries to acquire the hash of a submodule
|
|
inputs:
|
|
submodule:
|
|
description: Path to submodule (relative from repo root)
|
|
required: true
|
|
repo:
|
|
description: Path to the repo
|
|
required: false
|
|
outputs:
|
|
hash:
|
|
description: The hash of the submodule
|
|
value: ${{ steps.get-submodule-hash.outputs.hash }}
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- id: get-submodule-hash
|
|
run: |
|
|
if [[ ! -z "${{ inputs.repo }}" ]]
|
|
then
|
|
REPO_ARGS=(-C "${{ inputs.repo }}")
|
|
else
|
|
REPO_ARGS=()
|
|
fi
|
|
|
|
SUBMODULES="$(git "${REPO_ARGS[@]}" submodule)"
|
|
if [[ $? -ne 0 ]]
|
|
then
|
|
echo ERROR git submodule failed
|
|
echo "$SUBMODULES"
|
|
exit 1
|
|
fi
|
|
|
|
SUBMODULE_HASH="$(echo "$SUBMODULES" | awk '{ if ($2 == "${{ inputs.submodule }}") print $1 }')"
|
|
if [[ -z "${SUBMODULE_HASH}" ]]
|
|
then
|
|
echo ERROR: could not get hash for submodule ${{ inputs.submodule }}
|
|
git submodule
|
|
exit 1
|
|
fi
|
|
|
|
echo "::set-output name=hash::${SUBMODULE_HASH#"-"}"
|
|
shell: bash
|