Skip to content

Update Crowdin leaderboard data #4

Update Crowdin leaderboard data

Update Crowdin leaderboard data #4

name: Update Crowdin leaderboard data
on:
schedule:
- cron: "20 16 1 * *"
workflow_dispatch:
jobs:
get_data_and_create_pr:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: yarn install
- name: Install ts-node
run: yarn global add ts-node
- name: Set up git
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Action"
- name: Generate timestamp and readable date
id: date
run: |
echo "TIMESTAMP=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
echo "READABLE_DATE=$(date +'%B %-d')" >> $GITHUB_ENV
- name: Fetch latest dev and create new branch
run: |
git fetch origin dev
git checkout -b "automated-update-${{ env.TIMESTAMP }}" origin/dev
- name: Run script
run: npx ts-node -O '{"module":"commonjs"}' ./src/scripts/crowdin/leaderboard/getLeaderboardReports.ts
env:
CROWDIN_API_KEY: ${{ secrets.CROWDIN_API_KEY }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
- name: Commit and push
run: |
git add -A
git commit -m "Update Crowdin leaderboard data"
git push origin "automated-update-${{ env.TIMESTAMP }}"
- name: Create PR body
run: |
echo "This PR was automatically created to update Crowdin leaderboard data." > pr_body.txt
echo "This workflows runs on the first of each month at 16:20 (UTC)." >> pr_body.txt
echo "" >> pr_body.txt
echo "Thank you to everyone contributing to translate ethereum.org ❤️" >> pr_body.txt
- name: Create Pull Request
run: |
gh auth login --with-token ${{ secrets.GITHUB_TOKEN }}
gh pr create --base dev --head "automated-update-${{ env.TIMESTAMP }}" --title "Update translation leaderboard data from Crowdin - ${{ env.READABLE_DATE }}" --body-file pr_body.txt