From 5c6ab719f2917ab33a680156338955d78d6d1f39 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Tue, 29 Jun 2021 10:04:18 +0100 Subject: [PATCH] build: shorten path used in tarball build workflow Shorten the path to the workspace for the GitHub Actions `build-tarball` workflow to avoid `execvp: printf: Argument list too long` errors from `make`. GitHub currently runs workflows in a `/home/runner/work/my-repo/my-repo` directory where `my-repo` is the repository name and is repeated twice (the second is from the git checkout). Some of the command lines in the Node.js build, e.g. the `ar` command to create static libraries, pass several fully qualified paths to filenames so the workflow directory is repeat many times. The most recent V8 update added more files to the command and has now tipped the command line length over the maximum allowed when using forks of the `node` repository with a longer name (e.g. `node-auto-test` and the private fork used to prepare security releases). Use GitHub's `RUNNER_TEMP` environment variable to extract the source tarball into the temporary directory on the GitHub runner. This is currently `/home/runner/work/_temp` and is not dependent on the name of the repository. PR-URL: https://github.com/nodejs/node/pull/39192 Reviewed-By: Jiawen Geng Reviewed-By: Beth Griggs Reviewed-By: Michael Dawson Reviewed-By: James M Snell --- .github/workflows/build-tarball.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 8a3daa705883f8..3e57a08d98b611 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -57,8 +57,8 @@ jobs: name: tarballs - name: Extract tarball run: | - tar xzf tarballs/*.tar.gz - echo "TAR_DIR=`basename tarballs/*.tar.gz .tar.gz`" >> $GITHUB_ENV + tar xzf tarballs/*.tar.gz -C $RUNNER_TEMP + echo "TAR_DIR=$RUNNER_TEMP/`basename tarballs/*.tar.gz .tar.gz`" >> $GITHUB_ENV - name: Copy directories needed for testing run: | cp -r tools/node_modules $TAR_DIR/tools