diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79dcc8f98a..40c10a274e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -167,6 +167,41 @@ jobs: if-no-files-found: error + crowdin-push: + name: Crowdin Push + runs-on: ubuntu-20.04 + needs: + - build + env: + _CROWDIN_PROJECT_ID: "268134" + 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() @@ -176,6 +211,7 @@ jobs: - setup - locales-test - build + - crowdin-push steps: - name: Check if any job failed if: ${{ (github.ref == 'refs/heads/master') || (github.ref == 'refs/heads/rc') }} @@ -184,6 +220,7 @@ jobs: SETUP_STATUS: ${{ needs.setup.result }} LOCALES_TEST_STATUS: ${{ needs.locales-test.result }} BUILD_STATUS: ${{ needs.build.result }} + CROWDIN_PUSH_STATUS: ${{ needs.crowdin-push.result }} run: | if [ "$CLOC_STATUS" = "failure" ]; then exit 1 @@ -193,7 +230,10 @@ jobs: exit 1 elif [ "$BUILD_STATUS" = "failure" ]; then exit 1 + elif [ "$CROWDIN_PUSH_STATUS" = "failure" ]; then + exit 1 fi + - name: Login to Azure - Prod Subscription uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a if: failure() diff --git a/.github/workflows/crowdin-sync.yml b/.github/workflows/crowdin-pull.yml similarity index 100% rename from .github/workflows/crowdin-sync.yml rename to .github/workflows/crowdin-pull.yml diff --git a/crowdin.yml b/crowdin.yml index 4aa8bb7bad..2d33523535 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,7 +1,9 @@ project_id_env: _CROWDIN_PROJECT_ID api_token_env: CROWDIN_API_TOKEN +preserve_hierarchy: true files: - source: /src/_locales/en/messages.json + dest: /src/_locales/en/%original_file_name% translation: /src/_locales/%two_letters_code%/%original_file_name% update_option: update_as_unapproved languages_mapping: @@ -13,6 +15,7 @@ files: en-GB: en_GB en-IN: en_IN - source: /store/locales/en/copy.resx + dest: /store/locales/en/%original_file_name% translation: /store/locales/%two_letters_code%/%original_file_name% update_option: update_as_unapproved languages_mapping: