From c8d9d8be21b7e0d0fafedd051d7b6413384b7d65 Mon Sep 17 00:00:00 2001 From: Cheng Pan Date: Sun, 26 Sep 2021 18:04:34 +0800 Subject: [PATCH] [KYUUBI #1155] [BUILD] Support passthrough env var CI into build container ### _Why are the changes needed?_ Continuous integration(aka. CI) services like GitHub Actions, Travis always provide an environment variable `CI` in runners, and we detect this variable to run some specific actions. In [KYUUBI #742], we add a `CI` env var detection in `build/mvn` to suppress noisy maven logs in CI scenes. This PR introduces a new build arg `CI` in `docker/Dockerfile`, which is intent to passthrough env var CI into the build container to suppress noisy maven logs in GitHub Action and Travis. ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [ ] Add screenshots for manual tests if appropriate - [ ] [Run test](https://kyuubi.readthedocs.io/en/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #1155 from pan3793/ci. Closes #1155 0f66b37e [Cheng Pan] typo e1b9d35e [Cheng Pan] nit d78bb563 [Cheng Pan] update workflow 4209ae67 [Cheng Pan] Update comments ffc3a1e1 [Cheng Pan] nit 761c9e6c [Cheng Pan] Update usage 2f74b977 [Cheng Pan] Add build arg CI 509da2aa [Cheng Pan] [BUILD] Suppress maven log in Minikube Integration Test Authored-by: Cheng Pan Signed-off-by: ulysses-you --- .github/workflows/master.yml | 3 +++ docker/Dockerfile | 23 ++++++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 3375a603a..21d2e931b 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -141,6 +141,7 @@ jobs: run: | ./build/mvn clean install -Pspark-3.1 -DskipTests -pl :kyuubi-spark-sql-engine_2.12,:kyuubi-common_2.12,:kyuubi-ha_2.12,:kyuubi-zookeeper_2.12,:kyuubi-spark-monitor_2.12 ./build/mvn test -Pspark-3.1 -Dtest=none -DwildcardSuites=org.apache.kyuubi.operation.tpcds -Dmaven.plugin.scalatest.exclude.tags='' + minikube-it: name: Minikube Integration Test runs-on: ubuntu-20.04 @@ -153,6 +154,8 @@ jobs: - name: Build Kyuubi Docker Image uses: docker/build-push-action@v2 with: + # passthrough CI into build container + build-args: CI=${CI} context: . file: docker/Dockerfile load: true diff --git a/docker/Dockerfile b/docker/Dockerfile index d376a673c..6394dcdee 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -17,19 +17,32 @@ # Usage: # Run the docker command below -# docker build --build-arg MVN_ARG="-Pspark-3.1,spark-hadoop-3.2" -f docker/Dockerfile -t apache/kyuubi:tagname . +# docker build \ +# --build-arg MVN_ARG="-Pspark-3.1,spark-hadoop-3.2" \ +# --file docker/Dockerfile \ +# --tag apache/kyuubi:tagname \ +# . # Options: -# -f this docker file -# -t the target repo and tag name -# more options can be found with -h +# -f, --file this docker file +# -t, --tag the target repo and tag name +# more options can be found with -h, --help -# declare the BASE_IMAGE argument in the first line. for more detail see: https://github.com/moby/moby/issues/38379 +# Declare the BASE_IMAGE argument in the first line, for more detail +# see: https://github.com/moby/moby/issues/38379 ARG BASE_IMAGE=openjdk:8-jdk FROM maven:3.6-jdk-8 as builder ARG MVN_ARG +# Pass the environment variable `CI` into container, for internal use only. +# +# Continuous integration(aka. CI) services like GitHub Actions, Travis always provide +# an environment variable `CI` in runners, and we detect this variable to run some +# specific actions, e.g. run `mvn` in batch mode to suppress noisy logs. +ARG CI +ENV CI ${CI} + ADD . /workspace/kyuubi WORKDIR /workspace/kyuubi