From cc1cc9938363d7721a3528bff938e46fc4970f2d Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 2 Apr 2021 05:10:41 -0400 Subject: [PATCH] Arm32 architecture (#82) * Added 32-bit Arm gn file It seems like the docker images can compile for Arm 32-bit now. I needed this to run on a headless RaspberryPi, and it appears to work just fine after installing libnss3. I also updated the README.md to refer to the current docker image (jonmmease/chromium-builder:0.9) that's pulled in the build_kaleido script as of Commit https://github.com/plotly/Kaleido/commit/37e6ec424e16fce67101cde5ed2f2aa9ba512610 * Add arm circleci job * Comment out other CI jobs for testing arm build Co-authored-by: Alec G. Moore --- .circleci/config.yml | 105 +++++++++++++++++++------------- README.md | 6 +- repos/linux_scripts/args_arm.gn | 9 +++ 3 files changed, 73 insertions(+), 47 deletions(-) create mode 100644 repos/linux_scripts/args_arm.gn diff --git a/.circleci/config.yml b/.circleci/config.yml index 069469ba..9ad2e5f0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -153,6 +153,16 @@ jobs: - linux_build: arch: "arm64" + linux_build_arm: + machine: + image: ubuntu-1604:201903-01 # the primary container, where your job's commands are run + resource_class: xlarge + environment: + KALEIDO_ARCH: "arm" + steps: + - linux_build: + arch: "arm" + linux_test_37: docker: - image: continuumio/miniconda3 @@ -316,56 +326,63 @@ jobs: arch: "x86" workflows: - build-windows-x64: - jobs: - - windows_fetch - - windows_build_x64: - requires: - - windows_fetch + #build-windows-x64: + #jobs: + #- windows_fetch + #- windows_build_x64: + #requires: + #- windows_fetch - build-windows-x86: - jobs: - - windows_fetch - - windows_build_x86: - requires: - - windows_fetch + #build-windows-x86: + #jobs: + #- windows_fetch + #- windows_build_x86: + #requires: + #- windows_fetch - build-mac-x64: - jobs: - - mac_fetch - - mac_build_blink_x64: - requires: - - mac_fetch - - mac_build_x64: - requires: - - mac_build_blink_x64 + #build-mac-x64: + #jobs: + #- mac_fetch + #- mac_build_blink_x64: + #requires: + #- mac_fetch + #- mac_build_x64: + #requires: + #- mac_build_blink_x64 - build-mac-arm64: - jobs: - - mac_fetch - - mac_build_blink_arm64: - requires: - - mac_fetch - - mac_build_arm64: - requires: - - mac_build_blink_arm64 + #build-mac-arm64: + #jobs: + #- mac_fetch + #- mac_build_blink_arm64: + #requires: + #- mac_fetch + #- mac_build_arm64: + #requires: + #- mac_build_blink_arm64 - build-linux-x64: - jobs: - - linux_fetch - - linux_build_x64: - requires: - - linux_fetch - - linux_test_37: - requires: - - linux_build_x64 - - linux_test_27: - requires: - - linux_build_x64 + #build-linux-x64: + #jobs: + #- linux_fetch + #- linux_build_x64: + #requires: + #- linux_fetch + #- linux_test_37: + #requires: + #- linux_build_x64 + #- linux_test_27: + #requires: + #- linux_build_x64 + + #build-linux-arm64: + #jobs: + #- linux_fetch + #- linux_build_arm64: + #requires: + #- linux_fetch - build-linux-arm64: + build-linux-arm: jobs: - linux_fetch - - linux_build_arm64: + - linux_build_arm: requires: - linux_fetch diff --git a/README.md b/README.md index a543c9fa..ca719e9a 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ There are two approaches to building Kaleido on Linux, both of which rely on Doc The Linux build relies on the `jonmmease/chromium-builder` docker image, and the scripts in `repos/linux_scripts`, to download the chromium source to a local folder and then build it. Download docker image ``` -$ docker pull jonmmease/chromium-builder:0.8 +$ docker pull jonmmease/chromium-builder:0.9 ``` Fetch the Chromium codebase and checkout the specific tag, then sync all dependencies @@ -188,14 +188,14 @@ The `chromium-builder` container mostly follows the instructions at https://chro Build container with: ``` -$ docker build -t jonmmease/chromium-builder:0.8 -f repos/linux_scripts/Dockerfile . +$ docker build -t jonmmease/chromium-builder:0.9 -f repos/linux_scripts/Dockerfile . ``` ## kaleido-builder This container contains a pre-compiled version of chromium source tree. Takes several hours to build! ``` -$ docker build -t jonmmease/kaleido-builder:0.8 -f repos/linux_full_scripts/Dockerfile . +$ docker build -t jonmmease/kaleido-builder:0.9 -f repos/linux_full_scripts/Dockerfile . ``` diff --git a/repos/linux_scripts/args_arm.gn b/repos/linux_scripts/args_arm.gn new file mode 100644 index 00000000..fe93b103 --- /dev/null +++ b/repos/linux_scripts/args_arm.gn @@ -0,0 +1,9 @@ +import("//build/args/headless.gn") +enable_nacl=false +is_component_build=false + +symbol_level=0 +blink_symbol_level=0 +is_debug=false + +target_cpu="arm"