i18n - Download Curriculum #63
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: i18n - Download Curriculum | |
on: | |
workflow_dispatch: | |
schedule: | |
# runs Monday and Wednesday at 12:15 PM UTC | |
- cron: '15 12 * * 1,3' | |
env: | |
GITHUB_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_PAT }} | |
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_SERVICE_TOKEN }} | |
CROWDIN_API_URL: 'https://freecodecamp.crowdin.com/api/v2/' | |
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID_CURRICULUM }} | |
jobs: | |
i18n-download-curriculum-translations: | |
name: Curriculum | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [20.x] | |
fail-fast: true | |
steps: | |
- name: Checkout Source Files | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
token: ${{ secrets.CROWDIN_CAMPERBOT_PAT }} | |
- name: Generate Crowdin Config | |
uses: freecodecamp/crowdin-action@main | |
env: | |
PLUGIN: 'generate-config' | |
PROJECT_NAME: 'curriculum' | |
##### Download Chinese ##### | |
- name: Crowdin Download Chinese Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: zh-CN | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
# Convert Simplified Chinese to Traditional # | |
- name: Convert Chinese | |
uses: freecodecamp/crowdin-action@main | |
env: | |
PLUGIN: 'convert-chinese' | |
FILE_PATHS: '["/curriculum/challenges/chinese/", "/curriculum/dictionaries/chinese"]' | |
##### Download Espanol ##### | |
- name: Crowdin Download Espanol Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: es-EM | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
##### Download Italian ##### | |
- name: Crowdin Download Italian Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: it | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
##### Download Brazilian Portuguese ##### | |
- name: Crowdin Download Portuguese (Brazilian) Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: pt-BR | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
##### Download Ukrainian ##### | |
- name: Crowdin Download Ukrainian Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: uk | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
##### Download Japanese ##### | |
- name: Crowdin Download Japanese Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: ja | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
##### Download German ##### | |
- name: Crowdin Download German Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: de | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
##### Download Arabic ##### | |
- name: Crowdin Download Arabic Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: ar | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
##### Download Swahili ##### | |
- name: Crowdin Download Swahili Translations | |
uses: crowdin/github-action@master | |
# options: https://github.com/crowdin/github-action/blob/master/action.yml | |
with: | |
# uploads | |
upload_sources: false | |
upload_translations: false | |
auto_approve_imported: false | |
import_eq_suggestions: false | |
# downloads | |
download_translations: true | |
download_language: sw | |
skip_untranslated_strings: false | |
skip_untranslated_files: false | |
export_only_approved: true | |
push_translations: false | |
# pull-request | |
create_pull_request: false | |
# global options | |
config: './crowdin-config.yml' | |
base_url: ${{ secrets.CROWDIN_BASE_URL_FCC }} | |
# Uncomment below to debug | |
# dryrun_action: true | |
# Validate the Download # | |
# All languages should go ABOVE this. # | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: pnpm | |
- name: Set Environment variables | |
run: | | |
cp sample.env .env | |
echo 'SHOW_NEW_CURRICULUM=true' >> .env | |
cat .env | |
- name: Build Source Files | |
run: | | |
echo pnpm version $(pnpm -v) | |
pnpm install | |
pnpm run create:shared | |
pnpm run build:curriculum | |
pnpm run build:server | |
# We do not need to run tests because they are run after the PR is created. | |
# Create Commit | |
- name: Commit Changes | |
uses: freecodecamp/crowdin-action@main | |
env: | |
PLUGIN: 'commit-changes' | |
GH_USERNAME: 'camperbot' | |
GH_EMAIL: ${{ secrets.ACTIONS_CAMPERBOT_EMAIL }} | |
GH_BRANCH: 'i18n-sync-curriculum' | |
GH_MESSAGE: 'chore(i18n,learn): processed translations' | |
# Create PR | |
- name: Create PR | |
uses: freecodecamp/crowdin-action@main | |
env: | |
PLUGIN: 'pull-request' | |
GH_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_PAT }} | |
BRANCH: 'i18n-sync-curriculum' | |
REPOSITORY: 'freecodecamp/freecodecamp' | |
BASE: 'main' | |
TITLE: 'chore(i18n,learn): processed translations' | |
BODY: 'This PR was opened auto-magically by Crowdin.' | |
LABELS: 'crowdin-sync' | |
TEAM_REVIEWERS: 'i18n' |