Merge pull request #8544 from jtattermusch/test_javascript_aarch64
Test javascript on linux aarch64 (under qemu emulator)pull/8545/head
commit
5e84a6169c
5 changed files with 86 additions and 0 deletions
@ -0,0 +1,19 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# install the same version of node as in /tests.sh |
||||||
|
NODE_VERSION=node-v12.16.3-linux-arm64 |
||||||
|
NODE_TGZ="$NODE_VERSION.tar.gz" |
||||||
|
pushd /tmp |
||||||
|
curl -OL https://nodejs.org/dist/v12.16.3/$NODE_TGZ |
||||||
|
tar zxvf $NODE_TGZ |
||||||
|
export PATH=$PATH:`pwd`/$NODE_VERSION/bin |
||||||
|
popd |
||||||
|
|
||||||
|
# go to the repo root |
||||||
|
cd $(dirname $0)/../../.. |
||||||
|
|
||||||
|
cd js |
||||||
|
npm install |
||||||
|
npm test |
@ -0,0 +1,29 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# go to the repo root |
||||||
|
cd $(dirname $0)/../../.. |
||||||
|
|
||||||
|
if [[ -t 0 ]]; then |
||||||
|
DOCKER_TTY_ARGS="-it" |
||||||
|
else |
||||||
|
# The input device on kokoro is not a TTY, so -it does not work. |
||||||
|
DOCKER_TTY_ARGS= |
||||||
|
fi |
||||||
|
|
||||||
|
# crosscompile protoc as we will later need it for the javascript build. |
||||||
|
# we build it under the dockcross/manylinux2014-aarch64 image so that the resulting protoc binary is compatible |
||||||
|
# with a wide range of linux distros (including any docker images we will use later to build and test javascript) |
||||||
|
kokoro/linux/aarch64/dockcross_helpers/run_dockcross_manylinux2014_aarch64.sh kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh |
||||||
|
|
||||||
|
# use an actual aarch64 docker image (with a real aarch64 nodejs) to run build & test protobuf javascript under an emulator |
||||||
|
# * mount the protobuf root as /work to be able to access the crosscompiled files |
||||||
|
# * to avoid running the process inside docker as root (which can pollute the workspace with files owned by root), we force |
||||||
|
# running under current user's UID and GID. To be able to do that, we need to provide a home directory for the user |
||||||
|
# otherwise the UID would be homeless under the docker container and pip install wouldn't work. For simplicity, |
||||||
|
# we just run map the user's home to a throwaway temporary directory |
||||||
|
# Note that the docker image used for running the tests is arm64v8/openjdk, not arm64v8/node |
||||||
|
# This is because some of the node tests require java to be available and adding node |
||||||
|
# binary distribution into a java image is easier than vice versa. |
||||||
|
docker run $DOCKER_TTY_ARGS --rm --user "$(id -u):$(id -g)" -e "HOME=/home/fake-user" -v "$(mktemp -d):/home/fake-user" -v "$(pwd)":/work -w /work arm64v8/openjdk:11-jdk-buster kokoro/linux/aarch64/javascript_build_and_run_tests_with_qemu_aarch64.sh |
@ -0,0 +1,16 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# |
||||||
|
# This is the top-level script we give to Kokoro as the entry point for |
||||||
|
# running the "continuous" and "presubmit" jobs. |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# Change to repo root |
||||||
|
cd $(dirname $0)/../../.. |
||||||
|
|
||||||
|
# Initialize any submodules. |
||||||
|
git submodule update --init --recursive |
||||||
|
|
||||||
|
kokoro/linux/aarch64/qemu_helpers/prepare_qemu.sh |
||||||
|
|
||||||
|
kokoro/linux/aarch64/test_javascript_aarch64.sh |
@ -0,0 +1,11 @@ |
|||||||
|
# Config file for running tests in Kokoro |
||||||
|
|
||||||
|
# Location of the build script in repository |
||||||
|
build_file: "protobuf/kokoro/linux/javascript_aarch64/build.sh" |
||||||
|
timeout_mins: 120 |
||||||
|
|
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/sponge_log.xml" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
# Config file for running tests in Kokoro |
||||||
|
|
||||||
|
# Location of the build script in repository |
||||||
|
build_file: "protobuf/kokoro/linux/javascript_aarch64/build.sh" |
||||||
|
timeout_mins: 120 |
||||||
|
|
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/sponge_log.xml" |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue