Vita3K-bin/.github/workflows/fetch-release.yml

84 lines
2.7 KiB
YAML
Raw Normal View History

2025-01-10 00:37:11 +00:00
name: Fetch and Publish Latest Release
on:
schedule:
- cron: '0 18 * * *' # 3:00 AM GMT+9
workflow_dispatch:
inputs:
tag_name:
description: 'Tag name for the manual release'
required: true
2025-01-11 03:17:47 +00:00
default: "manual"
2025-01-10 00:40:13 +00:00
push:
branches:
2025-01-10 00:40:40 +00:00
- main
2025-01-10 00:37:11 +00:00
jobs:
fetch-and-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout this repository
uses: actions/checkout@v2
- name: Fetch latest release from Vita3K
id: fetch_release
run: |
latest_release=$(curl -s https://api.github.com/repos/Vita3K/Vita3K/releases/latest)
tag_name="$(echo $latest_release | jq -r .tag_name)"
# fetching assets
mkdir -p artifacts
for url in $(echo $latest_release | jq -r '.assets[] | .browser_download_url'); do
wget -P artifacts $url
done
2025-01-10 01:14:49 +00:00
ls -lah artifacts
release_name="$(echo $latest_release | jq -r .body | grep -oP 'Vita3K Build: \d+' | sed 's/Vita3K Build: /Vita3K - Build /')"
echo "release_name=$release_name"
commit_hash="$(echo $latest_release | jq -r .body | grep -oP 'Corresponding commit: \K[0-9a-f]{40}')"
echo "commit_hash=$commit_hash"
release_body+="Corresponding commit: [$commit_hash](https://github.com/Vita3K/Vita3K/commit/$commit_hash)</br>"
release_body+="$release_name"
echo "release_body=$release_body"
2025-01-11 03:17:47 +00:00
build_number="${release_name//Vita3K - Build /}"
echo "build_number=$build_number" >> $GITHUB_ENV
echo "tag_name=$tag_name" >> $GITHUB_ENV
echo "release_body=$release_body" >> $GITHUB_ENV
2025-01-10 00:48:15 +00:00
echo "release_name=$release_name" >> $GITHUB_ENV
2025-01-10 00:37:11 +00:00
- name: Create release in this repository
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
2025-01-11 03:17:47 +00:00
tag_name: ${{ env.build_number }}
2025-01-10 00:48:15 +00:00
release_name: ${{ env.release_name }}
body: ${{ env.release_body }}
2025-01-10 00:37:11 +00:00
draft: false
prerelease: false
- name: Upload assets to the new release
run: |
for file in artifacts/*; do
echo "Uploading $file..."
gh release upload ${{ env.tag_name }} "$file" --clobber
done
2025-01-11 03:05:39 +00:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check for ubuntu-latest.zip and delete release if not found
run: |
if ! ls artifacts | grep -q 'ubuntu-latest.zip'; then
echo "ubuntu-latest.zip not found. Deleting release..."
gh release delete ${{ env.tag_name }} --yes
exit 1
fi
2025-01-10 00:37:11 +00:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}