mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-17 15:32:01 +00:00
226 lines
No EOL
9.3 KiB
YAML
226 lines
No EOL
9.3 KiB
YAML
name: Check new version
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: '0 0 * * 1'
|
|
|
|
jobs:
|
|
check:
|
|
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
|
|
version_string = re.sub(r'[^.0-9]+', r'', ver)
|
|
parts = re.split(r'\.', version_string)
|
|
major = int(parts[0])
|
|
minor = int(parts[1]) if len(parts) > 1 else 0
|
|
patch = int(parts[2]) if len(parts) > 2 else 0
|
|
return int(f"{major}{minor}{patch}")
|
|
|
|
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)
|
|
set_env('MPV_OLD_VERSION', mpvOldVersion)
|
|
mpvNewVersion = '${{ env.MPV_LATEST_VERSION }}'
|
|
if parse_version(mpvNewVersion) > parse_version(mpvOldVersion) and not mpvOldVersion.startswith(mpvNewVersion):
|
|
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)
|
|
set_env('FFMPEG_OLD_VERSION', ffmpegOldVersion)
|
|
ffmpegNewVersion = '${{ env.FFMPEG_LATEST_VERSION }}'
|
|
if parse_version(ffmpegNewVersion) > parse_version(ffmpegOldVersion) and not ffmpegOldVersion.startswith(ffmpegNewVersion):
|
|
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 }}
|
|
https://github.com/mpv-player/mpv/compare/${{ env.MPV_OLD_VERSION }}...${{ env.MPV_LATEST_VERSION }}
|
|
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
|
|
https://github.com/FFmpeg/FFmpeg/compare/${{ env.FFMPEG_OLD_VERSION }}...${{ env.FFMPEG_LATEST_VERSION }}
|
|
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 }}
|
|
https://github.com/mpv-player/mpv/compare/${{ env.MPV_OLD_VERSION }}...${{ env.MPV_LATEST_VERSION }}
|
|
|
|
https://github.com/FFmpeg/FFmpeg/blob/${{ env.FFMPEG_LATEST_VERSION }}/Changelog
|
|
https://github.com/FFmpeg/FFmpeg/compare/${{ env.FFMPEG_OLD_VERSION }}...${{ env.FFMPEG_LATEST_VERSION }}
|
|
commit-message: "chore: mpv ${{ env.MPV_LATEST_VERSION }} && FFmpeg ${{ env.FFMPEG_LATEST_VERSION }}"
|
|
|
|
check-deps:
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
strategy:
|
|
matrix:
|
|
library:
|
|
- name: libass
|
|
repository: "mpvkit/libass-build"
|
|
- name: vulkan
|
|
repository: "mpvkit/moltenvk-build"
|
|
- name: libplacebo
|
|
repository: "mpvkit/libplacebo-build"
|
|
- name: libshaderc
|
|
repository: "mpvkit/libshaderc-build"
|
|
- name: libdovi
|
|
repository: "mpvkit/libdovi-build"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Checkout latest code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: ${{ matrix.library.repository }}
|
|
path: 'latest_code'
|
|
fetch-depth: 0
|
|
|
|
- name: Get latest verion
|
|
id: version
|
|
run: |
|
|
cd ./latest_code
|
|
latest_tag=$(git tag --sort=-v:refname | grep -v "-" | 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):
|
|
if '-' in ver or ver == '':
|
|
return 0
|
|
version_string = re.sub(r'[^.0-9]+', r'', ver)
|
|
parts = re.split(r'\.', version_string)
|
|
major = int(parts[0])
|
|
minor = int(parts[1]) if len(parts) > 1 else 0
|
|
patch = int(parts[2]) if len(parts) > 2 else 0
|
|
return int(f"{major}{minor}{patch}")
|
|
|
|
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 .${{ matrix.library.name }}[^"]+?)"(.+?)"', content).group(2)
|
|
print("old version:", oldVersion)
|
|
newVersion = '${{ env.LATEST_VERSION }}'
|
|
print("new version:", newVersion)
|
|
if parse_version(newVersion) > parse_version(oldVersion) and not oldVersion.startswith(newVersion):
|
|
content = re.sub(r'(case .${{ matrix.library.name }}[^"]+?)"(.+?)"', r'\1"${{ env.LATEST_VERSION }}"', content, count=1)
|
|
set_env('FOUND_NEW_VERSION', '1')
|
|
# If libass is being updated, also update its dependencies
|
|
if '${{ matrix.library.name }}' == 'libass':
|
|
deps = ['libunibreak', 'libfreetype', 'libfribidi', 'libharfbuzz']
|
|
for dep in deps:
|
|
content = re.sub(r'(case .' + dep + r'[^"]+?)"(.+?)"', r'\1"${{ env.LATEST_VERSION }}"', content, count=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
|
|
branch: "create-pull-request/${{ matrix.library.name }}"
|
|
delete-branch: true
|
|
title: "${{ matrix.library.name }} bump version to ${{ env.LATEST_VERSION }}"
|
|
body: |
|
|
https://github.com/${{ matrix.library.repository }}/releases/tag/${{ env.LATEST_VERSION }}
|
|
commit-message: "chore: ${{ matrix.library.name }} bump version to ${{ env.LATEST_VERSION }}"
|
|
|