Add testing for arm, arm64 and ia32 linux builds
This commit is contained in:
parent
a6228b97cd
commit
06481b5630
6 changed files with 206 additions and 2 deletions
|
@ -58,6 +58,46 @@ jobs:
|
||||||
else
|
else
|
||||||
echo 'Skipping upload distribution because build is not for release'
|
echo 'Skipping upload distribution because build is not for release'
|
||||||
fi
|
fi
|
||||||
|
- run:
|
||||||
|
name: Zip out directory
|
||||||
|
command: |
|
||||||
|
if [ "$ELECTRON_RELEASE" != "1" ]; then
|
||||||
|
zip -r electron.zip out/D
|
||||||
|
fi
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: /home/builduser
|
||||||
|
paths:
|
||||||
|
- project/out
|
||||||
|
- store_artifacts:
|
||||||
|
path: electron.zip
|
||||||
|
electron-linux-arm-test:
|
||||||
|
machine: true
|
||||||
|
steps:
|
||||||
|
- attach_workspace:
|
||||||
|
at: /tmp/workspace
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Test in ARM docker container
|
||||||
|
command: |
|
||||||
|
if [ "$ELECTRON_RELEASE" != "1" ]; then
|
||||||
|
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
|
docker run -it \
|
||||||
|
--mount type=bind,source=/tmp/workspace,target=/tmp/workspace \
|
||||||
|
--rm electronbuilds/electronarm7:0.0.4 > version.txt
|
||||||
|
cat version.txt
|
||||||
|
if grep -q `script/get-version.py` version.txt; then
|
||||||
|
echo "Versions match"
|
||||||
|
else
|
||||||
|
echo "Versions do not match"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if grep -q "core dumped" version.txt; then
|
||||||
|
echo "Core dump detected"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Skipping test for release build"
|
||||||
|
fi
|
||||||
electron-linux-arm64:
|
electron-linux-arm64:
|
||||||
docker:
|
docker:
|
||||||
- image: electronbuilds/electron:0.0.4
|
- image: electronbuilds/electron:0.0.4
|
||||||
|
@ -115,6 +155,46 @@ jobs:
|
||||||
else
|
else
|
||||||
echo 'Skipping upload distribution because build is not for release'
|
echo 'Skipping upload distribution because build is not for release'
|
||||||
fi
|
fi
|
||||||
|
- run:
|
||||||
|
name: Zip out directory
|
||||||
|
command: |
|
||||||
|
if [ "$ELECTRON_RELEASE" != "1" ]; then
|
||||||
|
zip -r electron.zip out/D
|
||||||
|
fi
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: /home/builduser
|
||||||
|
paths:
|
||||||
|
- project/out
|
||||||
|
- store_artifacts:
|
||||||
|
path: electron.zip
|
||||||
|
electron-linux-arm64-test:
|
||||||
|
machine: true
|
||||||
|
steps:
|
||||||
|
- attach_workspace:
|
||||||
|
at: /tmp/workspace
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Test in ARM64 docker container
|
||||||
|
command: |
|
||||||
|
if [ "$ELECTRON_RELEASE" != "1" ]; then
|
||||||
|
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
|
docker run -it \
|
||||||
|
--mount type=bind,source=/tmp/workspace,target=/tmp/workspace \
|
||||||
|
--rm electronbuilds/electronarm64:0.0.5 > version.txt
|
||||||
|
cat version.txt
|
||||||
|
if grep -q `script/get-version.py` version.txt; then
|
||||||
|
echo "Versions match"
|
||||||
|
else
|
||||||
|
echo "Versions do not match"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if grep -q "core dumped" version.txt; then
|
||||||
|
echo "Core dump detected"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Skipping test for release build"
|
||||||
|
fi
|
||||||
electron-linux-ia32:
|
electron-linux-ia32:
|
||||||
docker:
|
docker:
|
||||||
- image: electronbuilds/electron:0.0.4
|
- image: electronbuilds/electron:0.0.4
|
||||||
|
@ -123,6 +203,9 @@ jobs:
|
||||||
resource_class: xlarge
|
resource_class: xlarge
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Setup for headless testing
|
||||||
|
command: sh -e /etc/init.d/xvfb start
|
||||||
- run:
|
- run:
|
||||||
name: Check for release
|
name: Check for release
|
||||||
command: |
|
command: |
|
||||||
|
@ -172,6 +255,29 @@ jobs:
|
||||||
else
|
else
|
||||||
echo 'Skipping upload distribution because build is not for release'
|
echo 'Skipping upload distribution because build is not for release'
|
||||||
fi
|
fi
|
||||||
|
- run:
|
||||||
|
name: Test
|
||||||
|
environment:
|
||||||
|
MOCHA_FILE: junit/test-results.xml
|
||||||
|
MOCHA_REPORTER: mocha-junit-reporter
|
||||||
|
command: |
|
||||||
|
if [ "$ELECTRON_RELEASE" != "1" ]; then
|
||||||
|
echo 'Testing Electron debug build'
|
||||||
|
out/D/electron --version
|
||||||
|
mkdir junit
|
||||||
|
script/test.py --ci --rebuild_native_modules
|
||||||
|
else
|
||||||
|
echo 'Skipping testing on release build'
|
||||||
|
fi
|
||||||
|
- run:
|
||||||
|
name: Verify FFmpeg
|
||||||
|
command: |
|
||||||
|
if [ "$ELECTRON_RELEASE" != "1" ]; then
|
||||||
|
echo 'Verifying ffmpeg on debug build'
|
||||||
|
script/verify-ffmpeg.py
|
||||||
|
else
|
||||||
|
echo 'Skipping verify ffmpeg on release build'
|
||||||
|
fi
|
||||||
electron-linux-mips64el:
|
electron-linux-mips64el:
|
||||||
docker:
|
docker:
|
||||||
- image: electronbuilds/electron:0.0.4
|
- image: electronbuilds/electron:0.0.4
|
||||||
|
@ -330,12 +436,18 @@ workflows:
|
||||||
build-arm:
|
build-arm:
|
||||||
jobs:
|
jobs:
|
||||||
- electron-linux-arm
|
- electron-linux-arm
|
||||||
|
- electron-linux-arm-test:
|
||||||
|
requires:
|
||||||
|
- electron-linux-arm
|
||||||
build-arm64:
|
build-arm64:
|
||||||
jobs:
|
jobs:
|
||||||
- electron-linux-arm64
|
- electron-linux-arm64
|
||||||
|
- electron-linux-arm64-test:
|
||||||
|
requires:
|
||||||
|
- electron-linux-arm64
|
||||||
build-ia32:
|
build-ia32:
|
||||||
jobs:
|
jobs:
|
||||||
- electron-linux-ia32
|
- electron-linux-ia32
|
||||||
build-x64:
|
build-x64:
|
||||||
jobs:
|
jobs:
|
||||||
- electron-linux-x64
|
- electron-linux-x64
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
*
|
*
|
||||||
!tools/xvfb-init.sh
|
!tools/xvfb-init.sh
|
||||||
|
!tools/run-electron.sh
|
||||||
|
|
35
Dockerfile.arm64
Normal file
35
Dockerfile.arm64
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
FROM multiarch/debian-debootstrap:arm64-jessie
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y\
|
||||||
|
bison \
|
||||||
|
build-essential \
|
||||||
|
clang \
|
||||||
|
curl \
|
||||||
|
gperf \
|
||||||
|
libasound2 \
|
||||||
|
libasound2-dev \
|
||||||
|
libcap-dev \
|
||||||
|
libcups2-dev \
|
||||||
|
libdbus-1-dev \
|
||||||
|
libgconf-2-4 \
|
||||||
|
libgconf2-dev \
|
||||||
|
libgnome-keyring-dev \
|
||||||
|
libgtk-3-0 \
|
||||||
|
libgtk2.0-0 \
|
||||||
|
libgtk2.0-dev \
|
||||||
|
libnotify-dev \
|
||||||
|
libnss3 \
|
||||||
|
libnss3-dev \
|
||||||
|
libx11-xcb-dev \
|
||||||
|
libxss1 \
|
||||||
|
libxtst-dev \
|
||||||
|
libxtst6 \
|
||||||
|
python-dbusmock \
|
||||||
|
wget \
|
||||||
|
xvfb
|
||||||
|
|
||||||
|
ADD tools/xvfb-init.sh /etc/init.d/xvfb
|
||||||
|
RUN chmod a+x /etc/init.d/xvfb
|
||||||
|
ADD tools/run-electron.sh /run-electron.sh
|
||||||
|
RUN chmod a+x /run-electron.sh
|
||||||
|
CMD sh /run-electron.sh
|
41
Dockerfile.armv7
Normal file
41
Dockerfile.armv7
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
FROM multiarch/debian-debootstrap:armhf-jessie
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y\
|
||||||
|
bison \
|
||||||
|
build-essential \
|
||||||
|
clang \
|
||||||
|
curl \
|
||||||
|
gperf \
|
||||||
|
libasound2 \
|
||||||
|
libasound2-dev \
|
||||||
|
libcap-dev \
|
||||||
|
libcups2-dev \
|
||||||
|
libdbus-1-dev \
|
||||||
|
libgconf-2-4 \
|
||||||
|
libgconf2-dev \
|
||||||
|
libgnome-keyring-dev \
|
||||||
|
libgtk-3-0 \
|
||||||
|
libgtk2.0-0 \
|
||||||
|
libgtk2.0-dev \
|
||||||
|
libnotify-dev \
|
||||||
|
libnss3 \
|
||||||
|
libnss3-dev \
|
||||||
|
libx11-xcb-dev \
|
||||||
|
libxss1 \
|
||||||
|
libxtst-dev \
|
||||||
|
libxtst6 \
|
||||||
|
python-dbusmock \
|
||||||
|
git \
|
||||||
|
wget \
|
||||||
|
xvfb
|
||||||
|
|
||||||
|
# Install node.js
|
||||||
|
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
|
||||||
|
RUN apt-get update && apt-get install -y nodejs
|
||||||
|
|
||||||
|
ADD tools/xvfb-init.sh /etc/init.d/xvfb
|
||||||
|
RUN chmod a+x /etc/init.d/xvfb
|
||||||
|
ADD tools/run-electron.sh /run-electron.sh
|
||||||
|
RUN chmod a+x /run-electron.sh
|
||||||
|
|
||||||
|
CMD sh /run-electron.sh
|
11
script/get-version.py
Executable file
11
script/get-version.py
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from lib.util import get_electron_version
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print get_electron_version()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.exit(main())
|
4
tools/run-electron.sh
Normal file
4
tools/run-electron.sh
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
export DISPLAY=":99.0"
|
||||||
|
sh -e /etc/init.d/xvfb start
|
||||||
|
cd /tmp/workspace/project/
|
||||||
|
out/D/electron --version
|
Loading…
Reference in a new issue