Fetch and Publish Latest Release #54
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: 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 | |
default: "manual" | |
push: | |
branches: | |
- main | |
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 | |
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" | |
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 | |
echo "release_name=$release_name" >> $GITHUB_ENV | |
- name: Create release in this repository | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ env.build_number }} | |
release_name: ${{ env.release_name }} | |
body: ${{ env.release_body }} | |
draft: false | |
prerelease: false | |
- name: Upload assets to the new release | |
run: | | |
for file in artifacts/*; do | |
echo "Uploading $file..." | |
gh release upload ${{ env.build_number }} "$file" --clobber | |
done | |
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.build_number }} --yes | |
exit 1 | |
fi | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |