From 5e4309c1e19b58cb6c2ca9cddd11893c83afaa71 Mon Sep 17 00:00:00 2001 From: Thierry Laurion Date: Wed, 1 Dec 2021 12:37:27 -0500 Subject: [PATCH] CircleCI: fix #1058 and partly #984 CircleCI: We currently drop coreboot 4.11 builds. - There is a file missing in the builds. Not sure why/how this is happening src/soc/intel/fsp_broadwell_de/romstage/romstage.c:41:10: fatal error: build.h: No such file or directory Example:https://app.circleci.com/pipelines/github/tlaurion/heads/877/workflows/7d0248d2-459c-42ad-b741-8fd56a75d527/jobs/2487 - kgpe-d16_workstation building for all GPUs is unfortunately taking too much time to build (40 minutes). - Not sure why, but it seems that the kernel build paralellization is not working for 4.11 while it works for 4.13 Makefile: Uncomment MAKE_JOBS which passes the number of jobs to numbers cores by default and --max-load of 16 CircleCI: Remove CPUS statement to use Makefile default modules/newt: force build with one make job, otherwise there is a race condition in module which fails randomly expecting build modules. (TODO: FIX) Interestingly, building all coreboot 4.13 boards is happening on a clean commit just above 1h limit. More details: - CircleCI changed job build time to a maximum of 1h each. - CircleCI now permits parallelization of 30 jobs - 6000 build minutes a month. - Still waiting for osresearch/heads CircleCI project to be unlocked (currently not recognized as open source project?!) --- .circleci/config.yml | 89 ++++++++++++++++++-------------------------- Makefile | 2 +- modules/newt | 4 +- 3 files changed, 41 insertions(+), 54 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0fa84f0b7..f86264a57 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -16,7 +16,7 @@ commands: - run: name: Make Board command: | - rm -rf build/<>/* build/log/* && make CPUS=32 V=1 BOARD=<> <> || touch ./tmpDir/failed_build + rm -rf build/<>/* build/log/* && make V=1 BOARD=<> <> || touch ./tmpDir/failed_build no_output_timeout: 3h - run: name: Output build failing logs @@ -184,36 +184,21 @@ workflows: requires: - prep_env - # Coreboot 4.11 - #- build_and_persist: - # name: coreboot_411_buildstack - # target: kgpe-d16_workstation - # subcommand: coreboot - # requires: - # - heads_musl-cross - - # Coreboot 4.11 - #- build_and_persist: - # name: kgpe-d16_workstation - # target: kgpe-d16_workstation - # subcommand: coreboot - # requires: - # - coreboot_411_buildstack - - # Coreboot 4.13 - - build_and_persist: - name: coreboot_413_buildstack - target: x230-hotp-maximized - subcommand: coreboot - requires: - - heads_musl-cross # Coreboot 4.13 - build_and_persist: name: x230-hotp-maximized target: x230-hotp-maximized subcommand: "" requires: - - coreboot_413_buildstack + - heads_musl-cross + + # Coreboot 4.11 + #- build_and_persist: + # name: librem_l1um + # target: librem_l1um + # subcommand: "" + # requires: + # - x230-hotp-maximized - save_cache: requires: @@ -322,34 +307,34 @@ workflows: subcommand: "" requires: - x230-hotp-maximized + #KGPE-D16 turned off because CircleCI built time needs to be optimized. Kernel doesn't seem to enforce MAKE_JOBS properly + #- build: + # name: kgpe-d16_workstation-usb_keyboard + # target: kgpe-d16_workstation-usb_keyboard + # subcommand: "" + # requires: + # - librem_l1um - #- build: - #name: kgpe-d16_workstation-usb_keyboard - #target: kgpe-d16_workstation-usb_keyboard - #subcommand: "" - #requires: - #- x230-hotp-maximized - - #- build: - #name: kgpe-d16_server - #target: kgpe-d16_server - #subcommand: "" - #requires: - #- x230-hotp-maximized - - #- build: - #name: kgpe-d16_server-whiptail - #target: kgpe-d16_server-whiptail - #subcommand: "" - #requires: - #- x230-hotp-maximized - - #- build: - #name: librem_l1um - #target: librem_l1um - #subcommand: "" - #requires: - #- x230-hotp-maximized + #- build: + # name: kgpe-d16_server + # target: kgpe-d16_server + # subcommand: "" + # requires: + # - librem_l1um + + #- build: + # name: kgpe-d16_server-whiptail + # target: kgpe-d16_server-whiptail + # subcommand: "" + # requires: + # - librem_l1um + + #- build: + # name: kgpe-d16_workstation + # target: kgpe-d16_workstation + # subcommand: "" + # requires: + # - librem_l1um ######################## ######################## diff --git a/Makefile b/Makefile index 73e36190b..2223e102a 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ log_dir := $(build)/log # Controls how many parallel jobs are invoked in subshells CPUS ?= $(shell nproc) -#MAKE_JOBS ?= -j$(CPUS) --max-load 16 +MAKE_JOBS ?= -j$(CPUS) --max-load 16 # Create the log directory if it doesn't already exist BUILD_LOG := $(shell mkdir -p "$(log_dir)" ) diff --git a/modules/newt b/modules/newt index cc6341df6..5e927cbee 100644 --- a/modules/newt +++ b/modules/newt @@ -9,7 +9,9 @@ newt_url := https://releases.pagure.org/newt/$(newt_tar) newt_hash := 8d66ba6beffc3f786d4ccfee9d2b43d93484680ef8db9397a4fb70b5adbb6dbc newt_target := \ - $(MAKE_JOBS) \ + #We remove Makefile passed number of jobs to only pass one job, otherwise fails to build + #$(MAKE_JOBS) \ + -j1 \ $(CROSS_TOOLS) \ newt_output := \