From e97ac1dd9b7c8766495433bb04da4ef499a1b0d0 Mon Sep 17 00:00:00 2001 From: Joseph Flinn <58369717+joseph-flinn@users.noreply.github.com> Date: Fri, 5 Nov 2021 10:59:15 -0700 Subject: [PATCH] Updating the crowdin sync process (#1630) --- .github/workflows/build.yml | 42 +++++++++++++++++++ .../{crowdin-sync.yml => crowdin-pull.yml} | 4 +- crowdin.yml | 4 ++ 3 files changed, 48 insertions(+), 2 deletions(-) rename .github/workflows/{crowdin-sync.yml => crowdin-pull.yml} (97%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ec633fdb2..d2aec49ee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -486,6 +486,44 @@ jobs: shell: bash + crowdin-push: + name: Crowdin Push + if: github.ref == 'refs/heads/master' + needs: + - android + - f-droid + - ios + runs-on: ubuntu-20.04 + env: + _CROWDIN_PROJECT_ID: "269690" + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + + - name: Login to Azure + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403 + with: + keyvault: "bitwarden-prod-kv" + secrets: "crowdin-api-token" + + - name: Upload Sources + uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea # v1.3.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} + with: + config: crowdin.yml + crowdin_branch_name: master + upload_sources: true + upload_translations: false + + check-failures: name: Check for failures if: always() @@ -495,6 +533,7 @@ jobs: - android - f-droid - ios + - crowdin-push steps: - name: Check if any job failed if: ${{ (github.ref == 'refs/heads/master') || (github.ref == 'refs/heads/rc') }} @@ -503,6 +542,7 @@ jobs: ANDROID_STATUS: ${{ needs.android.result }} F_DROID_STATUS: ${{ needs.f-droid.result }} IOS_STATUS: ${{ needs.ios.result }} + CROWDIN_PUSH_STATUS: ${{ needs.crowdin-push.result }} run: | if [ "$CLOC_STATUS" = "failure" ]; then exit 1 @@ -512,6 +552,8 @@ jobs: exit 1 elif [ "$IOS_STATUS" = "failure" ]; then exit 1 + elif [ "$CROWDIN_PUSH_STATUS" = "failure" ]; then + exit 1 fi - name: Login to Azure - Prod Subscription diff --git a/.github/workflows/crowdin-sync.yml b/.github/workflows/crowdin-pull.yml similarity index 97% rename from .github/workflows/crowdin-sync.yml rename to .github/workflows/crowdin-pull.yml index 6bd669e29..782af2d0d 100644 --- a/.github/workflows/crowdin-sync.yml +++ b/.github/workflows/crowdin-pull.yml @@ -4,8 +4,8 @@ name: Crowdin Sync on: workflow_dispatch: inputs: {} -# schedule: -# - cron: '0 0 * * *' + schedule: + - cron: '0 0 * * 5' jobs: crowdin-sync: diff --git a/crowdin.yml b/crowdin.yml index c14f1ec17..3581d72bc 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,7 +1,9 @@ project_id_env: _CROWDIN_PROJECT_ID api_token_env: CROWDIN_API_TOKEN +perserve_hierarchy: true files: - source: /src/App/Resources/AppResources.resx + dest: /src/App/Resources/%original_file_name% translation: /src/App/Resources/AppResources.%two_letters_code%.resx update_option: update_as_unapproved languages_mapping: @@ -13,6 +15,7 @@ files: en-GB: en-GB en-IN: en-IN - source: /store/apple/en/copy.resx + dest: /store/apple/en/%original_file_name% translation: /store/apple/%two_letters_code%/copy.resx update_option: update_as_unapproved languages_mapping: @@ -24,6 +27,7 @@ files: en-GB: en-GB en-IN: en-IN - source: /store/google/en/copy.resx + dest: /store/google/en/%original_file_name% translation: /store/google/%two_letters_code%/copy.resx update_option: update_as_unapproved languages_mapping: