Check new version #23
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: Check new version | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * 1' | |
jobs: | |
build: | |
permissions: | |
contents: write | |
pull-requests: write | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout ffmpeg | |
uses: actions/checkout@v4 | |
with: | |
repository: "FFmpeg/FFmpeg" | |
path: 'ffmpeg' | |
fetch-depth: 0 | |
- name: Checkout mpv | |
uses: actions/checkout@v4 | |
with: | |
repository: "mpv-player/mpv" | |
path: 'mpv' | |
fetch-depth: 0 | |
- name: Get latest verion | |
id: version | |
run: | | |
cd ./ffmpeg | |
latest_tag=$(git tag | grep n | grep -v "-" | sort -r | head -n 1) | |
echo "ffmpeg latest tag: $latest_tag" | |
echo "FFMPEG_LATEST_VERSION=$latest_tag" >> $GITHUB_ENV | |
cd .. | |
cd ./mpv | |
latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`) | |
echo "mpv latest tag: $latest_tag" | |
echo "MPV_LATEST_VERSION=$latest_tag" >> $GITHUB_ENV | |
cd .. | |
rm -rf ./ffmpeg | |
rm -rf ./mpv | |
- name: update to new version | |
uses: jannekem/run-python-script-action@v1 | |
with: | |
script: | | |
import re | |
def parse_version(ver): | |
if '-' in ver or ver == '': | |
return 0 | |
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() | |
mpvOldVersion = re.search(r'(case .libmpv[^"]+?)"(.+?)"', content).group(2) | |
print("mpv old version:", mpvOldVersion) | |
mpvNewVersion = '${{ env.MPV_LATEST_VERSION }}' | |
if parse_version(mpvNewVersion) > parse_version(mpvOldVersion): | |
content = re.sub(r'(case .libmpv[^"]+?)"(.+?)"', r'\1"${{ env.MPV_LATEST_VERSION }}"', content, count=1) | |
set_env('FOUND_NEW_MPV_VERSION', '1') | |
ffmpegOldVersion = re.search(r'(case .FFmpeg[^"]+?)"(.+?)"', content).group(2) | |
print("ffmpeg old version:", ffmpegOldVersion) | |
ffmpegNewVersion = '${{ env.FFMPEG_LATEST_VERSION }}' | |
if parse_version(ffmpegNewVersion) > parse_version(ffmpegOldVersion): | |
content = re.sub(r'(case .FFmpeg[^"]+?)"(.+?)"', r'\1"${{ env.FFMPEG_LATEST_VERSION }}"', content, count=1) | |
set_env('FOUND_NEW_FFMPEG_VERSION', '1') | |
with open(file_path, 'w', encoding='utf-8') as file: | |
file.write(content) | |
file_path = './README.md' | |
with open(file_path, 'r', encoding='utf-8') as file: | |
content = file.read() | |
if parse_version(mpvNewVersion) > parse_version(mpvOldVersion): | |
content = re.sub(r'mpv-.*-blue', r'mpv-${{ env.MPV_LATEST_VERSION }}-blue', content, count=1) | |
if parse_version(ffmpegNewVersion) > parse_version(ffmpegOldVersion): | |
content = re.sub(r'ffmpeg-.*-blue', r'ffmpeg-${{ env.FFMPEG_LATEST_VERSION }}-blue', content, count=1) | |
with open(file_path, 'w', encoding='utf-8') as file: | |
file.write(content) | |
- name: Create Pull Request | |
if: env.FOUND_NEW_MPV_VERSION && !env.FOUND_NEW_FFMPEG_VERSION | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
add-paths: | | |
./Sources/BuildScripts/XCFrameworkBuild/main.swift | |
./README.md | |
title: "mpv bump version to ${{ env.MPV_LATEST_VERSION }}" | |
body: "https://github.com/mpv-player/mpv/releases/tag/${{ env.MPV_LATEST_VERSION }}\n" | |
commit-message: "chore: mpv bump version to ${{ env.MPV_LATEST_VERSION }}" | |
- name: Create Pull Request | |
if: env.FOUND_NEW_FFMPEG_VERSION && !env.FOUND_NEW_MPV_VERSION | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
add-paths: | | |
./Sources/BuildScripts/XCFrameworkBuild/main.swift | |
./README.md | |
title: "FFmpeg bump version to ${{ env.FFMPEG_LATEST_VERSION }}" | |
body: "https://github.com/FFmpeg/FFmpeg/blob/${{ env.FFMPEG_LATEST_VERSION }}/Changelog\n" | |
commit-message: "chore: FFmpeg bump version to ${{ env.FFMPEG_LATEST_VERSION }}" | |
- name: Create Pull Request | |
if: env.FOUND_NEW_FFMPEG_VERSION && env.FOUND_NEW_MPV_VERSION | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
add-paths: | | |
./Sources/BuildScripts/XCFrameworkBuild/main.swift | |
./README.md | |
title: "mpv ${{ env.MPV_LATEST_VERSION }} && FFmpeg ${{ env.FFMPEG_LATEST_VERSION }}" | |
body: "https://github.com/mpv-player/mpv/releases/tag/${{ env.MPV_LATEST_VERSION }}\nhttps://github.com/FFmpeg/FFmpeg/blob/${{ env.FFMPEG_LATEST_VERSION }}/Changelog\n" | |
commit-message: "chore: mpv ${{ env.MPV_LATEST_VERSION }} && FFmpeg ${{ env.FFMPEG_LATEST_VERSION }}" | |