[igt-dev] [PATCH i-g-t] gitlab-ci: add build for MIPS

Guillaume Tucker guillaume.tucker at collabora.com
Thu Jun 13 13:09:01 UTC 2019


On 06/06/2019 14:16, Arkadiusz Hiler wrote:
> On Wed, Jun 05, 2019 at 09:18:09PM +0100, Guillaume Tucker wrote:
>> Add Docker image and Gitlab CI steps to run builds for the MIPS
>> architecture using Debian Buster.
>>
>> Signed-off-by: Guillaume Tucker <guillaume.tucker at collabora.com>
>> ---
>>  .gitlab-ci.yml         | 28 ++++++++++++++++++++++++++++
>>  Dockerfile.debian-mips | 38 ++++++++++++++++++++++++++++++++++++++
>>  meson-cross-mips.txt   | 12 ++++++++++++
>>  3 files changed, 78 insertions(+)
>>  create mode 100644 Dockerfile.debian-mips
>>  create mode 100644 meson-cross-mips.txt
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index 771143a9ea95..e390f8f472d5 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -90,6 +90,17 @@ build:tests-debian-meson-arm64:
>>      paths:
>>        - build
>>  
>> +build:tests-debian-meson-mips:
>> +  image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
>> +  stage: build
>> +  script:
>> +    - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
>> +    - meson --cross-file meson-cross-mips.txt build
>> +    - ninja -C build
>> +  artifacts:
>> +    paths:
>> +      - build
>> +
>>  build:tests-debian-autotools:
>>    image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
>>    stage: build
>> @@ -221,6 +232,23 @@ containers:igt-debian-arm64:
>>      - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64 -f Dockerfile.debian-arm64 .
>>      - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64
>>  
>> +containers:igt-debian-mips:
>> +  stage: containers
>> +  image: docker:stable
>> +  only:
>> +    changes:
>> +      - Dockerfile.debian-mips
>> +      - .gitlab-ci.yml
>> +  services:
>> +    - docker:dind
>> +  variables:
>> +    DOCKER_HOST: tcp://docker:2375
>> +    DOCKER_DRIVER: overlay2
>> +  script:
>> +    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
>> +    - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips -f Dockerfile.debian-mips .
>> +    - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips
>> +
>>  containers:igt-fedora:
>>    stage: containers
>>    image: docker:stable
>> diff --git a/Dockerfile.debian-mips b/Dockerfile.debian-mips
>> new file mode 100644
>> index 000000000000..2612b7b148e3
>> --- /dev/null
>> +++ b/Dockerfile.debian-mips
>> @@ -0,0 +1,38 @@
>> +FROM debian:buster
> 
> Any particular reason you went here for buster instead of
> stretch-backports like with other images? I am not very fluent in
> Debian.

Well, not really.  I was rather seeing the other side of this,
i.e. why use stretch-backports when we can just use buster?  It's
now frozen so it's good enough to use and should in principle be
officially released next month.

But that's just a detail, I've reworked the patch with
stretch-backports and it works just the same.  It's probably
better to keep all the Debian Docker images on the same distro,
so stick to Stretch now and upgrade them to Buster later.  I'll
send a v2 with stretch-backports (and libatomic added).

Guillaume

> Other than that looks good to land after the atomic compatibility fixes.
> 
>> +
>> +RUN apt-get update
>> +RUN apt-get install -y \
>> +			flex \
>> +			bison \
>> +			pkg-config \
>> +			x11proto-dri2-dev \
>> +			python-docutils \
>> +			valgrind \
>> +			peg
>> +
>> +RUN dpkg --add-architecture mips
>> +RUN apt-get update
>> +RUN apt-get install -y \
>> +			gcc-mips-linux-gnu \
>> +			libpciaccess-dev:mips \
>> +			libkmod-dev:mips \
>> +			libprocps-dev:mips \
>> +			libunwind-dev:mips \
>> +			libdw-dev:mips \
>> +			zlib1g-dev:mips \
>> +			liblzma-dev:mips \
>> +			libcairo-dev:mips \
>> +			libpixman-1-dev:mips \
>> +			libudev-dev:mips \
>> +			libgsl-dev:mips \
>> +			libasound2-dev:mips \
>> +			libjson-c-dev:mips \
>> +			libcurl4-openssl-dev:mips \
>> +			libxrandr-dev:mips \
>> +			libxv-dev:mips
>> +
>> +RUN apt-get install -y \
>> +			meson \
>> +			libdrm-dev:mips \
>> +			qemu-user \
>> +			qemu-user-static
>> diff --git a/meson-cross-mips.txt b/meson-cross-mips.txt
>> new file mode 100644
>> index 000000000000..6350d677e0bc
>> --- /dev/null
>> +++ b/meson-cross-mips.txt
>> @@ -0,0 +1,12 @@
>> +[binaries]
>> +c = '/usr/bin/mips-linux-gnu-gcc'
>> +ar = '/usr/bin/mips-linux-gnu-gcc-ar'
>> +strip = '/usr/bin/mips-linux-gnu-strip'
>> +pkgconfig = 'pkg-config'
>> +exe_wrapper = 'qemu-mips'
>> +
>> +[host_machine]
>> +system = 'linux'
>> +cpu_family = 'mips'
>> +cpu = 'mips'
>> +endian = 'big'
>> -- 
>> 2.20.1
>>



More information about the igt-dev mailing list