This commit is contained in:
@@ -30,20 +30,45 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Doxygen, Graphviz, and doxybook2
|
||||
- name: Install Doxygen, Graphviz, jq, and doxybook2
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y doxygen graphviz rsync curl ca-certificates unzip
|
||||
sudo apt-get install -y doxygen graphviz rsync curl ca-certificates unzip jq
|
||||
|
||||
ARCH="$(uname -m)"
|
||||
case "${ARCH}" in
|
||||
x86_64|amd64) DOXYBOOK2_ASSET="doxybook2-linux-amd64.zip" ;;
|
||||
aarch64|arm64) DOXYBOOK2_ASSET="doxybook2-linux-arm64.zip" ;;
|
||||
x86_64|amd64) ARCH_TAG="amd64" ;;
|
||||
aarch64|arm64) ARCH_TAG="arm64" ;;
|
||||
*) echo "Unsupported architecture: ${ARCH}" >&2; exit 1 ;;
|
||||
esac
|
||||
curl -fsSL -o /tmp/doxybook2.zip "https://github.com/matusnovak/doxybook2/releases/latest/download/${DOXYBOOK2_ASSET}"
|
||||
sudo unzip -j /tmp/doxybook2.zip -d /usr/local/bin doxybook2
|
||||
|
||||
# Discover latest linux asset for our arch from GitHub API
|
||||
API_URL="https://api.github.com/repos/matusnovak/doxybook2/releases/latest"
|
||||
ASSET_URL="$(curl -fsSL "${API_URL}" \
|
||||
| jq -r --arg arch "${ARCH_TAG}" '.assets[] | select(.name | test("linux-" + $arch + "\\\\.(zip|tar\\\\.gz)$")) | .browser_download_url' \
|
||||
| head -n1)"
|
||||
|
||||
# Fallback to known tar.gz naming if API parsing fails
|
||||
if [ -z "${ASSET_URL}" ] || [ "${ASSET_URL}" = "null" ]; then
|
||||
ASSET_URL="https://github.com/matusnovak/doxybook2/releases/latest/download/doxybook2-linux-${ARCH_TAG}.tar.gz"
|
||||
fi
|
||||
|
||||
TMP="/tmp/doxybook2-asset"
|
||||
rm -f "${TMP}.zip" "${TMP}.tar.gz" || true
|
||||
|
||||
if echo "${ASSET_URL}" | grep -qi '\.zip$'; then
|
||||
curl -fsSL -o "${TMP}.zip" "${ASSET_URL}"
|
||||
sudo unzip -j -o "${TMP}.zip" -d /usr/local/bin doxybook2
|
||||
elif echo "${ASSET_URL}" | grep -qi '\.tar\.gz$'; then
|
||||
curl -fsSL -o "${TMP}.tar.gz" "${ASSET_URL}"
|
||||
sudo tar -xzf "${TMP}.tar.gz" -C /usr/local/bin doxybook2
|
||||
else
|
||||
echo "Unsupported asset type URL: ${ASSET_URL}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo chmod +x /usr/local/bin/doxybook2
|
||||
doxybook2 --version
|
||||
|
||||
|
||||
Reference in New Issue
Block a user