From c2f9b616f648fe10b03466405d2243464e2b65b7 Mon Sep 17 00:00:00 2001 From: Jan-Simon Möller Date: Fri, 2 Jul 2021 16:46:52 +0200 Subject: Add release jobs for lamprey MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I28bad4ed84c19db403b7e579e489fe5fa071c4cd Signed-off-by: Jan-Simon Möller --- jjb/common/include-agl-run-test-short-lamprey.sh | 45 ++++++++ .../include-release-jjb-release-move-sandbox.sh | 27 +++++ .../release-jjb-release.yaml | 49 ++++++++ .../bitbake-html5-image-qemux86-64.sh | 21 ++++ .../include-release-jjb-lamprey-snapshot-rsync.sh | 57 ++++++++++ .../release-jjb-lamprey-snapshot.yaml | 126 +++++++++++++++++++++ .../include-release-jjb-release-sources-rsync.sh | 67 +++++++++++ .../release-jjb-sources.yaml | 44 +++++++ 8 files changed, 436 insertions(+) create mode 100644 jjb/common/include-agl-run-test-short-lamprey.sh create mode 100644 jjb/release-jjb-lamprey-release/include-release-jjb-release-move-sandbox.sh create mode 100644 jjb/release-jjb-lamprey-release/release-jjb-release.yaml create mode 100644 jjb/release-jjb-lamprey-snapshot/bitbake-html5-image-qemux86-64.sh create mode 100644 jjb/release-jjb-lamprey-snapshot/include-release-jjb-lamprey-snapshot-rsync.sh create mode 100644 jjb/release-jjb-lamprey-snapshot/release-jjb-lamprey-snapshot.yaml create mode 100644 jjb/release-jjb-lamprey-sources/include-release-jjb-release-sources-rsync.sh create mode 100644 jjb/release-jjb-lamprey-sources/release-jjb-sources.yaml diff --git a/jjb/common/include-agl-run-test-short-lamprey.sh b/jjb/common/include-agl-run-test-short-lamprey.sh new file mode 100644 index 00000000..91f0a57f --- /dev/null +++ b/jjb/common/include-agl-run-test-short-lamprey.sh @@ -0,0 +1,45 @@ +# (c) 2016 Jan-Simon Moeller dl9pf(at)gmx.de +# License GPLv2 + +################################################################################ +## Run SHORT CI test +################################################################################ + +#set -x + +UPLOAD_URL_BASE=http://download.automotivelinux.org/AGL/upload/ci +UPLOAD_URL=${UPLOAD_URL_BASE}/${RELEASE_BRANCH}/${RELEASE_VERSION}/${MACHINE}/deploy/images/${TARGETMACHINE} + +cd $REPODIR + +wget -q ${UPLOAD_URL}/build-info || echo "ERROR: fail to download ${UPLOAD_URL}/build-info" +if [ -e build-info ]; then + cat build-info + source build-info +fi + +echo "# LAVA lab target: ${LAVA_LAB} #" +# releng-scripts depends on jinja2 >= 2.9 +echo "## Check version of python-jinja2: " +pip show jinja2 +CREATE_ARGS="" +CREATE_ARGS+="--machine ${releng_device} " +CREATE_ARGS+="--build-type release " +#[[ ! -z $RELEASE_BRANCH ]] && CREATE_ARGS+="--branch $RELEASE_BRANCH " +#[[ ! -z $RELEASE_VERSION ]] && CREATE_ARGS+="--version $RELEASE_VERSION " +CREATE_ARGS+="--url https://download.automotivelinux.org/AGL/upload/ci/${RELEASE_BRANCH}/${RELEASE_VERSION}/${MACHINE}/deploy/images/${TARGETMACHINE}/ " +CREATE_ARGS+="--name AGL-gerrit-$DIST_BB_AGL_BRANCH-$DIST_BB_AGLVERSION " +[[ ! -z $DIST_BB_DISTRO_VERSION ]] && CREATE_ARGS+="--build-version $DIST_BB_DISTRO_VERSION " +[[ ! -z $DIST_BUILD_HASH ]] && CREATE_ARGS+="--commit $DIST_BUILD_HASH " +[[ ! -z $DIST_BUILD_ID ]] && CREATE_ARGS+="--build-id $DIST_BUILD_ID " +[[ ! -z $DIST_BB_AGL_BRANCH ]] && CREATE_ARGS+="--branch $DIST_BB_AGL_BRANCH " +[[ ! -z $DIST_BB_AGLVERSION ]] && CREATE_ARGS+="--version $DIST_BB_AGLVERSION " +CREATE_ARGS+="--callback-from ${LAVA_LAB} " +$RELENG/utils/create-jobs.py ${CREATE_ARGS} > testjob.yaml + +if [ $? != 0 ]; then + echo "ERROR: Machine ${releng_device}: LAVA job creation failed." + exit 0 +else + cat testjob.yaml +fi diff --git a/jjb/release-jjb-lamprey-release/include-release-jjb-release-move-sandbox.sh b/jjb/release-jjb-lamprey-release/include-release-jjb-release-move-sandbox.sh new file mode 100644 index 00000000..2f85a3ea --- /dev/null +++ b/jjb/release-jjb-lamprey-release/include-release-jjb-release-move-sandbox.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +#set -x +set -e + +if test x"" = x"${RELEASE_BRANCH}"; then + echo "RELEASE_BRANCH invalid" + exit 1 +fi + +if test x"" = x"${RELEASE_VERSION}"; then + echo "RELEASE_VERSION invalid" + exit 1 +fi + + +export REMOTESRC="/srv/download/AGL/upload/ci/${RELEASE_BRANCH}/${RELEASE_VERSION}/" +export REMOTEDST="/srv/download/AGL/release/${RELEASE_BRANCH}/${RELEASE_VERSION}/" + +if test x"yes" = x"$UPLOAD" ; then + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 mkdir -p ${REMOTEDST} + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 mv ${REMOTESRC}/* ${REMOTEDST}/ + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 rm -r ${REMOTESRC} + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 sh -c "cd /srv/download/AGL/release/${RELEASE_BRANCH}/ ; rm latest ; ln -sf ${RELEASE_VERSION} latest ; echo ${RELEASE_VERSION} > latest.txt" +fi + +exit 0 \ No newline at end of file diff --git a/jjb/release-jjb-lamprey-release/release-jjb-release.yaml b/jjb/release-jjb-lamprey-release/release-jjb-release.yaml new file mode 100644 index 00000000..c9695ade --- /dev/null +++ b/jjb/release-jjb-lamprey-release/release-jjb-release.yaml @@ -0,0 +1,49 @@ +--- +- project: + name: release-jjb-lamprey-release-from-snapshot + jobs: + - release-jjb-lamprey-release-from-snapshot + +- job-template: + name: 'release-jjb-lamprey-release-from-snapshot' + project-type: freestyle + concurrent: false + node: agl-test-slave + + parameters: + - string: + name: GERRIT_BRANCH + default: master + description: "branch to build" + - string: + name: RELEASE_BRANCH + default: lamprey + description: "release branch to build" + - string: + name: RELEASE_VERSION + default: 11.91.0 + description: "release version number for build" + - string: + name: UPLOAD + default: yes_or_no + description: "Upload?" + + build-discarder: + days-to-keep: 30 + num-to-keep: 40 + artifact-days-to-keep: -1 + artifact-num-to-keep: 5 + + wrappers: + - agl-infra-wrappers: + build-timeout: '{build-timeout}' + + builders: + - shell: + !include-raw-escape: + - include-release-jjb-release-move-sandbox.sh + - trigger-builds: + - project: "release-jjb-lamprey-sources" + current-parameters: true + block: true + diff --git a/jjb/release-jjb-lamprey-snapshot/bitbake-html5-image-qemux86-64.sh b/jjb/release-jjb-lamprey-snapshot/bitbake-html5-image-qemux86-64.sh new file mode 100644 index 00000000..78af7470 --- /dev/null +++ b/jjb/release-jjb-lamprey-snapshot/bitbake-html5-image-qemux86-64.sh @@ -0,0 +1,21 @@ +# (c) 2016 Jan-Simon Moeller dl9pf(at)gmx.de +# License GPLv2 + +################################################################################ +## bitbake the sdk +################################################################################ +#if ! test x"${GERRIT_BRANCH}" = x"dab" ; then +#bitbake wic-tools +#fi + +if test x"qemux86-64" = x"${TARGETMACHINE}" ; then + +# finally, build the agl-demo-platform (we retry to catch the tar-native bug) +#( ( bitbake -c $TARGETSDK $TARGETIMAGE ) || ( echo '## Failed once, retry .. ##' ; sync ; sleep 2 ; bitbake -c $TARGETSDK $TARGETIMAGE ) ) || ( echo '## Failed again, bail out ... ##' ; exit 1 ) +echo 'AGL_DEFAULT_IMAGE_FSTYPES_forcevariable = "wic.vmdk.xz wic.xz ext4.xz"' >> conf/local.conf +echo 'AGL_EXTRA_IMAGE_FSTYPES_forcevariable = ""' >> conf/local.conf +( ( bitbake agl-demo-platform-html5 ) || ( echo '## Failed once, retry .. ##' ; sync ; sleep 2 ; bitbake agl-demo-platform-html5 ) ) || ( echo '## Failed again, bail out ... ##' ; exit 1 ) + +du -hs tmp/deploy/* + +fi \ No newline at end of file diff --git a/jjb/release-jjb-lamprey-snapshot/include-release-jjb-lamprey-snapshot-rsync.sh b/jjb/release-jjb-lamprey-snapshot/include-release-jjb-lamprey-snapshot-rsync.sh new file mode 100644 index 00000000..9be7c6f8 --- /dev/null +++ b/jjb/release-jjb-lamprey-snapshot/include-release-jjb-lamprey-snapshot-rsync.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +#set -x +set -e +echo "#######################################" +echo "#######################################" +ls -alh +echo "#######################################" +echo "#######################################" +tree -L 2 +echo "#######################################" +echo "#######################################" +set | grep MACHINE +echo "#######################################" +echo "#######################################" +set +echo "#######################################" +echo "#######################################" + +cd repoclone/output + +export REMOTEDST="/srv/download/AGL/upload/ci/${RELEASE_BRANCH}/${RELEASE_VERSION}/${MACHINE}/" +export RSYNCDST="jenkins-slave@10.30.72.8:${REMOTEDST}" +export RSYNCSRC=$(pwd)/UPLOAD/${MACHINE} + +# construct upload folder +mv UPLOAD UPLOAD2 || true +rm -rf UPLOAD2 || true +mkdir -p UPLOAD/${MACHINE} +export DEST=$(pwd)/UPLOAD/${MACHINE} + +# save space ... remove the rpms +rm -rf tmp/deploy/rpm || true + +rsync -avr --progress --delete tmp/deploy $DEST/ +rsync -avr --progress --delete tmp/log $DEST/ + +cp ../../current_default.xml $DEST/${MACHINE}_repo_default.xml +cp conf/local.conf $DEST/local.conf +cp conf/auto.conf $DEST/auto.conf +echo "$BUILD_URL" > $DEST/jenkins.build.url + +tree $DEST + +ls -alhR $DEST + + + +echo "would do rsync -avr -e \"ssh -o StrictHostKeyChecking=no\" $RSYNCSRC $RSYNCDST " + +if test x"yes" = x"$UPLOAD" ; then + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 rm -rf ${REMOTEDST} + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 mkdir -p ${REMOTEDST} + rsync --delete -avr -e "ssh -o StrictHostKeyChecking=no" $RSYNCSRC/* $RSYNCDST +fi + +exit 0 \ No newline at end of file diff --git a/jjb/release-jjb-lamprey-snapshot/release-jjb-lamprey-snapshot.yaml b/jjb/release-jjb-lamprey-snapshot/release-jjb-lamprey-snapshot.yaml new file mode 100644 index 00000000..9a60b66c --- /dev/null +++ b/jjb/release-jjb-lamprey-snapshot/release-jjb-lamprey-snapshot.yaml @@ -0,0 +1,126 @@ +--- +- project: + name: release-jjb-lamprey-snapshot + jobs: + - release-jjb-lamprey-snapshot + +- job-template: + name: 'release-jjb-lamprey-snapshot' + project-type: matrix + concurrent: false + node: control-slave + + parameters: + - string: + name: GERRIT_PROJECT + default: AGL/AGL-repo + description: "Project to build" + - string: + name: GERRIT_BRANCH + default: master + description: "branch to build" + - string: + name: GERRIT_REFSPEC + default: refs/tags/lamprey_11.91.0 + description: "refspec to build" + - string: + name: RELEASE_VERSION + default: 11.91.0 + description: "release version number for build" + - string: + name: RELEASE_BRANCH + default: lamprey + description: "release branch to build" + - string: + name: UPLOAD + default: yes_or_no + description: "Upload?" + - string: + name: BUILDONLY + default: ignore + description: "build only specified machine" + - string: + name: DISABLE_SSTATE_MIRROR + default: ignore + description: "Set to YES to disable sstate-mirror" + axes: + - axis: + type: user-defined + name: MACHINE + values: + - qemux86-64 + - qemuarm + - qemuarm64 + - raspberrypi4 + - m3ulcb-nogfx + - h3ulcb-nogfx + - bbe + # for aarch64 + - axis: + type: slave + name: label + values: + - agl-test-slave + + build-discarder: + days-to-keep: 30 + num-to-keep: 40 + artifact-days-to-keep: -1 + artifact-num-to-keep: 5 + + triggers: + - gerrit-trigger-patch-submitted-silent: + name: 'AGL/AGL-repo' + branch: 'regs/tags/lamprey/**' + + wrappers: + - agl-infra-wrappers: + build-timeout: '{build-timeout}' + - credentials-binding: + - username-password-separated: + credential-id: agl_main_lava_instance + username: AGLLAVAUSER + password: AGLLAVATOKEN + - username-password-separated: + credential-id: agl_main_lava_instance + username: LAB_AGL_USER + password: LAB_AGL_TOKEN + - username-password-separated: + credential-id: lab_baylibre_lava_instance + username: LAB_BAYLIBRE_USER + password: LAB_BAYLIBRE_TOKEN + - username-password-separated: + credential-id: lab_baylibre_seattle_lava_instance + username: LAB_BAYLIBRE_SEATTLE_USER + password: LAB_BAYLIBRE_SEATTLE_TOKEN + + builders: + - shell: + !include-raw-escape: + - ../common/include-agl-header.sh + - ../common/include-agl-repo.sh + - ../common/include-agl-select.sh + - ../common/include-agl-export-eula.sh + - ../common/include-agl-source-aglsetup.sh + - ../common/include-agl-auto-conf.sh + - ../common/include-agl-limit-parallelism.sh + - ../common/include-agl-cat-auto-conf.sh + - ../common/include-agl-local-conf-archiver.sh + #- ../common/include-agl-local-conf-isafw.sh + - ../common/include-agl-local-conf-include-ptest.sh + - ../common/include-agl-local-conf-DISTROFEATURES-AGLCI.sh + - ../common/include-agl-local-conf-vmdk.sh + - ../common/include-agl-local-conf-rpi3-imagetype.sh + #- ../common/include-agl-bitbake-image.sh + - ../common/include-agl-bitbake-sdk.sh + - bitbake-html5-image-qemux86-64.sh + - shell: + !include-raw-escape: include-release-jjb-lamprey-snapshot-rsync.sh + - shell: + !include-raw-escape: + - ../common/include-agl-header.sh + - ../common/include-agl-run-test-prepare.sh + #- ../common/include-agl-run-test-rsync-release.sh + - ../common/include-agl-lava-labs-prepare.sh + - ../common/include-agl-run-test-short-lamprey.sh + - ../common/include-agl-lava-jobs-submit-only.sh diff --git a/jjb/release-jjb-lamprey-sources/include-release-jjb-release-sources-rsync.sh b/jjb/release-jjb-lamprey-sources/include-release-jjb-release-sources-rsync.sh new file mode 100644 index 00000000..b0947b8b --- /dev/null +++ b/jjb/release-jjb-lamprey-sources/include-release-jjb-release-sources-rsync.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +#set -x +set -e + +mkdir -p ~/bin/ || true +curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo +chmod a+x ~/bin/repo +export PATH=$PATH:~/bin/ + +# construct upload folder + + +BRANCH=${RELEASE_BRANCH} +REVISION=${RELEASE_VERSION} + + +rm -rf AGLRELEASE || true + +mkdir agl-${BRANCH}-${REVISION} +pushd agl-${BRANCH}-${REVISION} + +repo init --repo-branch=repo-1 --reference=/opt/AGL/preclone -q -b ${GERRIT_BRANCH} -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo -m ${BRANCH}_${REVISION}.xml + +repo sync --force-sync + +repo manifest -r > ../${BRANCH}_${REVISION}.tar.xml + +rm -rf .repo +find . -name *.git | xargs rm -rf + +ln -sf meta-agl/README-AGL.md + +cat < aglsetup.sh +#!/bin/bash + +source ./meta-agl/scripts/aglsetup.sh \$@ +EOF + +chmod a+x aglsetup.sh + +popd + +tar -cjvf agl-${BRANCH}-${REVISION}.tar.bz2 agl-${BRANCH}-${REVISION} + +md5sum agl-${BRANCH}-${REVISION}.tar.bz2 > agl-${BRANCH}-${REVISION}.tar.bz2.md5sum +sha256sum agl-${BRANCH}-${REVISION}.tar.bz2 > agl-${BRANCH}-${REVISION}.tar.bz2.sha256sum + + + +rm -rf UPLOAD || true +mkdir -p UPLOAD/ + +cp -ar agl-${RELEASE_BRANCH}-${RELEASE_VERSION}.* UPLOAD/ + +export RSYNCSRC=$(pwd)/UPLOAD +export RSYNCDST="/srv/download/AGL/release/${RELEASE_BRANCH}/" + +ls -alh UPLOAD/ + +if test x"yes" = x"${UPLOAD}" ; then + set +x + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 "mkdir -p ${RSYNCDST}" + rsync -avr -e "ssh -o StrictHostKeyChecking=no" ${RSYNCSRC}/* jenkins-slave@10.30.72.8:${RSYNCDST} + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 "rm -rf ${RSYNCDST}/latest" + ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 "ln -sf ${RELEASE_VERSION} ${RSYNCDST}/latest" +fi diff --git a/jjb/release-jjb-lamprey-sources/release-jjb-sources.yaml b/jjb/release-jjb-lamprey-sources/release-jjb-sources.yaml new file mode 100644 index 00000000..c0c663ed --- /dev/null +++ b/jjb/release-jjb-lamprey-sources/release-jjb-sources.yaml @@ -0,0 +1,44 @@ +--- +- project: + name: release-jjb-lamprey-sources + jobs: + - release-jjb-lamprey-sources + +- job-template: + name: 'release-jjb-lamprey-sources' + project-type: freestyle + concurrent: false + node: agl-test-slave + + parameters: + - string: + name: GERRIT_BRANCH + default: master + description: "release version number for build" + - string: + name: RELEASE_VERSION + default: 11.91.0 + description: "release version number for build" + - string: + name: RELEASE_BRANCH + default: lamprey + description: "release branch to build" + - string: + name: UPLOAD + default: yes_or_no + description: "Upload?" + + build-discarder: + days-to-keep: 30 + num-to-keep: 40 + artifact-days-to-keep: -1 + artifact-num-to-keep: 5 + + wrappers: + - agl-infra-wrappers: + build-timeout: '{build-timeout}' + + builders: + - shell: + !include-raw-escape: + - include-release-jjb-release-sources-rsync.sh -- cgit 1.2.3-korg