Skip to content

Commit

Permalink
CircleCI: fix #1058 and partly #984
Browse files Browse the repository at this point in the history
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?!)
  • Loading branch information
tlaurion committed Dec 1, 2021
1 parent 4356777 commit 8f9ccae
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 54 deletions.
89 changes: 37 additions & 52 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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

########################
########################
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)" )
Expand Down
4 changes: 3 additions & 1 deletion modules/newt
Original file line number Diff line number Diff line change
Expand Up @@ -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 := \
Expand Down

0 comments on commit 8f9ccae

Please sign in to comment.