version: 2 jobs: build: docker: - image: debian:10 steps: - run: name: Install dependencies command: | apt update apt install -y build-essential zlib1g-dev uuid-dev libdigest-sha-perl libelf-dev bc bzip2 bison flex git gnupg iasl m4 nasm patch python python2 python3 wget gnat cpio ccache pkg-config cmake libusb-1.0-0-dev autoconf texinfo ncurses-dev doxygen graphviz udev libudev1 libudev-dev automake libtool rsync innoextract - checkout - run: name: git reset command: | git reset --hard "$CIRCLE_SHA1" \ - run: name: Creating all modules and patches digest command: | find ./patches/ ./modules/ -type f | sort -h |xargs sha256sum > /tmp/all_modules_and_patches.sha256sums \ - run: name: Creating musl-cross-make and musl-cross-make patches digest command: | find modules/musl-cross* -type f | sort -h | xargs sha256sum > /tmp/musl-cross_module_and_patches.sha256sums \ - restore_cache: keys: #Restore existing cache for modules checksums validated to be exactly the same as in github current commit - heads-modules-and-patches-{{ checksum "/tmp/all_modules_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }} #If precedent fails. Restore cache for musl-cross module checksum validated to be exactly the same as in github current commit - heads-cross-musl-{{ checksum "/tmp/musl-cross_module_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }} # linuxboot steps need something to pass in the kernel header path # skipping for now # - run: # name: qemu-linuxboot-edk2 # command: | # ./build/make-4.2.1/make \ # CROSS=/cross/bin/x86_64-linux-musl- \ # BOARD=qemu-linuxboot \ # `/bin/pwd`/build/linuxboot-git/build/qemu/.configured \ # # Run first to avoid too many processes # # - run: # name: qemu-linuxboot # command: | # ./build/make-4.2.1/make \ # CROSS=/cross/bin/x86_64-linux-musl- \ # CPUS=4 \ # V=1 \ # BOARD=qemu-linuxboot \ # # - store-artifacts: # path: build/qemu-linuxboot/linuxboot.rom # - store-artifacts: # path: build/qemu-linuxboot/hashes.txt - run: name: kgpe-d16_workstation command: | rm -rf build/kgpe-d16_workstation/* build/log/* && \ make CPUS=4 V=1 BOARD=kgpe-d16_workstation || \ (find ./build/ -name "*.log" -type f -mmin -1 | while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log; done; exit 1) \ no_output_timeout: 3h - run: name: Ouput kgpe-d16_workstation hashes command: | cat build/kgpe-d16_workstation/hashes.txt \ - run: name: Archiving build logs for kgpe-d16_workstation command: | tar zcvf build/kgpe-d16_workstation/logs.tar.gz build/log/* - store-artifacts: path: build/kgpe-d16_workstation - run: name: kgpe-d16_workstation-usb_keyboard command: | rm -rf build/kgpe-d16_workstation-usb_keyboard/* build/log/* && \ make CPUS=4 V=1 BOARD=kgpe-d16_workstation-usb_keyboard || \ (find ./build/ -name "*.log" -type f -mmin -1 | while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log; done; exit 1) \ no_output_timeout: 3h - run: name: Ouput kgpe-d16_workstation-usb_keyboard hashes command: | cat build/kgpe-d16_workstation-usb_keyboard/hashes.txt \ - run: name: Archiving build logs for kgpe-d16_workstation-usb_keyboard command: | tar zcvf build/kgpe-d16_workstation-usb_keyboard/logs.tar.gz build/log/* - store-artifacts: path: build/kgpe-d16_workstation-usb_keyboard - run: name: kgpe-d16_server command: | rm -rf build/kgpe-d16_server/* build/log/* && \ make CPUS=4 V=1 BOARD=kgpe-d16_server || \ (find ./build/ -name "*.log" -type f -mmin -1 | while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log; done; exit 1) \ no_output_timeout: 3h - run: name: Ouput kgpe-d16_server hashes command: | cat build/kgpe-d16_server/hashes.txt \ - run: name: Archiving build logs for kgpe-d16_server command: | tar zcvf build/kgpe-d16_server/logs.tar.gz build/log/* - store-artifacts: path: build/kgpe-d16_server - run: name: kgpe-d16_server-whiptail command: | rm -rf build/kgpe-d16_server-whiptail/* build/log/* && \ make CPUS=4 V=1 BOARD=kgpe-d16_server-whiptail || \ (find ./build/ -name "*.log" -type f -mmin -1 | while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log; done; exit 1) \ no_output_timeout: 3h - run: name: Ouput kgpe-d16_server-whiptail hashes command: | cat build/kgpe-d16_server-whiptail/hashes.txt \ - run: name: Archiving build logs for kgpe-d16_server-whiptail command: | tar zcvf build/kgpe-d16_server-whiptail/logs.tar.gz build/log/* - store-artifacts: path: build/kgpe-d16_server-whiptail - run: name: librem_l1um command: | rm -rf build/librem_l1um/* build/log/* && make CPUS=4 V=1 BOARD=librem_l1um || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi \ - run: name: Output librem_l1um hashes command: | cat build/librem_l1um/hashes.txt \ - run: name: Archiving build logs for librem_l1um command: | tar zcvf build/librem_l1um/logs.tar.gz build/log/* - store-artifacts: path: build/librem_l1um - run: name: librem_mini command: | rm -rf build/librem_mini/* build/log/* && make CPUS=4 V=1 BOARD=librem_mini || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output librem_mini hashes command: | cat build/librem_mini/hashes.txt \ - run: name: Archiving build logs for librem_mini command: | tar zcvf build/librem_mini/logs.tar.gz build/log/* - store-artifacts: path: build/librem_mini - run: name: librem_mini_v2 command: | rm -rf build/librem_mini_v2/* build/log/* && make CPUS=4 V=1 BOARD=librem_mini_v2 || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output librem_mini_v2 hashes command: | cat build/librem_mini_v2/hashes.txt \ - run: name: Archiving build logs for librem_mini_v2 command: | tar zcvf build/librem_mini_v2/logs.tar.gz build/log/* - store-artifacts: path: build/librem_mini_v2 - run: name: Download and neuter xx20 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx20/download_parse_me.sh - run: name: x220-hotp-maximized command: | rm -rf build/x220-hotp-maximized/* build/log/* && make CPUS=4 V=1 BOARD=x220-hotp-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi \ - run: name: Output x220-hotp-maximized hashes command: | cat build/x220-hotp-maximized/hashes.txt \ - run: name: Archiving build logs for x220-hotp-maximized command: | tar zcvf build/x220-hotp-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/x220-hotp-maximized - run: name: Download and neuter xx20 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx20/download_parse_me.sh - run: name: x220-maximized command: | rm -rf build/x220-maximized/* build/log/* && make CPUS=4 V=1 BOARD=x220-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi \ - run: name: Output x220-maximized hashes command: | cat build/x220-maximized/hashes.txt \ - run: name: Archiving build logs for x220-maximized command: | tar zcvf build/x220-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/x220-maximized - run: name: Download and neuter xx20 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx20/download_parse_me.sh - run: name: t420-hotp-maximized command: | rm -rf build/t420-hotp-maximized/* build/log/* && make CPUS=4 V=1 BOARD=t420-hotp-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output t420-hotp-maximized hashes command: | cat build/t420-hotp-maximized/hashes.txt \ - run: name: Archiving build logs for t420-hotp-maximized command: | tar zcvf build/t420-hotp-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/t420-hotp-maximized - run: name: Download and neuter xx20 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx20/download_parse_me.sh - run: name: t420-maximized command: | rm -rf build/t420-maximized/* build/log/* && make CPUS=4 V=1 BOARD=t420-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output t420-maximized hashes command: | cat build/t420-maximized/hashes.txt \ - run: name: Archiving build logs for t420-maximized command: | tar zcvf build/t420-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/t420-maximized - run: name: x230-flash command: | rm -rf build/x230-flash/* build/log/* && make CPUS=4 V=1 BOARD=x230-flash || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output x230-flash hashes command: | cat build/x230-flash/hashes.txt \ - run: name: Archiving build logs for x230-flash command: | tar zcvf build/x230-flash/logs.tar.gz build/log/* - store-artifacts: path: build/x230-flash - run: name: t430-flash command: | rm -rf build/t430-flash/* build/log/* && make CPUS=4 V=1 BOARD=t430-flash || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output t430-flash hashes command: | cat build/t430-flash/hashes.txt \ - run: name: Archiving build logs for t430-flash command: | tar zcvf build/t430-flash/logs.tar.gz build/log/* - store-artifacts: path: build/t430-flash - run: name: t430 command: | rm -rf build/t430/* build/log/* && make CPUS=4 V=1 BOARD=t430 || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output t430 hashes command: | cat build/t430/hashes.txt \ - run: name: Archiving build logs for t430 command: | tar zcvf build/t430/logs.tar.gz build/log/* - store-artifacts: path: build/t430 - run: name: x230 command: | rm -rf build/x230/* build/log/* && make CPUS=4 V=1 BOARD=x230 || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output x230 hashes command: | cat build/x230/hashes.txt \ - run: name: Archiving build logs for x230 command: | tar zcvf build/x230/logs.tar.gz build/log/* - store-artifacts: path: build/x230 - run: name: x230-hotp-verification command: | rm -rf build/x230-hotp-verification/* build/log/* && make CPUS=4 V=1 BOARD=x230-hotp-verification || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output x230-hotp-verification hashes command: | cat build/x230-hotp-verification/hashes.txt \ - run: name: Archiving build logs for x230-hotp-verification command: | tar zcvf build/x230-hotp-verification/logs.tar.gz build/log/* - store-artifacts: path: build/x230-hotp-verification - run: name: x230-nkstorecli command: | rm -rf build/x230-nkstorecli/* build/log/* && make CPUS=4 V=1 BOARD=x230-nkstorecli || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output x230-nkstorecli hashes command: | cat build/x230-nkstorecli/hashes.txt \ - run: name: Archiving build logs for x230-nkstorecli command: | tar zcvf build/x230-nkstorecli/logs.tar.gz build/log/* - store-artifacts: path: build/x230-nkstorecli - run: name: Download and neuter xx30 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx30/download_clean_me.sh - run: name: x230-maximized command: | rm -rf build/x230-maximized/* build/log/* && make CPUS=4 V=1 BOARD=x230-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output x230-maximized hashes command: | cat build/x230-maximized/hashes.txt \ - run: name: Archiving build logs for x230-maximized command: | tar zcvf build/x230-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/x230-maximized - run: name: Download and neuter xx30 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx30/download_clean_me.sh - run: name: t430-hotp-maximized command: | rm -rf build/t430-hotp-maximized/* build/log/* && make CPUS=4 V=1 BOARD=t430-hotp-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output t430-hotp-maximized hashes command: | cat build/t430-hotp-maximized/hashes.txt \ - run: name: Archiving build logs for t430-hotp-maximized command: | tar zcvf build/t430-hotp-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/t430-hotp-maximized - run: name: Download and neuter xx30 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx30/download_clean_me.sh - run: name: x230-maximized command: | rm -rf build/x230-maximized/* build/log/* && make CPUS=4 V=1 BOARD=x230-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output x230-maximized hashes command: | cat build/x230-maximized/hashes.txt \ - run: name: Archiving build logs for x230-maximized command: | tar zcvf build/x230-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/x230-maximized - run: name: Download and neuter xx30 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx30/download_clean_me.sh - run: name: x230-hotp-maximized command: | rm -rf build/x230-hotp-maximized/* build/log/* && make CPUS=4 V=1 BOARD=x230-hotp-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output x230-hotp-maximized hashes command: | cat build/x230-hotp-maximized/hashes.txt \ - run: name: Archiving build logs for x230-hotp-maximized command: | tar zcvf build/x230-hotp-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/x230-hotp-maximized - run: name: Download and neuter xx30 ME (keep generated GBE and extracted IFD in tree) command: | ./blobs/xx30/download_clean_me.sh - run: name: t430-maximized command: | rm -rf build/t430-maximized/* build/log/* && make CPUS=4 V=1 BOARD=t430-maximized || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output t430-maximized hashes command: | cat build/t430-maximized/hashes.txt \ - run: name: Archiving build logs for t430-maximized command: | tar zcvf build/t430-maximized/logs.tar.gz ./build/log/* - store-artifacts: path: build/t430-maximized - run: name: qemu-coreboot command: | rm -rf build/qemu-coreboot/* build/log/* && make CPUS=4 V=1 BOARD=qemu-coreboot || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output qemu-coreboot hashes command: | cat build/qemu-coreboot/hashes.txt \ - run: name: Archiving build logs for qemu-coreboot command: | tar zcvf build/qemu-coreboot/logs.tar.gz build/log/* - store-artifacts: path: build/qemu-coreboot - run: name: qemu-coreboot-fbwhiptail command: | rm -rf build/qemu-coreboot-fbwhiptail/* build/log/* && make CPUS=4 V=1 BOARD=qemu-coreboot-fbwhiptail || touch /tmp/failed_build no_output_timeout: 3h - run: name: Output build failing logs command: | if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi - run: name: Output qemu-coreboot-fbwhiptail hashes command: | cat build/qemu-coreboot-fbwhiptail/hashes.txt \ - run: name: Archiving build logs for qemu-coreboot-fbwhiptail command: | tar zcvf build/qemu-coreboot-fbwhiptail/logs.tar.gz build/log/* - store-artifacts: path: build/qemu-coreboot-fbwhiptail - save_cache: #Generate cache for the same musl-cross module definition if hash is not previously existing key: heads-cross-musl-{{ checksum "/tmp/musl-cross_module_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }} paths: - crossgcc - build/musl-cross-* - save_cache: #Generate cache for the exact same modules definitions if hash is not previously existing key: heads-modules-and-patches-{{ checksum "/tmp/all_modules_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }} paths: - packages - crossgcc - build workflows: version: 2 build_and_test: jobs: - build