From 1fc159e0df1687813b12a0136bc7ba7da6dffc4a Mon Sep 17 00:00:00 2001 From: Tingluo Huang Date: Wed, 1 Sep 2021 15:39:17 -0400 Subject: [PATCH] Temporary fix for macOS runner upgrade crash loop. (#1304) --- src/Misc/layoutbin/update.sh.template | 37 +++++++++++++++++++++++++++ src/Runner.Listener/SelfUpdater.cs | 4 ++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/Misc/layoutbin/update.sh.template b/src/Misc/layoutbin/update.sh.template index ad542cc5c..38b31a546 100755 --- a/src/Misc/layoutbin/update.sh.template +++ b/src/Misc/layoutbin/update.sh.template @@ -118,6 +118,43 @@ then exit 1 fi +# fix upgrade issue with macOS +currentplatform=$(uname | awk '{print tolower($0)}') +if [[ "$currentplatform" == 'darwin' ]]; then + # need a short-term fix for https://github.com/actions/runner/issues/743 + # we will recreate all the ./externals/node12/bin/node of the past 5 versions + # v2.280.3 v2.280.2 v2.280.1 v2.279.0 v2.278.0 + if [[ ! -e "$rootfolder/externals.2.280.3/node12/bin/node" ]] + then + mkdir -p "$rootfolder/externals.2.280.3/node12/bin" + cp "$rootfolder/externals/node12/bin/node" "$rootfolder/externals.2.280.3/node12/bin/node" + fi + + if [[ ! -e "$rootfolder/externals.2.280.2/node12/bin/node" ]] + then + mkdir -p "$rootfolder/externals.2.280.2/node12/bin" + cp "$rootfolder/externals/node12/bin/node" "$rootfolder/externals.2.280.2/node12/bin/node" + fi + + if [[ ! -e "$rootfolder/externals.2.280.1/node12/bin/node" ]] + then + mkdir -p "$rootfolder/externals.2.280.1/node12/bin" + cp "$rootfolder/externals/node12/bin/node" "$rootfolder/externals.2.280.1/node12/bin/node" + fi + + if [[ ! -e "$rootfolder/externals.2.279.0/node12/bin/node" ]] + then + mkdir -p "$rootfolder/externals.2.279.0/node12/bin" + cp "$rootfolder/externals/node12/bin/node" "$rootfolder/externals.2.279.0/node12/bin/node" + fi + + if [[ ! -e "$rootfolder/externals.2.278.0/node12/bin/node" ]] + then + mkdir -p "$rootfolder/externals.2.278.0/node12/bin" + cp "$rootfolder/externals/node12/bin/node" "$rootfolder/externals.2.278.0/node12/bin/node" + fi +fi + date "+[%F %T-%4N] Update succeed" >> "$logfile" # rename the update log file with %logfile%.succeed/.failed/succeedneedrestart diff --git a/src/Runner.Listener/SelfUpdater.cs b/src/Runner.Listener/SelfUpdater.cs index 92ed0ce73..755329dce 100644 --- a/src/Runner.Listener/SelfUpdater.cs +++ b/src/Runner.Listener/SelfUpdater.cs @@ -74,10 +74,12 @@ namespace GitHub.Runner.Listener await jobDispatcher.WaitAsync(token); Trace.Info($"All running job has exited."); + // We need to keep runner backup around for macOS until we fixed https://github.com/actions/runner/issues/743 +#if !OS_OSX // delete runner backup DeletePreviousVersionRunnerBackup(token); Trace.Info($"Delete old version runner backup."); - +#endif // generate update script from template await UpdateRunnerUpdateStateAsync("Generate and execute update script.");