1919 steps :
2020 - uses : actions/checkout@v6
2121 with :
22- token : ${{ secrets.MACHINE_ACCOUNT_PAT }}
22+ token : ${{ secrets.GITHUB_TOKEN }}
2323 ref : ' main'
2424 fetch-depth : 0
2525
3838
3939 - name : Get second to latest run time
4040 env :
41- GH_TOKEN : ${{ secrets.MACHINE_ACCOUNT_PAT }}
41+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
4242 run : |
4343 OUTPUT=$(gh run list --workflow sync_translations.yml --json updatedAt | jq -r '.[1].updatedAt')
4444 echo "LATEST_RUN=$OUTPUT" >> $GITHUB_ENV
@@ -69,11 +69,13 @@ jobs:
6969 yarn build
7070
7171 - name : Push translation sources to crowdin
72+ continue-on-error : true
7273 run : |
7374 cd ./tools/localization
7475 yarn start upload
7576
7677 - name : Pull translation updates from crowdin
78+ continue-on-error : true
7779 run : |
7880 cd ./tools/localization
7981 yarn start download
@@ -88,30 +90,46 @@ jobs:
8890 cd ./tools/localization
8991 yarn start update
9092
91- - name : Commit changes
92- run : |
93- git add docs/marketing/localized_description AnkiDroid/src/main/res
94- git commit -am 'Updated strings from Crowdin'
95- git push --set-upstream origin +i18n_sync
96- echo "The results of the sync are on the i18n_sync branch, PR them from there for merge."
97- echo "https://github.com/ankidroid/Anki-Android/compare/i18n_sync?expand=1"
98-
99- - name : Check if there are strings changes
93+ - name : Check for changes and handle Neutral result
10094 id : tr_check
101- run : |
102- git checkout i18n_sync
103- COMMITS_COUNT=`git rev-list --count HEAD ^main`
104- if [ "$COMMITS_COUNT" -gt 0 ]; then
105- echo "HAS_CHANGES=true" >> $GITHUB_OUTPUT
106- else
107- echo "HAS_CHANGES=false" >> $GITHUB_OUTPUT
108- fi
95+ uses : actions/github-script@v7
96+ with :
97+ script : |
98+ const { execSync } = require('child_process');
99+
100+ execSync('git add docs/marketing/localized_description AnkiDroid/src/main/res');
101+
102+ const status = execSync('git diff --cached --name-only').toString().trim();
103+
104+ if(!status) {
105+ console.log("No changes detected. Setting status to neutral.");
106+
107+ await github.rest.checks.create({
108+ owner: context.repo.owner,
109+ repo: context.repo.repo,
110+ name: 'Sync Translations with Crowdin',
111+ head_sha: context.sha,
112+ status: 'completed',
113+ conclusion: 'neutral',
114+ output: {
115+ title: 'Translation Sync',
116+ summary: 'No translation changes were found on Crowdin to sync'
117+ }
118+ });
119+
120+ core.setOutput('HAS_CHANGES', 'false');
121+ } else {
122+ core.setOutput('HAS_CHANGES', 'true');
123+ execSync("git commit -m 'Updated strings from Crowdin'");
124+ execSync("git push --set-upstream origin +i18n_sync");
125+ console.log("Changes pushed to i18n_sync branch");
126+ }
109127
110128 - name : Create PR for strings changes if needed
111- if : ${{ steps.tr_check.outputs.HAS_CHANGES }}
129+ if : steps.tr_check.outputs.HAS_CHANGES == 'true'
112130 uses : actions/github-script@v9
113131 with :
114- github-token : ${{ secrets.MACHINE_ACCOUNT_PAT }}
132+ github-token : ${{ secrets.GITHUB_TOKEN }}
115133 script : |
116134 const now = new Date();
117135 // Date format used: YYYY/MM/DD HH:MM , UTC time(ex: 2023/01/13 08:38)
0 commit comments