Skip to content

Check new version

Check new version #5

Workflow file for this run

name: Check new version
on:
workflow_dispatch:
schedule:
- cron: '0 0 1 * *' # every month first day
jobs:
build:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout latest code
uses: actions/checkout@v4
with:
repository: "quietvoid/dovi_tool"
path: 'latest_code'
fetch-depth: 0
- name: Get latest verion
id: version
run: |
cd ./latest_code
latest_tag=$(git tag --sort=-v:refname | grep "libdovi" | head -n 1)
echo "latest tag: $latest_tag"
echo "LATEST_VERSION=$latest_tag" >> $GITHUB_ENV
rm -rf ../latest_code
- name: update to new version
uses: jannekem/run-python-script-action@v1
with:
script: |
import re
def parse_version(ver):
return int(re.sub(r'[^0-9]+', r'', ver))
file_path = './Sources/BuildScripts/XCFrameworkBuild/main.swift'
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
oldVersion = re.search(r'(case .libdovi[^"]+?)"(.+?)"', content).group(2)
print("old version:", oldVersion)
newVersion = '${{ env.LATEST_VERSION }}'
print("new version:", newVersion)
if parse_version(newVersion) > parse_version(oldVersion):
content = re.sub(r'(case .libdovi[^"]+?)"(.+?)"', r'\1"${{ env.LATEST_VERSION }}"', content, count=1)
set_env('FOUND_NEW_VERSION', '1')
with open(file_path, 'w', encoding='utf-8') as file:
file.write(content)
- name: Create Pull Request
if: env.FOUND_NEW_VERSION
uses: peter-evans/create-pull-request@v6
with:
add-paths: |
./Sources/BuildScripts/XCFrameworkBuild/main.swift
title: "bump version to ${{ env.LATEST_VERSION }}"
body: "https://github.com/quietvoid/dovi_tool/releases/tag/${{ env.LATEST_VERSION }}\n"
commit-message: "chore: bump version to ${{ env.LATEST_VERSION }}"