ci: automate version bumps in module README.md files (#139)

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
pull/140/head
Muhammad Atif Ali 1 year ago committed by GitHub
parent 7e897a51e6
commit b299f98161
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,41 @@
name: Update README on Tag
on:
workflow_dispatch:
push:
tags:
- 'v*'
jobs:
update-readme:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get the latest tag
id: get-latest-tag
run: echo "TAG=$(git describe --tags --abbrev=0 | sed 's/^v//')" >> $GITHUB_OUTPUT
- name: Run update script
run: ./update-version.sh
- name: Create Pull Request
id: create-pr
uses: peter-evans/create-pull-request@v5
with:
commit-message: 'chore: bump version to ${{ env.TAG }} in README.md files'
title: 'chore: bump version to ${{ env.TAG }} in README.md files'
body: 'This is an auto-generated PR to update README.md files of all modules with the new tag ${{ env.TAG }}'
branch: 'update-readme-branch'
env:
TAG: ${{ steps.get-latest-tag.outputs.TAG }}
- name: Auto-approve
uses: hmarr/auto-approve-action@v4
if: github.ref == 'refs/heads/update-readme-branch'

@ -6,9 +6,23 @@
set -euo pipefail
current_tag=$(git describe --tags --abbrev=0)
previous_tag=$(git describe --tags --abbrev=0 $current_tag^)
mapfile -t changed_files < <(git diff --name-only "$previous_tag" "$current_tag" | xargs dirname | sort -u | grep -v '^\.')
changed_dirs=()
for file in $changed_files; do
dir=$(dirname "$file")
changed_dirs+=("$dir")
done
changed_dirs=($(printf "%s\n" "${changed_dirs[@]}" | sort -u))
LATEST_TAG=$(git describe --abbrev=0 --tags | sed 's/^v//') || exit $?
find . -name README.md | while read -r file; do
for dir in "${changed_dirs[@]}"; do
if [[ -f "$dir/README.md" ]]; then
echo "Bumping version in $dir/README.md"
file="$dir/README.md"
tmpfile=$(mktemp /tmp/tempfile.XXXXXX)
awk -v tag="$LATEST_TAG" '{
if ($1 == "version" && $2 == "=") {
@ -18,4 +32,5 @@ find . -name README.md | while read -r file; do
print
}
}' "$file" > "$tmpfile" && mv "$tmpfile" "$file"
fi
done
Loading…
Cancel
Save