Update libarchive #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update libarchive | |
on: | |
schedule: | |
- cron: "0 0 * * 0" | |
workflow_dispatch: | |
jobs: | |
check-update: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check libarchive version | |
id: check-version | |
run: | | |
CURRENT_VERSION=$(grep -oP 'LIBARCHIVE_VERSION\s+\K\S+' cmake/targets/BuildLibArchive.cmake) | |
if [ -z "$CURRENT_VERSION" ]; then | |
echo "Error: Could not find current version in BuildLibArchive.cmake" | |
exit 1 | |
fi | |
echo "current=$CURRENT_VERSION" >> $GITHUB_OUTPUT | |
LATEST_RELEASE=$(curl -sL https://api.github.com/repos/libarchive/libarchive/releases/latest) | |
LATEST_TAG=$(echo "$LATEST_RELEASE" | jq -r '.tag_name') | |
LATEST_SHA=$(curl -sL "https://api.github.com/repos/libarchive/libarchive/git/ref/tags/$LATEST_TAG" | jq -r '.object.sha') | |
if [ -z "$LATEST_SHA" ]; then | |
echo "Error: Could not fetch latest version from GitHub API" | |
exit 1 | |
fi | |
if [ ${#LATEST_SHA} -ne 40 ]; then | |
echo "Error: Invalid SHA length" | |
exit 1 | |
fi | |
echo "latest=$LATEST_SHA" >> $GITHUB_OUTPUT | |
echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT | |
- name: Update version if needed | |
if: success() && steps.check-version.outputs.current != steps.check-version.outputs.latest | |
run: | | |
sed -i "s/LIBARCHIVE_VERSION\s\+[0-9a-f]\+/LIBARCHIVE_VERSION ${{ steps.check-version.outputs.latest }}/" cmake/targets/BuildLibArchive.cmake | |
- name: Create Pull Request | |
if: success() && steps.check-version.outputs.current != steps.check-version.outputs.latest | |
uses: peter-evans/create-pull-request@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
add-paths: | | |
cmake/targets/BuildLibArchive.cmake | |
commit-message: "deps: update libarchive to ${{ steps.check-version.outputs.latest }}" | |
title: "deps: update libarchive to ${{ steps.check-version.outputs.latest }}" | |
delete-branch: true | |
branch: deps/update-libarchive-${{ steps.check-version.outputs.latest }} | |
body: | | |
## What does this PR do? | |
Updates libarchive to version ${{ steps.check-version.outputs.tag }} | |
Auto-updated by [this workflow](https://github.com/oven-sh/bun/actions/workflows/update-libarchive.yml) |