web-cfw-loader/.github/workflows/update-payloads.yml

84 lines
3.6 KiB
YAML
Raw Normal View History

name: Update payloads
on:
workflow_dispatch:
schedule:
- cron: "0 3 * * 5" # 3:00 am on fridays
jobs:
Update-Payloads:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install jq
run: sudo apt install -y jq
- name: Determine actual and latest versions of all payloads
run: |
# To-do: Maybe improve this process?
# Actual versions
echo "AMS_VERSION=$(sed -n 5p payloads/payloads.json | cut -d '"' -f4)" >> $GITHUB_ENV
echo "HKT_VERSION=$(sed -n 10p payloads/payloads.json | cut -d '"' -f4)" >> $GITHUB_ENV
echo "TEX_VERSION=$(sed -n 15p payloads/payloads.json | cut -d '"' -f4)" >> $GITHUB_ENV
# Latest versions
echo "AMS_LATEST=$(curl -s https://api.github.com/repos/Atmosphere-NX/Atmosphere/releases/latest | grep tag_name | cut -d '"' -f4)" >> $GITHUB_ENV
echo "HKT_LATEST=$(curl -s https://api.github.com/repos/CTCaer/hekate/releases/latest | grep tag_name | cut -d '"' -f4)" >> $GITHUB_ENV
echo "TEX_LATEST=$(curl -s https://api.github.com/repos/suchmememanyskill/TegraExplorer/releases/latest | grep tag_name | cut -d '"' -f4)" >> $GITHUB_ENV
- name: Update required payloads
run: |
mkdir payloads/temp && cd payloads/temp
UPDATE=false
if [[ "$AMS_VERSION" -ne "AMS_LATEST" ]]
then
UPDATE=true
rm ../ams-*.bin
wget $(curl -s https://api.github.com/repos/Atmosphere-NX/Atmosphere/releases/latest | grep browser_download_url | grep fusee.bin | cut -d '"' -f4)
mv fusee.bin ../ams-$AMS_LATEST.bin
jq --arg version "$AMS_LATEST" '.payloads[0].version |= $version' ../payloads.json | jq --arg path "payloads/ams-$AMS_LATEST.bin" '.payloads[0].path |= $path' > ../payloads_temp.json
mv ../payloads_temp.json ../payloads.json
fi
if [[ "$HKT_VERSION" -ne "HKT_LATEST" ]]
then
UPDATE=true
rm ../hekate-*.bin
wget $(curl -s https://api.github.com/repos/CTCaer/hekate/releases/latest | grep browser_download_url | grep "hekate_ctcaer_.*\.zip" | cut -d '"' -f4)
unzip hekate_ctcaer_*.zip
mv hekate_ctcaer_*.bin ../hekate-$HKT_LATEST.bin
jq --arg version "$HKT_LATEST" '.payloads[1].version |= $version' ../payloads.json | jq --arg path "payloads/hekate-$HKT_LATEST.bin" '.payloads[1].path |= $path' > ../payloads_temp.json
mv ../payloads_temp.json ../payloads.json
fi
if [[ "$TEX_VERSION" -ne "$TEX_LATEST" ]]
then
UPDATE=true
rm ../tegraexplorer-*.bin
wget $(curl -s https://api.github.com/repos/suchmememanyskill/TegraExplorer/releases/latest | grep browser_download_url | grep TegraExplorer.bin | cut -d '"' -f4)
mv TegraExplorer.bin ../tegraexplorer-$TEX_LATEST.bin
jq --arg version "$TEX_LATEST" '.payloads[2].version |= $version' ../payloads.json | jq --arg path "payloads/hekate-$TEX_LATEST.bin" '.payloads[2].path |= $path' > ../payloads_temp.json
mv ../payloads_temp.json ../payloads.json
fi
echo "UPDATE=$UPDATE" >> $GITHUB_ENV
cd ../.. && rm -r payloads/temp
- name: Commit changes if necessary
run: |
if [[ "$UPDATE" -eq true ]]
then
git config --global user.name 'GitHub Actions'
git config --global user.email 'github-actions@users.noreply.github.com'
git add --all
git commit -am ":robot: Payloads updated automatically"
git push
fi