From 3e4fae2465fe6d4a953a38e195536761d8ff19ee Mon Sep 17 00:00:00 2001 From: Ted Hess Date: Sat, 8 Dec 2018 17:12:08 -0500 Subject: [PATCH] CircleCI: [18.06] branch specific version. Add package checks and HASH verify from Travis. Fix build log generation. Signed-off-by: Ted Hess --- .circleci/config.yml | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 10e4f4f1e5..cc268cb490 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2.0 jobs: build: docker: - - image: docker.io/champtar/openwrtpackagesci@sha256:96ef72edc70cba371ea5676fba15ee25b3a94f538f648a27454b699edce61da0 + - image: docker.io/openwrtorg/packages-cci:v1.0.1 environment: - SDK_BASE_URL: "https://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic" - SDK_FILE: "openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz" @@ -69,8 +69,8 @@ jobs: sha256sum -c --ignore-missing sha256sums - run: - name: Prepare build_dir - working_directory: ~/build_dir + name: Prepare work_dir + working_directory: ~/work_dir command: | tar Jxf ~/sdk/$SDK_FILE --strip=1 cat > feeds.conf < /dev/null ./scripts/feeds install -a > /dev/null make defconfig > /dev/null + # enable BUILD_LOG + sed -i 's/# CONFIG_BUILD_LOG is not set/CONFIG_BUILD_LOG=y/' .config - run: - name: Download source/check/compile - working_directory: ~/build_dir + name: Download source, check package, compile + working_directory: ~/work_dir command: | + set +o pipefail PKGS=$(cd ~/openwrt_packages; git diff --diff-filter=d --name-only "origin/$BRANCH..." | grep 'Makefile$' | grep -v '/files/' | awk -F/ '{ print $(NF-1) }') if [ -z "$PKGS" ] ; then echo_blue "WARNING: No new or modified packages found!" @@ -97,9 +98,26 @@ jobs: echo_blue "=== Found new/modified packages: $PKGS" for PKG in $PKGS ; do - echo_blue "===+ Download/check: $PKG" + echo_blue "===+ Download: $PKG" make "package/$PKG/download" V=s - make "package/$PKG/check" V=s + + echo_blue "===+ Check package: $PKG" + make "package/$PKG/check" V=s 2>&1 | tee logtmp + RET=${PIPESTATUS[0]} + + if [ $RET -ne 0 ]; then + echo_red "=> Package check failed: $RET)" + exit $RET + fi + + badhash_msg="HASH does not match " + badhash_msg+="|HASH uses deprecated hash," + badhash_msg+="|HASH is missing," + if grep -qE "$badhash_msg" logtmp; then + echo_red "=> Package HASH check failed" + exit 1 + fi + echo_green "=> Package check OK" done for PKG in $PKGS ; do @@ -108,10 +126,10 @@ jobs: done - store_artifacts: - path: ~/build_dir/logs + path: ~/work_dir/logs - store_artifacts: - path: ~/build_dir/bin + path: ~/work_dir/bin workflows: version: 2