From 55b27d4607c4b717b1535a285d29f96f4611f513 Mon Sep 17 00:00:00 2001 From: Joseph Flinn <58369717+joseph-flinn@users.noreply.github.com> Date: Fri, 13 Aug 2021 13:27:56 -0700 Subject: [PATCH] adding logic to gracefully handle scenarios with no crowdin changes (#1126) --- .github/workflows/crowdin-sync.yml | 50 ++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/.github/workflows/crowdin-sync.yml b/.github/workflows/crowdin-sync.yml index 2928711d5e..1f32264c98 100644 --- a/.github/workflows/crowdin-sync.yml +++ b/.github/workflows/crowdin-sync.yml @@ -79,6 +79,7 @@ jobs: $CROWDIN_BASE_URL/$CROWDIN_PROJECT_ID/translations/builds \ -d "{\"branchId\": $CROWDIN_MASTER_BRANCH_ID}" | jq -r '.data.id' ) + echo "[*] Crowin translations build id: $BRANCH_ID" echo "::set-output name=id::$BUILD_ID" - name: Wait for Crowdin build to finish @@ -113,6 +114,7 @@ jobs: curl -s -H "Authorization: Bearer $CROWDIN_API_TOKEN" \ $CROWDIN_BASE_URL/$CROWDIN_PROJECT_ID/translations/builds/$CROWDIN_BUILD_ID/download | jq -r '.data.url' ) + echo "[*] Crowin translations download url: $DOWNLOAD_URL" echo "::set-output name=value::$DOWNLOAD_URL" - name: Download Crowdin translations @@ -127,27 +129,49 @@ jobs: unzip -o $SAVE_FILE rm $SAVE_FILE - - name: Commit changes + - name: Check changes + id: files-changed env: BRANCH_NAME: ${{ steps.branch.outputs.branch-name }} BRANCH_EXISTS: ${{ steps.branch.outputs.branch-exists }} run: | - echo "[*] Adding new translations" - git add . - echo "=====Translations Changed=====" - git status - echo "==============================" - echo "[*] Committing" - git commit -m "Autosync Crowdin translations" + DIFF_BRANCH=master + if [[ "$BRANCH_EXISTS" == "true" ]]; then + DIFF_BRANCH=$BRANCH_NAME + fi - echo "[*] Pushing" - if [ "$BRANCH_EXISTS" == "false" ]; then - git push -u origin $BRANCH_NAME + DIFF_LEN=$(git diff origin/${DIFF_BRANCH} | wc -l | xargs) + echo "[*] git diff lines: ${DIFF_LEN}" + echo "::set-output name=num::$DIFF_LEN" + + - name: Commit changes + env: + BRANCH_NAME: ${{ steps.branch.outputs.branch-name }} + BRANCH_EXISTS: ${{ steps.branch.outputs.branch-exists }} + DIFF_BRANCH: master + DIFF_LEN: ${{ steps.files-changed.outputs.num }} + run: | + echo "=====Translations Changed=====" + git diff --name-only origin/${DIFF_BRANCH} + echo "==============================" + + if [ "$DIFF_LEN" != "0" ]; then + echo "[*] Adding new translations" + git add . + echo "[*] Committing" + git commit -m "Autosync Crowdin translations" + echo "[*] Pushing" + if [ "$BRANCH_EXISTS" == "false" ]; then + git push -u origin $BRANCH_NAME + else + git push + fi else - git push + echo "[*] No new docs" fi - name: Create/Update PR + if: ${{ steps.files-changed.outputs.num }} != 0 env: BRANCH_NAME: ${{ steps.branch.outputs.branch-name }} BRANCH_EXISTS: ${{ steps.branch.outputs.branch-exists }} @@ -159,4 +183,4 @@ jobs: --body "Autosync the updated translations" else echo "[*] Existing PR updated" - fi +