Skip to content

Commit

Permalink
feat: automated crowdin sync
Browse files Browse the repository at this point in the history
  • Loading branch information
bmuenzenmeyer committed Nov 21, 2024
1 parent 13b4f71 commit f3c0c44
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 44 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# This Workflow is used to comment on PRs that have changes that touch Translated Files
# and then comments on their PRs mentioning that they should not do so
# It also formats incoming content because it is often not adherent to our rules post-translation.

name: Crowdin Checks
name: Incoming Translation Checks

on:
pull_request_target:
Expand Down
39 changes: 0 additions & 39 deletions .github/workflows/translations-pr2.yml

This file was deleted.

51 changes: 51 additions & 0 deletions .github/workflows/translations-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# This action automates the synchronization of our crowdin translations, so that a human does not need to kick it off from the crowdin UI
# See translations-pr-line-and-format.yml for quality control we conduct on ingress of new translations.
name: Crowdin Sync

on:
schedule:
- cron: '0 5 * * 5' # At 05:00 on Fridays. This guarantees that we have the 72 hour weekend time to review translations.

# Cancel any runs on the same branch
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
# These permissions required by `crowdin/github-action`
contents: write
pull-requests: write

jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest

steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit

- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

# see all the options at https://github.com/crowdin/github-action
- name: crowdin action
uses: crowdin/github-action@2d540f18b0a416b1fbf2ee5be35841bd380fc1da #v2.3.0
with:
upload_sources: true
upload_translations: false #do not upload existing translations - this is a one-way operation
# the rest of this controls how the PR comes in with new translations
download_translations: true
localization_branch_name: chore/crowdin
create_pull_request: true
pull_request_title: '[automated]: crowdin sync'
pull_request_body: 'New Crowdin translations from the [Node.js Crowdin project](https://crowdin.com/project/nodejs-web)'
pull_request_labels: github_actions:pull-request
commit_message: 'chore: synced translations from crowdin [skip ci]'
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
# A numeric ID, found at https://crowdin.com/project/nodejs-web/tools/api
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
# Created from https://crowdin.com/settings#api-key logged in using nodejs-crowdin-bot
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
6 changes: 2 additions & 4 deletions crowdin.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
commit_message: 'chore: synced translations from crowdin [skip ci]'
project_id_env: 'CROWDIN_PROJECT_ID'
api_token_env: 'CROWDIN_PERSONAL_TOKEN'
append_commit_message: false
pull_request_title: '[automated]: crowdin sync'
pull_request_labels:
- 'github_actions:pull-request'
files:
- source: /apps/site/pages/en/**/*.md
translation: /apps/site/pages/%two_letters_code%/**/%original_file_name%
Expand Down

0 comments on commit f3c0c44

Please sign in to comment.