Get Latest Versions #3668
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: Get Latest Versions | |
on: | |
push: | |
branches: | |
- master | |
schedule: | |
- cron: "17 * * * *" | |
jobs: | |
getLatestVersions: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Store versions to variables | |
id: versions | |
run: | | |
varNames=("master" "release_10_9_z" "release_10_8_z" "release") | |
idx=0 | |
if [ -f versions ]; then | |
while IFS= read -r line; do | |
echo "${varNames[$idx]}=$line" | |
echo "${varNames[$idx]}=$line" >> $GITHUB_OUTPUT | |
idx=$((idx+1)) | |
done < versions | |
else | |
echo "master=" >> $GITHUB_OUTPUT | |
echo "release_10_9_z=" >> $GITHUB_OUTPUT | |
echo "release_10_8_z=" >> $GITHUB_OUTPUT | |
echo "release=" >> $GITHUB_OUTPUT | |
fi | |
- uses: octokit/request-action@v2.x | |
id: get_master_commit_tizen | |
with: | |
route: GET /repos/{owner}/{repo}/commits/{branch} | |
owner: jellyfin | |
repo: jellyfin-tizen | |
branch: master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: octokit/request-action@v2.x | |
id: get_10_9_z_commit_web | |
with: | |
route: GET /repos/{owner}/{repo}/commits/{branch} | |
owner: jellyfin | |
repo: jellyfin-web | |
branch: release-10.9.z | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: octokit/request-action@v2.x | |
id: get_10_8_z_commit_web | |
with: | |
route: GET /repos/{owner}/{repo}/commits/{branch} | |
owner: jellyfin | |
repo: jellyfin-web | |
branch: release-10.8.z | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Output master commit hash | |
run: | | |
echo "${{ fromJson(steps.get_master_commit_tizen.outputs.data).sha }}" > versions | |
- name: Output release-10.9.z commit hash | |
run: | | |
echo "${{ fromJson(steps.get_10_9_z_commit_web.outputs.data).sha }}" >> versions | |
- name: Output release-10.8.z commit hash | |
run: | | |
echo "${{ fromJson(steps.get_10_8_z_commit_web.outputs.data).sha }}" >> versions | |
- name: "Get Latest Web Release" | |
id: last_web_release | |
uses: robinraju/release-downloader@cb096d8fa1fcb0e897f30b1c571f07e2c8e12479 | |
with: | |
repository: 'jellyfin/jellyfin-web' | |
latest: true | |
tarBall: true | |
zipBall: false | |
- name: Output web release tag | |
run: | | |
echo "${{ steps.last_web_release.outputs.tag_name }}" >> versions | |
- name: Commit Version Data | |
run: | | |
git config --global user.name 'jeppevinkel' | |
git config --global user.email 'jeppevinkel@users.noreply.github.com' | |
git add versions | |
git commit -m "Automated Version Update" || echo "No changes to commit" | |
git push | |
- name: Check for differences | |
id: diffcheck | |
run: | | |
causeOfUpdateLabel="### Cause of the update\n" | |
shouldUpdate=false | |
echo "master: ${{ steps.versions.outputs.master }} = ${{ steps.versions.outputs.master != fromJson(steps.get_master_commit_tizen.outputs.data).sha}}" | |
if ${{ steps.versions.outputs.master != fromJson(steps.get_master_commit_tizen.outputs.data).sha}}; then | |
causeOfUpdateLabel+="New commit to https://github.com/jellyfin/jellyfin-tizen/commit/${{ fromJson(steps.get_master_commit_tizen.outputs.data).sha }}\n" | |
shouldUpdate=true | |
fi | |
echo "release-10.9.z: ${{ steps.versions.outputs.release_10_9_z }} = ${{ steps.versions.outputs.release_10_9_z != fromJson(steps.get_10_9_z_commit_web.outputs.data).sha}}" | |
if ${{ steps.versions.outputs.release_10_9_z != fromJson(steps.get_10_9_z_commit_web.outputs.data).sha}}; then | |
causeOfUpdateLabel+="New commit to Jellyfin-10.9.z https://github.com/jellyfin/jellyfin-web/commit/${{ fromJson(steps.get_10_9_z_commit_web.outputs.data).sha }}\n" | |
shouldUpdate=true | |
fi | |
echo "release-10.8.z: ${{ steps.versions.outputs.release_10_8_z }} = ${{ steps.versions.outputs.release_10_8_z != fromJson(steps.get_10_8_z_commit_web.outputs.data).sha}}" | |
if ${{ steps.versions.outputs.release_10_8_z != fromJson(steps.get_10_8_z_commit_web.outputs.data).sha}}; then | |
causeOfUpdateLabel+="New commit to Jellyfin-10.8.z https://github.com/jellyfin/jellyfin-web/commit/${{ fromJson(steps.get_10_8_z_commit_web.outputs.data).sha }}\n" | |
shouldUpdate=true | |
fi | |
echo "release: ${{ steps.versions.outputs.release }} = ${{ steps.versions.outputs.release != steps.last_web_release.outputs.tag_name }}" | |
if ${{ steps.versions.outputs.release != steps.last_web_release.outputs.tag_name }}; then | |
causeOfUpdateLabel+="New jellyfin-web release\n" | |
shouldUpdate=true | |
fi | |
echo "causeOfUpdateLabel=$causeOfUpdateLabel" >> $GITHUB_OUTPUT | |
if $shouldUpdate; then | |
echo "shouldUpdate=true" >> $GITHUB_OUTPUT | |
else | |
echo "shouldUpdate=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Trigger build workflow | |
if: ${{ steps.diffcheck.outputs.shouldUpdate == 'true' }} | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: build-new-release.yml | |
inputs: '{"webReleaseTagName": "${{ steps.last_web_release.outputs.tag_name }}", "rawMarkdown": "${{ steps.diffcheck.outputs.causeOfUpdateLabel }}"}' |