From 45adb22abeedf79599a7fc32d2016bd508351a9f Mon Sep 17 00:00:00 2001 From: David Taylor Date: Thu, 14 Sep 2023 12:25:06 +0100 Subject: [PATCH] DEV: Automatically retry patch-package on failure (#23583) We are seeing occasional flakes in `patch-package`, possibly caused by https://github.com/ds300/patch-package/issues/484. This wrapper script will retry patch-package three times before giving up. Longer-term we hope to upgrade to a package manager with built-in patch support. --- app/assets/javascripts/discourse/package.json | 2 +- app/assets/javascripts/package.json | 2 +- app/assets/javascripts/run-patch-package | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100755 app/assets/javascripts/run-patch-package diff --git a/app/assets/javascripts/discourse/package.json b/app/assets/javascripts/discourse/package.json index 608e90e7879..14d7b68f0f7 100644 --- a/app/assets/javascripts/discourse/package.json +++ b/app/assets/javascripts/discourse/package.json @@ -13,7 +13,7 @@ "build": "ember build", "start": "ember serve", "test": "ember test", - "postinstall": "yarn --silent --cwd .. patch-package" + "postinstall": "../run-patch-package" }, "dependencies": { "@glimmer/syntax": "^0.84.3", diff --git a/app/assets/javascripts/package.json b/app/assets/javascripts/package.json index 7b28c5d6886..67b6437170a 100644 --- a/app/assets/javascripts/package.json +++ b/app/assets/javascripts/package.json @@ -1,7 +1,7 @@ { "private": true, "scripts": { - "postinstall": "patch-package" + "postinstall": "./run-patch-package" }, "workspaces": [ "admin", diff --git a/app/assets/javascripts/run-patch-package b/app/assets/javascripts/run-patch-package new file mode 100755 index 00000000000..acd845120ea --- /dev/null +++ b/app/assets/javascripts/run-patch-package @@ -0,0 +1,16 @@ +#!/bin/bash + +# We are seeing occasional flakes in `patch-package`, possibly caused by https://github.com/ds300/patch-package/issues/484 +# This script will retry it three times before giving up. +# Longer-term we hope to upgrade to a package manager with built-in patch support. + +for i in {1..3}; do + if [ $i -ne 1 ]; then + echo "patch-package failed... retry ($i/3)..." + fi + + script_dir=$(dirname "$0") + yarn --silent --cwd "${script_dir}" patch-package && exit 0; +done + +exit 1;