From a3c960df21c5f820cd7aa592a449be667f65cf86 Mon Sep 17 00:00:00 2001 From: Laurent Bonnans Date: Fri, 22 Jun 2018 15:09:57 +0200 Subject: Add caching to CI bitbaking Also fix various issues with environment variables and file transfers to Docker --- scripts/ci/Jenkinsfile | 9 +++++++-- scripts/ci/configure.sh | 25 +++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) (limited to 'scripts/ci') diff --git a/scripts/ci/Jenkinsfile b/scripts/ci/Jenkinsfile index 84eebca..803664f 100644 --- a/scripts/ci/Jenkinsfile +++ b/scripts/ci/Jenkinsfile @@ -1,9 +1,10 @@ pipeline { agent none environment { + TEST_AKTUALIZR_REMOTE = 'aktualizr' TEST_AKTUALIZR_DIR = 'aktualizr' - TEST_AKTUALIZR_BRANCH = 'aktualizr/master' - TEST_BITBAKE_COMMON_DIR = "${env.HOME}/bitbake-common" + TEST_AKTUALIZR_BRANCH = 'master' + TEST_BITBAKE_COMMON_DIR = "/opt/jenkins/bitbake-common" } stages { stage('checkout') { @@ -41,6 +42,9 @@ pipeline { showAllChanges: false, ]) + // ignore bitbake build directories in docker + sh 'echo \'build*\' > .dockerignore' + // override meta-updater commit with currently tested branch sh ''' META_UPDATER_COMMIT=$(git rev-parse HEAD) @@ -53,6 +57,7 @@ pipeline { agent { dockerfile { filename 'scripts/ci/Dockerfile.bitbake' + args '-v /opt/jenkins/bitbake-common:/opt/jenkins/bitbake-common' } } steps { diff --git a/scripts/ci/configure.sh b/scripts/ci/configure.sh index cf42825..1e87a7b 100755 --- a/scripts/ci/configure.sh +++ b/scripts/ci/configure.sh @@ -9,7 +9,8 @@ TEST_REPO_DIR=${TEST_REPO_DIR:-updater-repo} TEST_AKTUALIZR_DIR=${TEST_AKTUALIZR_DIR:-.} TEST_AKTUALIZR_BRANCH=${TEST_AKTUALIZR_BRANCH:-master} -TEST_AKTUALIZR_REV=${TEST_AKTUALIZR_REV:-$(GIT_DIR="${TEST_AKTUALIZR_DIR}/.git" git rev-parse "${TEST_AKTUALIZR_BRANCH}")} +TEST_AKTUALIZR_REV=${TEST_AKTUALIZR_REV:-$(GIT_DIR="$TEST_AKTUALIZR_DIR/.git" git rev-parse "$TEST_AKTUALIZR_REMOTE/$TEST_AKTUALIZR_BRANCH")} +TEST_BITBAKE_COMMON_DIR=${TEST_BITBAKE_COMMON_DIR:-} # move existing conf directory to backup, before generating a new one rm -rf "${TEST_BUILD_DIR}/conf.old" || true @@ -22,12 +23,32 @@ echo ">> Running envsetup.sh" . "${TEST_REPO_DIR}/meta-updater/scripts/envsetup.sh" "${TEST_MACHINE}" "${TEST_BUILD_DIR}" ) -echo ">> Set aktualizr branch in bitbake's config" +set +x +echo ">> Set common bitbake config options" cat << EOF > "${TEST_BUILD_DIR}/conf/site.conf" SANITY_TESTED_DISTROS = "" +SSTATE_MIRRORS ?= "file://.* https://bitbake-cache.atsgarage.com/PATH;downloadfilename=PATH" +IMAGE_FEATURES += "ssh-server-openssh" + +EOF + +echo ">> Set aktualizr branch in bitbake's config" +cat << EOF >> "${TEST_BUILD_DIR}/conf/site.conf" SRCREV_pn-aktualizr = "$TEST_AKTUALIZR_REV" SRCREV_pn-aktualizr-native = "\${SRCREV_pn-aktualizr}" BRANCH_pn-aktualizr = "$TEST_AKTUALIZR_BRANCH" BRANCH_pn-aktualizr-native = "\${BRANCH_pn-aktualizr}" + +EOF + +if [[ -n $TEST_BITBAKE_COMMON_DIR ]]; then + echo ">> Set caching" + SSTATE_DIR="$TEST_BITBAKE_COMMON_DIR/sstate-cache" + DL_DIR="$TEST_BITBAKE_COMMON_DIR/downloads" + mkdir -p "$SSTATE_DIR" "$DL_DIR" + cat << EOF >> "${TEST_BUILD_DIR}/conf/site.conf" +SSTATE_DIR = "$SSTATE_DIR" +DL_DIR = "$DL_DIR" EOF +fi -- cgit v1.2.3-54-g00ecf