Skip to content

Update Sourcery Version #44

Update Sourcery Version

Update Sourcery Version #44

Workflow file for this run

name: Update Sourcery Version
on:
schedule:
- cron: '0 0 * * 1' # Every Monday at 00:00 UTC
workflow_dispatch:
jobs:
update-sourcery:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Check for latest release
run: |
latest_release=$(curl --silent "https://api.github.com/repos/krzysztofzablocki/Sourcery/releases/latest" | jq -r '.tag_name')
echo "Latest release: $latest_release"
echo "LATEST_RELEASE=$latest_release" >> $GITHUB_ENV
binary_url="https://github.com/krzysztofzablocki/Sourcery/releases/download/${latest_release}/sourcery-${latest_release}.artifactbundle.zip"
checksum=$(curl -L $binary_url | shasum -a 256 | awk '{ print $1 }')
echo "Binary URL: $binary_url"
echo "Checksum: $checksum"
echo "BINARY_URL=$binary_url" >> $GITHUB_ENV
echo "BINARY_CHECKSUM=$checksum" >> $GITHUB_ENV
- name: Update Package.swift
if: env.LATEST_RELEASE != 'null'
run: |
sed -i 's|url: "https://github.com/krzysztofzablocki/Sourcery/releases/download/.*"|url: "'"${BINARY_URL}"'"|' Package.swift
sed -i 's|checksum: ".*"|checksum: "'"${BINARY_CHECKSUM}"'"|' Package.swift
if git diff --quiet; then
echo "No changes detected"
echo "CHANGES_DETECTED=false" >> $GITHUB_ENV
else
echo "Changes detected"
echo "CHANGES_DETECTED=true" >> $GITHUB_ENV
fi
- name: Commit and Push changes
if: env.CHANGES_DETECTED == 'true'
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add Package.swift
git commit -m "Update Sourcery binary version to $LATEST_RELEASE"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}