name: Check on: [push, pull_request, workflow_dispatch] jobs: validate: runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Validate JSON and YAML id: json-yaml-validate uses: GrantBirki/json-yaml-validate@v3 with: use_gitignore: false - name: Validate Resource id: resource-validate run: python ./scripts/resource_validator.py ./local-files/resource - name: Send Notification to Discord uses: sarisia/actions-status-discord@v1 if: failure() && github.event_name != 'pull_request' with: webhook: ${{ secrets.DISCORD_WEBHOOK }} status: ${{ job.status }} title: "Validate" format: runs-on: ubuntu-22.04 needs: validate permissions: contents: write pull-requests: write steps: - name: Checkout uses: actions/checkout@v4 - name: Install Node.js uses: actions/setup-node@v4 with: node-version: '18' - name: Install Dependencies run: npm install --global prettier sort-json - name: Run Prettier run: prettier --write "local-files/genericTrans/index/*.json" "local-files/genericTrans/lyrics/*.json" "local-files/generic.json" "local-files/localization.json" # Do not ever sort lyrics alphabetically... - name: Sort JSON files run: | find local-files/genericTrans/index -type f -exec sort-json {} + sort-json local-files/generic.json sort-json local-files/localization.json - name: Authorize Git run: | git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" git config --global user.name "$GITHUB_ACTOR" - name: Commit Changes run: | git commit -am "chore(format): Format and Sort JSON files" if [[ "${{ github.event_name }}" == "pull_request" ]]; then git push origin HEAD:${{ github.head_ref }} else git push origin HEAD fi env: GITHUB_TOKEN: ${{ secrets.PAT }} continue-on-error: true update: runs-on: ubuntu-22.04 needs: [validate, format] if: github.event_name != 'pull_request' steps: - name: Checkout uses: actions/checkout@v4 - name: Authorize Git run: | git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" git config --global user.name "$GITHUB_ACTOR" - name: Write Branch and Hash Info with Date run: | branch=$(git rev-parse --abbrev-ref HEAD) hash=$(git rev-parse --short=7 HEAD) date=$(date +'%Y%m%d') echo "$branch.$hash.$date" > version.txt echo "VERSION=$branch.$hash.$date" >> $GITHUB_ENV echo "RELEASE_DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - name: Commit Changes run: | git pull git commit -am "chore(update): Update Version Info" git push origin HEAD env: GITHUB_TOKEN: ${{ secrets.PAT }} - name: Create ZIP Archive run: | zip -r Gakumas-Translation-Data-EN-${{ env.VERSION }}.zip local-files version.txt - name: Create GitHub Release uses: softprops/action-gh-release@v1 with: tag_name: ${{ env.VERSION }} name: Translation Update ${{ env.RELEASE_DATE }} body: | ## Version: `${{ env.VERSION }}` This is an automated release of the latest translation data. ### How to use 1. Disable `Fast Initialization` in the `Basic Settings` tab. 2. Disable `Replace Font` in the `Basic Settings` tab. 3. Enable `MasterDB Localization` in the `Debug Settings/Advanced` tab. 4. Enable `Check Resource Update From API` in the `Resource Settings` tab 5. Enter `https://api.github.com/repos/NatsumeLS/Gakumas-Translation-Data-EN/releases/latest` 6. Download the Translation Data files: | Gakumas-Translation-Data-EN-${{ env.VERSION }}.zip draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.PAT }} - name: Send Notification to Discord uses: sarisia/actions-status-discord@v1 if: always() with: webhook: ${{ secrets.DISCORD_WEBHOOK }} status: ${{ job.status }} title: "Update"