Skip to content

Commit 26924fa

Browse files
John Kleinschmidtaddaleax
John Kleinschmidt
authored andcommitted
build: add build from tarball
Fixes: nodejs/build#1931 PR-URL: #32129 Reviewed-By: Rod Vagg <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Richard Lau <[email protected]>
1 parent 8866ff5 commit 26924fa

File tree

1 file changed

+141
-0
lines changed

1 file changed

+141
-0
lines changed

.github/workflows/build-tarball.yml

+141
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
name: Build from tarball
2+
3+
on: [push, pull_request]
4+
5+
env:
6+
FLAKY_TESTS: dontcare
7+
8+
jobs:
9+
build-tarball:
10+
env:
11+
PYTHON_VERSION: 3.8
12+
runs-on: macos-latest
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Set up Python ${{ env.PYTHON_VERSION }}
16+
uses: actions/setup-python@v1
17+
with:
18+
python-version: ${{ env.PYTHON_VERSION }}
19+
- name: Environment Information
20+
run: npx envinfo
21+
- name: Make tarball
22+
run: |
23+
export DISTTYPE=nightly
24+
export DATESTRING=`date "+%Y-%m-%d"`
25+
export COMMIT=xxxx
26+
./configure && make tar -j8
27+
mkdir tarballs
28+
mv *.tar.gz tarballs
29+
- name: Upload tarball artifact
30+
uses: actions/upload-artifact@v1
31+
with:
32+
name: tarballs
33+
path: tarballs
34+
test-tarball-linux:
35+
env:
36+
PYTHON_VERSION: 3.8
37+
needs: build-tarball
38+
runs-on: ubuntu-latest
39+
steps:
40+
- uses: actions/checkout@v2
41+
- name: Set up Python ${{ env.PYTHON_VERSION }}
42+
uses: actions/setup-python@v1
43+
with:
44+
python-version: ${{ env.PYTHON_VERSION }}
45+
- name: Environment Information
46+
run: npx envinfo
47+
- name: Download tarball
48+
uses: actions/download-artifact@v1
49+
with:
50+
name: tarballs
51+
- name: Extract tarball
52+
run: |
53+
tar xzf tarballs/*.tar.gz
54+
echo "::set-env name=TAR_DIR::`basename tarballs/*.tar.gz .tar.gz`"
55+
- name: Copy directories needed for testing
56+
run: |
57+
cp -r tools/node_modules $TAR_DIR/tools
58+
cp -r tools/eslint-rules $TAR_DIR/tools
59+
- name: Build
60+
run: |
61+
cd $TAR_DIR
62+
make build-ci -j2 V=1
63+
- name: Test
64+
run: |
65+
cd $TAR_DIR
66+
make run-ci -j2 V=1
67+
test-tarball-windows:
68+
needs: build-tarball
69+
runs-on: windows-latest
70+
steps:
71+
- name: Set up autocrlf
72+
run: |
73+
git config --global core.autocrlf true
74+
- uses: actions/checkout@v2
75+
- name: Set up Python 2.7
76+
uses: actions/setup-python@v1
77+
with:
78+
python-version: 2.7
79+
- name: Environment Information
80+
run: npx envinfo
81+
- name: Download tarball
82+
uses: actions/download-artifact@v1
83+
with:
84+
name: tarballs
85+
- name: Extract tarball
86+
run: |
87+
7z x tarballs/*.tar.gz
88+
7z x *.tar -ttar
89+
- name: Install deps
90+
run: choco install nasm
91+
- name: Build
92+
run: |
93+
$env:DEBUG_HELPER=1
94+
$tarfile = dir *.tar
95+
cd $tarfile.BaseName
96+
$env:msbuild_args="/binaryLogger:node.binlog"
97+
./vcbuild.bat x64 release msi
98+
echo "::set-env name=TAR_DIR::$pwd"
99+
- name: Copy out directory to checkout dir
100+
run: Move-Item -Path "$env:TAR_DIR\out" -Destination "$env:GITHUB_WORKSPACE"
101+
- name: "Test JS Suites"
102+
shell: cmd
103+
run: |
104+
set DEBUG_HELPER=1
105+
./vcbuild.bat release noprojgen nobuild ignore-flaky test-ci-js
106+
- name: "Test C++ Suites"
107+
shell: cmd
108+
run: |
109+
set DEBUG_HELPER=1
110+
./vcbuild.bat release noprojgen nobuild ignore-flaky test-ci-native
111+
test-tarball-macOS:
112+
needs: build-tarball
113+
runs-on: macos-latest
114+
steps:
115+
- uses: actions/checkout@v2
116+
- name: Set up Python ${{ env.PYTHON_VERSION }}
117+
uses: actions/setup-python@v1
118+
with:
119+
PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
120+
- name: Environment Information
121+
run: npx envinfo
122+
- name: Download tarball
123+
uses: actions/download-artifact@v1
124+
with:
125+
name: tarballs
126+
- name: Extract tarball
127+
run: |
128+
tar xzf tarballs/*.tar.gz
129+
echo "::set-env name=TAR_DIR::`basename tarballs/*.tar.gz .tar.gz`"
130+
- name: Copy directories needed for testing
131+
run: |
132+
cp -r tools/node_modules $TAR_DIR/tools
133+
cp -r tools/eslint-rules $TAR_DIR/tools
134+
- name: Build
135+
run: |
136+
cd $TAR_DIR
137+
make build-ci -j8 V=1
138+
- name: Test
139+
run: |
140+
cd $TAR_DIR
141+
make run-ci -j8 V=1

0 commit comments

Comments
 (0)