Skip to content

ci: use rust version of gib #30

ci: use rust version of gib

ci: use rust version of gib #30

name: Update Version and Changelog
on:
push:
branches:
- main
jobs:
update_version_changelog:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build
run: cargo build --verbose
- name: Run Tests
run: cargo test --verbose
- name: Calculate Version
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/coenraadhuman/gib:1.0.2
shell: bash
options: --user 1001 -v ${{ github.workspace }}:/app
run : |
echo "====================="
echo "Files mounted on /app"
echo "====================="
ls -la /app
echo "======="
echo "Run gib"
echo "======="
calculated_version=$(gib version -p /app)
echo "Calculated version: $calculated_version"
echo "============================="
echo "Replace version in Cargo.toml"
echo "============================="
semantic_version_regex='(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?'
if [[ "$calculated_version" =~ $semantic_version_regex ]]; then
sed -i '0, /version/s/version.*/version = "'$(echo $calculated_version)'"/' /app/Cargo.toml
else
echo "Invalid version, can't update version in Cargo.toml"
exit 1
fi
- name: Generate Changelog
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/orhun/git-cliff/git-cliff
options: -v ${{ github.workspace }}:/app
run : |
git-cliff --output CHANGELOG.md
- name: Commit Changes
run: |
git config --global user.name "$(git log -1 --pretty=%an)"
git config --global user.email "$(git log -1 --pretty=%ae)"
git add ./Cargo.toml
git add ./CHANGELOG.md
git commit --amend --no-edit
git push -f