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?!)
This commit is contained in:
Thierry Laurion 2021-12-01 12:37:27 -05:00 committed by tlaurion
parent 2ddbd12f98
commit e492786d0a
3 changed files with 39 additions and 52 deletions

View File

@ -16,7 +16,7 @@ commands:
- run:
name: Make Board
command: |
rm -rf build/<<parameters.target>>/* build/log/* && make CPUS=32 V=1 BOARD=<<parameters.target>> <<parameters.subcommand>> || touch ./tmpDir/failed_build
rm -rf build/<<parameters.target>>/* build/log/* && make V=1 BOARD=<<parameters.target>> <<parameters.subcommand>> || 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:
# - librem_l1um
#- 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:
# - librem_l1um
#- 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_workstation
# target: kgpe-d16_workstation
# subcommand: ""
# requires:
# - librem_l1um
########################
########################

View File

@ -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)" )

View File

@ -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 := \