[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[CI 17/17] keep: remove a lot of cruft that we probably want to reuse at
From: |
Glenn Washburn |
Subject: |
[CI 17/17] keep: remove a lot of cruft that we probably want to reuse at some point |
Date: |
Thu, 18 Feb 2021 20:59:36 -0600 |
Signed-off-by: Glenn Washburn <development@efficientek.com>
---
.ci/build.sh | 10 -
.ci/process-tests.sh | 11 -
.ci/test.sh | 8 -
.gitlab-ci.yml | 552 -------------------------------------------
4 files changed, 581 deletions(-)
diff --git a/.ci/build.sh b/.ci/build.sh
index 14dd7f7c5..55af74a1b 100755
--- a/.ci/build.sh
+++ b/.ci/build.sh
@@ -31,16 +31,6 @@ mkdir -pv ${BUILDDIR};
RET=0;
cd ${BUILDDIR};
-# echo -e "#!$SHELL\nREAL_SHELL=\${REAL_SHELL:-\$(readlink
/proc/\$\$/exe)}\nexec \$REAL_SHELL \$SHELL_OPTS \"\$@\""
>${BUILDDIR}/shell-wrapper.sh;
-# cat <<EOF >${BUILDDIR}/shell-wrapper.sh
-# #!$SHELL
-# REAL_SHELL=\${REAL_SHELL:-$(readlink /proc/\$\$/exe)}
-# exec \$REAL_SHELL \$SHELL_OPTS \"\$@\"
-# EOF
-
-# chmod +x ${BUILDDIR}/shell-wrapper.sh;
-# export CONFIG_SHELL=${BUILDDIR}/shell-wrapper.sh;
-
start_log -c -n "configure-$TARGET" "Configuring $TARGET";
ls -la $SRCDIR;
[ -x "$SRCDIR/configure" ] && $SRCDIR/configure --help;
diff --git a/.ci/process-tests.sh b/.ci/process-tests.sh
index ab030cfc2..635436e39 100755
--- a/.ci/process-tests.sh
+++ b/.ci/process-tests.sh
@@ -25,8 +25,6 @@ set -eo pipefail
[ -f "$(dirname "$0")/functions.$CI_TYPE.sh" ] &&
. "$(dirname "$0")/functions.$CI_TYPE.sh"
-# TARGET="${ARCH}-${PLATFORM}"
-
test "x${SHELL_TRACE}" = "xy" && set -x;
if [ -f ${BUILDDIR}/test.success ]; then
echo "Not processing test logs because make check ran successfully";
@@ -96,13 +94,4 @@ fi;
RET=1;
fi;
end_log -n "process-test-$TARGET";
-# if [ -f $CI_PROJECT_DIR/${TARGET}.timedout-failures ]; then
-# sed 's/^/${TARGET}:/' $CI_PROJECT_DIR/${TARGET}.timedout-failures
-# >> $CI_PROJECT_DIR/build/test.timedout.log;
-# fi;
-# if [ -f $CI_PROJECT_DIR/${TARGET}.unexpected-failures ]; then
-# sed 's/^/${TARGET}:/' $CI_PROJECT_DIR/${TARGET}.unexpected-failures
-# >> $CI_PROJECT_DIR/build/test.failed.log;
-# exit 1;
-# fi;
exit ${RET:-0};
diff --git a/.ci/test.sh b/.ci/test.sh
index 3f51de58b..b780ae51f 100755
--- a/.ci/test.sh
+++ b/.ci/test.sh
@@ -85,16 +85,8 @@ if [ -n "$GRUB_SHELL_DEFAULT_DEBUG" ]; then
fi;
TIMEOUT=${TESTS_TIMEOUT};
-function func_strace () {
- strace -y -yy -f -v -s4096 -o >($COMP -9 >
${BUILDDIR}/test.strace.$RANDOM.$COMP) "$@";
-};
-':' STRACE="func_strace";
-
-':' $STRACE ${TIMEOUT:+timeout $TIMEOUT} make -C ${BUILDDIR} -j$JOBS SUBDIRS=
check || RET=$?;
${TIMEOUT:+timeout $TIMEOUT} make -C ${BUILDDIR} -j$JOBS SUBDIRS= check ||
RET=$?;
-':' timeout $TIMEOUT $STRACE make -C ${BUILDDIR} -j$JOBS SUBDIRS=
LOG_COMPILER="${BUILDDIR}/log-tester.sh" check || RET=$?;
[ "$RET" -eq 124 -o "$RET" -eq 137 ] && echo "ERROR":" make check timed out";
-':' gzip -9 ${BUILDDIR}/test.strace.*;
end_log -n "test-$TARGET";
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d4fc2337e..b3f854f61 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,76 +13,20 @@ workflow:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- when: never
-# This allows running CI/CD pipelines for merge requests
-# include:
-# - template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
-
-# Variables that can be set by runners:
-# CONFIGURE_OPTS - Extra configure options
-# TESTS_TIMEOUT - Set timeout for make check tests (see man timeout)
-# FAIL_ON_HARD_ERRORS - If set, Hard errors will cause a failure
-# DISABLE_ALL_TESTS - If set, make check tests will be disabled
-# TEST_ALL_TARGETS - If set, failing targets which have been marked disabled
will be enabled
-# TEST_VERBOSITY - Verbosity level when running tests: 1-3
-# STRACE_TESTS - If set, strace individual tests. WARNING: This will cause
testing to take much longer
-# which can cause some test to fail by timing out or having
incorrect timing
-# SHELL_TRACE - If set, turn on shell tracing of everything. NOTE:
TEST_VERBOSITY=3 turns on more targeted
-# shell tracing
-
variables:
CI_TYPE: gitlab
- # CI_DEBUG_TRACE: 'true'
- # GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/grub-$CI_COMMIT_SHORT_SHA
GIT_CLONE_PATH: $CI_BUILDS_DIR/grub-${CI_COMMIT_SHORT_SHA}.git
GIT_STRATEGY: fetch
- # Include all cross toolchain paths, so we can just call them later down.
- #PATH:
"/tmp/qemu-install/bin:/usr/bin:/bin:$CROSS_DIR/gcc-8.1.0-nolibc/aarch64-linux/bin:$CROSS_DIR/gcc-8.1.0-nolibc/arm-linux-gnueabi/bin:$CROSS_DIR/gcc-8.1.0-nolibc/ia64-linux/bin:$CROSS_DIR/gcc-8.1.0-nolibc/mips64-linux/bin:$CROSS_DIR/gcc-8.1.0-nolibc/powerpc64-linux/bin:$CROSS_DIR/gcc-8.1.0-nolibc/riscv32-linux/bin:$CROSS_DIR/gcc-8.1.0-nolibc/riscv64-linux/bin:$CROSS_DIR/gcc-8.1.0-nolibc/sparc64-linux/bin"
-# PACKAGE_CACHE: $CI_BUILDS_DIR/pkgs
PACKAGE_CACHE: $CI_PROJECT_DIR/pkgs
CROSS_DIR: $CI_PROJECT_DIR/cross
SRCDIR: $CI_PROJECT_DIR
### Below are values that are meant to be configurable
CROSS_VERSION:
- # value: "4.8.0"
- # value: "4.8.5"
- # value: "4.9.0"
- # value: "4.9.4"
- # value: "5.5.0"
- # Start having riscv32/64 builds
- # value: "7.3.0"
- # value: "7.5.0"
- # value: "8.1.0"
- # value: "9.3.0"
value: "10.1.0"
description: "Version of cross-compiler to use (suggested: 10.1.0, 9.3.0,
8.1.0, 7.5.0 [riscv32/64 builds fail before 7.3.0])"
- PACKAGES: |
- libsdl1.2-dev
- xz-utils
- lzop
- ovmf
- python
- qemu-system
- unifont
- wget
- libfreetype6-dev
- libdevmapper-dev
- liblzma-dev
- libfuse-dev
- libzfslinux-dev
- make
- autoconf
- automake
- autopoint
- git
- bison
- flex
- gettext
- pkg-config
-# gcc-9-multilib
-
CONFIGURE_OPTS:
value: "--enable-boot-time"
description: "Extra options to pass to configure"
@@ -279,49 +223,12 @@ variables:
default:
image: ubuntu:xenial
- # image: ubuntu:focal
-# cache:
-# # cache all untracked files
-# untracked: true
-# # policy: pull
-# # Each branch will use the same cache
-# key: ${CI_COMMIT_REF_SLUG}-${CI_JOB_IMAGE}
-# paths:
-# - ccache/
-# # - gnulib
stages:
- - cache
- setup
- build
- - install
- test
-.needs-cross-path:
- variables:
-# PATH:
"$CI_BUILDS_DIR/pkgroot/sbin:$CI_BUILDS_DIR/pkgroot/usr/sbin:$CI_BUILDS_DIR/pkgroot/bin:$CI_BUILDS_DIR/pkgroot/usr/bin:$CROSS_DIR/gcc-$CROSS_VERSION-nolibc/$CROSS_TARGETS/bin:/usr/sbin:/sbin:/usr/bin:/bin"
- PATH:
"$CROSS_DIR/gcc-$CROSS_VERSION-nolibc/$CROSS_TARGETS/bin:/usr/sbin:/sbin:/usr/bin:/bin"
-
-.print_debug_info:
- before_script: &print_debug_info-before_script
- - echo -e "section_start:`date +%s`:debug_info[collapsed=true]\r\e[0KDebug
Information"
- - uname -a
- - ls -l /proc/$$/exe
- - export
- - set
- - dpkg-query -l
- - find /lib/modules || ':'
- - '`which xorriso || echo ":"` --version'
- - find /usr/lib/locale || ':'
- - ls -lR /usr/share/OVMF* || ':'
- - echo -e "section_end:`date +%s`:debug_info\r\e[0K"
-
-.needs-packages: &needs-packages
- before_script:
- - add-apt-repository -yu ppa:ubuntu-toolchain-r/test
-# - apt-get update -yqq
- - apt-get -o Dir::Cache::archives=$PACKAGE_CACHE install -yqq $PACKAGES
-
.build:ccache: &build-ccache
# The ccache dir needs to be cached else its pointless, but set the path in
# the global cache, because merging cache path entries isn't possible
@@ -336,16 +243,8 @@ stages:
- export CCACHE_HARDLINK=true
- export CCACHE_TEMPDIR=/tmp/.ccache
- export CCACHE_LOGFILE="${BUILDDIR}/ccache.log"
- # - export
CCACHE_PATH="$CROSS_DIR/gcc-$CROSS_VERSION-nolibc/$CROSS_TARGETS/bin"
- export CC="ccache gcc"
- # - export CC="strace -y -yy -v -s4096 -o "${BUILDDIR}/ccache.strace.log"
ccache gcc"
- # - export CC="ccache ${CROSS_TARGETS}-gcc"
- # - export CC=/usr/lib/ccache/gcc
- ccache --show-stats
- # - ln -s /usr/bin/ccache /usr/local/bin/gcc
- # ln -s /usr/bin/ccache /usr/local/bin/g++
- # ln -s /usr/bin/ccache /usr/local/bin/cc
- # ln -s /usr/bin/ccache /usr/local/bin/c++
after_script: &build-ccache-after_script
# The cache should be large enough to be useful but it shouldn't take
# too long to restore+save each run.
@@ -375,7 +274,6 @@ stages:
- start_log -c -n "install_non_repo_env" "Install non-repo pkgs log"
# We need to get at least bionic's version of e2fsprogs because before
that the
# version is < 1.43, which does not have the encrypt option
- # - apt-get -t bionic -o Dir::Cache::archives=$PACKAGE_CACHE install -yqq
e2fsprogs
- if dpkg --compare-versions "$(dpkg-query -l e2fsprogs |tail -n1| awk
'{print $3;}')" '<=' 1.43; then
wget -nv -P $PACKAGE_CACHE/archives/e2fsprogs
http://security.ubuntu.com/ubuntu/pool/main/e/e2fsprogs/e2fsprogs_1.44.1-1ubuntu1.3_amd64.deb
@@ -464,89 +362,6 @@ stages:
GRUB_TARGETS: [riscv64-efi]
CROSS_TARGETS: [riscv64-linux]
-.cache:packages:
- stage: cache
- extends: .pkg-cache
- script:
- # Install required package dependencies with package manager apt
-# - apt-get install -o Dir::Cache::archives=$PACKAGE_CACHE -yqq
software-properties-common
-# - add-apt-repository -yu ppa:ubuntu-toolchain-r/test
- - apt-get update -yqq
- - mkdir -vp $PACKAGE_CACHE/partial
-# - apt-get -o Dir::Cache::archives=$PACKAGE_CACHE install --download-only
-yqq $PACKAGES
-
-.process-tests:
- script: &process-tests-script
- - export target=$GRUB_TARGETS
- - test "x${SHELL_TRACE}" = "xy" && set -x;
- if [ -f ${BUILDDIR}/test.success ]; then
- exit 0;
- elif [ "x${DISABLE_ALL_TESTS}" = "xy" ] || [ "x${TEST_ALL_TARGETS}" !=
"xy" -a -z "${DISABLED_TESTS##*$'\n'${target}$'\n'*}" ]; then
- echo "No test output processing because testing was disabled";
- exit 0;
- fi;
-
- echo -e "section_start:`date
+%s`:process-test-$target[collapsed=true]\r\e[0KProcessing test output of
$target";
- if [ -f ${BUILDDIR}/test-suite.log ]; then
- FAILURE_COND='^FAIL:';
- if [ "x${FAIL_ON_HARD_ERRORS}" = "xy" ]; then
- FAILURE_COND='^(FAIL|ERROR):';
- fi;
-
- ( grep -E "$FAILURE_COND" ${BUILDDIR}/test-suite.log || ':' ) |
- while read _ TESTNAME; do
- if echo "${EXPECTED_FAILURES}" | grep -qE
"^(${TESTNAME}|${target}:${TESTNAME})$"; then
- echo 'Expected failed test:' "$TESTNAME";
- continue;
- fi;
-
- if [ "$TESTNAME" = "grub_func_test" ]; then
- FAILURE=0;
- grep -E 'test:'' FAIL' ${BUILDDIR}/${TESTNAME}.log | sort -u |
- while read FTESTNAME STATUS; do
- FTESTNAME=${FTESTNAME%:*};
- if echo "${EXPECTED_FUNCTIONAL_FAILURES}" | grep -qE
"^(${FTESTNAME}|${target}:${FTESTNAME})$"; then
- echo 'Expected failed functional test:' "$FTESTNAME";
- else
- echo -e "${TXT_RED}"'Unexpected failed functional test:'
"${FTESTNAME}${TXT_CLEAR}";
- FAILURE=1;
- fi;
- done;
- [ "${FAILURE}" -eq 0 ] && continue;
- fi;
-
- if [ "x${IGNORE_TIMEDOUT_TEST_FAILURE}" = "xy" ] &&
- tail -n1 "${BUILDDIR}/${TESTNAME}.log" | grep -q 'exit status:''
137'; then
- echo -e "${TXT_RED}"'Ignoring Timed-out test:'
"${TESTNAME}${TXT_CLEAR}";
- echo -e -n "\e[97;100m";
- echo "Test failed due to a timeout. This is likely due to"
- "insufficient runner resources, and NOT a real failure.";
- echo -e -n "${TXT_CLEAR}";
- echo "${TESTNAME}" >> $CI_PROJECT_DIR/${target}.timedout-failures;
- else
- echo -e "${TXT_RED}"'Unexpected failed test:'
"${TESTNAME}${TXT_CLEAR}";
- echo -e -n "\e[97;100m";
- echo "Last 100 lines of ${BUILDDIR}/${TESTNAME}.log";
- tail -n 100 ${BUILDDIR}/${TESTNAME}.log;
- echo -e -n "${TXT_CLEAR}";
- echo "${TESTNAME}" >>
$CI_PROJECT_DIR/${target}.unexpected-failures;
- fi;
- done;
- else
- echo "No success canary and no test-suite.log, perhaps a timeout";
- fi;
- echo -e "section_end:`date +%s`:process-test-$target\r\e[0K";
- if [ -f $CI_PROJECT_DIR/${target}.timedout-failures ]; then
- sed 's/^/${target}:/' $CI_PROJECT_DIR/${target}.timedout-failures
- >> $CI_PROJECT_DIR/build/test.timedout.log;
- fi;
- if [ -f $CI_PROJECT_DIR/${target}.unexpected-failures ]; then
- sed 's/^/${target}:/' $CI_PROJECT_DIR/${target}.unexpected-failures
- >> $CI_PROJECT_DIR/build/test.failed.log;
- exit 1;
- fi;
- exit 0;
-
.cross-compilers:
variables:
PACKAGES: |
@@ -575,20 +390,6 @@ stages:
test -d "$CROSS_BIN_DIR" || exit 1;
done
-.setup:cross-compilers:
- stage: setup
- when: manual
- extends:
- - .pkg-cache
- - .install-packages
- - .cross-compilers
- artifacts:
- name:
"${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}-${GRUB_TARGETS}"
- paths:
- - $CROSS_DIR
- expire_in: 4 hours
-
-
setup:bootstrap:
stage: setup
extends:
@@ -599,8 +400,6 @@ setup:bootstrap:
expire_in: 1 week
exclude:
- $PACKAGE_CACHE
-# needs:
-# - cache:packages
variables:
PACKAGES: |
python
@@ -618,296 +417,11 @@ setup:bootstrap:
- . ${SRCDIR}/.ci/functions.gitlab.sh
- *install-packages-before_script
script:
- - *print_debug_info-before_script
- - cat /proc/filesystems
- # - modprobe hfsplus
- # - modprobe f2fs
- # - modprobe reiserfs
- start_log -c -n "bootstrap" "Bootstrap log";
# We cache the bootstrap, so if the bootstrap canary exists, don't run the
bootstrap
- '[ -f .bootstrap.finished ] || ( ./bootstrap && touch
.bootstrap.finished )'
- end_log -n "bootstrap";
-.build:compile:
- stage: build
- when: manual
- extends:
- - .needs-cross-path
- - .pkg-cache
- - .install-packages
- artifacts:
- name:
"${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}-${GRUB_TARGETS}"
- paths:
- - $CI_PROJECT_DIR/build
- - $CI_PROJECT_DIR/install
- - $CROSS_DIR
- exclude:
- - $CI_PROJECT_DIR/build/**/*.o
- expire_in: 4 hours
- needs:
- - setup:cross-compilers
- - setup:bootstrap
- variables:
-# CONFIGURE_OPTS: "--disable-silent-rules"
- PACKAGES: |
- unifont
- libfreetype6-dev
- libdevmapper-dev
- liblzma-dev
- libfuse-dev
- libzfslinux-dev
- python
- make
- automake
- bison
- flex
- gettext
- pkg-config
-# libsdl1.2-dev
-# gcc-9-multilib
- script:
- - echo -e "section_start:`date +%s`:debug_info\r\e[0KDebugging info"
- - 'echo "pwd: `pwd`"'
- - 'echo "PATH: $PATH"'
- - 'echo "CI_BUILDS_DIR: $CI_BUILDS_DIR"'
- - 'echo "CI_PROJECT_DIR: $CI_PROJECT_DIR"'
- - echo -e "section_start:`date +%s`:vars[collapsed=true]\r\e[0KEnvironment
Variables"
- - export
- - echo -e "section_end:`date +%s`:vars\r\e[0K"
- - echo -e "section_end:`date +%s`:debug_info\r\e[0K"
- # Build all selected GRUB targets.
- - for target in $GRUB_TARGETS; do
- set -x;
- while [ -z ${PATH%%*\$*} ]; do
- eval "PATH=$PATH";
- done;
- plat=${target#*-};
- arch=${target%-*};
- case "$arch" in
- arm64) arch=aarch64-linux;;
- arm) arch=arm-linux-gnueabi;;
- mipsel) arch=mips64-linux;;
- powerpc) arch=powerpc64-linux;;
- ia64|riscv32|riscv64|sparc64) arch=$arch-linux;;
- i386|x86_64|mips) ;;
- *) echo "Unkown architecture":" $arch"; exit 1;;
- esac;
- case "$target" in
- sparc64-ieee1275) tformats="aout cdcore raw" ;;
- Xmipsel-qemu_mips) tformats="elf flash" ;;
- Xarm-coreboot) tformats="vexpress veyron" ;;
- *) tformats='~' ;;
- esac;
- echo -e "section_start:`date +%s`:build-$target\r\e[0KBuilding
$target";
- builddir=$CI_PROJECT_DIR/build/obj-$target;
- installdir=$CI_PROJECT_DIR/install/grub-$target;
- mkdir -pv $builddir $installdir;
- JOBS=`getconf _NPROCESSORS_ONLN 2> /dev/null || echo 1`;
- [ "$JOBS" == 1 ] || JOBS=$(($JOBS + 1));
- (
- cd $builddir &&
- $CI_PROJECT_DIR/configure --target=$arch --with-platform=$plat
--prefix=$installdir $CONFIGURE_OPTS &&
- make -j$JOBS &&
- make -j$JOBS install;
- for tfmt in $tformats; do
- [ -z "${tfmt%~*}" ] ||
- $builddir/grub-mkimage -p / -O $target${tfmt:+-$tfmt} -o
/tmp/grub-$target${tfmt:+-$tfmt} echo reboot normal;
- done;
- ) || (
- cd $builddir;
- echo -e "section_start:`date
+%s`:config_log-$target[collapsed=true]\r\e[0KBuild fail logs $target";
- cat config.log;
- echo -e "section_end:`date +%s`:config_log-$target\r\e[0K";
- false;
- );
- echo -e "section_end:`date +%s`:build-$target\r\e[0K";
- done
- parallel:
- <<: *target_matrix
-
-..build:install:
- stage: install
- allow_failure: true
- when: manual
- extends:
- - .needs-cross-path
- - .pkg-cache
- - .install-packages
- artifacts:
- name: "${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}-${GRUB_TARGETS}"
- paths:
- - $CI_PROJECT_DIR/install
- expire_in: 4 hours
- needs:
- - setup:bootstrap
- - build:compile
- variables:
- PACKAGES: |
- python
- make
- automake
- pkg-config
-# unifont
- script:
- - echo -e "section_start:`date +%s`:vars[collapsed=true]\r\e[0KEnvironment
Variables"
- - export
- - echo -e "section_end:`date +%s`:vars\r\e[0K"
- # Build all selected GRUB targets.
- - for target in $GRUB_TARGETS; do
- while [ -z ${PATH%%*\$*} ]; do
- eval "PATH=$PATH";
- done;
- echo -e "section_start:`date +%s`:install-$target\r\e[0KInstalling
$target";
- builddir=$CI_PROJECT_DIR/build/obj-$target;
- installdir=$CI_PROJECT_DIR/install/grub-$target;
- mkdir -pv $builddir $installdir;
- JOBS=`getconf _NPROCESSORS_ONLN 2> /dev/null || echo 1`;
- [ "$JOBS" == 1 ] || JOBS=$(($JOBS + 1));
- (
- cd $builddir &&
- make -j$JOBS install
- );
- echo -e "section_end:`date +%s`:install-$target\r\e[0K";
- done
- parallel:
- <<: *target_matrix
-
-.build:rescue:
- stage: install
- allow_failure: true
- when: manual
- extends:
- - .install-packages
- artifacts:
- name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
- paths:
- - $CI_PROJECT_DIR/rescue
- expire_in: 4 hours
- needs:
- - build:compile
- variables:
- # EFI platforms use mformat from mtools when building the rescue image
- PACKAGES: |
- xorriso
- mtools
- script:
- - echo -e "section_start:`date +%s`:vars[collapsed=true]\r\e[0KEnvironment
Variables"
- - export
- - echo -e "section_end:`date +%s`:vars\r\e[0K"
- # Build all selected GRUB targets.
- - for target in $GRUB_TARGETS; do
- echo -e "section_start:`date +%s`:mkrescue-$target\r\e[0KInstalling
$target";
- builddir=$CI_PROJECT_DIR/build/obj-$target;
- rescuedir=$CI_PROJECT_DIR/rescue;
- mkdir -pv $rescuedir;
- (
- echo -e "insmod normal; normal" > grub.cfg;
- $builddir/grub-mkrescue -v -o $rescuedir/grub-rescue-$target.iso
boot/grub/grub.cfg=grub.cfg;
- );
- echo -e "section_end:`date +%s`:mkrescue-$target\r\e[0K";
- done
- parallel:
- <<: *target_matrix
-
-.build:docs:
- stage: build
- allow_failure: true
- extends:
- - .install-packages
- variables:
- # Use tex packages to build documentation
- PACKAGES: |
- texinfo
- texlive
- script:
- - make html dvi pdf info ps man
-
-.test-all:
-# image: ubuntu:focal
- stage: test
- when: manual
- extends:
- - .needs-cross-path
- - .install-packages
- artifacts:
- name: test-artifacts
- when: on_failure
- paths:
- - $CI_PROJECT_DIR/build/obj-*/*.{log,trs}
- needs:
- - setup:bootstrap
- - build:compile
- variables:
- PACKAGES: |
- ovmf
- qemu-system
- python
- make
- automake
- pkg-config
- bison
- flex
- wamerican
- tar
- cpio
- gzip
- lzop
- xz-utils
- parted
- xorriso
- util-linux
- squashfs-tools
- zfsutils-linux
- dosfstools
- exfat-utils
- ntfs-3g
- e2fsprogs
- btrfs-progs
- xfsprogs
- hfsprogs
- jfsutils
- reiserfsprogs
- udftools
- nilfs-tools
- f2fs-tools
- genromfs
- attr
-# libsdl1.2-dev
-# unifont
-# libfreetype6-dev
-# libdevmapper-dev
-# liblzma-dev
-# libfuse-dev
-# libzfslinux-dev
-# autoconf
-# autopoint
-# git
-# gettext
- script:
- - for target in $GRUB_TARGETS; do
- set -x;
- while [ -z ${PATH%%*\$*} ]; do
- eval "PATH=$PATH";
- done;
- plat=${target#*-};
- plat=${plat%-*};
- arch=${target%%-*};
- echo -e "section_start:`date
+%s`:test-$target[collapsed=true]\r\e[0KTesting $target";
- builddir=$CI_PROJECT_DIR/build/obj-$target;
- installdir=$CI_PROJECT_DIR/install/grub-$target;
- mkdir -pv $builddir $installdir;
- ls $builddir;
- JOBS=`getconf _NPROCESSORS_ONLN 2> /dev/null || echo 1`;
- [ "$JOBS" == 1 ] || JOBS=$(($JOBS + 1));
- make -C $builddir -j$JOBS TMPDIR=/tmp SUBDIRS= V=3 check || (
- ls $builddir;
- false;
- );
- echo -e "section_end:`date +%s`:test-$target\r\e[0K";
- done
- parallel:
- <<: *target_matrix
-
# Build and test everything in one (matrix) job
build:allinone:
stage: build
@@ -922,7 +436,6 @@ build:allinone:
- $PACKAGE_CACHE
artifacts:
name:
"${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}-${GRUB_TARGETS}"
- # when: on_failure
when: always
paths: &target-archive-paths
- $CI_PROJECT_DIR/build/obj-$GRUB_TARGETS/config.h
@@ -931,8 +444,6 @@ build:allinone:
- $CI_PROJECT_DIR/build/obj-$GRUB_TARGETS/test-data.tar.*
- $CI_PROJECT_DIR/build/obj-$GRUB_TARGETS/test.success
- $CI_PROJECT_DIR/build/obj-$GRUB_TARGETS/images
- # - $CI_PROJECT_DIR/build/*.log
- # - $CROSS_DIR
exclude:
- $CI_PROJECT_DIR/build/**/*.o
expire_in: 5 days
@@ -942,10 +453,7 @@ build:allinone:
<<: *install-extra-qemu-packages-vars
BUILDDIR: $CI_PROJECT_DIR/build/obj-$GRUB_TARGETS
INSTALLDIR: $CI_PROJECT_DIR/install/grub-$GRUB_TARGETS
- # CONFIGURE_OPTS: "--disable-silent-rules"
- # TMPDIR: "/tmp"
TEST_DATA_PREFIX: $CI_PROJECT_DIR/build/obj-${GRUB_TARGETS}/test-data
- # GRUB_QEMU_OPTS: -m size=64M
PACKAGES: |
wget
### Grub build requirements
@@ -1017,14 +525,11 @@ build:allinone:
- *install-extra-qemu-packages-before_script
- *cross_compilers-setup_script
- *build-ccache-before_script
- - *print_debug_info-before_script
# Need to keep evaling PATH until there are no more variables in it
# because gitlab CI does not do recursive variable expansion.
- while [ -z ${PATH%%*\$*} ]; do
eval "export PATH=$PATH";
done;
- - pwd
- - ls -la
script:
# Build all selected GRUB targets.
- test "x${SHELL_TRACE}" = "xy" && set -x;
@@ -1067,34 +572,12 @@ build:allinone:
$SRCDIR/.ci/test.sh 2>&1 | tee ${BUILDDIR}/test.log || :;
) 2>&1 | tee "${BUILDDIR}/${CI_JOB_NAME}.log";
# Do processing of testing output
- #- *process-tests-script
- TARGET=${GRUB_TARGETS} $SRCDIR/.ci/process-tests.sh
# Make images for all formats
- TARGET=${GRUB_TARGETS} $SRCDIR/.ci/make-images.sh
after_script:
- *build-ccache-after_script
-.test:allinone:
- stage: test
- # Run always, even if build fails so we can see pass/fail of the
- # individual matrice runs.
- when: always
- artifacts:
- name:
"${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}-${GRUB_TARGETS}"
-# when: on_failure
- when: always
- paths:
- - $CI_PROJECT_DIR/build/obj-$GRUB_TARGETS/*.{log,trs}
- - $CI_PROJECT_DIR/build/*.log
-# expire_in: 1 hour
- dependencies:
-# needs:
- - build:allinone
- script: &test_allinone-script
- - *process-tests-script
- parallel:
- <<: *target_matrix
-
package:allinone:
stage: .post
when: always
@@ -1103,11 +586,6 @@ package:allinone:
when: always
expire_in: 1 month
paths:
- # - *target-archive-paths
- # - $CI_PROJECT_DIR/build/obj-*/*.{log,trs}
- # - $CI_PROJECT_DIR/build/obj-*/*.strace*
- # - $CI_PROJECT_DIR/build/obj-*/test-data.tar.*
- # - $CI_PROJECT_DIR/build/obj-*/test.success
- $CI_PROJECT_DIR/build/obj-*
- $CI_PROJECT_DIR/build/*.log
exclude:
@@ -1115,11 +593,9 @@ package:allinone:
- $CI_PROJECT_DIR/build/**/.deps-util
needs:
- build:allinone
- # - test:allinone
before_script:
- . ${SRCDIR}/.ci/functions.gitlab.sh
- SUMLOG=$CI_PROJECT_DIR/build/test-summary.log
- # - TXT_RED="\e[31m"; TXT_YELLOW="\e[33m"; TXT_CLEAR="\e[0m";
- . $CI_PROJECT_DIR/.ci/functions.gitlab.sh
- find $CI_PROJECT_DIR/build > $CI_PROJECT_DIR/build/build-paths.log
script:
@@ -1154,31 +630,3 @@ package:allinone:
- if [ -f "${SUMLOG}" ]; then
cat "${SUMLOG}";
fi
-
-# mergereq:package:allinone:
-# extends:
-# - package:allinone
-# rules:
-# - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
-# - if: $CI_MERGE_REQUEST_IID
-# - when: always
-
-#deploy-prod:
-# stage: deploy
-# script:
-# - echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
-# - echo "Hello, $GITLAB_USER_LOGIN!"
-
-# TODO: put generated docs in gitlab pages
-# pages:
-# stage: deploy
-# needs: build:docs
-# script:
-# - mkdir .public
-# - cp -r * .public
-# - mv .public public
-# artifacts:
-# paths:
-# - public
-# only:
-# - master
--
2.27.0
- [CI 07/17] grub-shell: Only show grub-mkrescue output if it returns an error, (continued)
- [CI 07/17] grub-shell: Only show grub-mkrescue output if it returns an error, Glenn Washburn, 2021/02/18
- [CI 08/17] grub-shell: Allow setting default timeout via GRUB_SHELL_DEFAULT_TIMEOUT envvar, Glenn Washburn, 2021/02/18
- [CI 06/17] grub-shell: Trim line should always be matched from the beginning of the line, Glenn Washburn, 2021/02/18
- [CI 10/17] grub-shell: Add grub output logfile with grub-shell --debug, Glenn Washburn, 2021/02/18
- [CI 11/17] grub-shell: Set exit status to qemu exit status, Glenn Washburn, 2021/02/18
- [CI 12/17] tests: Allow turning on shell tracing from environment variables, Glenn Washburn, 2021/02/18
- [CI 13/17] grub-shell: Add --verbose to mkrescue when $debug is greater than 2, Glenn Washburn, 2021/02/18
- [CI 09/17] grub-shell: Put all generated files into working dir and use better file names, Glenn Washburn, 2021/02/18
- [CI 15/17] grub-shell: Update qemu UEFI firmware names to be more generic, Glenn Washburn, 2021/02/18
- [CI 14/17] grub-shell: Use malta qemu-mips machine type instead off non-existant indy, Glenn Washburn, 2021/02/18
- [CI 17/17] keep: remove a lot of cruft that we probably want to reuse at some point,
Glenn Washburn <=
- [CI 16/17] ci: Add .gitlab-ci.yml for continuous integration with Gitlab CI, Glenn Washburn, 2021/02/18