From a99cdc890911a54285206a04ea5f36e56fa3f775 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 10 Feb 2020 15:09:49 +0200 Subject: [PATCH] docker: allow to specify the branch to pull for various repos Declare an docker build-arg [1] and use it whenever cloning one of our repositories. If the buildarg is not specified, the variable defaults back to 'master' and thus the current behavior doesn't change. From the .gitlab-ci.yml file, when building pass the GST_UPSTREAM_BRANCH that's defined from the ci_template as the buildarg so we will be building the corresponding branches for the docker images. Close #33 [1] https://docs.docker.com/engine/reference/builder/#arg --- .gitlab-ci.yml | 6 +++--- docker/android/Dockerfile | 2 ++ docker/android/prepare.sh | 4 ++-- docker/build_manifest/Dockerfile | 4 +++- docker/cerbero/Dockerfile-fedora | 4 +++- docker/fedora/Dockerfile | 2 ++ docker/fedora/prepare.sh | 2 +- 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 760b7a10a1..b55554ed8d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,5 @@ +include: "gitlab/ci_template.yml" + stages: - "build docker" - "preparation" @@ -36,7 +38,7 @@ test manifest: - export _UID="${IMAGE}:${DATE}-${CI_JOB_ID}" - export LATEST="${IMAGE}:latest" - - docker build --pull -f ${DOCKERFILE} -t ${LATEST} ${CONTEXT_DIR} + - docker build --pull --build-arg DEFAULT_BRANCH=${GST_UPSTREAM_BRANCH} -f ${DOCKERFILE} -t ${LATEST} ${CONTEXT_DIR} # If we are in a fork, push the image to the reigstry regardless the branch - | @@ -110,8 +112,6 @@ android docker: DOCKERFILE: "docker/android/Dockerfile" extends: .base -include: "gitlab/ci_template.yml" - .build local: extends: '.build' when: 'manual' diff --git a/docker/android/Dockerfile b/docker/android/Dockerfile index 05a7ab49ae..f874ff01d2 100644 --- a/docker/android/Dockerfile +++ b/docker/android/Dockerfile @@ -3,6 +3,8 @@ FROM registry.fedoraproject.org/fedora:31 ENV ANDROID_HOME=/android/sdk ENV ANDROID_NDK_HOME=/android/ndk +ARG DEFAULT_BRANCH="master" + COPY prepare.sh cleanup.sh /root/ RUN /usr/bin/sh /root/prepare.sh && \ diff --git a/docker/android/prepare.sh b/docker/android/prepare.sh index 32843922be..4b01162692 100644 --- a/docker/android/prepare.sh +++ b/docker/android/prepare.sh @@ -37,11 +37,11 @@ mkdir $GSTREAMER_ROOT_ANDROID tar -xvf /android/sources/gstreamer-android.tar.xz -C $GSTREAMER_ROOT_ANDROID ls $GSTREAMER_ROOT_ANDROID -git clone https://gitlab.freedesktop.org/gstreamer/gst-examples.git /android/sources/gst-examples +git clone -b ${DEFAULT_BRANCH} https://gitlab.freedesktop.org/gstreamer/gst-examples.git /android/sources/gst-examples chmod +x /android/sources/gst-examples/playback/player/android/gradlew /android/sources/gst-examples/playback/player/android/gradlew --no-search-upward --no-daemon --project-dir /android/sources/gst-examples/playback/player/android dependencies --refresh-dependencies -git clone https://gitlab.freedesktop.org/gstreamer/gst-docs.git /android/sources/gst-docs +git clone -b ${DEFAULT_BRANCH} https://gitlab.freedesktop.org/gstreamer/gst-docs.git /android/sources/gst-docs chmod +x /android/sources/gst-docs/examples/tutorials/android/gradlew /android/sources/gst-docs/examples/tutorials/android/gradlew --no-search-upward --no-daemon --project-dir /android/sources/gst-docs/examples/tutorials/android dependencies --refresh-dependencies diff --git a/docker/build_manifest/Dockerfile b/docker/build_manifest/Dockerfile index a0b85bb35e..e3c4921e6f 100644 --- a/docker/build_manifest/Dockerfile +++ b/docker/build_manifest/Dockerfile @@ -1,5 +1,7 @@ FROM python:3.7.1-alpine +ARG DEFAULT_BRANCH="master" + RUN pip install requests RUN apk add git -RUN cd / && git clone https://gitlab.freedesktop.org/gstreamer/gst-ci.git \ No newline at end of file +RUN cd / && git clone -b ${DEFAULT_BRANCH:=master} https://gitlab.freedesktop.org/gstreamer/gst-ci.git diff --git a/docker/cerbero/Dockerfile-fedora b/docker/cerbero/Dockerfile-fedora index b3d22d9200..2347399ebc 100644 --- a/docker/cerbero/Dockerfile-fedora +++ b/docker/cerbero/Dockerfile-fedora @@ -2,6 +2,8 @@ FROM registry.fedoraproject.org/fedora:31 ENV TERM="dumb" +ARG DEFAULT_BRANCH="master" + # System setup RUN echo "fastestmirror=true" >> /etc/dnf/dnf.conf && \ dnf upgrade -y && \ @@ -11,7 +13,7 @@ RUN echo "fastestmirror=true" >> /etc/dnf/dnf.conf && \ RUN git config --global user.email "cerbero@gstreamer.freedesktop.org" && \ git config --global user.name "Cerbero Build System" -RUN git clone https://gitlab.freedesktop.org/gstreamer/cerbero.git && \ +RUN git clone -b ${DEFAULT_BRANCH} https://gitlab.freedesktop.org/gstreamer/cerbero.git && \ mkdir $HOME/.cerbero && \ echo "allow_parallel_build=True" > $HOME/.cerbero/cerbero.cbc && \ echo "use_ccache=True" >> $HOME/.cerbero/cerbero.cbc && \ diff --git a/docker/fedora/Dockerfile b/docker/fedora/Dockerfile index 56f9279c44..82abdd3a40 100644 --- a/docker/fedora/Dockerfile +++ b/docker/fedora/Dockerfile @@ -4,6 +4,8 @@ ENV RUSTUP_HOME=/usr/local/rustup \ CARGO_HOME=/usr/local/cargo \ PATH=/usr/local/cargo/bin:$PATH +ARG DEFAULT_BRANCH="master" + COPY prepare.sh cleanup.sh /root/ RUN /usr/bin/sh /root/prepare.sh && \ diff --git a/docker/fedora/prepare.sh b/docker/fedora/prepare.sh index 5b79d7ac2f..e52d8ccc3d 100644 --- a/docker/fedora/prepare.sh +++ b/docker/fedora/prepare.sh @@ -223,6 +223,6 @@ cargo --version rustc --version # get gst-build and make all subprojects available -git clone git://anongit.freedesktop.org/gstreamer/gst-build /gst-build/ +git clone -b ${DEFAULT_BRANCH} https://gitlab.freedesktop.org/gstreamer/gst-build.git /gst-build/ cd /gst-build meson subprojects download