|
|
@@ -124,14 +124,38 @@ runs:
|
|
|
|
else
|
|
|
|
else
|
|
|
|
VERSION="${{ inputs.version }}"
|
|
|
|
VERSION="${{ inputs.version }}"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Detect OS and architecture for platform-specific binary download
|
|
|
|
|
|
|
|
OS_RAW=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
|
|
|
|
|
|
case "$OS_RAW" in
|
|
|
|
|
|
|
|
linux) OS="linux" ;;
|
|
|
|
|
|
|
|
darwin) OS="darwin" ;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
echo "Error: unsupported OS: $(uname -s)" >&2
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RAW_ARCH=$(uname -m)
|
|
|
|
|
|
|
|
case "$RAW_ARCH" in
|
|
|
|
|
|
|
|
x86_64) ARCH="amd64" ;;
|
|
|
|
|
|
|
|
aarch64 | arm64) ARCH="arm64" ;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
echo "Error: unsupported architecture: $RAW_ARCH" >&2
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
|
|
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
|
|
|
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
|
|
|
|
|
|
|
echo "os=${OS}" >> "$GITHUB_OUTPUT"
|
|
|
|
|
|
|
|
echo "arch=${ARCH}" >> "$GITHUB_OUTPUT"
|
|
|
|
|
|
|
|
|
|
|
|
- name: Cache review-bot binary
|
|
|
|
- name: Cache review-bot binary
|
|
|
|
id: cache
|
|
|
|
id: cache
|
|
|
|
uses: actions/cache@v4
|
|
|
|
uses: actions/cache@v4
|
|
|
|
with:
|
|
|
|
with:
|
|
|
|
path: ${{ runner.temp }}/review-bot
|
|
|
|
path: ${{ runner.temp }}/review-bot
|
|
|
|
key: review-bot-linux-amd64-${{ steps.version.outputs.version }}
|
|
|
|
key: review-bot-${{ steps.version.outputs.os }}-${{ steps.version.outputs.arch }}-${{ steps.version.outputs.version }}
|
|
|
|
|
|
|
|
|
|
|
|
- name: Install review-bot
|
|
|
|
- name: Install review-bot
|
|
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
|
@@ -140,7 +164,7 @@ runs:
|
|
|
|
BASE_URL="${{ inputs.vcs-url || github.server_url }}"
|
|
|
|
BASE_URL="${{ inputs.vcs-url || github.server_url }}"
|
|
|
|
REPO="${{ inputs.repo || 'rodin/review-bot' }}"
|
|
|
|
REPO="${{ inputs.repo || 'rodin/review-bot' }}"
|
|
|
|
VERSION="${{ steps.version.outputs.version }}"
|
|
|
|
VERSION="${{ steps.version.outputs.version }}"
|
|
|
|
BINARY="review-bot-linux-amd64"
|
|
|
|
BINARY="review-bot-${{ steps.version.outputs.os }}-${{ steps.version.outputs.arch }}"
|
|
|
|
|
|
|
|
|
|
|
|
curl -sSfL "${BASE_URL}/${REPO}/releases/download/${VERSION}/${BINARY}" \
|
|
|
|
curl -sSfL "${BASE_URL}/${REPO}/releases/download/${VERSION}/${BINARY}" \
|
|
|
|
-o "${{ runner.temp }}/review-bot"
|
|
|
|
-o "${{ runner.temp }}/review-bot"
|
|
|
@@ -149,8 +173,13 @@ runs:
|
|
|
|
|
|
|
|
|
|
|
|
# Verify SHA-256 checksum
|
|
|
|
# Verify SHA-256 checksum
|
|
|
|
cd "${{ runner.temp }}"
|
|
|
|
cd "${{ runner.temp }}"
|
|
|
|
EXPECTED=$(grep "${BINARY}" checksums.txt | awk '{print $1}')
|
|
|
|
EXPECTED=$(grep -E "^[[:xdigit:]]+[[:space:]]+\*?${BINARY}$" checksums.txt | awk '{print $1}')
|
|
|
|
ACTUAL=$(sha256sum review-bot | awk '{print $1}')
|
|
|
|
# sha256sum (GNU) is not available on macOS; use shasum -a 256 on darwin.
|
|
|
|
|
|
|
|
if [ "${{ steps.version.outputs.os }}" = "darwin" ]; then
|
|
|
|
|
|
|
|
ACTUAL=$(shasum -a 256 review-bot | awk '{print $1}')
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
ACTUAL=$(sha256sum review-bot | awk '{print $1}')
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ -z "$EXPECTED" ]; then
|
|
|
|
if [ -z "$EXPECTED" ]; then
|
|
|
|
echo "Error: no checksum found for ${BINARY}" >&2
|
|
|
|
echo "Error: no checksum found for ${BINARY}" >&2
|
|
|
@@ -164,7 +193,7 @@ runs:
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
chmod +x "${{ runner.temp }}/review-bot"
|
|
|
|
chmod +x "${{ runner.temp }}/review-bot"
|
|
|
|
echo "Installed review-bot ${VERSION} (checksum verified)"
|
|
|
|
echo "Installed review-bot-${{ steps.version.outputs.os }}-${{ steps.version.outputs.arch }} ${VERSION} (checksum verified)"
|
|
|
|
|
|
|
|
|
|
|
|
- name: Run review
|
|
|
|
- name: Run review
|
|
|
|
shell: bash
|
|
|
|
shell: bash
|
|
|
|