b2564242e0
Note that our CI server is not ready for mips64el yet, so the binaries of libcc are not available yet. Currently it is downloading the binaries created by me manually, we should redirect to the official mirror before merging this PR.
342 lines
12 KiB
YAML
342 lines
12 KiB
YAML
|
|
version: 2
|
|
jobs:
|
|
electron-linux-arm:
|
|
docker:
|
|
- image: electronbuilds/electron:0.0.3
|
|
environment:
|
|
TARGET_ARCH: arm
|
|
resource_class: xlarge
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Check for release
|
|
command: |
|
|
if [ -n "${RUN_RELEASE_BUILD}" ]; then
|
|
echo 'release build triggered from api'
|
|
echo 'export ELECTRON_RELEASE=1 TRIGGERED_BY_API=1' >> $BASH_ENV
|
|
fi
|
|
- run:
|
|
name: Bootstrap
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Bootstrapping Electron for release build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH
|
|
else
|
|
echo 'Bootstrapping Electron for debug build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH --dev
|
|
fi
|
|
- run: npm run lint
|
|
- run:
|
|
name: Build
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Building Electron for release'
|
|
script/build.py -c R
|
|
else
|
|
echo 'Building Electron for debug'
|
|
script/build.py -c D
|
|
fi
|
|
- run:
|
|
name: Create distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Creating Electron release distribution'
|
|
script/create-dist.py
|
|
else
|
|
echo 'Skipping create distribution because build is not for release'
|
|
fi
|
|
- run:
|
|
name: Upload distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" != "1" ]; then
|
|
echo 'Uploading Electron release distribution to github releases'
|
|
script/upload.py
|
|
elif [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" == "1" ]; then
|
|
echo 'Uploading Electron release distribution to s3'
|
|
script/upload.py --upload_to_s3
|
|
else
|
|
echo 'Skipping upload distribution because build is not for release'
|
|
fi
|
|
electron-linux-arm64:
|
|
docker:
|
|
- image: electronbuilds/electron:0.0.3
|
|
environment:
|
|
TARGET_ARCH: arm64
|
|
resource_class: xlarge
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Check for release
|
|
command: |
|
|
if [ -n "${RUN_RELEASE_BUILD}" ]; then
|
|
echo 'release build triggered from api'
|
|
echo 'export ELECTRON_RELEASE=1 TRIGGERED_BY_API=1' >> $BASH_ENV
|
|
fi
|
|
- run:
|
|
name: Bootstrap
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Bootstrapping Electron for release build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH
|
|
else
|
|
echo 'Bootstrapping Electron for debug build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH --dev
|
|
fi
|
|
- run: npm run lint
|
|
- run:
|
|
name: Build
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Building Electron for release'
|
|
script/build.py -c R
|
|
else
|
|
echo 'Building Electron for debug'
|
|
script/build.py -c D
|
|
fi
|
|
- run:
|
|
name: Create distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Creating Electron release distribution'
|
|
script/create-dist.py
|
|
else
|
|
echo 'Skipping create distribution because build is not for release'
|
|
fi
|
|
- run:
|
|
name: Upload distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" != "1" ]; then
|
|
echo 'Uploading Electron release distribution to github releases'
|
|
script/upload.py
|
|
elif [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" == "1" ]; then
|
|
echo 'Uploading Electron release distribution to s3'
|
|
script/upload.py --upload_to_s3
|
|
else
|
|
echo 'Skipping upload distribution because build is not for release'
|
|
fi
|
|
electron-linux-ia32:
|
|
docker:
|
|
- image: electronbuilds/electron:0.0.3
|
|
environment:
|
|
TARGET_ARCH: ia32
|
|
resource_class: xlarge
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Check for release
|
|
command: |
|
|
if [ -n "${RUN_RELEASE_BUILD}" ]; then
|
|
echo 'release build triggered from api'
|
|
echo 'export ELECTRON_RELEASE=1 TRIGGERED_BY_API=1' >> $BASH_ENV
|
|
fi
|
|
- run:
|
|
name: Bootstrap
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Bootstrapping Electron for release build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH
|
|
else
|
|
echo 'Bootstrapping Electron for debug build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH --dev
|
|
fi
|
|
- run: npm run lint
|
|
- run:
|
|
name: Build
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Building Electron for release'
|
|
script/build.py -c R
|
|
else
|
|
echo 'Building Electron for debug'
|
|
script/build.py -c D
|
|
fi
|
|
- run:
|
|
name: Create distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Creating Electron release distribution'
|
|
script/create-dist.py
|
|
else
|
|
echo 'Skipping create distribution because build is not for release'
|
|
fi
|
|
- run:
|
|
name: Upload distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" != "1" ]; then
|
|
echo 'Uploading Electron release distribution to github releases'
|
|
script/upload.py
|
|
elif [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" == "1" ]; then
|
|
echo 'Uploading Electron release distribution to s3'
|
|
script/upload.py --upload_to_s3
|
|
else
|
|
echo 'Skipping upload distribution because build is not for release'
|
|
fi
|
|
electron-linux-mips64el:
|
|
docker:
|
|
- image: electronbuilds/electron:0.0.3
|
|
environment:
|
|
TARGET_ARCH: mips64el
|
|
LIBCHROMIUMCONTENT_MIRROR: https://s3.amazonaws.com/gh-contractor-zcbenz/libchromiumcontent
|
|
resource_class: xlarge
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Check for release
|
|
command: |
|
|
if [ -n "${RUN_RELEASE_BUILD}" ]; then
|
|
echo 'release build triggered from api'
|
|
echo 'export ELECTRON_RELEASE=1 TRIGGERED_BY_API=1' >> $BASH_ENV
|
|
fi
|
|
- run:
|
|
name: Bootstrap
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Bootstrapping Electron for release build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH
|
|
else
|
|
echo 'Bootstrapping Electron for debug build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH --dev
|
|
fi
|
|
- run: npm run lint
|
|
- run:
|
|
name: Build
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Building Electron for release'
|
|
script/build.py -c R
|
|
else
|
|
echo 'Building Electron for debug'
|
|
script/build.py -c D
|
|
fi
|
|
- run:
|
|
name: Create distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Creating Electron release distribution'
|
|
script/create-dist.py
|
|
else
|
|
echo 'Skipping create distribution because build is not for release'
|
|
fi
|
|
- run:
|
|
name: Upload distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" != "1" ]; then
|
|
echo 'Uploading Electron release distribution to github releases'
|
|
script/upload.py
|
|
elif [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" == "1" ]; then
|
|
echo 'Uploading Electron release distribution to s3'
|
|
script/upload.py --upload_to_s3
|
|
else
|
|
echo 'Skipping upload distribution because build is not for release'
|
|
fi
|
|
|
|
electron-linux-x64:
|
|
docker:
|
|
- image: electronbuilds/electron:0.0.3
|
|
environment:
|
|
TARGET_ARCH: x64
|
|
DISPLAY: ':99.0'
|
|
resource_class: xlarge
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Setup for headless testing
|
|
command: sh -e /etc/init.d/xvfb start
|
|
- run:
|
|
name: Check for release
|
|
command: |
|
|
if [ -n "${RUN_RELEASE_BUILD}" ]; then
|
|
echo 'release build triggered from api'
|
|
echo 'export ELECTRON_RELEASE=1 TRIGGERED_BY_API=1' >> $BASH_ENV
|
|
fi
|
|
- run:
|
|
name: Bootstrap
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Bootstrapping Electron for release build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH
|
|
else
|
|
echo 'Bootstrapping Electron for debug build'
|
|
script/bootstrap.py --target_arch=$TARGET_ARCH --dev
|
|
fi
|
|
- run: npm run lint
|
|
- run:
|
|
name: Build
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Building Electron for release'
|
|
script/build.py -c R
|
|
else
|
|
echo 'Building Electron for debug'
|
|
script/build.py -c D
|
|
fi
|
|
- run:
|
|
name: Create distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ]; then
|
|
echo 'Creating Electron release distribution'
|
|
script/create-dist.py
|
|
else
|
|
echo 'Skipping create distribution because build is not for release'
|
|
fi
|
|
- run:
|
|
name: Upload distribution
|
|
command: |
|
|
if [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" != "1" ]; then
|
|
echo 'Uploading Electron release distribution to github releases'
|
|
script/upload.py
|
|
elif [ "$ELECTRON_RELEASE" == "1" ] && [ "$TRIGGERED_BY_API" == "1" ]; then
|
|
echo 'Uploading Electron release distribution to s3'
|
|
script/upload.py --upload_to_s3
|
|
else
|
|
echo 'Skipping upload distribution because build is not for release'
|
|
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'
|
|
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
|
|
- run:
|
|
name: Generate Typescript Definitions
|
|
command: npm run create-typescript-definitions
|
|
- store_test_results:
|
|
path: junit
|
|
- store_artifacts:
|
|
path: junit
|
|
- store_artifacts:
|
|
path: out/electron.d.ts
|
|
- store_artifacts:
|
|
path: out/electron-api.json
|
|
|
|
workflows:
|
|
version: 2
|
|
build-arm:
|
|
jobs:
|
|
- electron-linux-arm
|
|
build-arm64:
|
|
jobs:
|
|
- electron-linux-arm64
|
|
build-ia32:
|
|
jobs:
|
|
- electron-linux-ia32
|
|
build-x64:
|
|
jobs:
|
|
- electron-linux-x64
|