Add release jobs for koi
authorJan-Simon Möller <jsmoeller@linuxfoundation.org>
Fri, 18 Dec 2020 23:10:18 +0000 (00:10 +0100)
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>
Fri, 18 Dec 2020 23:11:53 +0000 (00:11 +0100)
Change-Id: I3b99282f42268ad9ea206a491ecf79a5e05af8d2
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
jjb/common/include-agl-header.sh
jjb/common/include-agl-run-test-short-koi.sh [new file with mode: 0644]
jjb/release-jjb-koi-release/include-release-jjb-release-move-sandbox.sh [new file with mode: 0644]
jjb/release-jjb-koi-release/release-jjb-release.yaml [new file with mode: 0644]
jjb/release-jjb-koi-snapshot/include-release-jjb-koi-snapshot-rsync.sh [new file with mode: 0644]
jjb/release-jjb-koi-snapshot/release-jjb-koi-snapshot.yaml [new file with mode: 0644]
jjb/release-jjb-koi-sources/include-release-jjb-release-sources-rsync.sh [new file with mode: 0644]
jjb/release-jjb-koi-sources/release-jjb-sources.yaml [new file with mode: 0644]

index 1b7b31d..857a6ea 100644 (file)
@@ -151,17 +151,19 @@ if test x"m3ulcb-nogfx" = x"$MACHINE"; then
     export TARGETMACHINE="m3ulcb"
     export TARGETSDKIMAGE="agl-image-ivi-crosssdk"
 fi
+set -x
 # h3ulcb-nogfx means no graphic drivers
 if test x"h3ulcb-nogfx" = x"$MACHINE"; then
     export TARGETIMAGE=${TARGETIMAGEnogfx}
     if test x"master" = x"${TARGETBRANCH}" ; then
-    export TARGETFEATURES="${TARGETFEATURESnogfx} agl-refhw-h3"
+        export TARGETFEATURES="${TARGETFEATURESnogfx} agl-refhw-h3"
     else
-    export TARGETFEATURES="${TARGETFEATURESnogfx}"
+        export TARGETFEATURES="${TARGETFEATURESnogfx}"
     fi
     export TARGETMACHINE="h3ulcb"
     export TARGETSDKIMAGE="agl-image-ivi-crosssdk"
 fi
+set +x
 
 if test x"raspberrypi4" = x"${MACHINE}" -a x"master" = x"${TARGETBRANCH}" ; then
     export TARGETMACHINE="raspberrypi4-64"
diff --git a/jjb/common/include-agl-run-test-short-koi.sh b/jjb/common/include-agl-run-test-short-koi.sh
new file mode 100644 (file)
index 0000000..91f0a57
--- /dev/null
@@ -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-koi-release/include-release-jjb-release-move-sandbox.sh b/jjb/release-jjb-koi-release/include-release-jjb-release-move-sandbox.sh
new file mode 100644 (file)
index 0000000..2f85a3e
--- /dev/null
@@ -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-koi-release/release-jjb-release.yaml b/jjb/release-jjb-koi-release/release-jjb-release.yaml
new file mode 100644 (file)
index 0000000..29ab879
--- /dev/null
@@ -0,0 +1,49 @@
+---
+- project:
+    name: release-jjb-koi-release-from-snapshot
+    jobs:
+      - release-jjb-koi-release-from-snapshot
+
+- job-template:
+    name: 'release-jjb-koi-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: koi
+          description: "release branch to build"
+      - string:
+          name: RELEASE_VERSION
+          default: 10.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-koi-sources"
+          current-parameters: true
+          block: true
+          same-node: true
diff --git a/jjb/release-jjb-koi-snapshot/include-release-jjb-koi-snapshot-rsync.sh b/jjb/release-jjb-koi-snapshot/include-release-jjb-koi-snapshot-rsync.sh
new file mode 100644 (file)
index 0000000..9be7c6f
--- /dev/null
@@ -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-koi-snapshot/release-jjb-koi-snapshot.yaml b/jjb/release-jjb-koi-snapshot/release-jjb-koi-snapshot.yaml
new file mode 100644 (file)
index 0000000..1f77a6f
--- /dev/null
@@ -0,0 +1,130 @@
+---
+- project:
+    name: release-jjb-koi-snapshot
+    jobs:
+      - release-jjb-koi-snapshot
+
+- job-template:
+    name: 'release-jjb-koi-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/koi_10.91.0
+          description: "refspec to build"
+      - string:
+          name: RELEASE_VERSION
+          default: 10.91.0
+          description: "release version number for build"
+      - string:
+          name: RELEASE_BRANCH
+          default: koi
+          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
+            # 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/koi/**'
+
+    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
+      - shell:
+          !include-raw-escape: include-release-jjb-koi-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-koi.sh
+          - ../common/include-agl-lava-jobs-submit-only.sh
+      - conditional-step:
+          condition-kind: always
+          steps:
+              - shell:
+                  !include-raw-escape:
+                  - ../common/include-agl-get-cost.sh
diff --git a/jjb/release-jjb-koi-sources/include-release-jjb-release-sources-rsync.sh b/jjb/release-jjb-koi-sources/include-release-jjb-release-sources-rsync.sh
new file mode 100644 (file)
index 0000000..7dc9640
--- /dev/null
@@ -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 --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 <<EOF > 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-koi-sources/release-jjb-sources.yaml b/jjb/release-jjb-koi-sources/release-jjb-sources.yaml
new file mode 100644 (file)
index 0000000..e02673b
--- /dev/null
@@ -0,0 +1,44 @@
+---
+- project:
+    name: release-jjb-koi-sources
+    jobs:
+      - release-jjb-koi-sources
+
+- job-template:
+    name: 'release-jjb-koi-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: 10.91.0
+          description: "release version number for build"
+      - string:
+          name: RELEASE_BRANCH
+          default: koi
+          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