From d1fed7e14f3c7d1f38b49ad54d83a443850bef2e Mon Sep 17 00:00:00 2001 From: John Kleinschmidt Date: Fri, 6 Mar 2020 10:56:33 -0500 Subject: [PATCH] build: add build from tarball Resolves: https://github.com/nodejs/build/issues/1931 --- .github/workflows/build-tarball.yml | 138 ++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 .github/workflows/build-tarball.yml diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml new file mode 100644 index 00000000000000..8d22bca6a06f15 --- /dev/null +++ b/.github/workflows/build-tarball.yml @@ -0,0 +1,138 @@ +name: Build from tarball + +on: [push, pull_request] + +env: + PYTHON_VERSION: 3.8 + FLAKY_TESTS: dontcare + +jobs: + 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: 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: + 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 ${{ 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: | + 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" + echo "::set-env name=test_ci_args::--shell=$pwd\out\Release\node.exe" + - name: "Test JS Suites" + shell: cmd + run: | + set DEBUG_HELPER=1 + set PATH=%PATH:C:\Program Files\Git\usr\bin;=% + ./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