[PATCH 1/1] ci: Add gitlab-ci.yml

Q. Gylstorff Quirin.Gylstorff at siemens.com
Thu Sep 3 15:57:00 CEST 2020


From: Quirin Gylstorff <quirin.gylstorff at siemens.com>

Derive .gitlab-ci.yml from .travis.yml to allow ci build on denx.gitlab.de.

Changes:
 - The base image is switched to debian:buster.

Signed-off-by: Quirin Gylstorff <quirin.gylstorff at siemens.com>
---
 .gitlab-ci.yml | 254 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 254 insertions(+)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..10d9ef8d6
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,254 @@
+#
+# Xenomai Real-Time System
+#
+# Copyright (c) Siemens AG, 2020
+#
+# Authors:
+#  Quirin Gylstorff <quirin.gylstorff at siemens.com>
+#
+# SPDX-License-Identifier: MIT
+
+stages:
+  - build
+
+default:
+  image: debian:buster
+
+variables:
+  GIT_STRATEGY: clone
+  KDIR: "/tmp/kernel"
+  USE_CCACHE: "1"
+  CCACHE_MAXSIZE: "400M"
+  IPIPE_MIRROR_URL: "https://gitlab.denx.de/Xenomai"
+  PACKAGES: "gcc-8 gcc-8-aarch64-linux-gnu libc6-dev-arm64-cross \
+             gcc-8-arm-linux-gnueabihf libc6-dev-armhf-cross \
+             gcc-8-powerpc-linux-gnu libc6-dev-powerpc-cross  \
+             u-boot-tools git make bc bison libelf-dev autotools-dev \
+             autoconf autogen libtool pkg-config ccache flex libssl-dev"
+
+.build:
+  stage: build
+  before_script:
+    - apt update
+    - apt install -y ${PACKAGES}
+    - update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800
+    - update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-8 800
+    - update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-8 800
+    - update-alternatives --install /usr/bin/powerpc-linux-gnu-gcc powerpc-linux-gnu-gcc /usr/bin/powerpc-linux-gnu-gcc-8 800
+    - REV=$(git ls-remote --tags --refs ${IPIPE_KERNEL} | sed "s|.*[[:space:]]refs/tags/||" | grep "${IPIPE_REV}" | sort -r -n -t - -k 5 -k 6 | head -1)
+    - test -n "${REV}" || REV="${IPIPE_REV}"
+    - echo $?
+    - git clone --depth 1 --branch ${REV} ${IPIPE_KERNEL} ${KDIR}
+    - case "${ARCH}" in
+      "arm64")
+      export CROSS_COMPILE=aarch64-linux-gnu-
+      export CONFIGURE_OPTS="--host=aarch64-linux-gnu --with-cc=aarch64-linux-gnu-gcc"
+      ;;
+      "arm")
+      export CROSS_COMPILE=arm-linux-gnueabihf-
+      export CONFIGURE_OPTS="--host=arm-linux-gnueabihf --with-cc=arm-linux-gnueabihf-gcc"
+      ;;
+      "powerpc")
+      export CROSS_COMPILE=powerpc-linux-gnu-
+      export CONFIGURE_OPTS="--host=powerpc-linux-gnu --with-cc=powerpc-linux-gnu-gcc"
+      ;;
+      "x86")
+      export CROSS_COMPILE=
+      export CONFIGURE_OPTS="--enable-dlopen-libs --enable-lazy-setsched"
+      ;;
+      esac
+    - mkdir ~/ccache
+    - ln -s /usr/bin/ccache ~/ccache/aarch64-linux-gnu-gcc
+    - ln -s /usr/bin/ccache ~/ccache/arm-linux-gnueabihf-gcc
+    - ln -s /usr/bin/ccache ~/ccache/powerpc-linux-gnu-gcc
+    - export PATH=~/ccache:$PATH
+    - ${CROSS_COMPILE}gcc --version
+
+  script:
+    - pushd ${KDIR}
+    - make -j $(nproc) ${KERNEL_DEFCONFIG}
+    # Generic settings
+    - ./scripts/config -d DEBUG_INFO
+    # I-pipe and Xenomai settings
+    - ./scripts/config -e IPIPE
+    - ./scripts/config -e XENOMAI
+    - ./scripts/config -e XENO_OPT_SCHED_CLASSES
+    - ./scripts/config -e XENO_OPT_SCHED_WEAK
+    - ./scripts/config -e XENO_OPT_SCHED_TP
+    - ./scripts/config -e XENO_OPT_SCHED_SPORADIC
+    - ./scripts/config -e XENO_OPT_SCHED_QUOTA
+    - ./scripts/config -e XENO_OPT_SHIRQ
+    - ./scripts/config -e XENO_OPT_SCALABLE_SCHED
+    - ./scripts/config -e XENO_OPT_DEBUG
+    - ./scripts/config -e XENO_OPT_DEBUG_COBALT
+    - ./scripts/config -e XENO_OPT_DEBUG_MEMORY
+    - ./scripts/config -e XENO_OPT_DEBUG_CONTEXT
+    - ./scripts/config -e XENO_OPT_DEBUG_USER
+    - ./scripts/config -e XENO_OPT_DEBUG_LEGACY
+    - ./scripts/config -e XENO_OPT_DEBUG_TRACE_RELAX
+    - ./scripts/config -e XENO_DRIVERS_16550A
+    - ./scripts/config -e XENO_DRIVERS_16550A_ANY
+    - ./scripts/config -e XENO_DRIVERS_16550A_PCI
+    - ./scripts/config -e XENO_DRIVERS_16550A_PCI_MOXA
+    - ./scripts/config -e XENO_DRIVERS_IMX_UART
+    - ./scripts/config -e XENO_DRIVERS_RTDMTEST
+    - ./scripts/config -e XENO_DRIVERS_CAN
+    - ./scripts/config -e XENO_DRIVERS_CAN_LOOPBACK
+    - ./scripts/config -e XENO_DRIVERS_CAN_VIRT
+    - ./scripts/config -e XENO_DRIVERS_CAN_FLEXCAN
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_ISA
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_MEM
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_PEAK_PCI
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_IXXAT_PCI
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_ADV_PCI
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_PLX_PCI
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_EMS_PCI
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_ESD_PCI
+    - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_PEAK_DNG
+    - ./scripts/config -m XENO_DRIVERS_NET
+    - ./scripts/config -e XENO_DRIVERS_RTNET_CHECKED
+    - ./scripts/config -e XENO_DRIVERS_NET_ETH_P_ALL
+    - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_NETROUTING
+    - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_ROUTER
+    - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_DEBUG
+    - ./scripts/config -m XENO_DRIVERS_NET_RTIPV4_TCP
+    - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_TCP_ERROR_INJECTION
+    - ./scripts/config -m XENO_DRIVERS_NET_NOMAC
+    - ./scripts/config -e XENO_DRIVERS_NET_RTCFG_DEBUG
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_PCNET32
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_TULIP
+    - ./scripts/config -e XENO_DRIVERS_NET_DRV_EEPRO100_DBG
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_E1000E
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_NATSEMI
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_VIA_RHINE
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_IGB
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_R8169
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_SMC91111
+    - ./scripts/config -e XENO_DRIVERS_NET_EXP_DRIVERS
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_3C59X
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_E1000_NEW
+    - ./scripts/config -m XENO_DRIVERS_NET_DRV_RT2500
+    - ./scripts/config -m XENO_DRIVERS_NET_ADDON_RTCAP
+    - ./scripts/config -m XENO_DRIVERS_NET_ADDON_PROXY
+    - ./scripts/config -e XENO_DRIVERS_NET_ADDON_PROXY_ARP
+    - ./scripts/config -e XENO_DRIVERS_ANALOGY
+    - ./scripts/config -e XENO_DRIVERS_ANALOGY_DEBUG
+    - ./scripts/config -e XENO_DRIVERS_ANALOGY_DEBUG_FTRACE
+    - ./scripts/config -e XENO_DRIVERS_ANALOGY_FAKE
+    - ./scripts/config -e XENO_DRIVERS_ANALOGY_NI_PCIMIO
+    - ./scripts/config -e XENO_DRIVERS_ANALOGY_S526
+    - ./scripts/config -e XENO_DRIVERS_RTIPC
+    - ./scripts/config -e XENO_DRIVERS_UDD
+    - ./scripts/config -e XENO_DRIVERS_GPIO
+    - ./scripts/config -e XENO_DRIVERS_GPIO_BCM2835
+    - ./scripts/config -e XENO_DRIVERS_GPIO_MXC
+    - ./scripts/config -e XENO_DRIVERS_GPIO_SUN8I_H3
+    - ./scripts/config -e XENO_DRIVERS_GPIO_ZYNQ7000
+    - ./scripts/config -e XENO_DRIVERS_GPIO_XILINX
+    - ./scripts/config -e XENO_DRIVERS_GPIO_OMAP
+    - ./scripts/config -e XENO_DRIVERS_GPIO_DEBUG
+    - ./scripts/config -e XENO_DRIVERS_GPIOPWM
+    - ./scripts/config -e XENO_DRIVERS_SPI_BCM2835
+    - ./scripts/config -e XENO_DRIVERS_SPI_SUN6I
+    - ./scripts/config -e XENO_DRIVERS_SPI_OMAP2_MCSPI_RT
+    - ./scripts/config -e XENO_DRIVERS_SPI_DEBUG
+    - popd
+    - scripts/prepare-kernel.sh --arch=${ARCH} --linux=${KDIR}
+    - pushd ${KDIR}
+    - make -j $(nproc) olddefconfig
+    - make -j $(nproc) all
+    - popd
+    - scripts/bootstrap
+    - ./configure --enable-smp ${CONFIGURE_OPTS}
+    - make -j $(nproc)
+    - ccache -s
+
+
+arm-4.19-release:
+  extends: .build
+  variables:
+    ARCH: arm
+    IPIPE_REV: ipipe-core-4.19..*-arm-.*
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-arm.git
+    KERNEL_DEFCONFIG: multi_v7_defconfig
+
+arm-4.14-release:
+  extends: .build
+  variables:
+    ARCH: arm
+    IPIPE_REV: ipipe-core-4.14..*-arm-.*
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-arm.git
+    KERNEL_DEFCONFIG: multi_v7_defconfig
+
+arm-4.4-cip-head:
+  extends: .build
+  variables:
+    ARCH: arm
+    IPIPE_REV: ipipe-4.4.y-cip
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe.git
+    KERNEL_DEFCONFIG: multi_v7_defconfig
+
+arm64-4.19-release:
+  extends: .build
+  variables:
+    ARCH: arm64
+    IPIPE_REV: ipipe-core-4.19..*-arm64-.*
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-arm64.git
+    KERNEL_DEFCONFIG: defconfig
+
+arm64-4.14-release:
+  extends: .build
+  variables:
+    ARCH: arm64
+    IPIPE_REV: ipipe-core-4.14..*-arm64-.*
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-arm64.git
+    KERNEL_DEFCONFIG: defconfig
+
+x86-4.19-cip-head:
+  extends: .build
+  variables:
+    ARCH: x86
+    IPIPE_REV: ipipe-x86-4.19.y-cip
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-x86.git
+    KERNEL_DEFCONFIG: x86_64_defconfig
+
+x86-4.19-cip-release:
+  extends: .build
+  variables:
+    ARCH: x86
+    IPIPE_REV: ipipe-core-4.19..*cip.*-x86-.*
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-x86.git
+    KERNEL_DEFCONFIG: x86_64_defconfig
+
+x86-4.14-release:
+  extends: .build
+  variables:
+    ARCH: x86
+    IPIPE_REV: ipipe-core-4.14..*-x86-.*
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-x86.git
+    KERNEL_DEFCONFIG: x86_64_defconfig
+
+x86-4.4-cip-head:
+  extends: .build
+  variables:
+    ARCH: x86
+    IPIPE_REV: ipipe-4.4.y-cip
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe.git
+    KERNEL_DEFCONFIG: x86_64_defconfig
+
+x86-4.4-cip-release:
+  extends: .build
+  variables:
+     ARCH: x86
+     IPIPE_REV: ipipe-core-4.4..*-cip.*-x86-.*
+     IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe.git
+     KERNEL_DEFCONFIG: x86_64_defconfig
+
+powerpc-4.19-release:
+  extends: .build
+  variables:
+    ARCH: powerpc
+    IPIPE_REV: ipipe-core-4.19..*-ppc32-.*
+    IPIPE_KERNEL: ${IPIPE_MIRROR_URL}/ipipe-ppc32.git
+    KERNEL_DEFCONFIG: mpc5200_defconfig
-- 
2.20.1




More information about the Xenomai mailing list