From 3ed04994b70fa7973d7c471105e8523e6794be80 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 1f802ca12b56c6..7022b6c1142678 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -58,8 +58,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