diff mbox series

[i-g-t,v3,1/1] gitlab-ci: add build and tests for MIPS

Message ID 20190618124221.62715-1-guillaume.tucker@collabora.com (mailing list archive)
State New, archived
Headers show
Series [i-g-t,v3,1/1] gitlab-ci: add build and tests for MIPS | expand

Commit Message

Guillaume Tucker June 18, 2019, 12:42 p.m. UTC
Add Docker image and Gitlab CI steps to run builds and tests for the
MIPS architecture using Debian Stretch with backports.

Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
---

Notes:
    v2: use stretch-backports and require libatomic1
    v3: add mips ci tests and require Debian libatomic1 for mips

 .gitlab-ci.yml         | 42 ++++++++++++++++++++++++++++++++++++++++++
 Dockerfile.debian-mips | 39 +++++++++++++++++++++++++++++++++++++++
 meson-cross-mips.txt   | 12 ++++++++++++
 3 files changed, 93 insertions(+)
 create mode 100644 Dockerfile.debian-mips
 create mode 100644 meson-cross-mips.txt

Comments

Guillaume Tucker June 25, 2019, 1:08 p.m. UTC | #1
On 18/06/2019 13:42, Guillaume Tucker wrote:
> Add Docker image and Gitlab CI steps to run builds and tests for the
> MIPS architecture using Debian Stretch with backports.
> 
> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> ---
> 
> Notes:
>     v2: use stretch-backports and require libatomic1
>     v3: add mips ci tests and require Debian libatomic1 for mips

The series to use portable atomics functions was merged today, so
I think this one should now be good to go as well.  It applies
cleanly on top of the current master branch and the Gitlab CI
pipeline passed:

  https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/pipelines/44704

Please let me know if you want me to resubmit it to get another
Patchwork CI run or if anything else needs to be done.

Guillaume

>  .gitlab-ci.yml         | 42 ++++++++++++++++++++++++++++++++++++++++++
>  Dockerfile.debian-mips | 39 +++++++++++++++++++++++++++++++++++++++
>  meson-cross-mips.txt   | 12 ++++++++++++
>  3 files changed, 93 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..bd9619e7e28b 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
> @@ -145,6 +156,20 @@ test:ninja-test-armhf:
>        - build
>      when: on_failure
>  
> +test:ninja-test-mips:
> +  image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
> +  dependencies:
> +    - build:tests-debian-meson-mips
> +  stage: test
> +  script:
> +    - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
> +    - env > build/envdump.txt
> +    - ninja -C build test
> +  artifacts:
> +    paths:
> +      - build
> +    when: on_failure
> +
>  test:test-list-diff:
>    dependencies:
>      - build:tests-debian-autotools
> @@ -221,6 +246,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..ee29f5f4ccda
> --- /dev/null
> +++ b/Dockerfile.debian-mips
> @@ -0,0 +1,39 @@
> +FROM debian:stretch-backports
> +
> +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 \
> +			libatomic1:mips \
> +			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 -t stretch-backports -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'
>
Ser, Simon June 27, 2019, 7:02 a.m. UTC | #2
On Tue, 2019-06-25 at 14:08 +0100, Guillaume Tucker wrote:
> On 18/06/2019 13:42, Guillaume Tucker wrote:
> > Add Docker image and Gitlab CI steps to run builds and tests for
> > the
> > MIPS architecture using Debian Stretch with backports.
> > 
> > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > ---
> > 
> > Notes:
> >     v2: use stretch-backports and require libatomic1
> >     v3: add mips ci tests and require Debian libatomic1 for mips
> 
> The series to use portable atomics functions was merged today, so
> I think this one should now be good to go as well.  It applies
> cleanly on top of the current master branch and the Gitlab CI
> pipeline passed:
> 
>   
> https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/pipelines/44704
> 
> Please let me know if you want me to resubmit it to get another
> Patchwork CI run or if anything else needs to be done.

LGTM!

Reviewed-by: Simon Ser <simon.ser@intel.com>

And pushed:

To gitlab.freedesktop.org:drm/igt-gpu-tools.git
   15ad66453441..439a9f5d615f  master -> master

> Guillaume
> 
> >  .gitlab-ci.yml         | 42
> > ++++++++++++++++++++++++++++++++++++++++++
> >  Dockerfile.debian-mips | 39
> > +++++++++++++++++++++++++++++++++++++++
> >  meson-cross-mips.txt   | 12 ++++++++++++
> >  3 files changed, 93 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..bd9619e7e28b 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
> > @@ -145,6 +156,20 @@ test:ninja-test-armhf:
> >        - build
> >      when: on_failure
> >  
> > +test:ninja-test-mips:
> > +  image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
> > +  dependencies:
> > +    - build:tests-debian-meson-mips
> > +  stage: test
> > +  script:
> > +    - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
> > +    - env > build/envdump.txt
> > +    - ninja -C build test
> > +  artifacts:
> > +    paths:
> > +      - build
> > +    when: on_failure
> > +
> >  test:test-list-diff:
> >    dependencies:
> >      - build:tests-debian-autotools
> > @@ -221,6 +246,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..ee29f5f4ccda
> > --- /dev/null
> > +++ b/Dockerfile.debian-mips
> > @@ -0,0 +1,39 @@
> > +FROM debian:stretch-backports
> > +
> > +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 \
> > +			libatomic1:mips \
> > +			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 -t stretch-backports -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'
> >
Guillaume Tucker June 27, 2019, 10:02 a.m. UTC | #3
On 27/06/2019 08:02, Ser, Simon wrote:
> On Tue, 2019-06-25 at 14:08 +0100, Guillaume Tucker wrote:
>> On 18/06/2019 13:42, Guillaume Tucker wrote:
>>> Add Docker image and Gitlab CI steps to run builds and tests for
>>> the
>>> MIPS architecture using Debian Stretch with backports.
>>>
>>> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
>>> ---
>>>
>>> Notes:
>>>     v2: use stretch-backports and require libatomic1
>>>     v3: add mips ci tests and require Debian libatomic1 for mips
>>
>> The series to use portable atomics functions was merged today, so
>> I think this one should now be good to go as well.  It applies
>> cleanly on top of the current master branch and the Gitlab CI
>> pipeline passed:
>>
>>   
>> https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/pipelines/44704
>>
>> Please let me know if you want me to resubmit it to get another
>> Patchwork CI run or if anything else needs to be done.
> 
> LGTM!
> 
> Reviewed-by: Simon Ser <simon.ser@intel.com>
> 
> And pushed:
> 
> To gitlab.freedesktop.org:drm/igt-gpu-tools.git
>    15ad66453441..439a9f5d615f  master -> master

Thanks!

Err, however it looks like you pushed the v2 which had only
builds rather than this v3 which does builds and tests:

  439a9f5d615f gitlab-ci: add build for MIPS

I've made another patch with the difference between v2 and v3 and
pushed it to my branch:

  https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/commit/9693e28871f27efb7340ad29d54de4be7b5461a9

I'll wait for the Gitlab CI pipeline to complete and then I guess
I should send that to the mailing list.

Guillaume

>>>  .gitlab-ci.yml         | 42
>>> ++++++++++++++++++++++++++++++++++++++++++
>>>  Dockerfile.debian-mips | 39
>>> +++++++++++++++++++++++++++++++++++++++
>>>  meson-cross-mips.txt   | 12 ++++++++++++
>>>  3 files changed, 93 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..bd9619e7e28b 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
>>> @@ -145,6 +156,20 @@ test:ninja-test-armhf:
>>>        - build
>>>      when: on_failure
>>>  
>>> +test:ninja-test-mips:
>>> +  image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
>>> +  dependencies:
>>> +    - build:tests-debian-meson-mips
>>> +  stage: test
>>> +  script:
>>> +    - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
>>> +    - env > build/envdump.txt
>>> +    - ninja -C build test
>>> +  artifacts:
>>> +    paths:
>>> +      - build
>>> +    when: on_failure
>>> +
>>>  test:test-list-diff:
>>>    dependencies:
>>>      - build:tests-debian-autotools
>>> @@ -221,6 +246,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..ee29f5f4ccda
>>> --- /dev/null
>>> +++ b/Dockerfile.debian-mips
>>> @@ -0,0 +1,39 @@
>>> +FROM debian:stretch-backports
>>> +
>>> +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 \
>>> +			libatomic1:mips \
>>> +			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 -t stretch-backports -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'
>>>
Ser, Simon June 27, 2019, 1:14 p.m. UTC | #4
On Thu, 2019-06-27 at 11:02 +0100, Guillaume Tucker wrote:
> On 27/06/2019 08:02, Ser, Simon wrote:
> > On Tue, 2019-06-25 at 14:08 +0100, Guillaume Tucker wrote:
> > > On 18/06/2019 13:42, Guillaume Tucker wrote:
> > > > Add Docker image and Gitlab CI steps to run builds and tests for
> > > > the
> > > > MIPS architecture using Debian Stretch with backports.
> > > > 
> > > > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > > > ---
> > > > 
> > > > Notes:
> > > >     v2: use stretch-backports and require libatomic1
> > > >     v3: add mips ci tests and require Debian libatomic1 for mips
> > > 
> > > The series to use portable atomics functions was merged today, so
> > > I think this one should now be good to go as well.  It applies
> > > cleanly on top of the current master branch and the Gitlab CI
> > > pipeline passed:
> > > 
> > >   
> > > https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/pipelines/44704
> > > 
> > > Please let me know if you want me to resubmit it to get another
> > > Patchwork CI run or if anything else needs to be done.
> > 
> > LGTM!
> > 
> > Reviewed-by: Simon Ser <simon.ser@intel.com>
> > 
> > And pushed:
> > 
> > To gitlab.freedesktop.org:drm/igt-gpu-tools.git
> >    15ad66453441..439a9f5d615f  master -> master
> 
> Thanks!
> 
> Err, however it looks like you pushed the v2 which had only
> builds rather than this v3 which does builds and tests:
> 
>   439a9f5d615f gitlab-ci: add build for MIPS
> 
> I've made another patch with the difference between v2 and v3 and
> pushed it to my branch:
> 
>   https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/commit/9693e28871f27efb7340ad29d54de4be7b5461a9
> 
> I'll wait for the Gitlab CI pipeline to complete and then I guess
> I should send that to the mailing list.

Bleh, I'm sorry about this! It seems like patchwork got confused.

I'll gladly review and merge a fix, feel free to Cc me :)

> Guillaume
> 
> > > >  .gitlab-ci.yml         | 42
> > > > ++++++++++++++++++++++++++++++++++++++++++
> > > >  Dockerfile.debian-mips | 39
> > > > +++++++++++++++++++++++++++++++++++++++
> > > >  meson-cross-mips.txt   | 12 ++++++++++++
> > > >  3 files changed, 93 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..bd9619e7e28b 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
> > > > @@ -145,6 +156,20 @@ test:ninja-test-armhf:
> > > >        - build
> > > >      when: on_failure
> > > >  
> > > > +test:ninja-test-mips:
> > > > +  image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
> > > > +  dependencies:
> > > > +    - build:tests-debian-meson-mips
> > > > +  stage: test
> > > > +  script:
> > > > +    - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
> > > > +    - env > build/envdump.txt
> > > > +    - ninja -C build test
> > > > +  artifacts:
> > > > +    paths:
> > > > +      - build
> > > > +    when: on_failure
> > > > +
> > > >  test:test-list-diff:
> > > >    dependencies:
> > > >      - build:tests-debian-autotools
> > > > @@ -221,6 +246,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..ee29f5f4ccda
> > > > --- /dev/null
> > > > +++ b/Dockerfile.debian-mips
> > > > @@ -0,0 +1,39 @@
> > > > +FROM debian:stretch-backports
> > > > +
> > > > +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 \
> > > > +			libatomic1:mips \
> > > > +			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 -t stretch-backports -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'
> > > >
Arkadiusz Hiler June 27, 2019, 1:19 p.m. UTC | #5
On Thu, Jun 27, 2019 at 04:14:53PM +0300, Ser, Simon wrote:
> On Thu, 2019-06-27 at 11:02 +0100, Guillaume Tucker wrote:
> > On 27/06/2019 08:02, Ser, Simon wrote:
> > > On Tue, 2019-06-25 at 14:08 +0100, Guillaume Tucker wrote:
> > > > On 18/06/2019 13:42, Guillaume Tucker wrote:
> > > > > Add Docker image and Gitlab CI steps to run builds and tests for
> > > > > the
> > > > > MIPS architecture using Debian Stretch with backports.
> > > > > 
> > > > > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > > > > ---
> > > > > 
> > > > > Notes:
> > > > >     v2: use stretch-backports and require libatomic1
> > > > >     v3: add mips ci tests and require Debian libatomic1 for mips
> > > > 
> > > > The series to use portable atomics functions was merged today, so
> > > > I think this one should now be good to go as well.  It applies
> > > > cleanly on top of the current master branch and the Gitlab CI
> > > > pipeline passed:
> > > > 
> > > >   
> > > > https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/pipelines/44704
> > > > 
> > > > Please let me know if you want me to resubmit it to get another
> > > > Patchwork CI run or if anything else needs to be done.
> > > 
> > > LGTM!
> > > 
> > > Reviewed-by: Simon Ser <simon.ser@intel.com>
> > > 
> > > And pushed:
> > > 
> > > To gitlab.freedesktop.org:drm/igt-gpu-tools.git
> > >    15ad66453441..439a9f5d615f  master -> master
> > 
> > Thanks!
> > 
> > Err, however it looks like you pushed the v2 which had only
> > builds rather than this v3 which does builds and tests:
> > 
> >   439a9f5d615f gitlab-ci: add build for MIPS
> > 
> > I've made another patch with the difference between v2 and v3 and
> > pushed it to my branch:
> > 
> >   https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/commit/9693e28871f27efb7340ad29d54de4be7b5461a9
> > 
> > I'll wait for the Gitlab CI pipeline to complete and then I guess
> > I should send that to the mailing list.
> 
> Bleh, I'm sorry about this! It seems like patchwork got confused.
> 
> I'll gladly review and merge a fix, feel free to Cc me :)

The title of the first patch has changed, so patchwork treats it as a
separate series instead of a revision to existing one.

It's safer to take the patchwork links (both to series and the mbox)
from the CI results instead of trying to browse for them yourself.
Ser, Simon June 27, 2019, 2:53 p.m. UTC | #6
On Thu, 2019-06-27 at 16:19 +0300, Arkadiusz Hiler wrote:
> On Thu, Jun 27, 2019 at 04:14:53PM +0300, Ser, Simon wrote:
> > On Thu, 2019-06-27 at 11:02 +0100, Guillaume Tucker wrote:
> > > On 27/06/2019 08:02, Ser, Simon wrote:
> > > > On Tue, 2019-06-25 at 14:08 +0100, Guillaume Tucker wrote:
> > > > > On 18/06/2019 13:42, Guillaume Tucker wrote:
> > > > > > Add Docker image and Gitlab CI steps to run builds and tests for
> > > > > > the
> > > > > > MIPS architecture using Debian Stretch with backports.
> > > > > > 
> > > > > > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > > > > > ---
> > > > > > 
> > > > > > Notes:
> > > > > >     v2: use stretch-backports and require libatomic1
> > > > > >     v3: add mips ci tests and require Debian libatomic1 for mips
> > > > > 
> > > > > The series to use portable atomics functions was merged today, so
> > > > > I think this one should now be good to go as well.  It applies
> > > > > cleanly on top of the current master branch and the Gitlab CI
> > > > > pipeline passed:
> > > > > 
> > > > >   
> > > > > https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/pipelines/44704
> > > > > 
> > > > > Please let me know if you want me to resubmit it to get another
> > > > > Patchwork CI run or if anything else needs to be done.
> > > > 
> > > > LGTM!
> > > > 
> > > > Reviewed-by: Simon Ser <simon.ser@intel.com>
> > > > 
> > > > And pushed:
> > > > 
> > > > To gitlab.freedesktop.org:drm/igt-gpu-tools.git
> > > >    15ad66453441..439a9f5d615f  master -> master
> > > 
> > > Thanks!
> > > 
> > > Err, however it looks like you pushed the v2 which had only
> > > builds rather than this v3 which does builds and tests:
> > > 
> > >   439a9f5d615f gitlab-ci: add build for MIPS
> > > 
> > > I've made another patch with the difference between v2 and v3 and
> > > pushed it to my branch:
> > > 
> > >   https://gitlab.freedesktop.org/gtucker/igt-gpu-tools/commit/9693e28871f27efb7340ad29d54de4be7b5461a9
> > > 
> > > I'll wait for the Gitlab CI pipeline to complete and then I guess
> > > I should send that to the mailing list.
> > 
> > Bleh, I'm sorry about this! It seems like patchwork got confused.
> > 
> > I'll gladly review and merge a fix, feel free to Cc me :)
> 
> The title of the first patch has changed, so patchwork treats it as a
> separate series instead of a revision to existing one.
> 
> It's safer to take the patchwork links (both to series and the mbox)
> from the CI results instead of trying to browse for them yourself.

Yeah, this makes sense. Thanks for the info!
diff mbox series

Patch

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 771143a9ea95..bd9619e7e28b 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
@@ -145,6 +156,20 @@  test:ninja-test-armhf:
       - build
     when: on_failure
 
+test:ninja-test-mips:
+  image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
+  dependencies:
+    - build:tests-debian-meson-mips
+  stage: test
+  script:
+    - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
+    - env > build/envdump.txt
+    - ninja -C build test
+  artifacts:
+    paths:
+      - build
+    when: on_failure
+
 test:test-list-diff:
   dependencies:
     - build:tests-debian-autotools
@@ -221,6 +246,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..ee29f5f4ccda
--- /dev/null
+++ b/Dockerfile.debian-mips
@@ -0,0 +1,39 @@ 
+FROM debian:stretch-backports
+
+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 \
+			libatomic1:mips \
+			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 -t stretch-backports -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'