mirror of
https://github.com/facebook/docusaurus.git
synced 2025-08-06 10:20:09 +02:00
chore(v2): attempt to fix crowdin dl again (#4746)
This commit is contained in:
parent
461d487c56
commit
e6231ce9d5
3 changed files with 51 additions and 18 deletions
41
website/delayCrowdin.js
Normal file
41
website/delayCrowdin.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
We delay a bit the i18n staging deployment
|
||||
Because sometimes, prod + i18n-staging call this script at the exact same time
|
||||
And then both try to dl the translations at the same time, and then we have a 409 error
|
||||
This delay makes sure prod starts to dl the translations in priority
|
||||
Used in conjunction with waitForCrowdin.js (which is not enough)
|
||||
*/
|
||||
|
||||
async function delay(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
async function run() {
|
||||
if (
|
||||
process.env.NETLIFY === 'true' &&
|
||||
process.env.SITE_NAME === 'docusaurus-i18n-staging'
|
||||
) {
|
||||
console.log(
|
||||
'[Crowdin] Delaying the docusaurus-i18n-staging deployment to avoid 409 errors',
|
||||
);
|
||||
await delay(30000);
|
||||
}
|
||||
}
|
||||
|
||||
run().then(
|
||||
() => {
|
||||
process.exit(0);
|
||||
},
|
||||
(e) => {
|
||||
console.error(e.message);
|
||||
console.error(e.stack);
|
||||
process.exit(1);
|
||||
},
|
||||
);
|
|
@ -18,8 +18,9 @@
|
|||
"build:bootstrap": "cross-env DOCUSAURUS_PRESET=bootstrap yarn build",
|
||||
"start:blogOnly": "cross-env yarn start --config=docusaurus.config-blog-only.js",
|
||||
"build:blogOnly": "cross-env yarn build --config=docusaurus.config-blog-only.js",
|
||||
"netlify:build:production": "yarn docusaurus write-translations && yarn netlify:crowdin:uploadSources && yarn netlify:crowdin:downloadTranslations && yarn build",
|
||||
"netlify:build:production": "yarn docusaurus write-translations && yarn netlify:crowdin:delay && yarn netlify:crowdin:uploadSources && yarn netlify:crowdin:downloadTranslations && yarn build",
|
||||
"netlify:build:deployPreview": "yarn docusaurus write-translations --locale fr --messagePrefix '(fr) ' && yarn build",
|
||||
"netlify:crowdin:delay": "node delayCrowdin.js",
|
||||
"netlify:crowdin:wait": "node waitForCrowdin.js",
|
||||
"netlify:crowdin:downloadTranslations": "yarn netlify:crowdin:wait && yarn --cwd .. crowdin:download:v2",
|
||||
"netlify:crowdin:downloadTranslationsFailSafe": "yarn netlify:crowdin:wait && (yarn --cwd .. crowdin:download:v2 || echo 'Crowdin translation download failure (only internal PRs have access to the Crowdin env token)')",
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
const {Translations} = require('@crowdin/crowdin-api-client');
|
||||
|
||||
/*
|
||||
|
@ -27,26 +34,10 @@ async function delay(ms) {
|
|||
|
||||
async function hasBuildInProgress() {
|
||||
const projectBuilds = await translations.listProjectBuilds(projectId);
|
||||
return projectBuilds.data.some(
|
||||
(build) => build.data.status === 'in-progress',
|
||||
);
|
||||
return projectBuilds.data.some((build) => build.data.status === 'inProgress');
|
||||
}
|
||||
|
||||
async function run() {
|
||||
// We delay a bit the i18n staging deployment
|
||||
// Because sometimes, prod + i18n-staging call this script at the exact same time
|
||||
// And then both try to dl the translations at the same time, and then we have a 409 error
|
||||
// This delay makes sure prod starts to dl the translations in priority
|
||||
if (
|
||||
process.env.NETLIFY === 'true' &&
|
||||
process.env.SITE_NAME === 'docusaurus-i18n-staging'
|
||||
) {
|
||||
console.log(
|
||||
'[Crowdin] Delaying the docusaurus-i18n-staging deployment to avoid 409 errors',
|
||||
);
|
||||
await delay(30000);
|
||||
}
|
||||
|
||||
const timeBefore = Date.now();
|
||||
while (true) {
|
||||
if (Date.now() - timeBefore > timeout) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue