New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow CI testing on arm64 hardware #12080

Merged
merged 2 commits into from Mar 8, 2018

Conversation

Projects
None yet
3 participants
@jkleinsc
Contributor

jkleinsc commented Feb 28, 2018

This PR adds the capability of building/testing our arm64 build on arm64 hardware.

There are a couple changes needed to do this:

  1. There isn't a prebuilt ninja binary available for arm64 so the docker image that is used includes a built from source ninja binary. Because the ninja binary isn't in the location it usually is, I added a parameter ninja-path to build.py to specify the location of the ninja binary.

  2. There isn't a prebuilt clang binary available for arm64, so I created a prebuilt binary for arm64 and updated script/update-clang.sh to pull the prebuilt binary from our s3 bucket.

  3. There is a new CI machine, https://arm64-ci.electronjs.org that I have provisioned for running our CI on actual arm64 hardware (in this case a 96 core arm64 machine that has 2 Cavium ThunderX ARMv8 SoC's).

@jkleinsc jkleinsc requested a review from electron/reviewers as a code owner Feb 28, 2018

@jkleinsc jkleinsc referenced this pull request Feb 28, 2018

Closed

Arm64 ci for 2-0-x #12083

@zcbenz

This comment has been minimized.

Contributor

zcbenz commented Mar 1, 2018

Currently our toolchain setting requires cross-compiling on a x64 host, you would need to change toolchain.gypi to allow building on arm64.

@jkleinsc

This comment has been minimized.

Contributor

jkleinsc commented Mar 1, 2018

@zcbenz it compiled on arm64 (and successfully ran most of the tests) without changing toolchain.gypi. What exactly would need to change?

@zcbenz

This comment has been minimized.

Contributor

zcbenz commented Mar 1, 2018

@jkleinsc I didn't see you used arm64 build clang, that should be enough.

@jkleinsc jkleinsc changed the title from Allow CI building on arm64 hardware to Allow CI testing on arm64 hardware Mar 2, 2018

@jkleinsc jkleinsc changed the title from Allow CI testing on arm64 hardware to WIP Allow CI testing on arm64 hardware Mar 2, 2018

@jkleinsc

This comment has been minimized.

Contributor

jkleinsc commented Mar 2, 2018

Setting this to WIP until arm64 builds crashing issue ( #12057) is resolved.

@jkleinsc jkleinsc changed the title from WIP Allow CI testing on arm64 hardware to [WIP] Allow CI testing on arm64 hardware Mar 2, 2018

@zcbenz

This comment has been minimized.

Contributor

zcbenz commented Mar 8, 2018

I'm going to push my arm64 fixes to this branch.

@zcbenz zcbenz changed the title from [WIP] Allow CI testing on arm64 hardware to Allow CI testing on arm64 hardware Mar 8, 2018

@zcbenz

This comment has been minimized.

Contributor

zcbenz commented Mar 8, 2018

ARM64 CI is only failing for a flaky test:

not ok 30 app module select-client-certificate event can respond with empty certificate list
  Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

This should be ready to be review/merged.

@alexeykuzmin

This comment has been minimized.

Contributor

alexeykuzmin commented Mar 8, 2018

@jkleinsc Should we merge it? The same change has already been merged to 2-0-x.

@zcbenz

zcbenz approved these changes Mar 8, 2018

@zcbenz zcbenz merged commit 3885674 into master Mar 8, 2018

9 of 10 checks passed

jenkins: arm64/pr-head This commit cannot be built
Details
WIP ready for review
Details
ci/circleci: electron-linux-arm Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-arm-test Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-arm64 Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-arm64-test Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-ia32 Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-x64 Your tests passed on CircleCI!
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
jenkins: macOS/pr-head This commit looks good
Details

@zcbenz zcbenz deleted the build-on-arm64-hw branch Mar 8, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment