diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml new file mode 100644 index 00000000000000..04a451a8309235 --- /dev/null +++ b/.github/workflows/build-tarball.yml @@ -0,0 +1,141 @@ +name: Build from tarball + +on: [push, pull_request] + +env: + FLAKY_TESTS: dontcare + +jobs: + build-tarball: + env: + PYTHON_VERSION: 3.8 + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v1 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Environment Information + run: npx envinfo + - name: Make tarball + run: | + export DISTTYPE=nightly + export DATESTRING=`date "+%Y-%m-%d"` + export COMMIT=xxxx + ./configure && make tar -j8 + mkdir tarballs + mv *.tar.gz tarballs + - name: Upload tarball artifact + uses: actions/upload-artifact@v1 + with: + name: tarballs + path: tarballs + test-tarball-linux: + env: + PYTHON_VERSION: 3.8 + needs: build-tarball + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v1 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Environment Information + run: npx envinfo + - name: Download tarball + uses: actions/download-artifact@v1 + with: + name: tarballs + - name: Extract tarball + run: | + tar xzf tarballs/*.tar.gz + echo "::set-env name=TAR_DIR::`basename tarballs/*.tar.gz .tar.gz`" + - name: Copy directories needed for testing + run: | + cp -r tools/node_modules $TAR_DIR/tools + cp -r tools/eslint-rules $TAR_DIR/tools + - name: Build + run: | + cd $TAR_DIR + make build-ci -j2 V=1 + - name: Test + run: | + cd $TAR_DIR + make run-ci -j2 V=1 + test-tarball-windows: + needs: build-tarball + runs-on: windows-latest + steps: + - name: Set up autocrlf + run: | + git config --global core.autocrlf true + - uses: actions/checkout@v2 + - name: Set up Python 2.7 + uses: actions/setup-python@v1 + with: + python-version: 2.7 + - name: Environment Information + run: npx envinfo + - name: Download tarball + uses: actions/download-artifact@v1 + with: + name: tarballs + - name: Extract tarball + run: | + 7z x tarballs/*.tar.gz + 7z x *.tar -ttar + - name: Install deps + run: choco install nasm + - name: Build + run: | + $env:DEBUG_HELPER=1 + $tarfile = dir *.tar + cd $tarfile.BaseName + $env:msbuild_args="/binaryLogger:node.binlog" + ./vcbuild.bat x64 release msi + echo "::set-env name=TAR_DIR::$pwd" + - name: Copy out directory to checkout dir + run: Move-Item -Path "$env:TAR_DIR\out" -Destination "$env:GITHUB_WORKSPACE" + - name: "Test JS Suites" + shell: cmd + run: | + set DEBUG_HELPER=1 + ./vcbuild.bat release noprojgen nobuild ignore-flaky test-ci-js + - name: "Test C++ Suites" + shell: cmd + run: | + set DEBUG_HELPER=1 + ./vcbuild.bat release noprojgen nobuild ignore-flaky test-ci-native + test-tarball-macOS: + needs: build-tarball + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v1 + with: + PYTHON_VERSION: ${{ env.PYTHON_VERSION }} + - name: Environment Information + run: npx envinfo + - name: Download tarball + uses: actions/download-artifact@v1 + with: + name: tarballs + - name: Extract tarball + run: | + tar xzf tarballs/*.tar.gz + echo "::set-env name=TAR_DIR::`basename tarballs/*.tar.gz .tar.gz`" + - name: Copy directories needed for testing + run: | + cp -r tools/node_modules $TAR_DIR/tools + cp -r tools/eslint-rules $TAR_DIR/tools + - name: Build + run: | + cd $TAR_DIR + make build-ci -j8 V=1 + - name: Test + run: | + cd $TAR_DIR + make run-ci -j8 V=1 \ No newline at end of file diff --git a/test/parallel/test-child-process-exec-any-shells-windows.js b/test/parallel/test-child-process-exec-any-shells-windows.js index 8cdd03d7e510d5..0e78b665689720 100644 --- a/test/parallel/test-child-process-exec-any-shells-windows.js +++ b/test/parallel/test-child-process-exec-any-shells-windows.js @@ -23,10 +23,10 @@ const test = (shell) => { })); }; const testCopy = (shellName, shellPath) => { - // Copy the executable to a path with spaces, to ensure there are no issues + // Symlink the executable to a path with spaces, to ensure there are no issues // related to quoting of argv0 const copyPath = `${tmpPath}\\${shellName}`; - fs.copyFileSync(shellPath, copyPath); + fs.symlinkSync(shellPath, copyPath); test(copyPath); };