From 15abe6fe2f12450b7f40d859a394dec966132b0b Mon Sep 17 00:00:00 2001 From: ludamad Date: Mon, 21 Oct 2024 20:16:50 -0400 Subject: [PATCH] fix: ci github clone edge case (#9320) overdue --- .github/ensure-builder/action.yml | 21 ++++++++++++--------- yarn-project/README.md | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/ensure-builder/action.yml b/.github/ensure-builder/action.yml index 753c2e6b6ec..ab2a9e95d39 100644 --- a/.github/ensure-builder/action.yml +++ b/.github/ensure-builder/action.yml @@ -69,21 +69,24 @@ runs: # Set up a context for this run - name: Copy Repo to Builder shell: bash + env: + UNPACK: | + [ -d ~/run-$RUN_ID ] || ( + mkdir -p ~/run-$RUN_ID-git && + cd ~/run-$RUN_ID-git && tar xzf - && + git config --global advice.detachedHead false && + git clone ~/run-$RUN_ID-git/.git ~/run-$RUN_ID && + echo ${{ env.BUILD_INSTANCE_SSH_KEY }} | base64 --decode > ~/.ssh/build_instance_key && + chmod 600 ~/.ssh/build_instance_key + ) run: | sudo shutdown -P ${{ steps.select_instance.outputs.ttl }} set -x # detect run folder if ! scripts/run_on_builder "[ -d ~/run-$RUN_ID ]" ; then echo "Copying local repo to spot" - tar czf - .git | scripts/run_on_builder \ - "mkdir -p ~/run-$RUN_ID-git && cd ~/run-$RUN_ID-git && tar xzf -" || true - scripts/run_on_builder " - echo "Unpacking repo" - git config --global advice.detachedHead false - git clone ~/run-$RUN_ID-git/.git ~/run-$RUN_ID - echo ${{ env.BUILD_INSTANCE_SSH_KEY }} | base64 --decode > ~/.ssh/build_instance_key - chmod 600 ~/.ssh/build_instance_key - " || true + (tar czf - .git || true) | scripts/run_on_builder \ + "flock ~/git.lock bash -c '$UNPACK'" fi - name: Attach EBS Cache Disk diff --git a/yarn-project/README.md b/yarn-project/README.md index 9c4c5010812..11437af9c9d 100644 --- a/yarn-project/README.md +++ b/yarn-project/README.md @@ -48,7 +48,7 @@ Consider installing the Prettier and ESLint extensions if using VSCode. Configur ## Package.json inheritance -To simplify the management of all package.json files, we have a custom script that injects the contents of `package.common.json` into all packages that reference it via the `inherits` custom field. To run the script, just run +To simplify the management of all package.json files, we have a custom script that injects the contents of `package.common.json` into all packages that reference it via the `inherits` custom field. To run the script, just run: ``` yarn prepare