Skip to content

update-version.yml

update-version.yml #10

name: update-version.yml
on:
workflow_dispatch:
repository_dispatch:
types: [update-version]
permissions:
contents: write
jobs:
update-version:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install jq
run: |
sudo apt-get update
sudo apt-get install -y jq
- name: Fetch latest release and alpha version of Class Widgets 2
id: fetch_versions
run: |
REPO_OWNER="RinLit-233-shiroko"
REPO_NAME="Class-Widgets-2"
API_URL="https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/releases"
# 获取正式版(release)
VERSION_RELEASE=$(curl -s "$API_URL" | jq -r '[.[] | select(.prerelease == false)][0].tag_name')
URL_RELEASE=$(curl -s "$API_URL" | jq -r '[.[] | select(.prerelease == false)][0].assets[] | select(.name | test("Windows")) | .browser_download_url' | head -n 1)
# 获取测试版(alpha)
VERSION_ALPHA=$(curl -s "$API_URL" | jq -r '[.[] | select(.prerelease == true)][0].tag_name')
URL_ALPHA=$(curl -s "$API_URL" | jq -r '[.[] | select(.prerelease == true)][0].assets[] | select(.name | test("Windows")) | .browser_download_url' | head -n 1)
# 如果 release 没有就用 alpha 的版本和链接
if [ -z "$VERSION_RELEASE" ] || [ "$VERSION_RELEASE" = "null" ]; then
VERSION_RELEASE="$VERSION_ALPHA"
URL_RELEASE="$URL_ALPHA"
fi
echo "VERSION_RELEASE=$VERSION_RELEASE" >> $GITHUB_ENV
echo "URL_RELEASE=$URL_RELEASE" >> $GITHUB_ENV
echo "VERSION_ALPHA=$VERSION_ALPHA" >> $GITHUB_ENV
echo "URL_ALPHA=$URL_ALPHA" >> $GITHUB_ENV
- name: Create version.json
run: |
mkdir -p public/2
echo "{" > public/2/releases.json
echo ' "release": {' >> public/2/releases.json
echo ' "version": "'$VERSION_RELEASE'",' >> public/2/releases.json
echo ' "url": {' >> public/2/releases.json
echo ' "windows": "'$URL_RELEASE'"' >> public/2/releases.json
echo ' }' >> public/2/releases.json
echo ' },' >> public/2/releases.json
echo ' "alpha": {' >> public/2/releases.json
echo ' "version": "'$VERSION_ALPHA'",' >> public/2/releases.json
echo ' "url": {' >> public/2/releases.json
echo ' "windows": "'$URL_ALPHA'"' >> public/2/releases.json
echo ' }' >> public/2/releases.json
echo ' }' >> public/2/releases.json
echo "}" >> public/2/releases.json
cat public/2/releases.json
- name: Commit and push changes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add public/2/releases.json
git commit -m "Update releases.json → Release: $VERSION_RELEASE | Alpha: $VERSION_ALPHA" || echo "No changes to commit"
git push
- name: Commit and push changes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add version.json
git commit -m "Update version.json → Release: $VERSION_RELEASE | Alpha: $VERSION_ALPHA" || echo "No changes to commit"
git push