diff mbox series

[v1,2/2] gitlab: enable a very minimal build with the tricore container

Message ID 20210719195002.6753-3-alex.bennee@linaro.org
State Superseded
Headers show
Series tricore fixes | expand

Commit Message

Alex Bennée July 19, 2021, 7:50 p.m. UTC
We do the same thing as hexagon and do a two stage build that provides
the minimal dependencies to build qemu-tricore-system and it's
check-tcg tests.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 .gitlab-ci.d/buildtest.yml                    | 11 +++++
 .../dockerfiles/debian-tricore-cross.docker   | 48 +++++++++++++++++--
 2 files changed, 54 insertions(+), 5 deletions(-)

-- 
2.32.0.264.g75ae10bc75

Comments

Alex Bennée July 19, 2021, 9:36 p.m. UTC | #1
Alex Bennée <alex.bennee@linaro.org> writes:

> We do the same thing as hexagon and do a two stage build that provides

> the minimal dependencies to build qemu-tricore-system and it's

> check-tcg tests.

>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  .gitlab-ci.d/buildtest.yml                    | 11 +++++

>  .../dockerfiles/debian-tricore-cross.docker   | 48 +++++++++++++++++--

>  2 files changed, 54 insertions(+), 5 deletions(-)

>

> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml

> index 89df51517c..1f3fbcd965 100644

> --- a/.gitlab-ci.d/buildtest.yml

> +++ b/.gitlab-ci.d/buildtest.yml

> @@ -354,6 +354,17 @@ build-some-softmmu:

>      TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu

>      MAKE_CHECK_ARGS: check-tcg

>  

> +# We build tricore in a very minimal tricore only container

> +build-tricore-softmmu:

> +  extends: .native_build_job_template

> +  needs:

> +    job: debian-tricore-cross-container

> +  variables:

> +    IMAGE: debian-tricore-cross

> +    CONFIGURE_ARGS: --disable-tools --enable-debug

> +    TARGETS: tricore-softmmu

> +    MAKE_CHECK_ARGS: check-tcg

> +

>  clang-system:

>    extends: .native_build_job_template

>    needs:

> diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker b/tests/docker/dockerfiles/debian-tricore-cross.docker

> index 985925134c..50c87f251f 100644

> --- a/tests/docker/dockerfiles/debian-tricore-cross.docker

> +++ b/tests/docker/dockerfiles/debian-tricore-cross.docker

> @@ -15,9 +15,47 @@ RUN git clone --single-branch \

>          https://github.com/bkoppelmann/tricore-binutils.git \

>          /usr/src/binutils && \

>      cd /usr/src/binutils && chmod +x missing && \

> -    CFLAGS=-w ./configure --prefix=/usr --disable-nls --target=tricore && \

> -    make && make install && \

> -    rm -rf /usr/src/binutils

> +    CFLAGS=-w ./configure --prefix=/usr/local --disable-nls --target=tricore && \

> +    make && make install

>  

> -# This image isn't designed for building QEMU but building tests

> -ENV QEMU_CONFIGURE_OPTS --disable-system --disable-user

> +FROM debian:buster-slim

> +# Duplicate deb line as deb-src

> +RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list

> +# Install QEMU build deps for use in CI

> +RUN apt update && \

> +    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \

> +    DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \

> +       build-essential \

> +       git \

> +       libglib2.0-dev \

> +       libpixman-1-dev \

> +       ninja-build \

> +       python3 \

> +       pkg-config

> +       bzip2 \

> +       ca-certificates \

> +       ccache \

> +       diffutils \

> +       findutils \

> +       g++ \

> +       gcc \

> +       git \

> +       libcapstone-dev \

> +       libfdt-dev \

> +       libglib2.0-dev \

> +       libpixman-1-dev \

> +       libtest-harness-perl \

> +       locales \

> +       make \

> +       ninja-build \

> +       perl-base \

> +       pkgconf \

> +       python3-pip \

> +       python3-setuptools \

> +       python3-wheel


Oops that combined the two lists, it should be:

# Install very minimal QEMU build deps for use in CI
# $ lcitool variables debian-10 qemu+minimal
RUN apt update && \
    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
    DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
       bzip2 \
       ca-certificates \
       ccache \
       g++ \
       gcc \
       git \
       libcapstone-dev \
       libfdt-dev \
       libglib2.0-dev \
       libpixman-1-dev \
       libtest-harness-perl \
       locales \
       make \
       ninja-build \
       perl-base \
       pkgconf \
       python3-pip \
       python3-setuptools \
       python3-wheel


> +COPY --from=0 /usr/local /usr/local

> +ENV PATH $PATH:/usr/local/bin/

> +

> +# This image can only build a very minimal QEMU as well as the tests

> +ENV DEF_TARGET_LIST tricore-softmmu

> +ENV QEMU_CONFIGURE_OPTS --disable-user --disable-tools



-- 
Alex Bennée
diff mbox series

Patch

diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index 89df51517c..1f3fbcd965 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -354,6 +354,17 @@  build-some-softmmu:
     TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
     MAKE_CHECK_ARGS: check-tcg
 
+# We build tricore in a very minimal tricore only container
+build-tricore-softmmu:
+  extends: .native_build_job_template
+  needs:
+    job: debian-tricore-cross-container
+  variables:
+    IMAGE: debian-tricore-cross
+    CONFIGURE_ARGS: --disable-tools --enable-debug
+    TARGETS: tricore-softmmu
+    MAKE_CHECK_ARGS: check-tcg
+
 clang-system:
   extends: .native_build_job_template
   needs:
diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker b/tests/docker/dockerfiles/debian-tricore-cross.docker
index 985925134c..50c87f251f 100644
--- a/tests/docker/dockerfiles/debian-tricore-cross.docker
+++ b/tests/docker/dockerfiles/debian-tricore-cross.docker
@@ -15,9 +15,47 @@  RUN git clone --single-branch \
         https://github.com/bkoppelmann/tricore-binutils.git \
         /usr/src/binutils && \
     cd /usr/src/binutils && chmod +x missing && \
-    CFLAGS=-w ./configure --prefix=/usr --disable-nls --target=tricore && \
-    make && make install && \
-    rm -rf /usr/src/binutils
+    CFLAGS=-w ./configure --prefix=/usr/local --disable-nls --target=tricore && \
+    make && make install
 
-# This image isn't designed for building QEMU but building tests
-ENV QEMU_CONFIGURE_OPTS --disable-system --disable-user
+FROM debian:buster-slim
+# Duplicate deb line as deb-src
+RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
+# Install QEMU build deps for use in CI
+RUN apt update && \
+    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
+    DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
+       build-essential \
+       git \
+       libglib2.0-dev \
+       libpixman-1-dev \
+       ninja-build \
+       python3 \
+       pkg-config
+       bzip2 \
+       ca-certificates \
+       ccache \
+       diffutils \
+       findutils \
+       g++ \
+       gcc \
+       git \
+       libcapstone-dev \
+       libfdt-dev \
+       libglib2.0-dev \
+       libpixman-1-dev \
+       libtest-harness-perl \
+       locales \
+       make \
+       ninja-build \
+       perl-base \
+       pkgconf \
+       python3-pip \
+       python3-setuptools \
+       python3-wheel
+COPY --from=0 /usr/local /usr/local
+ENV PATH $PATH:/usr/local/bin/
+
+# This image can only build a very minimal QEMU as well as the tests
+ENV DEF_TARGET_LIST tricore-softmmu
+ENV QEMU_CONFIGURE_OPTS --disable-user --disable-tools