Skip to content

Update github workflow #1

Update github workflow

Update github workflow #1

name: [Chunithm] Fetch from wiki & sdvx.in

Check failure on line 1 in .github/workflows/chunithm-update-wiki-chartguide.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/chunithm-update-wiki-chartguide.yml

Invalid workflow file

You have an error in your yaml syntax
on:
schedule:
- cron: '0 2 * * THU'
workflow_dispatch:
jobs:
fetch_from_wiki:
name: Fetch from wiki & sdvx.in
runs-on: ubuntu-latest
steps:
- name: Set timezone
uses: szenius/[email protected]
with:
timezoneLinux: "Asia/Tokyo"
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Configure Git user
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
- name: Run wiki script and capture output
id: run_script
run: |
{
echo "OUTPUT_LOG<<EOF"
python scripts/update-wiki-data.py --chunithm --nocolors --escape
python scripts/update-chartguide-data.py --chunithm --nocolors --escape
echo "EOF"
} >> "$GITHUB_OUTPUT"
- name: Extract datestamp from script output
id: extract_date
run: echo "datestamp=$(cat data/music-ex.json | jq '.[-1].date | tonumber')" >> "$GITHUB_OUTPUT"
- name: Check script output
id: check_script
run: |
if [[ "${{ steps.run_script.outputs.OUTPUT_LOG }}" == *"Updated song extra data from wiki"* ]]; then
echo "Updated song data from wiki. Creating a pull request."
echo "COMMIT=true" >> "$GITHUB_OUTPUT"
else
echo "Nothing updated. Skipping pull request creation."
echo "COMMIT=false" >> "$GITHUB_OUTPUT"
fi
- name: Get existing branch if already exists
id: get_existing_branch
if: steps.check_script.outputs.COMMIT == 'true'
run: |
existing_branch=$(git branch -r --format='%(refname:short)' --sort='-committerdate' | grep origin/chunithm-update-\* | head -n 1 | sed 's/^origin\///')
echo "${existing_branch}"
if [ ! -z "${existing_branch}" ]; then
echo "Existing branch found. Checking out branch"
echo "EXISTING_BRANCH=${existing_branch}" >> "$GITHUB_OUTPUT"
else
echo "No existing branch found"
fi
- name: Create new branch and commit changes
id: checkout_branch_commit
if: steps.check_script.outputs.COMMIT == 'true'
env:
UNIQUE_STRING: ${{ github.run_id }}-${{ github.run_attempt }}
run: |
echo ${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }}
git add .
if output=$(git status --porcelain) && [ -z "$output" ]; then
echo "HAS_DIFFS=false" >> "$GITHUB_OUTPUT"
echo "No changes. Skipping PR request"
else
if [ ! -z ${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }} ]; then
echo "Branch already exists, checkout existing branch"
git fetch origin
git checkout \
-b ${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }} \
--track $(git branch -r --format='%(refname:short)' --sort='-committerdate' | grep origin/chunithm-update-\* | head -n 1)
else
echo "Creating new branch"
git checkout -b chunithm-update-${{ steps.extract_date.outputs.DATESTAMP }}
fi
git commit -m "[Automated] Apply updated data from wiki ${{ steps.extract_date.outputs.DATESTAMP }}"
git push origin chunithm-update-${{ steps.extract_date.outputs.DATESTAMP }}
echo "Commited changes."
echo "HAS_DIFFS=true" >> "$GITHUB_OUTPUT"
fi
- name: Checkout existing PR or create new
if: steps.checkout_branch_commit.outputs.HAS_DIFFS == 'true'
run: |
if [ ! -z ${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }} ]; then
if [[ $(gh pr list --state merged --head ${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }} | grep ${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }}) ]]; then
echo "Previous PR for this branch is already merged. Create new PR"
gh pr create \
-B ${{ github.ref_name }} \
-H "${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }}" \
--title "[Automation] Chunithm: Update website with updated song data (${{ steps.extract_date.outputs.DATESTAMP }})" \
--body "${{ steps.run_script.outputs.OUTPUT_LOG }}"
else
echo "Add comment to existing open PR"
gh pr comment ${{ steps.get_existing_branch.outputs.EXISTING_BRANCH }} \
--body "${{ steps.run_script.outputs.OUTPUT_LOG }}"
fi
else
echo "No previous PR found. Create new PR"
gh pr create \
-B ${{ github.ref_name }} \
-H "chunithm-update-${{ steps.extract_date.outputs.DATESTAMP }}" \
--title "[Automation] Chunithm: Update website with updated song data (${{ steps.extract_date.outputs.DATESTAMP }})" \
--body "${{ steps.run_script.outputs.OUTPUT_LOG }}"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}