aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--96boards-hikey960-aosp-master.yaml24
-rwxr-xr-xandroid-cts/builders.sh1
-rwxr-xr-xandroid-vts/builders.sh1
-rw-r--r--ci-dockerslaves-cleanup.yaml1
-rw-r--r--ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh17
-rw-r--r--ldcg-python-manylinux-tensorflow-nightly.yaml39
-rw-r--r--ldcg-python-manylinux-tensorflow.yaml23
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml42
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/init.yml15
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/publish.yml22
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml6
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow-git2
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/upper-constraints.txt10
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/fetch.yml72
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml4
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/manylinux-build.yml4
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml52
-rw-r--r--ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh9
-rw-r--r--ldcg-python-manylinux-tensorflow/build.sh25
-rw-r--r--ldcg-python-tensorflow-nightly.yaml2
-rw-r--r--ledge-oe-premerge-ci.yaml2
-rwxr-xr-xledge/oe/builders.sh16
-rw-r--r--ledge/oe/submit_for_testing.sh20
-rw-r--r--linaro-art-julien-sandbox.yaml2
-rw-r--r--linaro-art-scripts-presubmit.yaml2
-rw-r--r--linaro-art-test.yaml2
-rw-r--r--linaro-art-tip-build-ARTHostTest.yaml9
-rw-r--r--linaro-art-tip-build-ARTSimulatorTest.yaml4
-rw-r--r--linaro-art-tip-build-ARTTargetTest.yaml4
-rw-r--r--linaro-art-tip-build-ARTVixlTest.yaml4
-rw-r--r--linaro-art-tip-build-MicroBenchmarks-Baseline.yaml4
-rw-r--r--linaro-art-tip-build-MicroBenchmarks.yaml2
-rw-r--r--lite-aeolus-jerryscript.yaml2
-rw-r--r--lite-aeolus-micropython.yaml2
-rw-r--r--lite-tf-m.yaml2
-rwxr-xr-xlite-tf-m/build.sh10
-rwxr-xr-xlite-tf-m/install-deps.sh8
-rwxr-xr-xlite-tf-m/tfm-build.sh30
-rw-r--r--lkft-gki-kernel.yaml16
-rw-r--r--lkft-member-wrapper.yaml8
-rw-r--r--lkft/common/api-callbacks.sh1
-rwxr-xr-xlkft/common/build-aosp-member.sh20
-rwxr-xr-xlkft/common/build-aosp.sh25
-rwxr-xr-xlkft/common/builders-v2.sh6
-rw-r--r--lkft/lava-job-definitions/common/devices/dragonboard-845c4
-rw-r--r--lkft/lava-job-definitions/common/devices/x154
-rw-r--r--lkft/lava-job-definitions/common/template-lkft.yaml9
-rw-r--r--lkft/lava-job-definitions/docker/devices/dragonboard-845c5
-rw-r--r--lkft/lava-job-definitions/docker/devices/hikey13
-rw-r--r--lkft/lava-job-definitions/docker/devices/hikey96013
-rw-r--r--lkft/lava-job-definitions/docker/devices/x155
-rw-r--r--lkft/lava-job-definitions/docker/template-lkft.yaml12
-rw-r--r--lkft/lava-job-definitions/hi6220-hikey/template-boot.yaml1
-rw-r--r--lkft/lava-job-definitions/hi6220-hikey/template-cts.yaml1
-rw-r--r--lkft/lava-job-definitions/hi6220-hikey/template-vts-kernel.yaml1
-rw-r--r--lkft/lava-job-definitions/hi6220-hikey/template-vts-staging-kernel.yaml1
-rwxr-xr-xlkft/lava-job-definitions/submit_for_testing-v2.sh208
-rw-r--r--lkft/lava-job-definitions/x15/template-boot.yaml1
-rw-r--r--lkft/lava-job-definitions/x15/template-cts.yaml1
-rw-r--r--lkft/lava-job-definitions/x15/template-vts-kernel.yaml1
-rw-r--r--lkft/lava-job-definitions/x15/template-vts-staging-kernel.yaml1
-rw-r--r--lt-qcom-bootloader-rb5.yaml4
-rw-r--r--lt-qcom-bootloader/rb5/builders.sh1
-rw-r--r--lt-qcom-bootloader/rb5/test_params4
-rwxr-xr-xlt-qcom-debian-images/submit_for_testing.sh7
-rw-r--r--lt-qcom-linux-build.yaml98
-rw-r--r--lt-qcom-linux-test-integration.yaml (renamed from lt-qcom-linux-integration.yaml)22
-rw-r--r--lt-qcom-linux-test-mainline.yaml (renamed from lt-qcom-linux-mainline.yaml)23
-rw-r--r--lt-qcom-linux-test-release.yaml (renamed from lt-qcom-linux-release.yaml)15
-rwxr-xr-xlt-qcom-linux-test/builders.sh127
-rw-r--r--lt-qcom-linux-test/firmware.list/apq8016-sbc42
-rw-r--r--lt-qcom-linux-test/firmware.list/apq8096-db820c72
-rw-r--r--lt-qcom-linux-test/firmware.list/qrb5165-rb5105
-rw-r--r--lt-qcom-linux-test/firmware.list/sdm845-db845c90
-rwxr-xr-xlt-qcom-linux-test/get_latest_testimage.py4
-rwxr-xr-xlt-qcom-linux-test/submit_for_testing.sh6
-rw-r--r--lt-qcom-linux-testimages-desktop.yaml2
-rw-r--r--lt-qcom-linux-testimages.yaml2
-rw-r--r--lt-qcom-linux.yaml9
-rw-r--r--lt-qcom-linux/builders.sh5
-rw-r--r--lt-qcom-linux/builders_linaro_ci.sh8
-rw-r--r--lt-qcom-openembedded-rpb-dunfell.yaml3
-rwxr-xr-xlt-qcom-openembedded/submit_for_testing.sh7
-rw-r--r--lt-qcom/publishers.sh5
-rw-r--r--openembedded-lkft-linux-stable-rc-5.13.yaml187
-rwxr-xr-xopenembedded-lkft/builders.sh4
-rwxr-xr-xopenembedded-lkft/submit_for_testing.sh12
-rwxr-xr-xrpb-openembedded/builders.sh17
-rw-r--r--schneider-openembedded-dunfell-5.10.yaml155
-rwxr-xr-xschneider-openembedded/builders.sh33
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/dev-image.yaml3
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j17.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j21.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/ltp-ptest.yaml1
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml5
-rw-r--r--schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml21
-rw-r--r--schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml6
-rw-r--r--tcwg-benchmark-compare.yaml2
-rw-r--r--tcwg-benchmark-stm32.yaml11
-rw-r--r--tcwg-benchmark-tk1.yaml199
-rw-r--r--tcwg-benchmark-tx1.yaml199
-rw-r--r--tcwg-benchmark.yaml287
-rw-r--r--tcwg-benchmark.yaml.in273
-rw-r--r--tcwg-benchmark/tcwg-benchmark-tk1.def2
-rw-r--r--tcwg-benchmark/tcwg-benchmark-tx1.def2
-rw-r--r--tcwg-benchmark/tcwg-benchmark.def (renamed from tcwg-benchmark/tcwg-benchmark-stm32.def)2
-rw-r--r--tcwg-benchmark/tcwg-benchmark_backend.def2
-rw-r--r--tcwg-benchmark_backend.yaml310
-rw-r--r--tcwg-buildslave-command.yaml2
-rw-r--r--tcwg-cleanup-stale-containers.yaml23
-rw-r--r--tcwg-cleanup-stale-workspaces.yaml3
-rw-r--r--tcwg-gnu-builds.yaml4
-rw-r--r--tcwg-gnu-builds.yaml.in2
-rw-r--r--tcwg-gnu-patch-benchmarking.yaml2
-rw-r--r--tcwg-infra-update-home.yaml2
-rw-r--r--tcwg-llvm-patch-benchmarking.yaml2
-rw-r--r--tcwg-llvm-release.yaml22
-rw-r--r--tcwg-reboot.yaml1
-rw-r--r--tcwg-report-stale-rr-jobs.yaml12
-rw-r--r--tcwg-report-stale-rr-jobs.yaml.in10
-rw-r--r--tcwg-update-bmk-containers.yaml143
-rw-r--r--tcwg-update-bmk_ref.yaml131
-rw-r--r--tcwg-update-buildkite-containers.yaml5
-rw-r--r--tcwg-update-containers.yaml.in (renamed from tcwg-update.yaml.in)51
-rw-r--r--tcwg-update-containers/tcwg-update-bmk-containers.def1
-rw-r--r--tcwg-update-containers/tcwg-update-buildkite-containers.def (renamed from tcwg-update/tcwg-update-buildkite-containers.def)0
-rw-r--r--tcwg-update-containers/tcwg-update-host-containers.def (renamed from tcwg-update/tcwg-update-host-containers.def)0
-rw-r--r--tcwg-update-containers/tcwg-update-jenkins-containers.def (renamed from tcwg-update/tcwg-update-jenkins-containers.def)0
-rw-r--r--tcwg-update-containers/tcwg-update-llvmbot-containers.def (renamed from tcwg-update/tcwg-update-llvmbot-containers.def)0
-rw-r--r--tcwg-update-host-containers.yaml7
-rw-r--r--tcwg-update-jenkins-containers.yaml7
-rw-r--r--tcwg-update-llvmbot-containers.yaml5
-rw-r--r--tcwg-update-snapshots_ref.yaml101
-rw-r--r--tcwg-update-source-caches.yaml.in129
-rw-r--r--tcwg-update-source-caches/tcwg-update-bmk_ref.def1
-rw-r--r--tcwg-update-source-caches/tcwg-update-snapshots_ref.def1
-rw-r--r--tcwg/default.yaml.inc13
-rw-r--r--tcwg/round-robin.yaml.inc210
-rw-r--r--tcwg_binutils.yaml209
-rw-r--r--tcwg_bmk_ci.yaml.in205
-rw-r--r--tcwg_bmk_ci_gnu.yaml319
-rw-r--r--tcwg_bmk_ci_gnu_eabi.yaml314
-rw-r--r--tcwg_bmk_ci_llvm.yaml327
-rw-r--r--tcwg_bmk_dev.yaml.in62
-rw-r--r--tcwg_bmk_dev_gnu.yaml226
-rw-r--r--tcwg_bmk_dev_llvm.yaml230
-rw-r--r--tcwg_cross.yaml232
-rw-r--r--tcwg_gcc.yaml249
-rw-r--r--tcwg_gnu.yaml.in112
-rw-r--r--tcwg_gnu/tcwg_gcc.def1
-rw-r--r--tcwg_kernel-gnu.yaml187
-rw-r--r--tcwg_kernel-llvm.yaml185
-rw-r--r--tcwg_kernel.yaml.in18
-rw-r--r--tcwg_monitoring.yaml8
-rw-r--r--trigger-hikey-stable.yaml109
-rw-r--r--trigger-linux-stable-rc.yaml3
-rw-r--r--trigger-lkft-android-common.yaml2
-rw-r--r--trigger-lt-qcom-linux-5.10.0.yaml61
-rw-r--r--trigger-lt-qcom-linux-5.12.0.yaml61
-rw-r--r--trigger-lt-qcom-linux-5.7.0.yaml61
-rw-r--r--trigger-lt-qcom-linux-5.9.0.yaml61
-rw-r--r--trigger-lt-qcom-linux-build.yaml103
-rw-r--r--trigger-lt-qcom-linux-test-release.yaml (renamed from trigger-lt-qcom-linux-release.yaml)12
-rwxr-xr-xtrigger-lt-qcom-linux-test-release/get_latest_kernel_release_build.py (renamed from trigger-lt-qcom-linux-release/get_latest_kernel_release_build.py)0
-rw-r--r--trigger-lt-qcom-linux-test.yaml67
-rw-r--r--trigger-lt-qcom-linux.yaml84
-rw-r--r--trigger-zephyr-upstream.yaml6
-rwxr-xr-xuadk/builders-openssl.sh13
-rw-r--r--zephyr-net.yaml4
-rw-r--r--zephyr-upstream.yaml6
176 files changed, 4637 insertions, 3045 deletions
diff --git a/96boards-hikey960-aosp-master.yaml b/96boards-hikey960-aosp-master.yaml
index 94c52a595..bfc2e8682 100644
--- a/96boards-hikey960-aosp-master.yaml
+++ b/96boards-hikey960-aosp-master.yaml
@@ -106,22 +106,38 @@
cd /home/buildslave/srv/aosp-master/build/device/linaro/hikey/; git reset --hard; cd -;
pushd /home/buildslave/srv/aosp-master/build/out/
- for img in "boot.img dt.img vendor.img system.img userdata.img"; do
- pxz -9 $img
+ for img in "boot.img dt.img vendor.img system.img userdata.img super.img"; do
+ pxz -9 $img
done
cp ramdisk.img *.img.xz dist/pub/
popd
pushd /home/buildslave/srv/aosp-master/build/
rm -rf out/target/product/hikey960
- make TARGET_KERNEL_USE=4.14 bootimage vendorimage out/target/product/hikey960/dt.img
+ make TARGET_KERNEL_USE=4.14 bootimage vendorimage superimage out/target/product/hikey960/dt.img
+ cp out/target/product/hikey960/super.img out/super-4.14.img
cp out/target/product/hikey960/vendor.img out/vendor-4.14.img
cp out/target/product/hikey960/boot.img out/boot-4.14.img
cp out/target/product/hikey960/dt.img out/dt-4.14.img
+ cp out/target/product/hikey960/dt.img out/dt-4.14.img
+ xz out/super-4.14.img
xz out/vendor-4.14.img
xz out/boot-4.14.img
xz out/dt-4.14.img
- cp out/boot-4.14.img.xz out/vendor-4.14.img.xz out/dt-4.14.img.xz out/dist/pub/
+ cp out/boot-4.14.img.xz out/super-4.14.img.xz out/vendor-4.14.img.xz out/dt-4.14.img.xz out/dist/pub/
+
+ rm -rf out/target/product/hikey960
+ make TARGET_KERNEL_USE=4.19 bootimage vendorimage superimage out/target/product/hikey960/dt.img
+ cp out/target/product/hikey960/super.img out/super-4.19.img
+ cp out/target/product/hikey960/vendor.img out/vendor-4.19.img
+ cp out/target/product/hikey960/boot.img out/boot-4.19.img
+ cp out/target/product/hikey960/dt.img out/dt-4.19.img
+ cp out/target/product/hikey960/dt.img out/dt-4.19.img
+ xz out/super-4.19.img
+ xz out/vendor-4.19.img
+ xz out/boot-4.19.img
+ xz out/dt-4.19.img
+ cp out/boot-4.19.img.xz out/super-4.19.img.xz out/vendor-4.19.img.xz out/dt-4.19.img.xz out/dist/pub/
popd
wget https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/android-lcr/hikey/build-info/aosp-master-template.txt -O build/out/dist/pub/BUILD-INFO.txt
diff --git a/android-cts/builders.sh b/android-cts/builders.sh
index 1abf089e5..82337f35b 100755
--- a/android-cts/builders.sh
+++ b/android-cts/builders.sh
@@ -28,6 +28,7 @@ cp out/host/linux-x86/cts/android-cts.zip pub/
# Delete sources after build to save space
rm -rf art/ dalvik/ kernel/ bionic/ developers/ libcore/ sdk/ bootable/ development/ libnativehelper/ system/ build/ device/ test/ build-info/ docs/ packages/ toolchain/ .ccache/ external/ pdk/ tools/ compatibility/ frameworks/ platform_testing/ vendor/ cts/ hardware/ prebuilts/ linaro* out/
+rm -fr .repo
# need to convert '_' to '-'
# otherwise, aosp_arm64-userdebug will be translated to '~aosp/arm64-userdebug'
diff --git a/android-vts/builders.sh b/android-vts/builders.sh
index ff2672761..f31e5ae60 100755
--- a/android-vts/builders.sh
+++ b/android-vts/builders.sh
@@ -29,6 +29,7 @@ cp out/host/linux-x86/vts/android-vts.zip pub/
# Delete sources after build to save space
rm -rf art/ dalvik/ kernel/ bionic/ developers/ libcore/ sdk/ bootable/ development/ libnativehelper/ system/ build/ device/ test/ build-info/ docs/ packages/ toolchain/ .ccache/ external/ pdk/ tools/ compatibility/ frameworks/ platform_testing/ vendor/ cts/ hardware/ prebuilts/ linaro* out/
+rm -fr .repo
# need to convert '_' to '-'
# otherwise, aosp_arm64-userdebug will be translated to '~aosp/arm64-userdebug'
diff --git a/ci-dockerslaves-cleanup.yaml b/ci-dockerslaves-cleanup.yaml
index e5ad8c256..59f91221f 100644
--- a/ci-dockerslaves-cleanup.yaml
+++ b/ci-dockerslaves-cleanup.yaml
@@ -33,7 +33,6 @@
- aosp-x86_64-07
- aosp-x86_64-08
- leg-aarch64-01
- - lhg-01
- lkft-x86_64-01
- oe-x86_64-01
- oe-x86_64-02
diff --git a/ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh b/ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh
index c3b696f57..e22c112ef 100644
--- a/ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh
+++ b/ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh
@@ -7,8 +7,10 @@ source "$(dirname $0)/vars.sh"
# some packages require deps from EPEL
yum install -y epel-release
-# if one of dependencies is missing or wrong then exit
-yum install -y ${EXTRA_DEPENDENCIES_CENTOS} || exit
+if ! [ -z $EXTRA_DEPENDENCIES_CENTOS ]; then
+ # if one of dependencies is missing or wrong then exit
+ yum install -y ${EXTRA_DEPENDENCIES_CENTOS} || exit
+fi
cd /tmp/workspace
@@ -26,7 +28,7 @@ export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$(nproc)"
# create virtualenv for each Python version
# and update pip as we want 19+
-for py in /opt/python/cp3[6789]*
+for py in /opt/python/cp3[67891]*
do
pyver=`basename $py`
$py/bin/python -mvenv /tmp/$pyver
@@ -38,14 +40,13 @@ done
for pkg in $PYTHON_PACKAGES
do
- for py in /opt/python/cp3[6789]*
+ for py in /opt/python/cp3[67891]*
do
pyver=`basename $py`
- pkgname=`echo $pkg | cut -d'=' -f1`
- echo $pkgname
source /tmp/$pyver/bin/activate
- pip wheel $pkg
- auditwheel repair ${pkgname}*${pyver}-linux_aarch64.whl
+ pkgname=$(python3 -c "import re;print(re.split(r'([<=>~]*)=', '${pkg}')[0])")
+ pip wheel $pkg || true
+ auditwheel repair $(ls -ct1 ${pkgname}*whl |head -n1) || true
deactivate
done
done
diff --git a/ldcg-python-manylinux-tensorflow-nightly.yaml b/ldcg-python-manylinux-tensorflow-nightly.yaml
new file mode 100644
index 000000000..42fd8c5e3
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow-nightly.yaml
@@ -0,0 +1,39 @@
+- job:
+ name: ldcg-python-manylinux-tensorflow-nightly
+ project-type: freestyle
+ defaults: global
+ triggers:
+ - timed: '@daily'
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 7
+ num-to-keep: 7
+ parameters:
+ - bool:
+ name: buildgit
+ default: true
+ description: 'Build git HEAD'
+ disabled: false
+ node: ldcg-aarch64-02
+ concurrent: false
+ display-name: 'Tensorflow Python package (manylinux2014 nightly)'
+ wrappers:
+ - timestamps
+ builders:
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/build.sh
+ - linaro-publish-token
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/publishers.sh
+ publishers:
+ - email:
+ recipients: 'marcin.juszkiewicz@linaro.org'
diff --git a/ldcg-python-manylinux-tensorflow.yaml b/ldcg-python-manylinux-tensorflow.yaml
index 644b9e07a..5c17af568 100644
--- a/ldcg-python-manylinux-tensorflow.yaml
+++ b/ldcg-python-manylinux-tensorflow.yaml
@@ -15,8 +15,29 @@
- build-discarder:
days-to-keep: 7
num-to-keep: 7
+ parameters:
+ - bool:
+ name: buildgit
+ default: false
+ description: 'Build git HEAD'
+ - bool:
+ name: build26
+ default: false
+ description: 'Build 2.6.x version'
+ - bool:
+ name: build25
+ default: false
+ description: 'Build 2.5.x version'
+ - bool:
+ name: build24
+ default: false
+ description: 'Build 2.4.x version'
+ - bool:
+ name: build115
+ default: false
+ description: 'Build 1.15.x version'
disabled: false
- node: leg-aarch64
+ node: ldcg-aarch64-02
concurrent: false
display-name: 'Tensorflow Python package (manylinux2014)'
wrappers:
diff --git a/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml
index 367ab6286..b99372b0b 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml
@@ -3,21 +3,10 @@
../vars/vars.yml
tasks:
- - name: install TensorFlow build dependencies
+ - name: initialize job
include_role:
- name: tensorflow
- tasks_from: deps.yml
-
- - name: install build dependencies for Python wheels
- include_role:
- name: python
- tasks_from: deps.yml
-
- - name: create directory to build wheels
- file:
- path: "{{ wheels_dir }}"
- state: directory
- mode: 0755
+ name: ldcg-manylinux-tensorflow
+ tasks_from: init.yml
- name: go through each TensorFlow version
include_role:
@@ -26,26 +15,9 @@
loop: "{{ versions | dict2items }}"
loop_control:
loop_var: tf_ver
+ when: tf_ver.key in to_be_built
- - name: run repair on wheels
- include_role:
- name: linaro
- tasks_from: auditwheel-repair.yml
-
- - name: prepare wheels for publishing
- include_role:
- name: linaro
- tasks_from: publish-wheels.yml
-
- - name: copy wheels for cache upload
- copy:
- src: "{{ wheels_dir }}"
- dest: "{{ build_dir }}/cache_upload"
- mode: 0666
-
- - name: prepare wheels for cache
+ - name: do publishing stuff
include_role:
- name: linaro
- tasks_from: publish-wheels-cache.yml
- vars:
- wheels_dir: "{{ build_dir }}/cache_upload"
+ name: ldcg-manylinux-tensorflow
+ tasks_from: publish.yml
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/init.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/init.yml
new file mode 100644
index 000000000..797dfd447
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/init.yml
@@ -0,0 +1,15 @@
+- name: install TensorFlow build dependencies
+ include_role:
+ name: tensorflow
+ tasks_from: deps.yml
+
+- name: install build dependencies for Python wheels
+ include_role:
+ name: python
+ tasks_from: deps.yml
+
+- name: create directory to build wheels
+ file:
+ path: "{{ wheels_dir }}"
+ state: directory
+ mode: 0755
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/publish.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/publish.yml
new file mode 100644
index 000000000..31b5493f3
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/publish.yml
@@ -0,0 +1,22 @@
+- name: run repair on wheels
+ include_role:
+ name: linaro
+ tasks_from: auditwheel-repair.yml
+
+- name: prepare wheels for publishing
+ include_role:
+ name: linaro
+ tasks_from: publish-wheels.yml
+
+- name: copy wheels for cache upload
+ copy:
+ src: "{{ wheels_dir }}"
+ dest: "{{ build_dir }}/cache_upload"
+ mode: 0644
+
+- name: prepare wheels for cache
+ include_role:
+ name: linaro
+ tasks_from: publish-wheels-cache.yml
+ vars:
+ wheels_dir: "{{ build_dir }}/cache_upload"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml
index d1ecbffb5..0de728534 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml
@@ -6,9 +6,9 @@
pip:
virtualenv: "{{ virtualenv_path }}"
virtualenv_command: "/opt/python/{{ py_ver }}/bin/python3 -mvenv"
- extra_args: "--extra-index-url {{ pip_extra_index_url }}"
+ extra_args: "--extra-index-url {{ pip_extra_index_url }} -c '{{ wheels_dir }}/upper-constraints.txt'"
name:
- - "pip>21.1"
+ - pip
- pkgconfig
- - "Cython>=0.23"
+ - Cython
- wheel
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow-git b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow-git
index 06f108440..ecb0d64d0 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow-git
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow-git
@@ -1,7 +1,7 @@
#!/usr/bin/expect
spawn "./configure"
expect {
- "*Please specify the location of python*" {send "/usr/bin/python3\r";exp_continue}
+ "*Please specify the location of python*" {send "\r";exp_continue}
"*Please input the desired Python library path to use*" {send "\r";exp_continue}
"*Do you wish to build TensorFlow with ROCm support*" {send "n\r";exp_continue}
"*Do you wish to build TensorFlow with CUDA support*" {send "n\r";exp_continue}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/upper-constraints.txt b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/upper-constraints.txt
index bf7563091..2ab6bd59d 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/upper-constraints.txt
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/upper-constraints.txt
@@ -1,8 +1,13 @@
Cython>=0.29
+pip>=21
+# those differ between 1.5/2.4/git
+gast{{ gast_version }}
+grpcio{{ grpcio_version }}
+h5py{{ h5py_version }}
+numpy{{ numpy_version }}
# entries below are taken from Tensorflow 1.15.4/2.4.1 source code.
-grpcio~=1.32.0
absl-py ~= 0.10
astor >= 0.6.0
@@ -18,9 +23,6 @@ termcolor ~= 1.1.0
typing_extensions ~= 3.7.4
wheel ~= 0.35
wrapt ~= 1.12.1
-# These packages needs to be pinned exactly as newer versions are
-# incompatible with the rest of the ecosystem
-gast == 0.3.3
# tensorboard and tensorflow-estimator dependencies are not listed
# they are fetched on installation
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/fetch.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/fetch.yml
index 4508a510c..8c93955b3 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/fetch.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/fetch.yml
@@ -1,45 +1,45 @@
- block:
- - name: fetch tensorflow {{ tensorflow_version }} source
- get_url:
- url: "https://github.com/tensorflow/tensorflow/archive/v{{ tensorflow_version }}.tar.gz"
- dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}.tar.gz"
- mode: 0600
+ - name: fetch tensorflow {{ tensorflow_version }} source
+ get_url:
+ url: "https://github.com/tensorflow/tensorflow/archive/v{{ tensorflow_version }}.tar.gz"
+ dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}.tar.gz"
+ mode: 0600
- - name: unpack tensorflow {{ tensorflow_version }} source
- unarchive:
- src: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}.tar.gz"
- dest: "{{ build_dir }}/"
- remote_src: true
+ - name: unpack tensorflow {{ tensorflow_version }} source
+ unarchive:
+ src: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}.tar.gz"
+ dest: "{{ build_dir }}/"
+ remote_src: true
- - name: copy configure script
- copy:
- src: "files/configure_tensorflow"
- dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/configure_tensorflow"
- mode: 0400
+ - name: copy configure script
+ copy:
+ src: "files/configure_tensorflow"
+ dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/configure_tensorflow"
+ mode: 0400
- - name: drop Python 2.7 deps
- lineinfile:
- regexp: "^.*'{{ item }} >=.*$"
- state: absent
- path: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/tensorflow/tools/pip_package/setup.py"
- loop:
- - "functools32"
- - "enum34"
- - "backports.weakref"
+ - name: drop Python 2.7 deps
+ lineinfile:
+ regexp: "^.*'{{ item }} >=.*$"
+ state: absent
+ path: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/tensorflow/tools/pip_package/setup.py"
+ loop:
+ - "functools32"
+ - "enum34"
+ - "backports.weakref"
when: tensorflow_version != 'git'
- block:
- - name: fetch tensorflow from git
- git:
- repo: "https://github.com/tensorflow/tensorflow.git" # noqa 401
- dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/"
- depth: 1
- recursive: true
- force: true
+ - name: fetch tensorflow from git
+ git:
+ repo: "https://github.com/tensorflow/tensorflow.git" # noqa 401
+ dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/"
+ depth: 1
+ recursive: true
+ force: true
- - name: copy configure script
- copy:
- src: "files/configure_tensorflow-git"
- dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/configure_tensorflow"
- mode: 0400
+ - name: copy configure script
+ copy:
+ src: "files/configure_tensorflow-git"
+ dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/configure_tensorflow"
+ mode: 0400
when: tensorflow_version == 'git'
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml
index da2eeef1d..fe5526635 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml
@@ -1,8 +1,10 @@
- name: set TensorFlow version
set_fact:
tensorflow_version: "{{ tf_ver.value.tensorflow_version }}"
- numpy_version: "{{ tf_ver.value.numpy_version }}"
+ gast_version: "{{ tf_ver.value.gast_version }}"
+ grpcio_version: "{{ tf_ver.value.grpcio_version }}"
h5py_version: "{{ tf_ver.value.h5py_version }}"
+ numpy_version: "{{ tf_ver.value.numpy_version }}"
- name: build Bazel
include_role:
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/manylinux-build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/manylinux-build.yml
index 637b8c729..e03d2a4fa 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/manylinux-build.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/manylinux-build.yml
@@ -30,7 +30,7 @@
- include: fetch.yml
-- name: build TensorFlow {{ tensorflow_version }} # noqa no-changed-when
+- name: build TensorFlow {{ tensorflow_version }} for {{ py_ver }} # noqa no-changed-when
shell:
cmd: |
set -xe
@@ -66,7 +66,7 @@
name: "{{ wheel_file.path }}"
virtualenv: "{{ virtualenv_path }}"
virtualenv_python: "/opt/python/{{ py_ver }}/bin/python3"
- extra_args: "--extra-index-url {{ pip_extra_index_url }}"
+ extra_args: "--extra-index-url {{ pip_extra_index_url }} -c '{{ wheels_dir }}/upper-constraints.txt'"
- name: copy resulting wheel
copy:
diff --git a/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml b/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
index f1db6dedb..4a05daeee 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
@@ -3,11 +3,37 @@ pip_extra_index_url: "https://snapshots.linaro.org/ldcg/python-cache/"
build_dir: "/tmp/workspace"
wheels_dir: "/tmp/workspace/wheels/"
versions:
+ "2.6":
+ tensorflow_version: "2.6.0-rc1"
+ bazel_version: "3.7.2"
+ gast_version: "==0.4.0"
+ grpcio_version: "~=1.37.0"
+ h5py_version: "~=3.1.0"
+ numpy_version: "~=1.19.2"
+ python_versions:
+ - cp36-cp36m
+ - cp37-cp37m
+ - cp38-cp38
+ - cp39-cp39
+ "2.5":
+ tensorflow_version: "2.5.0"
+ bazel_version: "3.7.2"
+ gast_version: "==0.4.0"
+ grpcio_version: "~=1.34.0"
+ h5py_version: "~=3.1.0"
+ numpy_version: "~=1.19.2"
+ python_versions:
+ - cp36-cp36m
+ - cp37-cp37m
+ - cp38-cp38
+ - cp39-cp39
"2.4":
- tensorflow_version: "2.4.1"
+ tensorflow_version: "2.4.2"
bazel_version: "3.5.0"
- numpy_version: "~=1.19.2"
+ gast_version: "==0.3.3"
+ grpcio_version: "~=1.32.0"
h5py_version: "~=2.10"
+ numpy_version: "~=1.19.2"
python_versions:
- cp36-cp36m
- cp37-cp37m
@@ -16,8 +42,28 @@ versions:
"1.15":
tensorflow_version: "1.15.5"
bazel_version: "0.29.1"
- numpy_version: "~=1.18.0"
+ gast_version: "==0.3.3"
+ grpcio_version: "~=1.32.0"
h5py_version: "==2.10"
+ numpy_version: "~=1.18.0"
python_versions:
- cp36-cp36m
- cp37-cp37m
+ "git":
+ tensorflow_version: "git"
+ bazel_version: "3.7.2"
+ gast_version: "==0.4.0"
+ grpcio_version: ">= 1.37.0, < 2.0"
+ h5py_version: "~=3.1.0"
+ numpy_version: "~=1.19.2"
+ python_versions:
+ - cp36-cp36m
+ - cp37-cp37m
+ - cp38-cp38
+ - cp39-cp39
+to_be_built:
+# - "1.15"
+# - "2.4"
+# - "2.5"
+# - "2.6"
+# - "git"
diff --git a/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh b/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh
index 07c9d5c53..46e613029 100644
--- a/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh
+++ b/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh
@@ -3,16 +3,15 @@
set -xe
# Ansible is noarch so we can just grab it from x86-64 repo
-yum install -y http://mirror.centos.org/centos/7/configmanagement/x86_64/ansible-29/Packages/a/ansible-2.9.18-1.el7.noarch.rpm
+yum install -y centos-release-ansible-29
+yum install -y ansible
cd /tmp/workspace
# remove wheels and wheelhouse/ from previous jobs
# we do it here as they are root:root
-rm -rf wheel* *.whl cache* configs
+rm -rf wheel* *.whl cache*
-git clone --depth 1 https://git.linaro.org/ci/job/configs.git
-
cd configs/ldcg-python-manylinux-tensorflow/ansible
-
+
ansible-playbook playbooks/build-tf.yml
diff --git a/ldcg-python-manylinux-tensorflow/build.sh b/ldcg-python-manylinux-tensorflow/build.sh
index 0cf433ffc..caf9a9edf 100644
--- a/ldcg-python-manylinux-tensorflow/build.sh
+++ b/ldcg-python-manylinux-tensorflow/build.sh
@@ -4,12 +4,29 @@ set -xe
cd $WORKSPACE
-# remove generated vars and build script
-rm -f *.sh
+rm -rf *.sh configs
-wget https://git.linaro.org/ci/job/configs.git/plain/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh
+git clone --depth 1 https://git.linaro.org/ci/job/configs.git
+
+cp configs/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh .
# 00:01:17.010 /usr/local/bin/manylinux-entrypoint: line 8: /tmp/wheels/build-manylinux2014-wheels.sh: Permission denied
chmod 755 build-manylinux2014-wheels.sh
-docker run -u root -v $PWD:/tmp/workspace quay.io/pypa/manylinux2014_aarch64 /tmp/workspace/build-manylinux2014-wheels.sh
+if [ "$build115" = "true" ]; then
+ echo ' - "1.15"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$build24" = "true" ]; then
+ echo ' - "2.4"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$build25" = "true" ]; then
+ echo ' - "2.5"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$build26" = "true" ]; then
+ echo ' - "2.6"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$buildgit" = "true" ]; then
+ echo ' - "git"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+
+docker run -u root --security-opt seccomp=unconfined -v $PWD:/tmp/workspace quay.io/pypa/manylinux2014_aarch64 /tmp/workspace/build-manylinux2014-wheels.sh
diff --git a/ldcg-python-tensorflow-nightly.yaml b/ldcg-python-tensorflow-nightly.yaml
index ecf3bb186..dad3a905a 100644
--- a/ldcg-python-tensorflow-nightly.yaml
+++ b/ldcg-python-tensorflow-nightly.yaml
@@ -26,7 +26,7 @@
- build-discarder:
days-to-keep: 7
num-to-keep: 7
- disabled: false
+ disabled: true
display-name: 'Tensorflow Python package (nightly build)'
wrappers:
- timestamps
diff --git a/ledge-oe-premerge-ci.yaml b/ledge-oe-premerge-ci.yaml
index a673239ef..79740c17a 100644
--- a/ledge-oe-premerge-ci.yaml
+++ b/ledge-oe-premerge-ci.yaml
@@ -61,7 +61,7 @@
github-hooks: true
permit-all: true
white-list-target-branches:
- - 'zeus'
+ - 'hardknott'
- 'dunfell'
auth-id: 'GITHUB_TOKEN'
axes:
diff --git a/ledge/oe/builders.sh b/ledge/oe/builders.sh
index 75ac0f9a9..285fc997e 100755
--- a/ledge/oe/builders.sh
+++ b/ledge/oe/builders.sh
@@ -145,22 +145,6 @@ case "${ORIG_MACHINE}" in
esac
build_ledgerp_docs() {
- if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 update; then
- echo "INFO: apt update error - try again in a moment"
- sleep 15
- sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 update || true
- fi
- # Install deps
- pkg_list="python-pip python-sphinx texlive texlive-latex-extra libalgorithm-diff-perl \
- texlive-humanities texlive-generic-recommended texlive-generic-extra \
- latexmk"
- if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}; then
- echo "INFO: apt install error - try again in a moment"
- sleep 15
- sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}
- fi
- pip install --user --upgrade Sphinx
- export SPHINXBUILD=~/.local/bin/sphinx-build
# Build docs
cd ../layers/ledge-doc
make latexpdf
diff --git a/ledge/oe/submit_for_testing.sh b/ledge/oe/submit_for_testing.sh
index 6cb89adce..e1616cded 100644
--- a/ledge/oe/submit_for_testing.sh
+++ b/ledge/oe/submit_for_testing.sh
@@ -1,26 +1,8 @@
#!/bin/bash
-# Install all deps required for lauch lava jobs
-if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 update; then
- echo "INFO: apt update error - try again in a moment"
- sleep 15
- sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 update || true
-fi
-
-pkg_list="chrpath cpio diffstat gawk git expect pkg-config python-pip python-requests python-crypto libpixman-1-dev python python3 python-all-dev python-wheel"
-if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}; then
- echo "INFO: apt install error - try again in a moment"
- sleep 15
- sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}
-fi
-
sudo locale-gen en_US.UTF-8 && sudo update-locale LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
-# install required python modules
-pip install --user --force-reinstall Jinja2 ruamel.yaml==0.16.13
-
-
if [ ${MACHINE} = "ledge-ti-am572x" ]; then
export MACHINE="x15-bl_uefi"
fi
@@ -75,7 +57,7 @@ for DEVICE_TYPE in ${DTYPES}; do
oe_urls
fi
- python configs/openembedded-lkft/submit_for_testing.py \
+ python3 configs/openembedded-lkft/submit_for_testing.py \
--device-type ${DEVICE_TYPE} \
--build-number ${BUILD_NUMBER} \
--lava-server ${LAVA_SERVER} \
diff --git a/linaro-art-julien-sandbox.yaml b/linaro-art-julien-sandbox.yaml
index b5001aa8d..5e6b89f61 100644
--- a/linaro-art-julien-sandbox.yaml
+++ b/linaro-art-julien-sandbox.yaml
@@ -12,7 +12,7 @@
- job-read
- job-extended-read
- job-workspace
- julien.duraj@linaro.org:
+ akos.denke@linaro.org:
- job-build
- job-configure
- job-read
diff --git a/linaro-art-scripts-presubmit.yaml b/linaro-art-scripts-presubmit.yaml
index 278f8ec65..f85328012 100644
--- a/linaro-art-scripts-presubmit.yaml
+++ b/linaro-art-scripts-presubmit.yaml
@@ -71,4 +71,4 @@
${ART_BUILD_SCRIPTS_DIR}/presubmit.sh
publishers:
- email:
- recipients: 'vishal.bhoj@linaro.org daniel.diaz@linaro.org julien.duraj@linaro.org'
+ recipients: 'vishal.bhoj@linaro.org daniel.diaz@linaro.org akos.denke@linaro.org'
diff --git a/linaro-art-test.yaml b/linaro-art-test.yaml
index d59a0cfeb..791cc1cdf 100644
--- a/linaro-art-test.yaml
+++ b/linaro-art-test.yaml
@@ -18,7 +18,7 @@
- job-read
- job-extended-read
- job-workspace
- julien.duraj@linaro.org:
+ akos.denke@linaro.org:
- job-build
- job-configure
- job-read
diff --git a/linaro-art-tip-build-ARTHostTest.yaml b/linaro-art-tip-build-ARTHostTest.yaml
index 7bb757b98..fae53c90a 100644
--- a/linaro-art-tip-build-ARTHostTest.yaml
+++ b/linaro-art-tip-build-ARTHostTest.yaml
@@ -34,7 +34,7 @@
default: 'master'
- string:
name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip'
+ default: 'linaro-art-tip-short'
- bool:
name: CLEAN_BUILD
default: false
@@ -92,7 +92,7 @@
CI_MAIL_RECIPIENTS="${GERRIT_CHANGE_OWNER_EMAIL},${GERRIT_EVENT_ACCOUNT_EMAIL}"
CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},vishal.bhoj@linaro.org"
CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},daniel.diaz@linaro.org"
- CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},julien.duraj@linaro.org"
+ CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},akos.denke@linaro.org"
echo "CI_MAIL_RECIPIENTS=${CI_MAIL_RECIPIENTS}" > env_var_parameters
- inject:
properties-file: env_var_parameters
@@ -104,9 +104,6 @@
ANDROID_BUILD_DIR="${HOME}/srv/${JOB_NAME}/android"
ART_BUILD_SCRIPTS_DIR="${WORKSPACE}/art-build-scripts"
git clone https://android-git.linaro.org/git/linaro-art/art-build-scripts.git ${ART_BUILD_SCRIPTS_DIR}
- cd ${ART_BUILD_SCRIPTS_DIR}
- git fetch https://android-git.linaro.org/git/linaro-art/art-build-scripts.git refs/changes/39/22239/1 && git checkout FETCH_HEAD
- cd -
cd ${ART_BUILD_SCRIPTS_DIR}/jenkins
./setup_host.sh
@@ -114,6 +111,8 @@
cd ${ANDROID_BUILD_DIR}
[[ ${CLEAN_BUILD} == "true" ]] && rm -rf out/
+ . build/envsetup.sh
+ lunch armv8
perl scripts/jenkins/test_launcher.pl \
scripts/tests/test_art_host.sh
publishers:
diff --git a/linaro-art-tip-build-ARTSimulatorTest.yaml b/linaro-art-tip-build-ARTSimulatorTest.yaml
index 1f9e12a57..9c264bf13 100644
--- a/linaro-art-tip-build-ARTSimulatorTest.yaml
+++ b/linaro-art-tip-build-ARTSimulatorTest.yaml
@@ -32,7 +32,7 @@
- string:
name: BUILD_CONFIG_FILENAME
default: 'linaro-art-tip-short'
- disabled: true
+ disabled: false
node: docker-bionic-art
display-name: 'Tip: Simulator Test'
concurrent: true
@@ -86,7 +86,7 @@
CI_MAIL_RECIPIENTS="${GERRIT_CHANGE_OWNER_EMAIL},${GERRIT_EVENT_ACCOUNT_EMAIL}"
CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},vishal.bhoj@linaro.org"
CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},daniel.diaz@linaro.org"
- CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},julien.duraj@linaro.org"
+ CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},akos.denke@linaro.org"
echo "CI_MAIL_RECIPIENTS=${CI_MAIL_RECIPIENTS}" > env_var_parameters
- inject:
properties-file: env_var_parameters
diff --git a/linaro-art-tip-build-ARTTargetTest.yaml b/linaro-art-tip-build-ARTTargetTest.yaml
index 0fe4077a2..2884e9c5a 100644
--- a/linaro-art-tip-build-ARTTargetTest.yaml
+++ b/linaro-art-tip-build-ARTTargetTest.yaml
@@ -44,7 +44,7 @@
- string:
name: SCRIPT_OPTIONS
default: '--default'
- disabled: true
+ disabled: false
node: docker-bionic-art
display-name: 'Tip: Target Test'
concurrent: true
@@ -97,7 +97,7 @@
CI_MAIL_RECIPIENTS="${GERRIT_CHANGE_OWNER_EMAIL},${GERRIT_EVENT_ACCOUNT_EMAIL}"
CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},vishal.bhoj@linaro.org"
CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},daniel.diaz@linaro.org"
- CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},julien.duraj@linaro.org"
+ CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},akos.denke@linaro.org"
echo "CI_MAIL_RECIPIENTS=${CI_MAIL_RECIPIENTS}" > env_var_parameters
- inject:
properties-file: env_var_parameters
diff --git a/linaro-art-tip-build-ARTVixlTest.yaml b/linaro-art-tip-build-ARTVixlTest.yaml
index b2188c960..4d5470bdd 100644
--- a/linaro-art-tip-build-ARTVixlTest.yaml
+++ b/linaro-art-tip-build-ARTVixlTest.yaml
@@ -34,8 +34,8 @@
default: 'master'
- string:
name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip'
- disabled: true
+ default: 'linaro-art-tip-short'
+ disabled: false
node: docker-bionic-art
display-name: 'Tip: VIXL Test'
concurrent: true
diff --git a/linaro-art-tip-build-MicroBenchmarks-Baseline.yaml b/linaro-art-tip-build-MicroBenchmarks-Baseline.yaml
index 906b6fb46..78335aee7 100644
--- a/linaro-art-tip-build-MicroBenchmarks-Baseline.yaml
+++ b/linaro-art-tip-build-MicroBenchmarks-Baseline.yaml
@@ -81,8 +81,8 @@
default: 'master'
- string:
name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip'
- disabled: true
+ default: 'linaro-art-tip-short'
+ disabled: false
node: docker-bionic-art
display-name: 'Tip: Benchmarks Baseline (Nexus 5X and Pixel 2/3)'
concurrent: true
diff --git a/linaro-art-tip-build-MicroBenchmarks.yaml b/linaro-art-tip-build-MicroBenchmarks.yaml
index c5b9fedae..024e43145 100644
--- a/linaro-art-tip-build-MicroBenchmarks.yaml
+++ b/linaro-art-tip-build-MicroBenchmarks.yaml
@@ -38,7 +38,7 @@
default: 'master'
- string:
name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip'
+ default: 'linaro-art-tip-short'
disabled: false
node: docker-bionic-art
display-name: 'Tip: Benchmarks (Pixel 3)'
diff --git a/lite-aeolus-jerryscript.yaml b/lite-aeolus-jerryscript.yaml
index abb6904af..734180323 100644
--- a/lite-aeolus-jerryscript.yaml
+++ b/lite-aeolus-jerryscript.yaml
@@ -33,7 +33,7 @@
default: 'https://github.com/zephyrproject-rtos/zephyr'
- string:
name: ZEPHYR_BRANCH
- default: 'master'
+ default: 'main'
- string:
name: LAVA_SERVER
default: 'validation.linaro.org/RPC2/'
diff --git a/lite-aeolus-micropython.yaml b/lite-aeolus-micropython.yaml
index f138cce3d..4d9b62002 100644
--- a/lite-aeolus-micropython.yaml
+++ b/lite-aeolus-micropython.yaml
@@ -29,7 +29,7 @@
default: 'https://github.com/zephyrproject-rtos/zephyr'
- string:
name: ZEPHYR_BRANCH
- default: 'master'
+ default: 'main'
- string:
name: LAVA_SERVER
default: 'validation.linaro.org/RPC2/'
diff --git a/lite-tf-m.yaml b/lite-tf-m.yaml
index 328742fca..e0b2df799 100644
--- a/lite-tf-m.yaml
+++ b/lite-tf-m.yaml
@@ -34,7 +34,7 @@
default: 'master'
- string:
name: GIT_COMMIT
- default: 'f58bd227e66b'
+ default: '865778b9d96d'
- string:
name: LAVA_SERVER
default: 'validation.linaro.org/RPC2/'
diff --git a/lite-tf-m/build.sh b/lite-tf-m/build.sh
index 0fee05f1d..7a86e157f 100755
--- a/lite-tf-m/build.sh
+++ b/lite-tf-m/build.sh
@@ -14,12 +14,10 @@ export PATH=${GNUARMEMB_TOOLCHAIN_PATH}/bin:$PATH
git clone https://git.trustedfirmware.org/trusted-firmware-m.git -b ${BRANCH}
(cd trusted-firmware-m; git checkout ${GIT_COMMIT})
-git clone --depth 1 https://github.com/ARMmbed/mbed-crypto.git -b mbedcrypto-3.0.1
-
-# This will clone files via git-lfs, whhich may hit Github quota.
-# git clone --depth 1 https://github.com/ARM-software/CMSIS_5.git -b 5.5.0
-wget -q https://github.com/ARM-software/CMSIS_5/releases/download/5.5.0/ARM.CMSIS.5.5.0.pack
-unzip ARM.CMSIS.5.5.0.pack -d CMSIS_5
+#git clone --depth 1 https://github.com/ARMmbed/mbed-crypto.git -b mbedcrypto-3.0.1
+git clone --depth 1 https://github.com/ARMmbed/mbedtls.git -b mbedtls-2.23.0
+git clone https://git.trustedfirmware.org/TF-M/tf-m-tests.git
+(cd tf-m-tests; git checkout f8dd5b5f7f96505c53ef4ebc3b6ccbc02a3bf639)
cd trusted-firmware-m
echo "GIT_COMMIT_ID=$(git rev-parse --short=8 HEAD)" > ${WORKSPACE}/env_var_parameters
diff --git a/lite-tf-m/install-deps.sh b/lite-tf-m/install-deps.sh
index a99e38982..c411d0b69 100755
--- a/lite-tf-m/install-deps.sh
+++ b/lite-tf-m/install-deps.sh
@@ -3,11 +3,7 @@ set -ex
export DEBIAN_FRONTEND=noninteractive
sudo apt-get -qq update
-sudo apt-get -qq -y install python3 python3-pip python3-setuptools srecord libffi-dev libssl-dev
-
-# No git-lfs package in Ununtu Xenial, install manually from packagecloud.io
-wget https://packagecloud.io/github/git-lfs/packages/ubuntu/xenial/git-lfs_2.11.0_amd64.deb/download.deb -O git-lfs_2.11.0_amd64.deb
-sudo dpkg -i git-lfs_2.11.0_amd64.deb
+sudo apt-get -qq -y install python3 python3-pip python3-setuptools python3-click srecord libffi-dev libssl-dev
# As a first step, upgrade pip itself. The one shipping with Ubuntu 18.04
# is rather old by now, and may have issues installing modern .whl packages.
@@ -32,7 +28,5 @@ df -h
# List available toolchains
ls -l ${TOOLCHAINS}
-git lfs install
-
# Preclude spammy "advices"
git config --global advice.detachedHead false
diff --git a/lite-tf-m/tfm-build.sh b/lite-tf-m/tfm-build.sh
index f2c60e6de..d648ca6e1 100755
--- a/lite-tf-m/tfm-build.sh
+++ b/lite-tf-m/tfm-build.sh
@@ -18,27 +18,35 @@ else
fi
# Set the config file to use
-configfile=ConfigRegression
+#configfile=ConfigRegression
-target=AN521
+#target=AN521
# Generate the S and NS makefiles
-cmake -G"Unix Makefiles" \
- -DPROJ_CONFIG=`$readlink -f ../configs/$configfile.cmake` \
- -DTARGET_PLATFORM=$target \
- -DCMAKE_BUILD_TYPE=Debug \
- -DBL2=False \
- -DCOMPILER=GNUARM \
- ../
+#cmake -G"Unix Makefiles" \
+# -DPROJ_CONFIG=`$readlink -f ../configs/$configfile.cmake` \
+# -DTARGET_PLATFORM=$target \
+# -DCMAKE_BUILD_TYPE=Debug \
+# -DBL2=False \
+# -DCOMPILER=GNUARM \
+# ../
+
+cmake -DTFM_PLATFORM=mps2/an521 \
+ -DCMAKE_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DBL2=False \
+ -DTEST_S=ON -DTEST_NS=ON \
+ -DTFM_TEST_REPO_PATH=../../tf-m-tests \
+ ../
# Build the binaries
make install
# Convert S and NS binaries to .hex file
arm-none-eabi-objcopy -S --gap-fill 0xff -O ihex \
- install/outputs/$target/tfm_s.axf tfm_s.hex
+ install/outputs/*/*/tfm_s.axf tfm_s.hex
arm-none-eabi-objcopy -S --gap-fill 0xff -O ihex \
- install/outputs/$target/tfm_ns.axf tfm_ns.hex
+ install/outputs/*/*/tfm_ns.axf tfm_ns.hex
# Generate a single hex file for convenience/QEMU sake
srec_cat tfm_s.hex -Intel tfm_ns.hex -Intel -o tfm_full.hex -Intel
diff --git a/lkft-gki-kernel.yaml b/lkft-gki-kernel.yaml
index 5b6825215..2bfe96821 100644
--- a/lkft-gki-kernel.yaml
+++ b/lkft-gki-kernel.yaml
@@ -68,7 +68,9 @@
build_configs_mainline="lkft-db845c-aosp-master-mainline-gki lkft-hikey960-aosp-master-mainline-gki"
build_configs_13_510="lkft-db845c-aosp-master-android13-5.10-gki lkft-hikey960-aosp-master-android13-5.10-gki"
build_configs_12_510="lkft-member-wrapper"
+ build_configs_12_510_lts="lkft-member-wrapper"
build_configs_12_54="lkft-member-wrapper"
+ build_configs_12_54_lts="lkft-member-wrapper"
build_configs_11_54="lkft-db845c-android11-android11-5.4-gki lkft-hikey960-android11-android11-5.4-gki lkft-db845c-aosp-master-android11-5.4-gki lkft-hikey960-aosp-master-android11-5.4-gki lkft-member-wrapper"
build_configs_11_54_premerge="lkft-db845c-android11-android11-5.4-gki-premerge lkft-hikey960-android11-android11-5.4-gki-premerge"
build_configs_11_54_lts="lkft-db845c-android11-android11-5.4-lts-gki lkft-hikey960-android11-android11-5.4-lts-gki"
@@ -89,9 +91,15 @@
"Xandroid12-5.4")
build_configs="${build_configs_12_54}"
;;
+ "Xandroid12-5.4-lts")
+ build_configs="${build_configs_12_54_lts}"
+ ;;
"Xandroid12-5.10")
build_configs="${build_configs_12_510}"
;;
+ "Xandroid12-5.10-lts")
+ build_configs="${build_configs_12_510_lts}"
+ ;;
"Xandroid13-5.10")
build_configs="${build_configs_13_510}"
;;
@@ -144,6 +152,8 @@
property-file: params_android11-5.4-lkft-member-wrapper.txt
- project: lkft-member-wrapper
property-file: params_android12-5.4-lkft-member-wrapper.txt
+ - project: lkft-member-wrapper
+ property-file: params_android12-5.4-lts-lkft-member-wrapper.txt
- project: lkft-generic-build
property-file: params_android11-5.4-weekly-lkft-db845c-android11-android11-5.4-gki.txt
- project: lkft-generic-build
@@ -154,6 +164,8 @@
property-file: params_android12-5.10-lkft-hikey960-aosp-master-android12-5.10-gki.txt
- project: lkft-member-wrapper
property-file: params_android12-5.10-lkft-member-wrapper.txt
+ - project: lkft-member-wrapper
+ property-file: params_android12-5.10-lts-lkft-member-wrapper.txt
- project: lkft-generic-build
property-file: params_android13-5.10-lkft-db845c-aosp-master-android13-5.10-gki.txt
- project: lkft-generic-build
@@ -174,6 +186,10 @@
property-file: params_android12-5.10-weekly-lkft-member-wrapper.txt
- project: lkft-generic-build
property-file: params_android13-5.10-presubmit-lkft-db845c-aosp-master-android13-5.10-gki.txt
+ - project: lkft-generic-build
+ property-file: params_android13-5.10-weekly-lkft-db845c-aosp-master-android13-5.10-gki.txt
+ - project: lkft-generic-build
+ property-file: params_android13-5.10-weekly-lkft-hikey960-aosp-master-android13-5.10-gki.txt
publishers:
- logparser:
diff --git a/lkft-member-wrapper.yaml b/lkft-member-wrapper.yaml
index 385860b9b..88ede9486 100644
--- a/lkft-member-wrapper.yaml
+++ b/lkft-member-wrapper.yaml
@@ -76,6 +76,10 @@
- trigger-builds:
- project: lkft-member-build
+ property-file: params_84a8b22f9316a4260a2b47f5752d62b9.txt
+ - project: lkft-member-build
+ property-file: params_6f8e8c60c15aa4a76976c9b549dc18ec.txt
+ - project: lkft-member-build
property-file: params_927501fb333e6715f573c7f085107f30.txt
- project: lkft-member-build
property-file: params_b257960da2650d3caaf4f4dd979b081f.txt
@@ -84,6 +88,10 @@
- project: lkft-member-build
property-file: params_6c2f6d66b6b0e4e4a2a2cf42b639566a.txt
- project: lkft-member-build
+ property-file: params_574c7c67dada400d908564a1dedffa07.txt
+ - project: lkft-member-build
+ property-file: params_80b56a1e46f126c659cc94bfcc33d266.txt
+ - project: lkft-member-build
property-file: params_2ad26db752fc7161505f7c46848a7f05.txt
- project: lkft-member-build
property-file: params_8ffd4c85051e1337236f199329f8c7a5.txt
diff --git a/lkft/common/api-callbacks.sh b/lkft/common/api-callbacks.sh
index d72aa3b31..f966dcf5d 100644
--- a/lkft/common/api-callbacks.sh
+++ b/lkft/common/api-callbacks.sh
@@ -9,6 +9,5 @@ if [ -n "${KERNEL_BRANCH}" ] && \
[ -n "${CALLER_JOB_NAME}" ] && \
[ -n "${CALLER_BUILD_NUMBER}" ]; then
curl -L https://android.linaro.org/lkft/newchanges/${KERNEL_BRANCH}/${QA_BUILD_VERSION}/${CALLER_JOB_NAME}/${CALLER_BUILD_NUMBER} || true
- curl -L http://213.146.155.43/lkft/newchanges/${KERNEL_BRANCH}/${QA_BUILD_VERSION}/${CALLER_JOB_NAME}/${CALLER_BUILD_NUMBER} || true
fi
diff --git a/lkft/common/build-aosp-member.sh b/lkft/common/build-aosp-member.sh
index fe26591d0..bbb1f4a03 100755
--- a/lkft/common/build-aosp-member.sh
+++ b/lkft/common/build-aosp-member.sh
@@ -44,7 +44,7 @@ function build_android(){
wget -c https://android-git.linaro.org/android-build-configs.git/plain/linaro-build.sh -O linaro-build.sh
chmod +x linaro-build.sh
if [ -n "${ANDROID_BUILD_CONFIG}" ]; then
- bash -x ./linaro-build.sh -c "${ANDROID_BUILD_CONFIG}"
+ bash -ex ./linaro-build.sh -c "${ANDROID_BUILD_CONFIG}"
# ${ANDROID_BUILD_CONFIG} will be repo synced after build
# shellcheck source=/dev/null
source "android-build-configs/${ANDROID_BUILD_CONFIG}"
@@ -56,13 +56,18 @@ function build_android(){
[ -n "${MANIFEST_URL}" ] && opt_maniefst_url="-m ${MANIFEST_URL}"
[ -n "${MAKE_TARGETS}" ] && export MAKE_TARGETS
# shellcheck disable=SC2086
- bash -x ./linaro-build.sh -tp "${TARGET_PRODUCT}" ${opt_maniefst_url} ${opt_manfest_branch}
+ bash -ex ./linaro-build.sh -tp "${TARGET_PRODUCT}" ${opt_maniefst_url} ${opt_manfest_branch}
+ fi
+ if [ "X${TARGET_PRODUCT}X" = "Xaosp_arm64X" ]; then
+ # for cts vts
+ DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/generic_arm64"
+ else
+ DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/${TARGET_PRODUCT}"
fi
- DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/${TARGET_PRODUCT}"
mkdir -p "${DIR_PUB_SRC}"
# shellcheck disable=SC2086
- cp -a ${ANDROID_ROOT}/out/pinned-manifest/*-pinned-manifest.xml "${DIR_PUB_SRC}"
+ cp -a ${ANDROID_ROOT}/out/pinned-manifest/*-pinned-manifest.xml "${DIR_PUB_SRC}/pinned-manifest.xml"
wget https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/lkft/common/build-info/member.txt -O "${DIR_PUB_SRC}/BUILD-INFO.txt"
if [ -z "${PUBLISH_FILES}" ]; then
@@ -112,6 +117,7 @@ function build_android(){
# clean workspace to save space
function clean_workspace(){
+ # Delete sources after build to save space
rm -fr "${ANDROID_ROOT}"
}
@@ -129,8 +135,8 @@ function export_parameters(){
fi
# Publish parameters
- # shellcheck disable=SC2086
- cp -a ${DIR_PUB_SRC}/*-pinned-manifest.xml "${WORKSPACE}" || true
+ # The pinned-manifest was copied into the publist directory as pinned-manifest.xml already
+ cp -a "${DIR_PUB_SRC}/pinned-manifest.xml" "${WORKSPACE}"
echo "PUB_DEST=android/lkft/protected/aosp/${PUB_DEST_TARGET}/${BUILD_NUMBER}" > "${WORKSPACE}/publish_parameters"
echo "PUB_SRC=${DIR_PUB_SRC}" >> "${WORKSPACE}/publish_parameters"
echo "PUB_EXTRA_INC=^[^/]+\.(txt|img|xz|dtb|dtbo|zip)$|MLO|vmlinux|System.map" >> "${WORKSPACE}/publish_parameters"
@@ -141,8 +147,8 @@ function main(){
build_android
if ${IN_JENKINS} && [ -n "${WORKSPACE}" ]; then
- clean_workspace
export_parameters
+ clean_workspace
fi
}
diff --git a/lkft/common/build-aosp.sh b/lkft/common/build-aosp.sh
index e8983a91e..40ab7887a 100755
--- a/lkft/common/build-aosp.sh
+++ b/lkft/common/build-aosp.sh
@@ -58,7 +58,7 @@ function build_android(){
wget -c https://android-git.linaro.org/android-build-configs.git/plain/linaro-build.sh -O linaro-build.sh
chmod +x linaro-build.sh
if [ -n "${ANDROID_BUILD_CONFIG}" ]; then
- bash -x ./linaro-build.sh -c "${ANDROID_BUILD_CONFIG}"
+ bash -ex ./linaro-build.sh -c "${ANDROID_BUILD_CONFIG}"
# ${ANDROID_BUILD_CONFIG} will be repo synced after build
# shellcheck source=/dev/null
source "android-build-configs/${ANDROID_BUILD_CONFIG}"
@@ -70,13 +70,18 @@ function build_android(){
[ -n "${MANIFEST_URL}" ] && opt_maniefst_url="-m ${MANIFEST_URL}"
[ -n "${MAKE_TARGETS}" ] && export MAKE_TARGETS
# shellcheck disable=SC2086
- bash -x ./linaro-build.sh -tp "${TARGET_PRODUCT}" ${opt_maniefst_url} ${opt_manfest_branch}
+ bash -ex ./linaro-build.sh -tp "${TARGET_PRODUCT}" ${opt_maniefst_url} ${opt_manfest_branch}
+ fi
+ if [ "X${TARGET_PRODUCT}X" = "Xaosp_arm64X" ]; then
+ # for cts vts
+ DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/generic_arm64"
+ else
+ DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/${TARGET_PRODUCT}"
fi
- DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/${TARGET_PRODUCT}"
mkdir -p "${DIR_PUB_SRC}"
# shellcheck disable=SC2086
- cp -a ${ANDROID_ROOT}/out/pinned-manifest/*-pinned-manifest.xml "${DIR_PUB_SRC}"
+ cp -a ${ANDROID_ROOT}/out/pinned-manifest/*-pinned-manifest.xml "${DIR_PUB_SRC}/pinned-manifest.xml"
wget https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/android-lcr/hikey/build-info/aosp-master-template.txt -O "${DIR_PUB_SRC}/BUILD-INFO.txt"
if [ -z "${PUBLISH_FILES}" ]; then
@@ -126,12 +131,8 @@ function build_android(){
# clean workspace to save space
function clean_workspace(){
- cd "${ANDROID_ROOT}"
# Delete sources after build to save space
- rm -rf art/ dalvik/ kernel/ bionic/ developers/ libcore/ sdk/ bootable/ development/
- rm -fr libnativehelper/ system/ build/ device/ test/ build-info/ docs/ packages/
- rm -fr toolchain/ .ccache/ external/ pdk/ tools/ compatibility/ frameworks/
- rm -fr platform_testing/ vendor/ cts/ hardware/ prebuilts/
+ rm -fr "${ANDROID_ROOT}"
}
# export parameters for publish/job submission steps
@@ -148,8 +149,8 @@ function export_parameters(){
fi
# Publish parameters
- # shellcheck disable=SC2086
- cp -a ${DIR_PUB_SRC}/*-pinned-manifest.xml "${WORKSPACE}" || true
+ # The pinned-manifest was copied into the publist directory as pinned-manifest.xml already
+ cp -a "${DIR_PUB_SRC}/pinned-manifest.xml" "${WORKSPACE}/"
echo "PUB_DEST=android/lkft/${PUB_DEST_TARGET}/${BUILD_NUMBER}" > "${WORKSPACE}/publish_parameters"
echo "PUB_SRC=${DIR_PUB_SRC}" >> "${WORKSPACE}/publish_parameters"
echo "PUB_EXTRA_INC=^[^/]+\.(txt|img|xz|dtb|dtbo|zip)$|MLO|vmlinux|System.map" >> "${WORKSPACE}/publish_parameters"
@@ -160,8 +161,8 @@ function main(){
build_android
if ${IN_JENKINS} && [ -n "${WORKSPACE}" ]; then
- clean_workspace
export_parameters
+ clean_workspace
fi
}
diff --git a/lkft/common/builders-v2.sh b/lkft/common/builders-v2.sh
index b9f944787..376907e73 100755
--- a/lkft/common/builders-v2.sh
+++ b/lkft/common/builders-v2.sh
@@ -16,7 +16,6 @@ if [ -n "${KERNEL_BRANCH}" ] && [ -n "${KERNEL_DESCRIBE}" ] && [ -n "${JOB_NAME}
fi
curl -L https://android.linaro.org/lkft/newbuild/${KERNEL_BRANCH}/${QA_BUILD_VERSION}/${JOB_NAME}/${BUILD_NUMBER} || true
- curl -L http://213.146.155.43/lkft/newbuild/${KERNEL_BRANCH}/${QA_BUILD_VERSION}/${JOB_NAME}/${BUILD_NUMBER} || true
fi
git config --global user.email "ci_notify@linaro.org"
@@ -41,7 +40,10 @@ fi
# Install ruamel.yaml and Jinja2 for submit_for_testing.py
# to submit jobs
-pip3 install --user --force-reinstall ruamel.yaml Jinja2
+pip3 install --user --force-reinstall ruamel.yaml Jinja2 squad-client
+# install the squad-client with the default pip command
+# so that the squad-client could be found
+pip install --user --force-reinstall squad-client
sudo apt-get update
sudo apt-get install -y selinux-utils cpio
diff --git a/lkft/lava-job-definitions/common/devices/dragonboard-845c b/lkft/lava-job-definitions/common/devices/dragonboard-845c
index 3ec7464af..1f391a4bc 100644
--- a/lkft/lava-job-definitions/common/devices/dragonboard-845c
+++ b/lkft/lava-job-definitions/common/devices/dragonboard-845c
@@ -1,6 +1,10 @@
{% extends "template-lkft.yaml" %}
{% block device_type %}dragonboard-845c{% endblock %}
+{% block device_tags %}
+tags:
+- lcg
+{% endblock device_tags %}
{% block deploy_target %}
- deploy:
diff --git a/lkft/lava-job-definitions/common/devices/x15 b/lkft/lava-job-definitions/common/devices/x15
index 45b58e3fe..b37822941 100644
--- a/lkft/lava-job-definitions/common/devices/x15
+++ b/lkft/lava-job-definitions/common/devices/x15
@@ -1,6 +1,10 @@
{% extends "template-lkft.yaml" %}
{% block device_type %}x15{% endblock %}
+{% block device_tags %}
+tags:
+- hdmi-dongle
+{% endblock device_tags %}
{% block deploy_target %}
- deploy:
diff --git a/lkft/lava-job-definitions/common/template-lkft.yaml b/lkft/lava-job-definitions/common/template-lkft.yaml
index fe1df18a4..a9c407edd 100644
--- a/lkft/lava-job-definitions/common/template-lkft.yaml
+++ b/lkft/lava-job-definitions/common/template-lkft.yaml
@@ -2,6 +2,7 @@
{% endblock global_settings %}
device_type: {% block device_type %}{% endblock device_type %}
+{% block device_tags %}{% endblock device_tags %}
job_name: {% block job_name %}{% endblock job_name %}
{% block priority %}
@@ -22,6 +23,13 @@ metadata:
android.name: "{{JOB_NAME}}"
android.url: "{{REFERENCE_BUILD_URL}}"
android.version: "{{ANDROID_VERSION}}"
+{% if ANDROID_VENDOR_FINGERPRINT is defined %}
+ android.build.vendor.fingerprint: "{{ANDROID_VENDOR_FINGERPRINT}}"
+{% endif %}
+{% if ANDROID_GSI_FINGERPRINT is defined %}
+ android.build.gsi.url: "{{ANDROID_GSI_URL}}"
+ android.build.gsi.fingerprint: "{{ANDROID_GSI_FINGERPRINT}}"
+{% endif %}
git branch: "{{KERNEL_BRANCH}}"
git repo: "{{KERNEL_REPO}}"
git commit: "{{KERNEL_COMMIT}}"
@@ -41,6 +49,7 @@ protocols:
{% block protocols %}
lava-lxc:
name: lxc-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/docker/devices/dragonboard-845c b/lkft/lava-job-definitions/docker/devices/dragonboard-845c
index 2c6872b20..a6c5e8fe6 100644
--- a/lkft/lava-job-definitions/docker/devices/dragonboard-845c
+++ b/lkft/lava-job-definitions/docker/devices/dragonboard-845c
@@ -1,6 +1,11 @@
{% extends "template-lkft.yaml" %}
{% block device_type %}dragonboard-845c{% endblock %}
+{% block device_tags %}
+tags:
+- lcg
+{% endblock device_tags %}
+
{% block deploy_target %}
- deploy:
diff --git a/lkft/lava-job-definitions/docker/devices/hikey b/lkft/lava-job-definitions/docker/devices/hikey
index 50f9a478b..1d5d927e0 100644
--- a/lkft/lava-job-definitions/docker/devices/hikey
+++ b/lkft/lava-job-definitions/docker/devices/hikey
@@ -14,6 +14,18 @@
images:
ptable:
url: http://images.validation.linaro.org/snapshots.linaro.org/96boards/reference-platform/components/uefi-staging/69/hikey/release/ptable-aosp-8g.img
+{% if TUXSUITE_DOWNLOAD_URL is defined %}
+ postprocess:
+ docker:
+ image: tuxsuite/tuxsuite:0.25.0
+ steps:
+ - apt-get update && apt-get install -y wget selinux-utils cpio rsync sudo bc curl git xz-utils
+ - rm -fr /linaro-android/lkft && mkdir -p /linaro-android/lkft
+ - wget https://android-git.linaro.org/android-build-configs.git/plain/lkft/linaro-lkft.sh?h=lkft -O /linaro-android/lkft/linaro-lkft.sh && chmod +x /linaro-android/lkft/linaro-lkft.sh
+ - cd /linaro-android/lkft && TUXSUITE_DOWNLOAD_URL={{TUXSUITE_DOWNLOAD_URL}} ./linaro-lkft.sh -c {{LKFT_BUILD_CONFIG}} && cd -
+ - for f in {{PUBLISH_FILES}}; do if echo $f|grep '\.xz$'; then [ -f /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f} ] && rm -f /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/$(echo ${f}|sed "s|.xz$||") && xz -d /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f}; fi;done
+ - for f in {{PUBLISH_FILES}}; do f_no_xz=$(echo ${f}|sed "s|.xz$||"); [ -f /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f_no_xz} ] && mv -v /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f_no_xz} /lava-downloads/${f_no_xz}; done
+{% else %}
boot:
url: {{DOWNLOAD_URL}}/boot.img.xz
compression: xz
@@ -26,6 +38,7 @@
vendor:
url: {{REFERENCE_BUILD_URL}}/vendor.img.xz
compression: xz
+{% endif %}
- deploy:
timeout:
diff --git a/lkft/lava-job-definitions/docker/devices/hikey960 b/lkft/lava-job-definitions/docker/devices/hikey960
index 5e5c0af06..b9f63858f 100644
--- a/lkft/lava-job-definitions/docker/devices/hikey960
+++ b/lkft/lava-job-definitions/docker/devices/hikey960
@@ -14,6 +14,18 @@
images:
ptable:
url: https://images.validation.linaro.org/snapshots.linaro.org/96boards/reference-platform/components/uefi-staging/85/hikey960/release/prm_ptable.img
+{% if TUXSUITE_DOWNLOAD_URL is defined %}
+ postprocess:
+ docker:
+ image: tuxsuite/tuxsuite:0.25.0
+ steps:
+ - apt-get update && apt-get install -y wget selinux-utils cpio rsync sudo bc curl git xz-utils
+ - rm -fr /linaro-android/lkft && mkdir -p /linaro-android/lkft
+ - wget https://android-git.linaro.org/android-build-configs.git/plain/lkft/linaro-lkft.sh?h=lkft -O /linaro-android/lkft/linaro-lkft.sh && chmod +x /linaro-android/lkft/linaro-lkft.sh
+ - cd /linaro-android/lkft && TUXSUITE_DOWNLOAD_URL={{TUXSUITE_DOWNLOAD_URL}} ./linaro-lkft.sh -c {{LKFT_BUILD_CONFIG}} && cd -
+ - for f in {{PUBLISH_FILES}}; do if echo $f|grep '\.xz$'; then [ -f /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f} ] && rm -f /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/$(echo ${f}|sed "s|.xz$||") && xz -d /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f}; fi;done
+ - for f in {{PUBLISH_FILES}}; do f_no_xz=$(echo ${f}|sed "s|.xz$||"); [ -f /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f_no_xz} ] && mv -v /linaro-android/lkft/out/{{LKFT_BUILD_CONFIG}}/${f_no_xz} /lava-downloads/${f_no_xz}; done
+{% else %}
boot:
url: {{DOWNLOAD_URL}}/boot.img.xz
compression: xz
@@ -32,6 +44,7 @@
url: {{REFERENCE_BUILD_URL}}/vendor.img.xz
compression: xz
{% endif %}
+{% endif %}
- deploy:
timeout:
diff --git a/lkft/lava-job-definitions/docker/devices/x15 b/lkft/lava-job-definitions/docker/devices/x15
index 2cfdbf53d..9005f16f2 100644
--- a/lkft/lava-job-definitions/docker/devices/x15
+++ b/lkft/lava-job-definitions/docker/devices/x15
@@ -1,7 +1,10 @@
{% extends "template-lkft.yaml" %}
{% block device_type %}x15{% endblock %}
-
+{% block device_tags %}
+tags:
+- hdmi-dongle
+{% endblock device_tags %}
{% block deploy_target %}
- deploy:
diff --git a/lkft/lava-job-definitions/docker/template-lkft.yaml b/lkft/lava-job-definitions/docker/template-lkft.yaml
index 3716c8fd3..e8918f005 100644
--- a/lkft/lava-job-definitions/docker/template-lkft.yaml
+++ b/lkft/lava-job-definitions/docker/template-lkft.yaml
@@ -2,6 +2,7 @@
{% endblock global_settings %}
device_type: {% block device_type %}{% endblock device_type %}
+{% block device_tags %}{% endblock device_tags %}
job_name: {% block job_name %}{% endblock job_name %}
{% block priority %}
@@ -22,6 +23,17 @@ metadata:
android.name: "{{JOB_NAME}}"
android.url: "{{REFERENCE_BUILD_URL}}"
android.version: "{{ANDROID_VERSION}}"
+{% if ANDROID_VENDOR_FINGERPRINT is defined %}
+ android.build.vendor.fingerprint: "{{ANDROID_VENDOR_FINGERPRINT}}"
+{% endif %}
+{% if ANDROID_GSI_FINGERPRINT is defined %}
+ android.build.gsi.url: "{{ANDROID_GSI_URL}}"
+ android.build.gsi.fingerprint: "{{ANDROID_GSI_FINGERPRINT}}"
+{% endif %}
+{% if TUXSUITE_DOWNLOAD_URL is defined %}
+ tuxsuite.download.url: "{{TUXSUITE_DOWNLOAD_URL}}"
+{% endif %}
+ lkft.build.config: "{{LKFT_BUILD_CONFIG}}"
git branch: "{{KERNEL_BRANCH}}"
git repo: "{{KERNEL_REPO}}"
git commit: "{{KERNEL_COMMIT}}"
diff --git a/lkft/lava-job-definitions/hi6220-hikey/template-boot.yaml b/lkft/lava-job-definitions/hi6220-hikey/template-boot.yaml
index b02c6c1d4..876c3fdf3 100644
--- a/lkft/lava-job-definitions/hi6220-hikey/template-boot.yaml
+++ b/lkft/lava-job-definitions/hi6220-hikey/template-boot.yaml
@@ -29,6 +29,7 @@ metadata:
protocols:
lava-lxc:
name: lxc-hikey-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/hi6220-hikey/template-cts.yaml b/lkft/lava-job-definitions/hi6220-hikey/template-cts.yaml
index 379b884af..06faa6c1f 100644
--- a/lkft/lava-job-definitions/hi6220-hikey/template-cts.yaml
+++ b/lkft/lava-job-definitions/hi6220-hikey/template-cts.yaml
@@ -36,6 +36,7 @@ metadata:
protocols:
lava-lxc:
name: lxc-hikey-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/hi6220-hikey/template-vts-kernel.yaml b/lkft/lava-job-definitions/hi6220-hikey/template-vts-kernel.yaml
index b6bb9fb66..24e93fa30 100644
--- a/lkft/lava-job-definitions/hi6220-hikey/template-vts-kernel.yaml
+++ b/lkft/lava-job-definitions/hi6220-hikey/template-vts-kernel.yaml
@@ -32,6 +32,7 @@ metadata:
protocols:
lava-lxc:
name: lxc-hikey-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/hi6220-hikey/template-vts-staging-kernel.yaml b/lkft/lava-job-definitions/hi6220-hikey/template-vts-staging-kernel.yaml
index a6d35667e..83e982763 100644
--- a/lkft/lava-job-definitions/hi6220-hikey/template-vts-staging-kernel.yaml
+++ b/lkft/lava-job-definitions/hi6220-hikey/template-vts-staging-kernel.yaml
@@ -31,6 +31,7 @@ metadata:
protocols:
lava-lxc:
name: lxc-hikey-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/submit_for_testing-v2.sh b/lkft/lava-job-definitions/submit_for_testing-v2.sh
index 354a804ae..70133b348 100755
--- a/lkft/lava-job-definitions/submit_for_testing-v2.sh
+++ b/lkft/lava-job-definitions/submit_for_testing-v2.sh
@@ -82,6 +82,16 @@ function update_device_template(){
sed -i "s|${default_db845c_aosp_gpu_url}|{{DOWNLOAD_URL}}/${f_img_name}|" "${f_device_template}"
fi
+ if [ -n "${TUXSUITE_DOWNLOAD_URL}" ]; then
+ # for case that TUXSUITE_DOWNLOAD_URL specified,
+ # the images will be genereated on the lava side,
+ # so no need to update the REFERENCE_BUILD_URL or DOWNLOAD_URL any more
+
+ # and for the hikey8.1 case, vendor.img will be generated with the cache.img by the linaro-lkft.sh
+
+ return
+
+ fi
# DOWNLOAD_URL is where the generated files stored
# replace REFERENCE_BUILD_URL with DOWNLOAD_URL
sed -i "s|{{REFERENCE_BUILD_URL}}/${f_img_name}|{{DOWNLOAD_URL}}/${f_img_name}|" "${f_device_template}"
@@ -104,15 +114,116 @@ function update_device_template(){
fi
}
+function download_fingerprint(){
+ local fingerprint_url="${1}"
+ local fingerprint_name="${2}"
+ if ! wget "${fingerprint_url}" -O "${fingerprint_name}"; then
+ rm -f "${fingerprint_name}"
+ touch "${fingerprint_name}"
+ fi
+}
+
+function create_or_update_project(){
+ # to avoid the leaking fo the REGISTER_CALLBACK_TOKEN
+ set +x
+ if [ -z "${QA_REPORTS_TOKEN}" ]; then
+ set -x
+ return
+ fi
+ path_squad_client=""
+ if which squad-client; then
+ path_squad_client=$(which squad-client)
+ elif [ -f "${HOME}/.local/bin/squad-client" ]; then
+ path_squad_client="${HOME}/.local/bin/squad-client"
+ else
+ echo "squad-client not found"
+ set -x
+ return
+ fi
+
+ local qa_server="${1}"
+ local qa_team_group="${2}"
+ local qa_project_private="${3}"
+ local qa_project_slug="${4}"
+ local qa_project_name="${5}"
+
+ if [ -z "${qa_project_name}" ]; then
+ qa_project_name="${qa_project_slug}"
+ fi
+
+ qa_project_plugins="linux_log_parser,tradefed"
+
+ qa_project_public_settings='PLUGINS_TRADEFED_EXTRACT_AGGREGATED: True
+CI_LAVA_INFRA_ERROR_MESSAGES:
+- Connection closed
+- lava_test_shell connection dropped.
+- fastboot-flash-action timed out
+- lava-test-shell timed out after 1200 seconds
+- "tradefed - adb device lost"
+- "Download finished ([0-9]+ bytes) but was not expected size ([0-9]+ bytes), check your networking."
+- Unable to fetch git repository
+- "/usr/local/lab-scripts/cbrxd_hub_control --usb_port"
+- "Device NOT found!"
+- /usr/local/lab-scripts/cbrxd_hub_control
+- "lava-docker-test-shell timed out after [0-9]+ seconds"
+- "lxc-apt-install timed out after [0-9]+ seconds"
+- "/usr/local/lab-scripts/cbrxd_hub_control --usb_port"
+- "wait-device-boardid timed out after [0-9]+ seconds"
+'
+
+ if [ -n "${REGISTER_CALLBACK_TOKEN}" ]; then
+ callback_headers_for_echo="CALLBACK_HEADERS: {PRIVATE-TOKEN: ******}"
+ callback_headers="CALLBACK_HEADERS: {PRIVATE-TOKEN: ${REGISTER_CALLBACK_TOKEN}}"
+
+ qa_project_settings="${callback_headers}
+${qa_project_public_settings}"
+ qa_project_settings_for_echo="${callback_headers_for_echo}
+${qa_project_public_settings}"
+ else
+ qa_project_settings="${qa_project_public_settings}"
+ qa_project_settings_for_echo="${qa_project_public_settings}"
+ fi
+
+ qa_projcect_public_private="--is-public"
+ if [ -n "${qa_project_private}" ] && [ "${qa_project_private}" = "true" ] ; then
+ qa_projcect_public_private="--is-private"
+ fi
+
+ # enable --no-overwrite to avoid updating on the existing projects
+ # to avoid causing any problem for the existing projects
+ cmd_squad_client="${path_squad_client} --squad-host ${qa_server} --squad-token ****** create-or-update-project"
+ cmd_squad_client="${cmd_squad_client} --group ${qa_team_group} --slug ${qa_project_slug} --name ${qa_project_name} ${qa_projcect_public_private} --plugins ${qa_project_plugins}"
+ cmd_squad_client="${cmd_squad_client} --settings ${qa_project_settings_for_echo} --no-overwrite --data-retention 0"
+ echo "${cmd_squad_client}"
+
+ if [ -z "${ENV_DRY_RUN_FOR_PROJECT_CREATING}" ] || [ "${ENV_DRY_RUN_FOR_PROJECT_CREATING}" = "false" ] ; then
+ ${path_squad_client} \
+ --squad-host "${qa_server}" --squad-token "${QA_REPORTS_TOKEN}" \
+ create-or-update-project \
+ --group "${qa_team_group}" \
+ --slug "${qa_project_slug}" \
+ --name "${qa_project_name}" \
+ ${qa_projcect_public_private} \
+ --plugins ${qa_project_plugins} \
+ --settings "${qa_project_settings}" \
+ --no-overwrite \
+ --data-retention 0 || true
+ fi
+ set -x
+
+}
+
function submit_jobs_for_config(){
local build_config=$1 && shift
+ export LKFT_BUILD_CONFIG="${build_config}"
+
local f_qareport_urls="qareport_url.txt"
[ -z "${DEFAULT_TEST_LAVA_JOB_PRIORITY}" ] && DEFAULT_TEST_LAVA_JOB_PRIORITY="medium"
# clean environments
- unset TEST_DEVICE_TYPE TEST_LAVA_SERVER TEST_QA_SERVER TEST_QA_SERVER_TEAM TEST_QA_SERVER_PROJECT TEST_QA_SERVER_ENVIRONMENT
- unset ANDROID_VERSION KERNEL_BRANCH KERNEL_REPO TEST_METADATA_TOOLCHAIN TEST_VTS_URL TEST_CTS_URL REFERENCE_BUILD_URL
+ unset TEST_DEVICE_TYPE TEST_LAVA_SERVER TEST_QA_SERVER TEST_QA_SERVER_TEAM TEST_QA_SERVER_PROJECT TEST_QA_SERVER_PROJECT_NAME TEST_QA_SERVER_PROJECT_PRIVATE TEST_QA_SERVER_ENVIRONMENT
+ unset ANDROID_VERSION KERNEL_BRANCH KERNEL_REPO TEST_METADATA_TOOLCHAIN TEST_VTS_URL TEST_CTS_URL REFERENCE_BUILD_URL ANDROID_VENDOR_FINGERPRINT
unset PUBLISH_FILES TEST_OTHER_PLANS TEST_TEMPLATES_TYPE TEST_LAVA_JOB_GROUP TEST_LAVA_JOB_PRIORITY
unset IMAGE_SUPPORTED_CACHE IMAGE_SUPPORTED_VENDOR_BOOT
unset HIKEY960_SUPPORT_SUPER
@@ -130,14 +241,77 @@ function submit_jobs_for_config(){
fi
fi
check_environments
+ export PUBLISH_FILES="${PUBLISH_FILES}"
[ -z "${TEST_LAVA_JOB_GROUP}" ] && TEST_LAVA_JOB_GROUP=lkft
[ -n "${TEST_LAVA_JOB_PRIORITY}" ] && DEFAULT_TEST_LAVA_JOB_PRIORITY="${TEST_LAVA_JOB_PRIORITY}"
[ -z "${TEST_LAVA_JOB_PRIORITY}" ] && TEST_LAVA_JOB_PRIORITY="${DEFAULT_TEST_LAVA_JOB_PRIORITY}"
+ [ -n "${HIKEY960_SUPPORT_SUPER}" ] && export HIKEY960_SUPPORT_SUPER
export TEST_LAVA_JOB_GROUP TEST_LAVA_JOB_PRIORITY
export ANDROID_VERSION KERNEL_BRANCH KERNEL_REPO TEST_METADATA_TOOLCHAIN TEST_VTS_URL TEST_CTS_URL REFERENCE_BUILD_URL
- export TEST_VTS_VERSION=$(echo ${TEST_VTS_URL} | awk -F"/" '{print$(NF-1)}')
- export TEST_CTS_VERSION=$(echo ${TEST_CTS_URL} | awk -F"/" '{print$(NF-1)}')
- [ -n "${HIKEY960_SUPPORT_SUPER}" ] && export HIKEY960_SUPPORT_SUPER
+ TEST_VTS_VERSION=$(echo "${TEST_VTS_URL}" | tr -s '/' | sed 's|/$||' | awk -F"/" '{print$(NF)}')
+ TEST_CTS_VERSION=$(echo "${TEST_CTS_URL}" | tr -s '/' | sed 's|/$||' | awk -F"/" '{print$(NF)}')
+
+ if echo "${TEST_VTS_URL}"|grep '/aosp-master/'; then
+ # for aosp master cts/vts packages
+ build_number_vts=$(echo "${TEST_VTS_URL}" | tr -s '/' | sed 's|/$||' | awk -F"/" '{print$(NF-1)}')
+ TEST_VTS_VERSION="aosp-master#${build_number_vts}"
+ elif echo "${TEST_VTS_URL}"|grep '/aosp-master-throttled/'; then
+ # for aosp master cts/vts packages
+ build_number_vts=$(echo "${TEST_VTS_URL}" | tr -s '/' | sed 's|/$||' | awk -F"/" '{print$(NF-1)}')
+ TEST_VTS_VERSION="aosp-master-throttled#${build_number_vts}"
+ elif echo "${TEST_VTS_URL}"|grep '/protected/'; then
+ # for EAP cts/vts packages
+ f_fingerprint_vts="build_fingerprint_vts.txt"
+ download_fingerprint "${TEST_VTS_URL}/build_fingerprint.txt" "${f_fingerprint_vts}"
+ fingerprint_vts=$(cut -d: -f2 "${f_fingerprint_vts}")
+ if [ -n "${f_fingerprint_vts}" ]; then
+ TEST_VTS_VERSION="EAP-Android12#${fingerprint_vts}"
+ fi
+ fi
+
+ if echo "${TEST_CTS_URL}"|grep '/aosp-master/'; then
+ build_number_cts=$(echo "${TEST_CTS_URL}" | tr -s '/' | sed 's|/$||' | awk -F"/" '{print$(NF-1)}')
+ TEST_CTS_VERSION="aosp-master#${build_number_cts}"
+ elif echo "${TEST_CTS_URL}"|grep '/aosp-master-throttled/'; then
+ build_number_cts=$(echo "${TEST_CTS_URL}" | tr -s '/' | sed 's|/$||' | awk -F"/" '{print$(NF-1)}')
+ TEST_CTS_VERSION="aosp-master-throttled#${build_number_cts}"
+ elif echo "${TEST_CTS_URL}"|grep '/protected/'; then
+ f_fingerprint_cts="build_fingerprint_cts.txt"
+ download_fingerprint "${TEST_CTS_URL}/build_fingerprint.txt" "${f_fingerprint_cts}"
+ fingerprint_cts=$(cut -d: -f2 "${f_fingerprint_cts}")
+ if [ -n "${f_fingerprint_cts}" ]; then
+ TEST_CTS_VERSION="EAP-Android12#${fingerprint_cts}"
+ fi
+ fi
+
+ export TEST_VTS_VERSION TEST_CTS_VERSION
+
+ f_fingerprint_ref="build_fingerprint_ref.txt"
+ download_fingerprint "${REFERENCE_BUILD_URL}/build_fingerprint.txt" "${f_fingerprint_ref}"
+ fingerprint_ref=$(cut -d: -f2 "${f_fingerprint_ref}")
+ if [ -n "${f_fingerprint_ref}" ]; then
+ ANDROID_VENDOR_FINGERPRINT="${fingerprint_ref}"
+ else
+ ANDROID_VENDOR_FINGERPRINT=""
+ fi
+ export ANDROID_VENDOR_FINGERPRINT
+
+ if [ -n "${REFERENCE_BUILD_URL_SYSTEM_IMG_XZ}" ]; then
+ f_fingerprint_gsi="build_fingerprint_gsi.txt"
+ gsi_base_url=$(dirname "${REFERENCE_BUILD_URL_SYSTEM_IMG_XZ}")
+ download_fingerprint "${gsi_base_url}/build_fingerprint.txt" "${f_fingerprint_gsi}"
+ fingerprint_gsi=$(cut -d: -f2 "${f_fingerprint_gsi}")
+ if [ -n "${fingerprint_gsi}" ]; then
+ ANDROID_GSI_FINGERPRINT="${fingerprint_gsi}"
+ else
+ ANDROID_GSI_FINGERPRINT=""
+ fi
+ ANDROID_GSI_URL="${REFERENCE_BUILD_URL_SYSTEM_IMG_XZ}"
+ else
+ ANDROID_GSI_FINGERPRINT=""
+ ANDROID_GSI_URL=""
+ fi
+ export ANDROID_GSI_FINGERPRINT ANDROID_GSI_URL
# works when cache partition part is guarded with IMAGE_SUPPORTED_CACHE
# default is to support cache partition with cache.img
@@ -157,6 +331,14 @@ function submit_jobs_for_config(){
unset IMAGE_SUPPORTED_VENDOR_BOOT
fi
+ if [ -n "${TUXSUITE_DOWNLOAD_URL}" ]; then
+ # for case from gitlab pipeline
+ # need to export BUILD_URL="${CI_PIPELINE_URL}", BUILD_NUMBER="${CI_BUILD_ID}", JOB_NAME="${REPO_NAME}/${KERNEL_BRANCH}"
+ export TUXSUITE_DOWNLOAD_URL
+ else
+ unset TUXSUITE_DOWNLOAD_URL
+ fi
+
## clean up the old changes for last build
## so that the url could be updated as expected
cd ${DIR_CONFIGS_ROOT}/ && \
@@ -177,6 +359,9 @@ function submit_jobs_for_config(){
TEST_QA_SERVER_TEAM="android-lkft"
fi
+ [ -z "${TEST_QA_SERVER_PROJECT_PRIVATE}" ] && TEST_QA_SERVER_PROJECT_PRIVATE="false"
+ [ -z "${TEST_QA_SERVER_PROJECT_NAME}" ] && TEST_QA_SERVER_PROJECT_NAME="${TEST_QA_SERVER_PROJECT}"
+
# Do not submit the default lkft test jobs when TEST_PLANS_NO_DEFAULT_LKFT is set true
if [ -z "${TEST_PLANS_NO_DEFAULT_LKFT}" ] || [ "X${TEST_PLANS_NO_DEFAULT_LKFT}" != "Xtrue" ]; then
local default_plans="template-boot.yaml template-vts-kernel-arm64-v8a.yaml template-vts-kernel-armeabi-v7a.yaml template-cts-lkft.yaml"
@@ -190,6 +375,8 @@ function submit_jobs_for_config(){
update_device_template "${f_device_template}" "${f}" "${build_config}" "${REFERENCE_BUILD_URL}"
done
+ create_or_update_project "${TEST_QA_SERVER}" "${TEST_QA_SERVER_TEAM}" "${TEST_QA_SERVER_PROJECT_PRIVATE}" "${TEST_QA_SERVER_PROJECT}" "${TEST_QA_SERVER_PROJECT_NAME}"
+
python ${DIR_CONFIGS_ROOT}/openembedded-lkft/submit_for_testing.py \
--device-type ${TEST_DEVICE_TYPE} \
--build-number ${BUILD_NUMBER} \
@@ -239,9 +426,12 @@ function submit_jobs_for_config(){
qa_server_team="${TEST_QA_SERVER_TEAM}"
fi
qa_server_project=$(get_value_from_config_file "TEST_QA_SERVER_PROJECT_${plan}" "${build_config}")
- if [ -z "${qa_server_project}" ]; then
- qa_server_project="${TEST_QA_SERVER_PROJECT}"
- fi
+ [ -z "${qa_server_project}" ] && qa_server_project="${TEST_QA_SERVER_PROJECT}"
+ qa_server_project_name=$(get_value_from_config_file "TEST_QA_SERVER_PROJECT_NAME_${plan}" "${build_config}")
+ [ -z "${qa_server_project_name}" ] && qa_server_project_name="${qa_server_project}"
+
+ qa_server_project_private=$(get_value_from_config_file "TEST_QA_SERVER_PROJECT_PRIVATE_${plan}" "${build_config}")
+ [ -z "${qa_server_project_private}" ] && qa_server_project_private="${TEST_QA_SERVER_PROJECT_PRIVATE}"
lava_job_priority=$(get_value_from_config_file "TEST_LAVA_JOB_PRIORITY_${plan}" "${build_config}")
if [ -n "${lava_job_priority}" ]; then
@@ -256,6 +446,8 @@ function submit_jobs_for_config(){
update_device_template "${f_device_template}" "${f}" "${build_config}" "${REFERENCE_BUILD_URL}"
done
+ create_or_update_project "${qa_server}" "${qa_server_team}" "${qa_server_project_private}" "${qa_server_project}" "${qa_server_project_name}"
+
python ${DIR_CONFIGS_ROOT}/openembedded-lkft/submit_for_testing.py \
--device-type ${TEST_DEVICE_TYPE} \
--build-number ${BUILD_NUMBER} \
diff --git a/lkft/lava-job-definitions/x15/template-boot.yaml b/lkft/lava-job-definitions/x15/template-boot.yaml
index b5d95b720..89a761548 100644
--- a/lkft/lava-job-definitions/x15/template-boot.yaml
+++ b/lkft/lava-job-definitions/x15/template-boot.yaml
@@ -29,6 +29,7 @@ metadata:
protocols:
lava-lxc:
name: lxc-x15-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/x15/template-cts.yaml b/lkft/lava-job-definitions/x15/template-cts.yaml
index 4b2e4553f..6b0787cc4 100644
--- a/lkft/lava-job-definitions/x15/template-cts.yaml
+++ b/lkft/lava-job-definitions/x15/template-cts.yaml
@@ -35,6 +35,7 @@ secrets:
protocols:
lava-lxc:
name: lxc-x15-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/x15/template-vts-kernel.yaml b/lkft/lava-job-definitions/x15/template-vts-kernel.yaml
index d85164249..6a3f9bd62 100644
--- a/lkft/lava-job-definitions/x15/template-vts-kernel.yaml
+++ b/lkft/lava-job-definitions/x15/template-vts-kernel.yaml
@@ -36,6 +36,7 @@ secrets:
protocols:
lava-lxc:
name: lxc-x15-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lkft/lava-job-definitions/x15/template-vts-staging-kernel.yaml b/lkft/lava-job-definitions/x15/template-vts-staging-kernel.yaml
index cbaaa9d83..1e0885da0 100644
--- a/lkft/lava-job-definitions/x15/template-vts-staging-kernel.yaml
+++ b/lkft/lava-job-definitions/x15/template-vts-staging-kernel.yaml
@@ -32,6 +32,7 @@ metadata:
protocols:
lava-lxc:
name: lxc-x15-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
diff --git a/lt-qcom-bootloader-rb5.yaml b/lt-qcom-bootloader-rb5.yaml
index 96ff8865d..75df5646e 100644
--- a/lt-qcom-bootloader-rb5.yaml
+++ b/lt-qcom-bootloader-rb5.yaml
@@ -23,10 +23,10 @@
default: 'master'
- string:
name: QCOM_LINUX_FIRMWARE
- default: 'http://releases.linaro.org/96boards/rb5/qualcomm/firmware/RB5_firmware_20210331-v4.zip'
+ default: 'http://releases.linaro.org/96boards/rb5/qualcomm/firmware/RB5_firmware_20210331-v4.1.zip'
- string:
name: QCOM_LINUX_FIRMWARE_MD5
- default: 'd65ec09ba18dcafe291c870e0516c290'
+ default: '498aeeeb2603ddcf619c7e613c763791'
- string:
name: QCOM_LINUX_FIRMWARE_LICENSE_MD5
default: 'cbbe399f2c983ad51768f4561587f000'
diff --git a/lt-qcom-bootloader/rb5/builders.sh b/lt-qcom-bootloader/rb5/builders.sh
index 89b249c5e..33a7b489b 100644
--- a/lt-qcom-bootloader/rb5/builders.sh
+++ b/lt-qcom-bootloader/rb5/builders.sh
@@ -26,6 +26,7 @@ rm -rf bootloaders-linux
# "*/05-BTFM/BTFM.bin" \
# "*/10-imagefv/imagefv.elf" \
unzip -j -d bootloaders-linux $(basename ${QCOM_LINUX_FIRMWARE}) \
+ "*/cdt.bin" \
"*/02-firehose_prog/prog_firehose_ddr.elf" \
"*/04_aop/aop.mbn" \
"*/06-cmnlib/cmnlib.mbn" \
diff --git a/lt-qcom-bootloader/rb5/test_params b/lt-qcom-bootloader/rb5/test_params
index 2a979f514..f77244a1f 100644
--- a/lt-qcom-bootloader/rb5/test_params
+++ b/lt-qcom-bootloader/rb5/test_params
@@ -1,8 +1,8 @@
export BUILD_NUMBER=0
export TOOLCHAIN_ARCH='arm64'
export BRANCH='master'
-export QCOM_LINUX_FIRMWARE='http://releases.linaro.org/96boards/rb5/qualcomm/firmware/RB5_firmware_20210331-v4.zip'
-export QCOM_LINUX_FIRMWARE_MD5='d65ec09ba18dcafe291c870e0516c290'
+export QCOM_LINUX_FIRMWARE='http://releases.linaro.org/96boards/rb5/qualcomm/firmware/RB5_firmware_20210331-v4.1.zip'
+export QCOM_LINUX_FIRMWARE_MD5='498aeeeb2603ddcf619c7e613c763791'
export QCOM_LINUX_FIRMWARE_LICENSE_MD5='cbbe399f2c983ad51768f4561587f000'
export ABL_GIT_LINARO='https://git.linaro.org/landing-teams/working/qualcomm/abl.git'
export ABL_GIT_REL='release/LU.UM.1.2.1.r1-23200-QRB5165.0'
diff --git a/lt-qcom-debian-images/submit_for_testing.sh b/lt-qcom-debian-images/submit_for_testing.sh
index 1bfc84527..20f652c4b 100755
--- a/lt-qcom-debian-images/submit_for_testing.sh
+++ b/lt-qcom-debian-images/submit_for_testing.sh
@@ -6,8 +6,13 @@ if [ -z "${DRY_RUN}" ]; then
export CONFIG_PATH=$(realpath configs)
+ pip install --user --upgrade pip
+ pip install --user --upgrade setuptools
+
# Install jinja2-cli and ruamel.yaml, required by submit_for_testing.py
- pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
+ pip install --user ruamel.yaml.clib==0.2.2
+ pip install --user ruamel.yaml==0.16.13
+ pip install --user jinja2-cli
else
export CONFIG_PATH=$(realpath ../)
fi
diff --git a/lt-qcom-linux-build.yaml b/lt-qcom-linux-build.yaml
deleted file mode 100644
index dd37dd19a..000000000
--- a/lt-qcom-linux-build.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-- job:
- name: lt-qcom-linux-build
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: KERNEL_REPO_URL
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/kernel.git'
- - string:
- name: KERNEL_BRANCH
- - string:
- name: KERNEL_VERSION
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_CONFIGS_arm64
- default: 'defconfig distro.config'
- - string:
- name: KERNEL_BUILD_TARGET
- default: 'all'
- - string:
- name: KDEB_CHANGELOG_DIST
- default: 'sid'
- - string:
- name: INSTALL_MOD
- default: 'True'
- axes:
- - axis:
- type: user-defined
- name: ARCH
- values:
- - arm64
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- execution-strategy:
- sequential: false
- disabled: false
- node: master
- display-name: 'Qualcomm LT Linux kernel build'
- scm:
- - git:
- url: ${KERNEL_REPO_URL}
- refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
- branches:
- - refs/heads/${KERNEL_BRANCH}
- basedir: linux
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell:
- !include-raw: lt-qcom-linux/builders-deps.sh
- - shell:
- !include-raw: lt-qcom/install-gcc-toolchain.sh
- - inject:
- properties-file: gcc_toolchain_env
- - shell:
- !include-raw: lt-qcom-linux/builders.sh
- - inject:
- properties-file: kernel_parameters
- - shell:
- !include-raw: lt-qcom-linux/builders_linaro_ci.sh
- - inject:
- properties-file: pub_dest_parameters
- - linaro-publish-token
- - shell:
- !include-raw: lt-qcom/publishers.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - rpb-openembedded/postbuild.groovy
- - email-ext:
- recipients: 'nicolas.dechesne@linaro.org anibal.limon@linaro.org'
- failure: true
- still-failing: true
- matrix-trigger: only-parent
diff --git a/lt-qcom-linux-integration.yaml b/lt-qcom-linux-test-integration.yaml
index b259bd192..18bc51ffb 100644
--- a/lt-qcom-linux-integration.yaml
+++ b/lt-qcom-linux-test-integration.yaml
@@ -1,5 +1,5 @@
- job:
- name: lt-qcom-linux-integration
+ name: lt-qcom-linux-test-integration
project-type: matrix
defaults: global
logrotate:
@@ -51,15 +51,6 @@
name: KERNEL_TOOLCHAIN
default: 'unknown'
- string:
- name: FIRMWARE_URL_apq8016_sbc
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard410c_1034.2.1-5_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
- name: FIRMWARE_URL_apq8096_db820c
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard820c_01700.1-4_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-atheros_20200817-1+linaro1_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
- name: FIRMWARE_URL_sdm845_db845c
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard845c_20190529180356-v4+linaro6_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-atheros_20200817-1+linaro1_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
name: PUB_DEST
default: "member-builds/qcomlt/${KERNEL_FLAVOR}/${MACHINE}/${BUILD_NUMBER}"
- string:
@@ -91,11 +82,16 @@
values:
- 'apq8016-sbc'
- 'apq8096-db820c'
- - 'sdm845-mtp'
- - 'sdm845-db845c'
+ - 'msm8998-mtp'
- 'qcs404-evb-1000'
- 'qcs404-evb-4000'
- 'qrb5165-rb5'
+ - 'sm8150-mtp'
+ - 'sm8250-mtp'
+ - 'sm8350-mtp'
+ - 'sc7180-idp'
+ - 'sdm845-db845c'
+ - 'sdm845-mtp'
- axis:
type: slave
name: label
@@ -105,6 +101,8 @@
sequential: false
wrappers:
- timestamps
+ - timeout:
+ timeout: 300
- build-name:
name: '#${BUILD_NUMBER}'
- credentials-binding:
diff --git a/lt-qcom-linux-mainline.yaml b/lt-qcom-linux-test-mainline.yaml
index 06df7e22c..5738d32eb 100644
--- a/lt-qcom-linux-mainline.yaml
+++ b/lt-qcom-linux-test-mainline.yaml
@@ -1,5 +1,5 @@
- job:
- name: lt-qcom-linux-mainline
+ name: lt-qcom-linux-test-mainline
project-type: matrix
defaults: global
logrotate:
@@ -51,15 +51,6 @@
name: KERNEL_TOOLCHAIN
default: 'unknown'
- string:
- name: FIRMWARE_URL_apq8016_sbc
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard410c_1034.2.1-5_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
- name: FIRMWARE_URL_apq8096_db820c
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard820c_01700.1-4_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-atheros_20200817-1+linaro1_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
- name: FIRMWARE_URL_sdm845_db845c
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard845c_20190529180356-v4+linaro6_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-atheros_20200817-1+linaro1_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
name: PUB_DEST
default: "member-builds/qcomlt/${KERNEL_FLAVOR}/${MACHINE}/${BUILD_NUMBER}"
- string:
@@ -90,10 +81,16 @@
values:
- 'apq8016-sbc'
- 'apq8096-db820c'
- - 'sdm845-db845c'
- - 'sdm845-mtp'
+ - 'msm8998-mtp'
- 'qcs404-evb-1000'
- 'qcs404-evb-4000'
+ - 'qrb5165-rb5'
+ - 'sm8150-mtp'
+ - 'sm8250-mtp'
+ - 'sm8350-mtp'
+ - 'sc7180-idp'
+ - 'sdm845-db845c'
+ - 'sdm845-mtp'
- axis:
type: slave
name: label
@@ -103,6 +100,8 @@
sequential: false
wrappers:
- timestamps
+ - timeout:
+ timeout: 300
- build-name:
name: '#${BUILD_NUMBER}'
- credentials-binding:
diff --git a/lt-qcom-linux-release.yaml b/lt-qcom-linux-test-release.yaml
index dccf93414..7433a3c2f 100644
--- a/lt-qcom-linux-release.yaml
+++ b/lt-qcom-linux-test-release.yaml
@@ -1,5 +1,5 @@
- job:
- name: lt-qcom-linux-release
+ name: lt-qcom-linux-test-release
project-type: matrix
defaults: global
logrotate:
@@ -19,7 +19,7 @@
parameters:
- string:
name: MACHINES
- default: 'apq8016-sbc apq8096-db820c sdm845-db845c sdm845-mtp qcs404-evb-1000 qcs404-evb-4000'
+ default: 'apq8016-sbc sdm845-db845c qrb5165-rb5'
- string:
name: KERNEL_IMAGE_URL
default: ''
@@ -57,15 +57,6 @@
name: RELEASE_NAME
default: ''
- string:
- name: FIRMWARE_URL_apq8016_sbc
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard410c_1034.2.1-5_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
- name: FIRMWARE_URL_apq8096_db820c
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard820c_01700.1-4_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-atheros_20200817-1+linaro1_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
- name: FIRMWARE_URL_sdm845_db845c
- default: 'http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-dragonboard845c_20190529180356-v4+linaro6_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-atheros_20200817-1+linaro1_all.deb http://obs.linaro.org/linaro-overlay-sid/sid/all/firmware-qcom-soc_20200817-1+linaro1_all.deb'
- - string:
name: PUB_DEST
default: "member-builds/qcomlt/${KERNEL_FLAVOR}/${RELEASE_NAME}/${MACHINE}/${BUILD_NUMBER}"
- string:
@@ -104,6 +95,8 @@
sequential: false
wrappers:
- timestamps
+ - timeout:
+ timeout: 300
- build-name:
name: '#${BUILD_NUMBER}'
- credentials-binding:
diff --git a/lt-qcom-linux-test/builders.sh b/lt-qcom-linux-test/builders.sh
index b43783a62..012e9b7c9 100755
--- a/lt-qcom-linux-test/builders.sh
+++ b/lt-qcom-linux-test/builders.sh
@@ -80,38 +80,29 @@ function remove_unused_firmware() {
# Remove all not needed firmware by platform, In db845c it ran out of space causing
# boot failure.
- case "${MACHINE}" in
- apq8016-sbc|apq8096-db820c|sdm845-db845c)
- mkdir -p out/archive
- cd out/archive
- cpio -idv -H newc < ../../$target_file
-
- if [ "${MACHINE}" = "apq8016-sbc" ]; then
- rm -rf lib/firmware/ar* lib/firmware/htc* lib/firmware/wil* lib/firmware/qca*
- rm -rf lib/firmware/ath* lib/firmware/LICENSE.QualcommAtheros_ath10k
- rm -rf lib/firmware/qcom/a530* lib/firmware/qcom/a630*
- rm -rf lib/firmware/qcom/msm8996 lib/firmware/qcom/sdm845 lib/firmware/K2026090.mem
- rm -rf lib/firmware/qcom/venus-4.2 lib/firmware/qcom/venus-5.2 lib/firmware/qcom/venus-5.4
- elif [ "${MACHINE}" = "apq8096-db820c" ]; then
- rm -rf lib/firmware/ar* lib/firmware/htc* lib/firmware/wil* lib/firmware/qca*
- rm -rf lib/firmware/ath3* lib/firmware/ath6* lib/firmware/ath9*
- rm -rf lib/firmware/ath10k/QCA4* lib/firmware/ath10k/QCA9* lib/firmware/ath10k/WCN*
- rm -rf lib/firmware/a300* lib/firmware/qcom/a300* lib/firmware/qcom/a630*
- rm -rf lib/firmware/qcom/msm8916 lib/firmware/wlan lib/firmware/qcom/sdm845 lib/firmware/K2026090.mem
- rm -rf lib/firmware/qcom/venus-1.8 lib/firmware/qcom/venus-5.2 lib/firmware/qcom/venus-5.4
- elif [ "${MACHINE}" = "sdm845-db845c" ]; then
- rm -rf lib/firmware/ar* lib/firmware/htc* lib/firmware/wil*
- rm -rf lib/firmware/ath3* lib/firmware/ath6* lib/firmware/ath9* lib/firmware/ath10k/QCA*
- rm -rf lib/firmware/a300* lib/firmware/qcom/a300* lib/firmware/qcom/a530*
- rm -rf lib/firmware/qcom/msm8916 lib/firmware/wlan lib/firmware/qcom/msm8996
- rm -rf lib/firmware/qcom/venus-1.8 lib/firmware/qcom/venus-4.2 lib/firmware/qcom/venus-5.4
+ mkdir -p out/archive
+ firmware_list_file=$(realpath ./configs/lt-qcom-linux-test/firmware.list/${MACHINE})
+
+ cd out/archive
+ cpio -idv -H newc < ../../$target_file
+
+ if [ -f "$firmware_list_file" ]; then
+ for f in $(find ./lib/firmware/ -type f)
+ do
+ if ! grep -qxFe "$f" $firmware_list_file; then
+ rm -fv "$f"
fi
+ done
+ find lib/firmware/ -xtype l -delete
+ find lib/firmware/ -type d -empty -delete
- find . | cpio -R 0:0 -ov -H newc > ../../$target_file
- cd ../../
- rm -rf out/archive
- ;;
- esac
+ else
+ rm -rf lib/firmware
+ fi
+
+ find . | cpio -R 0:0 -ov -H newc > ../../$target_file
+ cd ../../
+ rm -rf out/archive
}
function create_ramdisk_from_folder() {
@@ -176,47 +167,23 @@ RAMDISK_BASE=0x84000000
SERIAL_CONSOLE=ttyMSM0
KERNEL_DT_URL="${KERNEL_DT_URL}/qcom/${MACHINE}.dtb"
KERNEL_CMDLINE_APPEND=
+ROOTFS_PARTITION=/dev/disk/by-partlabel/rootfs
# Set per MACHINE configuration
case "${MACHINE}" in
- apq8016-sbc)
- FIRMWARE_URL="${FIRMWARE_URL_apq8016_sbc}"
- ROOTFS_PARTITION=/dev/mmcblk0p14
+ apq8016-sbc|qrb5165-rb5)
;;
apq8096-db820c)
- FIRMWARE_URL="${FIRMWARE_URL_apq8096_db820c}"
BOOTIMG_PAGESIZE=4096
- ROOTFS_PARTITION=/dev/sda1
;;
- sdm845-mtp)
- FIRMWARE_URL="${FIRMWARE_URL_sdm845_mtp}"
-
- # XXX: using Android userdata since we don't have Linux parttable
+ msm8998-mtp|qcs404-evb-1000|qcs404-evb-4000|sm8150-mtp|sm8250-mtp|sm8350-mtp|sc7180-idp|sdm845-mtp)
ROOTFS_PARTITION=/dev/disk/by-partlabel/userdata
;;
sdm845-db845c)
BOOTIMG_PAGESIZE=4096
- FIRMWARE_URL="${FIRMWARE_URL_sdm845_db845c}"
- ROOTFS_PARTITION=/dev/sda1
KERNEL_CMDLINE_APPEND="clk_ignore_unused pd_ignore_unused"
;;
- qcs404-evb-1000)
- FIRMWARE_URL="${FIRMWARE_URL_qcs404_evb_1000}"
-
- # Use userdata for now.
- ROOTFS_PARTITION=/dev/disk/by-partlabel/userdata
- ;;
- qcs404-evb-4000)
- FIRMWARE_URL="${FIRMWARE_URL_qcs404_evb_4000}"
-
- # Use userdata for now.
- ROOTFS_PARTITION=/dev/disk/by-partlabel/userdata
- ;;
- qrb5165-rb5)
- # Use userdata for now.
- ROOTFS_PARTITION=/dev/disk/by-partlabel/userdata
- ;;
*)
echo "Currently MACHINE: ${MACHINE} isn't supported"
exit 1
@@ -230,7 +197,14 @@ if [ -z "${KERNEL_IMAGE_URL}" ]; then
fi
# find rootfs and ramdisk to use
-./configs/lt-qcom-linux-test/get_latest_testimage.py
+case "${MACHINE}" in
+ apq8016-sbc|apq8096-db820c|sdm845-db845c|qrb5165-rb5)
+ ./configs/lt-qcom-linux-test/get_latest_testimage.py
+ ;;
+ *)
+ ./configs/lt-qcom-linux-test/get_latest_testimage.py https://snapshots.linaro.org/member-builds/qcomlt/testimages/arm64/ https://snapshots.linaro.org/member-builds/qcomlt/testimages-desktop/arm64/
+ ;;
+esac
RAMDISK_URL=$(cat output.log | grep RAMDISK_URL | cut -d= -f2)
ROOTFS_URL=$(cat output.log | grep ROOTFS_URL | cut -d= -f2)
ROOTFS_DESKTOP_URL=$(cat output.log | grep ROOTFS_DESKTOP_URL | cut -d= -f2)
@@ -248,10 +222,9 @@ Build description:
* kernel modules URL: $KERNEL_MODULES_URL
* Ramdisk URL: $RAMDISK_URL
* RootFS URL: $ROOTFS_URL
-* Firmware URL: $FIRMWARE_URL
EOF
-# Ramdisk/RootFS image, firmware and modules populate, download step
+# Ramdisk/RootFS image and modules populate, download step
wget_error ${RAMDISK_URL}
ramdisk_file=out/$(basename ${RAMDISK_URL})
ramdisk_file_type=$(file $ramdisk_file)
@@ -282,15 +255,8 @@ if [[ ! -z "${KERNEL_MODULES_URL}" ]]; then
modules_file=$modules_file.gz
fi
fi
-if [[ ! -z "${FIRMWARE_URL}" ]]; then
- firmware_file=""
- for f in ${FIRMWARE_URL}; do
- wget_error $f
- firmware_file="$firmware_file out/$(basename $f)"
- done
-fi
-# Uncompress images to be able populate with firmware and modules
+# Uncompress images to be able populate with modules
rootfs_desktop_comp=''
if [[ $rootfs_desktop_file_type = *"gzip compressed data"* ]]; then
${GZ} -d $rootfs_desktop_file
@@ -313,7 +279,7 @@ if [[ $ramdisk_file_type = *"gzip compressed data"* ]]; then
fi
-# If rootfs is Android sparse image convert to ext4 to populate with firmware and modules
+# If rootfs is Android sparse image convert to ext4 to populate with modules
if [[ $rootfs_desktop_file_type = *"Android sparse image"* ]]; then
rootfs_desktop_file_ext4=out/$(basename ${rootfs_desktop_file} .img).ext4
simg2img $rootfs_desktop_file $rootfs_desktop_file_ext4
@@ -335,33 +301,14 @@ else
exit 1
fi
-# Populate firmware and modules
+# Populate modules and remove not used firmware in ramdisk
+remove_unused_firmware "$ramdisk_file" "$ramdisk_file_type"
if [[ ! -z "$modules_file" ]]; then
modules_file_type=$(file $modules_file)
copy_archive_to_rootfs "$modules_file" "$modules_file_type" "$ramdisk_file" "$ramdisk_file_type"
copy_archive_to_rootfs "$modules_file" "$modules_file_type" "$rootfs_file" "$rootfs_file_type"
copy_archive_to_rootfs "$modules_file" "$modules_file_type" "$rootfs_desktop_file" "$rootfs_desktop_file_type"
fi
-if [[ ! -z "${firmware_file}" ]]; then
- firmware_tmp_dir="firmware_tmp"
- firmware_tmp_file="firmware_tmp.tar.gz"
-
- mkdir -p $firmware_tmp_dir
- for firmware in ${firmware_file}; do
- dpkg-deb -x $firmware $firmware_tmp_dir
- done
- cd $firmware_tmp_dir
- tar -czpf ../$firmware_tmp_file *
- cd ../
-
- ffile_type=$(file $firmware_tmp_file)
- copy_archive_to_rootfs "$firmware_tmp_file" "$ffile_type" "$ramdisk_file" "$ramdisk_file_type"
- remove_unused_firmware "$ramdisk_file" "$ramdisk_file_type"
- copy_archive_to_rootfs "$firmware_tmp_file" "$ffile_type" "$rootfs_file" "$rootfs_file_type"
- copy_archive_to_rootfs "$firmware_tmp_file" "$ffile_type" "$rootfs_desktop_file" "$rootfs_desktop_file_type"
-
- rm -rf $firmware_tmp_dir $firmware_tmp_file
-fi
# If rootfs was Android sparse image trasform from ext4
if [[ $rootfs_desktop_file_type = *"Android sparse image"* ]]; then
diff --git a/lt-qcom-linux-test/firmware.list/apq8016-sbc b/lt-qcom-linux-test/firmware.list/apq8016-sbc
new file mode 100644
index 000000000..86d2a7285
--- /dev/null
+++ b/lt-qcom-linux-test/firmware.list/apq8016-sbc
@@ -0,0 +1,42 @@
+./lib/firmware/
+./lib/firmware/LICENSE.qcom
+./lib/firmware/a300_pfp.fw
+./lib/firmware/a300_pm4.fw
+./lib/firmware/qcom/
+./lib/firmware/qcom/a300_pfp.fw
+./lib/firmware/qcom/a300_pm4.fw
+./lib/firmware/qcom/msm8916/
+./lib/firmware/qcom/msm8916/mba.mbn
+./lib/firmware/qcom/msm8916/modem.b00
+./lib/firmware/qcom/msm8916/modem.b01
+./lib/firmware/qcom/msm8916/modem.b02
+./lib/firmware/qcom/msm8916/modem.b07
+./lib/firmware/qcom/msm8916/modem.b17
+./lib/firmware/qcom/msm8916/modem.b19
+./lib/firmware/qcom/msm8916/modem.b20
+./lib/firmware/qcom/msm8916/modem.b23
+./lib/firmware/qcom/msm8916/modem.b24
+./lib/firmware/qcom/msm8916/modem.b25
+./lib/firmware/qcom/msm8916/modem.b27
+./lib/firmware/qcom/msm8916/modem.mdt
+./lib/firmware/qcom/msm8916/wcnss.b00
+./lib/firmware/qcom/msm8916/wcnss.b01
+./lib/firmware/qcom/msm8916/wcnss.b02
+./lib/firmware/qcom/msm8916/wcnss.b04
+./lib/firmware/qcom/msm8916/wcnss.b06
+./lib/firmware/qcom/msm8916/wcnss.b09
+./lib/firmware/qcom/msm8916/wcnss.b10
+./lib/firmware/qcom/msm8916/wcnss.b11
+./lib/firmware/qcom/msm8916/wcnss.mdt
+./lib/firmware/qcom/venus-1.8/
+./lib/firmware/qcom/venus-1.8/venus.b00
+./lib/firmware/qcom/venus-1.8/venus.b01
+./lib/firmware/qcom/venus-1.8/venus.b02
+./lib/firmware/qcom/venus-1.8/venus.b03
+./lib/firmware/qcom/venus-1.8/venus.b04
+./lib/firmware/qcom/venus-1.8/venus.mdt
+./lib/firmware/regulatory.db
+./lib/firmware/regulatory.db.p7s
+./lib/firmware/wlan/
+./lib/firmware/wlan/prima/
+./lib/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin
diff --git a/lt-qcom-linux-test/firmware.list/apq8096-db820c b/lt-qcom-linux-test/firmware.list/apq8096-db820c
new file mode 100644
index 000000000..8fe5c20e9
--- /dev/null
+++ b/lt-qcom-linux-test/firmware.list/apq8096-db820c
@@ -0,0 +1,72 @@
+./lib/firmware/
+./lib/firmware/LICENSE.QualcommAtheros_ath10k
+./lib/firmware/LICENSE.qcom
+./lib/firmware/ath10k/
+./lib/firmware/ath10k/QCA6174/
+./lib/firmware/ath10k/QCA6174/hw2.1/
+./lib/firmware/ath10k/QCA6174/hw2.1/board-2.bin
+./lib/firmware/ath10k/QCA6174/hw2.1/board.bin
+./lib/firmware/ath10k/QCA6174/hw2.1/firmware-5.bin
+./lib/firmware/ath10k/QCA6174/hw3.0/
+./lib/firmware/ath10k/QCA6174/hw3.0/board-2.bin
+./lib/firmware/ath10k/QCA6174/hw3.0/board.bin
+./lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin
+./lib/firmware/ath10k/QCA6174/hw3.0/firmware-6.bin
+./lib/firmware/ath10k/QCA6174/hw3.0/firmware-sdio-6.bin
+./lib/firmware/qca/
+./lib/firmware/qca/crbtfw21.tlv
+./lib/firmware/qca/crbtfw32.tlv
+./lib/firmware/qca/crnv21.bin
+./lib/firmware/qca/crnv32.bin
+./lib/firmware/qca/crnv32u.bin
+./lib/firmware/qca/htbtfw20.tlv
+./lib/firmware/qca/htnv20.bin
+./lib/firmware/qca/nvm_00130300.bin
+./lib/firmware/qca/nvm_00130302.bin
+./lib/firmware/qca/nvm_00230302.bin
+./lib/firmware/qca/nvm_00440302.bin
+./lib/firmware/qca/nvm_00440302_eu.bin
+./lib/firmware/qca/nvm_00440302_i2s_eu.bin
+./lib/firmware/qca/nvm_usb_00000200.bin
+./lib/firmware/qca/nvm_usb_00000201.bin
+./lib/firmware/qca/nvm_usb_00000300.bin
+./lib/firmware/qca/nvm_usb_00000302.bin
+./lib/firmware/qca/nvm_usb_00000302_eu.bin
+./lib/firmware/qca/rampatch_00130300.bin
+./lib/firmware/qca/rampatch_00130302.bin
+./lib/firmware/qca/rampatch_00230302.bin
+./lib/firmware/qca/rampatch_00440302.bin
+./lib/firmware/qca/rampatch_usb_00000200.bin
+./lib/firmware/qca/rampatch_usb_00000201.bin
+./lib/firmware/qca/rampatch_usb_00000300.bin
+./lib/firmware/qca/rampatch_usb_00000302.bin
+./lib/firmware/qcom/
+./lib/firmware/qcom/a530_pfp.fw
+./lib/firmware/qcom/a530_pm4.fw
+./lib/firmware/qcom/a530_zap.b00
+./lib/firmware/qcom/a530_zap.b01
+./lib/firmware/qcom/a530_zap.b02
+./lib/firmware/qcom/a530_zap.mdt
+./lib/firmware/qcom/a530v3_gpmu.fw2
+./lib/firmware/qcom/msm8996/
+./lib/firmware/qcom/msm8996/adsp.b00
+./lib/firmware/qcom/msm8996/adsp.b01
+./lib/firmware/qcom/msm8996/adsp.b02
+./lib/firmware/qcom/msm8996/adsp.b03
+./lib/firmware/qcom/msm8996/adsp.b04
+./lib/firmware/qcom/msm8996/adsp.b05
+./lib/firmware/qcom/msm8996/adsp.b06
+./lib/firmware/qcom/msm8996/adsp.b08
+./lib/firmware/qcom/msm8996/adsp.b09
+./lib/firmware/qcom/msm8996/adsp.mdt
+./lib/firmware/qcom/msm8996/adspr.jsn
+./lib/firmware/qcom/msm8996/adspua.jsn
+./lib/firmware/qcom/venus-4.2/
+./lib/firmware/qcom/venus-4.2/venus.b00
+./lib/firmware/qcom/venus-4.2/venus.b01
+./lib/firmware/qcom/venus-4.2/venus.b02
+./lib/firmware/qcom/venus-4.2/venus.b03
+./lib/firmware/qcom/venus-4.2/venus.b04
+./lib/firmware/qcom/venus-4.2/venus.mdt
+./lib/firmware/regulatory.db
+./lib/firmware/regulatory.db.p7s
diff --git a/lt-qcom-linux-test/firmware.list/qrb5165-rb5 b/lt-qcom-linux-test/firmware.list/qrb5165-rb5
new file mode 100644
index 000000000..b60afb7ee
--- /dev/null
+++ b/lt-qcom-linux-test/firmware.list/qrb5165-rb5
@@ -0,0 +1,105 @@
+./lib/firmware/
+./lib/firmware/LICENSE.QualcommAtheros_ath10k
+./lib/firmware/ath11k/
+./lib/firmware/ath11k/IPQ6018/
+./lib/firmware/ath11k/IPQ6018/hw1.0/
+./lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin
+./lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b00
+./lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b01
+./lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b02
+./lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.flist
+./lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.mdt
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b00
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b01
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b02
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b03
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b04
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b05
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b07
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b08
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.flist
+./lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.mdt
+./lib/firmware/ath11k/IPQ8074/
+./lib/firmware/ath11k/IPQ8074/hw2.0/
+./lib/firmware/ath11k/IPQ8074/hw2.0/board-2.bin
+./lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b00
+./lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b01
+./lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b02
+./lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.flist
+./lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.mdt
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b00
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b01
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b02
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b03
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b04
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b05
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b07
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b08
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.flist
+./lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.mdt
+./lib/firmware/ath11k/QCA6390/
+./lib/firmware/ath11k/QCA6390/hw2.0/
+./lib/firmware/ath11k/QCA6390/hw2.0/amss.bin
+./lib/firmware/ath11k/QCA6390/hw2.0/board-2.bin
+./lib/firmware/ath11k/QCA6390/hw2.0/board-2.bin.firmware-qcom-rb5
+./lib/firmware/ath11k/QCA6390/hw2.0/board-2.bin.linux-firmware
+./lib/firmware/ath11k/QCA6390/hw2.0/m3.bin
+./lib/firmware/lt9611uxc_fw.bin
+./lib/firmware/qca/
+./lib/firmware/qca/crbtfw21.tlv
+./lib/firmware/qca/crbtfw32.tlv
+./lib/firmware/qca/crnv21.bin
+./lib/firmware/qca/crnv32.bin
+./lib/firmware/qca/crnv32u.bin
+./lib/firmware/qca/htbtfw20.tlv
+./lib/firmware/qca/htnv20.bin
+./lib/firmware/qca/nvm_00130300.bin
+./lib/firmware/qca/nvm_00130302.bin
+./lib/firmware/qca/nvm_00230302.bin
+./lib/firmware/qca/nvm_00440302.bin
+./lib/firmware/qca/nvm_00440302_eu.bin
+./lib/firmware/qca/nvm_00440302_i2s_eu.bin
+./lib/firmware/qca/nvm_usb_00000200.bin
+./lib/firmware/qca/nvm_usb_00000201.bin
+./lib/firmware/qca/nvm_usb_00000300.bin
+./lib/firmware/qca/nvm_usb_00000302.bin
+./lib/firmware/qca/nvm_usb_00000302_eu.bin
+./lib/firmware/qca/rampatch_00130300.bin
+./lib/firmware/qca/rampatch_00130302.bin
+./lib/firmware/qca/rampatch_00230302.bin
+./lib/firmware/qca/rampatch_00440302.bin
+./lib/firmware/qca/rampatch_usb_00000200.bin
+./lib/firmware/qca/rampatch_usb_00000201.bin
+./lib/firmware/qca/rampatch_usb_00000300.bin
+./lib/firmware/qca/rampatch_usb_00000302.bin
+./lib/firmware/qcom/
+./lib/firmware/qcom/a650_gmu.bin
+./lib/firmware/qcom/a650_sqe.fw
+./lib/firmware/qcom/sm8250/
+./lib/firmware/qcom/sm8250/a650_zap.mbn
+./lib/firmware/qcom/sm8250/adsp.mbn
+./lib/firmware/qcom/sm8250/adspr.jsn
+./lib/firmware/qcom/sm8250/adspua.jsn
+./lib/firmware/qcom/sm8250/cdsp.mbn
+./lib/firmware/qcom/sm8250/cdspr.jsn
+./lib/firmware/qcom/sm8250/dspso.bin
+./lib/firmware/qcom/sm8250/npur.jsn
+./lib/firmware/qcom/sm8250/slpi.mbn
+./lib/firmware/qcom/sm8250/slpir.jsn
+./lib/firmware/qcom/sm8250/slpius.jsn
+./lib/firmware/qcom/vpu-1.0/
+./lib/firmware/qcom/vpu-1.0/venus.b00
+./lib/firmware/qcom/vpu-1.0/venus.b01
+./lib/firmware/qcom/vpu-1.0/venus.b02
+./lib/firmware/qcom/vpu-1.0/venus.b03
+./lib/firmware/qcom/vpu-1.0/venus.b04
+./lib/firmware/qcom/vpu-1.0/venus.b05
+./lib/firmware/qcom/vpu-1.0/venus.b06
+./lib/firmware/qcom/vpu-1.0/venus.b07
+./lib/firmware/qcom/vpu-1.0/venus.b08
+./lib/firmware/qcom/vpu-1.0/venus.b09
+./lib/firmware/qcom/vpu-1.0/venus.b10
+./lib/firmware/qcom/vpu-1.0/venus.b19
+./lib/firmware/qcom/vpu-1.0/venus.mdt
+./lib/firmware/regulatory.db
+./lib/firmware/regulatory.db.p7s
diff --git a/lt-qcom-linux-test/firmware.list/sdm845-db845c b/lt-qcom-linux-test/firmware.list/sdm845-db845c
new file mode 100644
index 000000000..101973d00
--- /dev/null
+++ b/lt-qcom-linux-test/firmware.list/sdm845-db845c
@@ -0,0 +1,90 @@
+./lib/firmware/
+./lib/firmware/LICENSE.QualcommAtheros_ath10k
+./lib/firmware/LICENSE.qcom
+./lib/firmware/ath10k/
+./lib/firmware/ath10k/WCN3990/
+./lib/firmware/ath10k/WCN3990/hw1.0/
+./lib/firmware/ath10k/WCN3990/hw1.0/board-2.bin
+./lib/firmware/ath10k/WCN3990/hw1.0/firmware-5.bin
+./lib/firmware/ath10k/WCN3990/hw1.0/wlanmdsp.mbn
+./lib/firmware/qca/
+./lib/firmware/qca/crbtfw21.tlv
+./lib/firmware/qca/crbtfw32.tlv
+./lib/firmware/qca/crnv21.bin
+./lib/firmware/qca/crnv32.bin
+./lib/firmware/qca/crnv32u.bin
+./lib/firmware/qca/htbtfw20.tlv
+./lib/firmware/qca/htnv20.bin
+./lib/firmware/qca/nvm_00130300.bin
+./lib/firmware/qca/nvm_00130302.bin
+./lib/firmware/qca/nvm_00230302.bin
+./lib/firmware/qca/nvm_00440302.bin
+./lib/firmware/qca/nvm_00440302_eu.bin
+./lib/firmware/qca/nvm_00440302_i2s_eu.bin
+./lib/firmware/qca/nvm_usb_00000200.bin
+./lib/firmware/qca/nvm_usb_00000201.bin
+./lib/firmware/qca/nvm_usb_00000300.bin
+./lib/firmware/qca/nvm_usb_00000302.bin
+./lib/firmware/qca/nvm_usb_00000302_eu.bin
+./lib/firmware/qca/rampatch_00130300.bin
+./lib/firmware/qca/rampatch_00130302.bin
+./lib/firmware/qca/rampatch_00230302.bin
+./lib/firmware/qca/rampatch_00440302.bin
+./lib/firmware/qca/rampatch_usb_00000200.bin
+./lib/firmware/qca/rampatch_usb_00000201.bin
+./lib/firmware/qca/rampatch_usb_00000300.bin
+./lib/firmware/qca/rampatch_usb_00000302.bin
+./lib/firmware/qcom/
+./lib/firmware/qcom/a630_gmu.bin
+./lib/firmware/qcom/a630_sqe.fw
+./lib/firmware/qcom/a630_zap.b00
+./lib/firmware/qcom/a630_zap.b01
+./lib/firmware/qcom/a630_zap.b02
+./lib/firmware/qcom/a630_zap.elf
+./lib/firmware/qcom/a630_zap.mdt
+./lib/firmware/qcom/sdm845/
+./lib/firmware/qcom/sdm845/a630_zap.mbn
+./lib/firmware/qcom/sdm845/adsp.b00
+./lib/firmware/qcom/sdm845/adsp.b01
+./lib/firmware/qcom/sdm845/adsp.b02
+./lib/firmware/qcom/sdm845/adsp.b03
+./lib/firmware/qcom/sdm845/adsp.b04
+./lib/firmware/qcom/sdm845/adsp.b05
+./lib/firmware/qcom/sdm845/adsp.b06
+./lib/firmware/qcom/sdm845/adsp.b07
+./lib/firmware/qcom/sdm845/adsp.b08
+./lib/firmware/qcom/sdm845/adsp.b09
+./lib/firmware/qcom/sdm845/adsp.b10
+./lib/firmware/qcom/sdm845/adsp.b11
+./lib/firmware/qcom/sdm845/adsp.b12
+./lib/firmware/qcom/sdm845/adsp.b13
+./lib/firmware/qcom/sdm845/adsp.mbn
+./lib/firmware/qcom/sdm845/adsp.mdt
+./lib/firmware/qcom/sdm845/adspr.jsn
+./lib/firmware/qcom/sdm845/adspua.jsn
+./lib/firmware/qcom/sdm845/cdsp.b00
+./lib/firmware/qcom/sdm845/cdsp.b01
+./lib/firmware/qcom/sdm845/cdsp.b02
+./lib/firmware/qcom/sdm845/cdsp.b03
+./lib/firmware/qcom/sdm845/cdsp.b04
+./lib/firmware/qcom/sdm845/cdsp.b05
+./lib/firmware/qcom/sdm845/cdsp.b06
+./lib/firmware/qcom/sdm845/cdsp.b08
+./lib/firmware/qcom/sdm845/cdsp.mbn
+./lib/firmware/qcom/sdm845/cdsp.mdt
+./lib/firmware/qcom/sdm845/cdspr.jsn
+./lib/firmware/qcom/sdm845/mba.mbn
+./lib/firmware/qcom/sdm845/modem.mbn
+./lib/firmware/qcom/sdm845/modemuw.jsn
+./lib/firmware/qcom/sdm845/wlanmdsp.mbn
+./lib/firmware/qcom/venus-5.2/
+./lib/firmware/qcom/venus-5.2/venus.b00
+./lib/firmware/qcom/venus-5.2/venus.b01
+./lib/firmware/qcom/venus-5.2/venus.b02
+./lib/firmware/qcom/venus-5.2/venus.b03
+./lib/firmware/qcom/venus-5.2/venus.b04
+./lib/firmware/qcom/venus-5.2/venus.mbn
+./lib/firmware/qcom/venus-5.2/venus.mdt
+./lib/firmware/regulatory.db
+./lib/firmware/regulatory.db.p7s
+./lib/firmware/renesas_usb_fw.mem
diff --git a/lt-qcom-linux-test/get_latest_testimage.py b/lt-qcom-linux-test/get_latest_testimage.py
index fab22cfa6..684978a89 100755
--- a/lt-qcom-linux-test/get_latest_testimage.py
+++ b/lt-qcom-linux-test/get_latest_testimage.py
@@ -31,9 +31,9 @@ def get_base_url(url, job_url):
base_url = "%s://%s" % (base_url_p.scheme, base_url_p.netloc)
return (page, base_url)
-def main(url='https://snapshots.linaro.org/member-builds/qcomlt/testimages/arm64/',
+def main(url='https://snapshots.linaro.org/member-builds/qcomlt/testimages/qcom-armv8a/',
+ desktop_url='https://snapshots.linaro.org/member-builds/qcomlt/testimages-desktop/qcom-armv8a/',
job_url='https://ci.linaro.org/job/lt-qcom-linux-testimages/',
- desktop_url='https://snapshots.linaro.org/member-builds/qcomlt/testimages-desktop/arm64/',
desktop_job_url='https://ci.linaro.org/job/lt-qcom-linux-testimages-desktop/',
output='output.log'):
diff --git a/lt-qcom-linux-test/submit_for_testing.sh b/lt-qcom-linux-test/submit_for_testing.sh
index 0d08077f8..24a8096df 100755
--- a/lt-qcom-linux-test/submit_for_testing.sh
+++ b/lt-qcom-linux-test/submit_for_testing.sh
@@ -46,7 +46,7 @@ pip3 install -r "$LAVA_TEST_CASES_PATH/requirements.txt"
SEND_TESTJOB=false
case "${MACHINE}" in
- apq8016-sbc|apq8096-db820c|sdm845-db845c)
+ apq8016-sbc|apq8096-db820c|sdm845-mtp|sdm845-db845c|qcs404-evb-4000)
SEND_TESTJOB=true
export SMOKE_TESTS="pwd, uname -a, ip a, vmstat, lsblk, lscpu"
@@ -62,6 +62,10 @@ case "${MACHINE}" in
elif [ ${MACHINE} = "sdm845-db845c" ]; then
export LAVA_DEVICE_TYPE="dragonboard-845c"
export DEQP_FAIL_LIST="deqp-freedreno-a630-fails.txt"
+ elif [ ${MACHINE} = "sdm845-mtp" ]; then
+ export LAVA_DEVICE_TYPE="sdm845-mtp"
+ elif [ ${MACHINE} = "qcs404-evb-4000" ]; then
+ export LAVA_DEVICE_TYPE="qcs404-evb-4k"
fi
;;
*)
diff --git a/lt-qcom-linux-testimages-desktop.yaml b/lt-qcom-linux-testimages-desktop.yaml
index c4c3eb620..ceb156af9 100644
--- a/lt-qcom-linux-testimages-desktop.yaml
+++ b/lt-qcom-linux-testimages-desktop.yaml
@@ -74,6 +74,8 @@
echo "CORE_IMAGE_EXTRA_INSTALL += \"mesa-ci\"" >> auto.conf
echo "PACKAGECONFIG_append_pn-mesa = \"freedreno xa\"" >> auto.conf
+ echo "PREFERRED_PROVIDER_virtual/kernel = \"linux-dummy\"" >> auto.conf
+
if [ "${MACHINE}" = "qcom-armv8a" ]; then
# install firmware
echo "NO_RECOMMENDATIONS = \"\"" >> auto.conf
diff --git a/lt-qcom-linux-testimages.yaml b/lt-qcom-linux-testimages.yaml
index ae2891221..f60f7f433 100644
--- a/lt-qcom-linux-testimages.yaml
+++ b/lt-qcom-linux-testimages.yaml
@@ -72,6 +72,8 @@
# enable mesa to test freedreno
echo "PACKAGECONFIG_append_pn-mesa = \"freedreno xa\"" >> auto.conf
+ echo "PREFERRED_PROVIDER_virtual/kernel = \"linux-dummy\"" >> auto.conf
+
if [ "${MACHINE}" = "qcom-armv8a" ]; then
# install firmware
echo "NO_RECOMMENDATIONS = \"\"" >> auto.conf
diff --git a/lt-qcom-linux.yaml b/lt-qcom-linux.yaml
index 8f7eff87e..722c224f6 100644
--- a/lt-qcom-linux.yaml
+++ b/lt-qcom-linux.yaml
@@ -84,6 +84,15 @@
properties-file: gcc_toolchain_env
- shell:
!include-raw: lt-qcom-linux/builders.sh
+ - inject:
+ properties-file: kernel_parameters
+ - shell:
+ !include-raw: lt-qcom-linux/builders_linaro_ci.sh
+ - inject:
+ properties-file: pub_dest_parameters
+ - linaro-publish-token
+ - shell:
+ !include-raw: lt-qcom/publishers.sh
- trigger-builds:
- project: 'build-package-obs'
property-file: params
diff --git a/lt-qcom-linux/builders.sh b/lt-qcom-linux/builders.sh
index 8e3f013e6..2333b3a65 100644
--- a/lt-qcom-linux/builders.sh
+++ b/lt-qcom-linux/builders.sh
@@ -66,14 +66,13 @@ if [ "${UPDATE_DEFCONFIG}" ]; then
fi
make KERNELRELEASE=${SRCVERSION}-qcomlt-${ARCH} \
+ KDEB_SOURCENAME=linux-${SRCVERSION}-qcomlt-${ARCH} \
KDEB_PKGVERSION=${PKGVERSION}-${BUILD_NUMBER} \
KDEB_CHANGELOG_DIST=${KDEB_CHANGELOG_DIST} \
DEBEMAIL="dragonboard@lists.96boards.org" \
DEBFULLNAME="Linaro Qualcomm Landing Team" \
-j$(nproc) ${KERNEL_BUILD_TARGET}
-if [ "${INSTALL_MOD}" ]; then
- make KERNELRELEASE=${SRCVERSION}-qcomlt-${ARCH} -j$(nproc) INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=./INSTALL_MOD_PATH modules_install
-fi
+make KERNELRELEASE=${SRCVERSION}-qcomlt-${ARCH} -j$(nproc) INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=./INSTALL_MOD_PATH modules_install
cd ..
cat > params <<EOF
diff --git a/lt-qcom-linux/builders_linaro_ci.sh b/lt-qcom-linux/builders_linaro_ci.sh
index 6ef642c05..f26d93a15 100644
--- a/lt-qcom-linux/builders_linaro_ci.sh
+++ b/lt-qcom-linux/builders_linaro_ci.sh
@@ -11,13 +11,19 @@ if [ -z "${ARCH}" ]; then
export ARCH=arm64
fi
+if [ ! "${ARCH}" = "arm64" ]; then
+ echo > pub_dest_parameters
+ echo "Exiting... only publish arm64 builds..."
+ exit 0
+fi
+
mkdir -p out
(cd linux/INSTALL_MOD_PATH && find . | cpio -R 0:0 -ov -H newc | gzip > ${WORKSPACE}/out/kernel-modules.cpio.gz)
(cd linux/INSTALL_MOD_PATH && tar cJvf ${WORKSPACE}/out/kernel-modules.tar.xz .)
cp linux/.config ${WORKSPACE}/out/kernel.config
cp linux/{System.map,vmlinux} ${WORKSPACE}/out/
cp linux/arch/$ARCH/boot/Image* ${WORKSPACE}/out/
-(mkdir -p out/dtbs && cd linux/arch/$ARCH/boot/dts && cp -a --parents $(find . -name *.dtb) ${WORKSPACE}/out/dtbs)
+(mkdir -p out/dtbs && cd linux/arch/$ARCH/boot/dts && cp -a --parents $(find . -name '*.dtb') ${WORKSPACE}/out/dtbs)
cat > ${WORKSPACE}/out/HEADER.textile << EOF
diff --git a/lt-qcom-openembedded-rpb-dunfell.yaml b/lt-qcom-openembedded-rpb-dunfell.yaml
index f96163642..c4e1b1231 100644
--- a/lt-qcom-openembedded-rpb-dunfell.yaml
+++ b/lt-qcom-openembedded-rpb-dunfell.yaml
@@ -48,6 +48,9 @@
- string:
name: QA_SERVER
default: 'https://qa-reports.linaro.org'
+ - string:
+ name: BUILD_SDK
+ default: 'rpb-console-image'
disabled: false
node: master
display-name: 'Qualcomm OpenEmbedded RPB (dunfell)'
diff --git a/lt-qcom-openembedded/submit_for_testing.sh b/lt-qcom-openembedded/submit_for_testing.sh
index 8e849c915..e1e9602d2 100755
--- a/lt-qcom-openembedded/submit_for_testing.sh
+++ b/lt-qcom-openembedded/submit_for_testing.sh
@@ -5,8 +5,13 @@ if [ -z "${DRY_RUN}" ]; then
git clone --depth 1 http://git.linaro.org/ci/job/configs.git
export CONFIG_PATH=$(realpath configs)
+ pip install --user --upgrade pip
+ pip install --user --upgrade setuptools
+
# Install jinja2-cli and ruamel.yaml, required by submit_for_testing.py
- pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
+ pip install --user ruamel.yaml.clib==0.2.2
+ pip install --user ruamel.yaml==0.16.13
+ pip install --user jinja2-cli
else
export CONFIG_PATH=$(realpath ../)
fi
diff --git a/lt-qcom/publishers.sh b/lt-qcom/publishers.sh
index e9be48df1..cbe662e72 100644
--- a/lt-qcom/publishers.sh
+++ b/lt-qcom/publishers.sh
@@ -2,6 +2,11 @@
set -ex
+if [ ! -d "out" ]; then
+ echo "Avoid publishing, not out directory exists."
+ exit 0
+fi
+
# Create MD5SUMS file
(cd out && md5sum $(find . -type f) > MD5SUMS.txt)
diff --git a/openembedded-lkft-linux-stable-rc-5.13.yaml b/openembedded-lkft-linux-stable-rc-5.13.yaml
new file mode 100644
index 000000000..68f7ce41c
--- /dev/null
+++ b/openembedded-lkft-linux-stable-rc-5.13.yaml
@@ -0,0 +1,187 @@
+- job:
+ name: openembedded-lkft-linux-stable-rc-5.13
+ project-type: matrix
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ - job-workspace
+ linaro:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ artifact-num-to-keep: 1
+ parameters:
+ - string:
+ name: TDEFINITIONS_REVISION
+ default: 'master'
+ - string:
+ name: KERNEL_BRANCH
+ default: 'linux-5.13.y'
+ - string:
+ name: KERNEL_VERSION
+ default: '5.13'
+ - string:
+ name: KERNEL_VERSION_OVERRIDE
+ default: '${KERNEL_VERSION}'
+ - string:
+ name: KERNEL_RECIPE
+ default: 'linux-generic-stable-rc'
+ - string:
+ name: KERNEL_REPO
+ default: 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git'
+ - string:
+ name: KERNEL_DESCRIBE
+ - string:
+ name: SRCREV_kernel
+ - string:
+ name: MAKE_KERNELVERSION
+ - string:
+ name: IMAGES
+ default: 'rpb-console-image-lkft'
+ - string:
+ name: MANIFEST_URL
+ default: 'https://github.com/96boards/oe-rpb-manifest.git'
+ - string:
+ name: MANIFEST_BRANCH
+ default: 'lkft/sumo'
+ - string:
+ name: PUB_DEST
+ default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/linux-stable-rc-${KERNEL_VERSION}/${BUILD_NUMBER}'
+ - string:
+ name: LAVA_SERVER
+ default: 'https://lkft.validation.linaro.org/RPC2/'
+ - string:
+ name: QA_SERVER
+ default: 'https://qa-reports.linaro.org'
+ - string:
+ name: QA_SERVER_PROJECT
+ default: 'linux-stable-rc-linux-5.13.y'
+ - string:
+ name: KSELFTEST_PATH
+ default: '/opt/kselftests/mainline/'
+ - string:
+ name: SKIP_LAVA
+ default: ''
+ - string:
+ name: LAVA_JOB_PRIORITY
+ default: '78'
+ - string:
+ name: SANITY_LAVA_JOB_PRIORITY
+ default: '80'
+ - string:
+ name: TEST_SUITES
+ default: 'all'
+ - matrix-combinations:
+ name: MATRIX_COMBINATIONS
+ disabled: false
+ node: master
+ display-name: 'LKFT - Linux Stable RC 5.13.y (OpenEmbedded/sumo)'
+ axes:
+ - axis:
+ type: user-defined
+ name: MACHINE
+ values:
+ - 'am57xx-evm'
+ - 'beaglebone'
+ - 'dragonboard-410c'
+ - 'hikey'
+ - 'intel-core2-32'
+ - 'intel-corei7-64'
+ - 'juno'
+ - 'ls2088ardb'
+ - axis:
+ type: user-defined
+ name: DISTRO
+ values:
+ - lkft
+ - axis:
+ type: slave
+ name: label
+ values:
+ - docker-buster-lkft
+ execution-strategy:
+ sequential: false
+ wrappers:
+ - timeout:
+ timeout: 180
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - 'OE_COMMIT_BOT_KEY'
+ - credentials-binding:
+ - text:
+ credential-id: QA_REPORTS_TOKEN
+ variable: QA_REPORTS_TOKEN
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ # Mapping for MACHINE -> DEVICE_TYPE
+ case "${MACHINE}" in
+ hikey)
+ DEVICE_TYPE=hi6220-hikey
+ ;;
+ intel-core2-32)
+ DEVICE_TYPE=i386
+ ;;
+ intel-corei7-64)
+ DEVICE_TYPE=x86
+ ;;
+ juno)
+ DEVICE_TYPE=juno-r2
+ ;;
+ am57xx-evm)
+ DEVICE_TYPE=x15
+ ;;
+ dragonboard-410c)
+ DEVICE_TYPE=dragonboard-410c
+ ;;
+ esac
+
+ echo "DEVICE_TYPE=${DEVICE_TYPE}" > device_type_parameters
+ echo "#${BUILD_NUMBER}-${SRCREV_kernel:0:8}" > ${WORKSPACE}/version.txt
+ - build-name-setter:
+ name: 'version.txt'
+ file: true
+ - inject:
+ properties-file: device_type_parameters
+ - shell:
+ !include-raw: openembedded-lkft/builders.sh
+ - inject:
+ properties-file: post_build_lava_parameters
+ - linaro-publish-token
+ - shell:
+ !include-raw: openembedded-lkft/publishers.sh
+ - shell:
+ !include-raw: openembedded-lkft/submit_for_testing.sh
+ publishers:
+ - groovy-postbuild:
+ script:
+ !include-raw:
+ - rpb-openembedded/postbuild.groovy
+ - openembedded-lkft/postbuild.groovy
+ - openembedded-lkft/submit_build_result.groovy
+ - email-ext:
+ recipients: 'lkft-maintainers@lists.linaro.org, lkft-triage@lists.linaro.org'
+ matrix-trigger: only-configurations
+ aborted: true
+ subject: '[CI] ${MACHINE}: ${KERNEL_BRANCH} {{SRCREV_kernel}} ${BUILD_STATUS}'
+ body: |
+ Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
+ Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
+ Parsed warnings/errors: ${PROJECT_URL}${BUILD_NUMBER}/parsed_console
+ Git branch: ${KERNEL_BRANCH}
+ Git URL: ${KERNEL_REPO}
+ Git commit: ${SRCREV_kernel}
+
+ Errors:
+ ${BUILD_LOG_REGEX, regex="^ERROR:.* ", linesBefore=0, linesAfter=0, showTruncatedLines=false}
+ presend-script:
+ !include-raw: openembedded-lkft/presend-script.groovy
diff --git a/openembedded-lkft/builders.sh b/openembedded-lkft/builders.sh
index d7fd61104..5cf88400b 100755
--- a/openembedded-lkft/builders.sh
+++ b/openembedded-lkft/builders.sh
@@ -20,7 +20,7 @@ if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 update; then
sleep 15
sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 update || true
fi
-pkg_list="virtualenv python-pip android-tools-fsutils chrpath cpio diffstat gawk libmagickwand-dev libmath-prime-util-perl libsdl1.2-dev libssl-dev python-requests texinfo vim-tiny whiptail libelf-dev xz-utils pigz coreutils libgmp-dev libiberty-dev"
+pkg_list="virtualenv python3-pip android-tools-fsutils chrpath cpio diffstat gawk libmagickwand-dev libmath-prime-util-perl libsdl1.2-dev libssl-dev python-requests texinfo vim-tiny whiptail libelf-dev xz-utils pigz coreutils libgmp-dev libiberty-dev"
if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}; then
echo "INFO: apt install error - try again in a moment"
sleep 15
@@ -28,7 +28,7 @@ if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}; th
fi
# Install jinja2-cli and ruamel.yaml==0.16.13
-pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
+pip3 install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
set -ex
diff --git a/openembedded-lkft/submit_for_testing.sh b/openembedded-lkft/submit_for_testing.sh
index 2ad625386..9efe364f8 100755
--- a/openembedded-lkft/submit_for_testing.sh
+++ b/openembedded-lkft/submit_for_testing.sh
@@ -174,6 +174,7 @@ MIGRATED=(
linux-stable-rc-linux-5.10.y::dragonboard-410c
linux-stable-rc-linux-5.11.y::dragonboard-410c
linux-stable-rc-linux-5.12.y::dragonboard-410c
+ linux-stable-rc-linux-5.13.y::dragonboard-410c
linux-mainline-master::hi6220-hikey
linux-next-master::hi6220-hikey
linux-stable-rc-linux-4.9.y::hi6220-hikey
@@ -188,6 +189,7 @@ MIGRATED=(
linux-stable-rc-linux-5.10.y::hi6220-hikey
linux-stable-rc-linux-5.11.y::hi6220-hikey
linux-stable-rc-linux-5.12.y::hi6220-hikey
+ linux-stable-rc-linux-5.13.y::hi6220-hikey
linux-mainline-master::juno-r2
linux-next-master::juno-r2
linux-stable-rc-linux-4.4.y::juno-r2
@@ -203,6 +205,7 @@ MIGRATED=(
linux-stable-rc-linux-5.10.y::juno-r2
linux-stable-rc-linux-5.11.y::juno-r2
linux-stable-rc-linux-5.12.y::juno-r2
+ linux-stable-rc-linux-5.13.y::juno-r2
linux-mainline-master::i386
linux-next-master::i386
linux-stable-rc-linux-4.4.y::i386
@@ -218,6 +221,7 @@ MIGRATED=(
linux-stable-rc-linux-5.10.y::i386
linux-stable-rc-linux-5.11.y::i386
linux-stable-rc-linux-5.12.y::i386
+ linux-stable-rc-linux-5.13.y::i386
linux-mainline-master::x15
linux-next-master::x15
linux-stable-rc-linux-4.4.y::x15
@@ -233,6 +237,7 @@ MIGRATED=(
linux-stable-rc-linux-5.10.y::x15
linux-stable-rc-linux-5.11.y::x15
linux-stable-rc-linux-5.12.y::x15
+ linux-stable-rc-linux-5.13.y::x15
linux-mainline-master::x86
linux-next-master::x86
linux-stable-rc-linux-4.4.y::x86
@@ -248,6 +253,7 @@ MIGRATED=(
linux-stable-rc-linux-5.10.y::x86
linux-stable-rc-linux-5.11.y::x86
linux-stable-rc-linux-5.12.y::x86
+ linux-stable-rc-linux-5.13.y::x86
)
this_combo="${QA_SERVER_PROJECT}::${DEVICE_TYPE}"
@@ -282,7 +288,7 @@ if false; then
# Submit sanity test run
if [ ! -z "${SANITY_TEST_TEMPLATES}" ]; then
- python ${BASE_PATH}/submit_for_testing.py \
+ python3 ${BASE_PATH}/submit_for_testing.py \
--device-type ${DEVICE_TYPE} \
--build-number ${BUILD_NUMBER} \
--lava-server ${LAVA_SERVER} \
@@ -319,7 +325,7 @@ if false; then
# templates rely on DEVICE_TYPE. so we have to actually set DEVICE_TYPE here.
export ORIGINAL_DEVICE_TYPE=${DEVICE_TYPE}
export DEVICE_TYPE=${QEMU_DEVICE_TYPE}
- python ${BASE_PATH}/submit_for_testing.py \
+ python3 ${BASE_PATH}/submit_for_testing.py \
--device-type ${QEMU_DEVICE_TYPE} \
--build-number ${BUILD_NUMBER} \
--lava-server ${LAVA_SERVER} \
@@ -334,7 +340,7 @@ fi
# Submit full test run
if [ ! -z "${FULL_TEST_TEMPLATES}" ] && [ ! -z "${FULL_TEST_TEMPLATES}" ]; then
- python ${BASE_PATH}/submit_for_testing.py \
+ python3 ${BASE_PATH}/submit_for_testing.py \
--device-type ${DEVICE_TYPE} \
--build-number ${BUILD_NUMBER} \
--lava-server ${LAVA_SERVER} \
diff --git a/rpb-openembedded/builders.sh b/rpb-openembedded/builders.sh
index e26cc634c..6c8b4ce50 100755
--- a/rpb-openembedded/builders.sh
+++ b/rpb-openembedded/builders.sh
@@ -38,7 +38,8 @@ if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}; th
fi
# Install ruamel.yaml==0.16.13
-pip install --user --force-reinstall ruamel.yaml==0.16.13
+pip install --user ruamel.yaml.clib==0.2.2
+pip install --user ruamel.yaml==0.16.13
set -ex
@@ -115,8 +116,8 @@ EOF
# Add job BUILD_NUMBER to output files names
cat << EOF >> conf/auto.conf
IMAGE_NAME_append = "-${BUILD_NUMBER}"
-KERNEL_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
-MODULE_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
+KERNEL_IMAGE_NAME_append = "-${BUILD_NUMBER}"
+MODULE_TARBALL_NAME_append = "-${BUILD_NUMBER}"
DT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
BOOT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
EOF
@@ -150,9 +151,15 @@ case "${MACHINE}" in
esac
time bitbake ${IMAGES}
-
DEPLOY_DIR_IMAGE=$(bitbake -e | grep "^DEPLOY_DIR_IMAGE="| cut -d'=' -f2 | tr -d '"')
+if [ "${BUILD_SDK}" ]; then
+ time bitbake ${BUILD_SDK} -c populate_sdk
+ SDK_DEPLOY=$(bitbake -e ${BUILD_SDK} -c populate_sdk | grep "^SDK_DEPLOY="| cut -d'=' -f2 | tr -d '"')
+
+ cp $SDK_DEPLOY/* $DEPLOY_DIR_IMAGE/
+fi
+
# Prepare files to publish
rm -f ${DEPLOY_DIR_IMAGE}/*.txt
find ${DEPLOY_DIR_IMAGE} -type l -delete
@@ -210,7 +217,7 @@ EOF
fi
# Need different files for each machine
-BOOT_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "boot-*-${MACHINE}-*-${BUILD_NUMBER}*.img" | sort | xargs -r basename)
+BOOT_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "boot-*-${MACHINE}-*-${BUILD_NUMBER}*.img" | sort | head -n 1 | xargs -r basename)
ROOTFS_EXT4_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-test-${MACHINE}-*-${BUILD_NUMBER}.rootfs.ext4.gz" | xargs -r basename)
ROOTFS_TARXZ_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-test-${MACHINE}-*-${BUILD_NUMBER}.rootfs.tar.xz" | xargs -r basename)
ROOTFS_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-test-${MACHINE}-*-${BUILD_NUMBER}.rootfs.img.gz" | xargs -r basename)
diff --git a/schneider-openembedded-dunfell-5.10.yaml b/schneider-openembedded-dunfell-5.10.yaml
new file mode 100644
index 000000000..ae848d513
--- /dev/null
+++ b/schneider-openembedded-dunfell-5.10.yaml
@@ -0,0 +1,155 @@
+- job:
+ name: schneider-openembedded-dunfell-5.10
+ project-type: matrix
+ defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
+ artifactNumToKeep: 1
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ - job-workspace
+ ralph.siemsen@linaro.org:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ ryan.harkin@linaro.org:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ schneider-linaro-git:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ parameters:
+ - string:
+ name: IMAGES
+ default: 'prod-image dev-image'
+ - string:
+ name: SUBMODULES
+ default: 'all'
+ - string:
+ name: IMAGES_RPB
+ default: ''
+ - string:
+ name: IMAGES_RPB_WAYLAND
+ default: ''
+ - string:
+ name: DISTRO_URL_BASE
+ default: 'ssh://git@github.com/SE-DeviceIntelligence'
+ - string:
+ name: DISTRO_DIR
+ default: 'DIP-Yocto-Linux-Distro'
+ - string:
+ name: MANIFEST_BRANCH
+ default: 'linaro-dunfell'
+ - string:
+ name: BASE_URL
+ default: 'https://snapshots.linaro.org/'
+ - string:
+ name: LAVA_SERVER
+ default: 'https://validation.linaro.org/RPC2/'
+ - string:
+ name: STAGING_LAVA_SERVER
+ default: 'https://staging.validation.linaro.org/RPC2/'
+ - string:
+ name: QA_SERVER
+ default: 'https://qa-reports.linaro.org'
+ - string:
+ name: QA_SERVER_TEAM
+ default: 'schneider'
+ - string:
+ name: QA_SERVER_PROJECT
+ default: 'dunfell-5.10'
+ - string:
+ name: KERNEL_VERSION_PATCHLEVEL
+ default: '5.10'
+ - string:
+ name: TEST_LEVEL
+ default: 'normal'
+ disabled: false
+ node: master
+ display-name: 'Schneider OpenEmbedded (dunfell 5.10)'
+ axes:
+ - axis:
+ type: user-defined
+ name: MACHINE
+ values:
+ - 'rzn1d'
+ - 'soca9'
+ - axis:
+ type: user-defined
+ name: DISTRO
+ values:
+ - dip
+ - axis:
+ type: slave
+ name: label
+ values:
+ - docker-buster-amd64
+ execution-strategy:
+ sequential: false
+ wrappers:
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ - '4840cea9-f64c-4d03-82d6-bd773f5229ae'
+ - credentials-binding:
+ - text:
+ credential-id: QA_REPORTS_TOKEN
+ variable: QA_REPORTS_TOKEN
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo "PUB_DEST=openembedded/schneider/${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL}/${MACHINE}/${BUILD_NUMBER}/${DISTRO}" > pub_dest_parameters
+ - inject:
+ properties-file: pub_dest_parameters
+ - shell:
+ !include-raw: schneider-openembedded/builders.sh
+ - inject:
+ properties-file: post_build_lava_parameters
+ - linaro-publish-token
+ - shell:
+ !include-raw: rpb-openembedded/publishers.sh
+ - shell:
+ !include-raw: schneider-openembedded/submit_for_testing.sh
+ publishers:
+ - archive:
+ artifacts: 'cve-*.txt, base-cve-*.txt'
+ - postbuildscript:
+ builders:
+ - role: MASTER
+ build-on:
+ - SUCCESS
+ - UNSTABLE
+ - FAILURE
+ - NOT_BUILT
+ - ABORTED
+ build-steps:
+ - shell:
+ !include-raw: schneider-openembedded/cve-summary.sh
+ - groovy-postbuild:
+ script:
+ !include-raw:
+ - rpb-openembedded/postbuild.groovy
+ - openembedded-lkft/postbuild.groovy
+ - schneider-openembedded/postbuild.groovy
+ - email-ext:
+ recipients: 'fathi.boudra@linaro.org, ralph.siemsen@linaro.org, milan.stevanovic@se.com'
+ always: true
+ failure: false
+ matrix-trigger: only-parent
+ body: |
+ $DEFAULT_CONTENT
+
+ CVE summary:
+ ${FILE,path="cve.sum"}
+ attachments: "cve.html"
diff --git a/schneider-openembedded/builders.sh b/schneider-openembedded/builders.sh
index aeb399d30..cecb373e9 100755
--- a/schneider-openembedded/builders.sh
+++ b/schneider-openembedded/builders.sh
@@ -41,7 +41,8 @@ if ! sudo DEBIAN_FRONTEND=noninteractive apt-get -q=2 install -y ${pkg_list}; th
fi
# Install ruamel.yaml (version pinned for Python-2.7 compat)
-pip install --user --force-reinstall 'ruamel.yaml<0.17'
+pip install --user 'ruamel.yaml.clib==0.2.2'
+pip install --user 'ruamel.yaml<0.17'
set -ex
@@ -146,13 +147,10 @@ source ./setup-environment build-${machine_orig}/
ln -s ${HOME}/srv/oe/downloads
ln -s ${sstatecache} sstate-cache
-# Add job BUILD_NUMBER to output files names
+# Add job BUILD_NUMBER to output files names, overriding the
+# default suffix of "-${DATETIME}" from bitbake.conf
cat << EOF >> conf/auto.conf
-IMAGE_NAME_append = "-${BUILD_NUMBER}"
-KERNEL_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
-MODULE_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
-DT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
-BOOT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
+IMAGE_VERSION_SUFFIX = "-${BUILD_NUMBER}"
EOF
# get build stats to make sure that we use sstate properly
@@ -195,6 +193,15 @@ if [ "${clean_packages}" != "" ]; then
bitbake ${bbopt} ${build_packages}
fi
+# Cleanup mbedtls/edgeagent repos, the gitsm fetcher gets confused easily
+rm -rf ${HOME}/srv/oe/downloads/git2/*mbedtls*
+rm -rf ${HOME}/srv/oe/downloads/git2/*optiga*
+rm -rf ${HOME}/srv/oe/downloads/git2/*EdgeAgent*
+rm -rf ${HOME}/srv/oe/downloads/git2/*Azure*
+rm -rf ${HOME}/srv/oe/downloads/git2/*Microsoft*
+rm -rf ${HOME}/srv/oe/downloads/git2/*kgabis.parson*
+bitbake ${bbopt} -c cleansstate mbedtls edgeagent
+
# Build all ${IMAGES}
dipimg="prod-image"
devimg="dev-image"
@@ -404,9 +411,9 @@ case "${MACHINE}" in
WIC_BMAP=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-rzn1*-${BUILD_NUMBER}.rootfs.wic.bmap" | xargs -r basename)
# The following images will have their size reported to SQUAD
- UBOOT=$(find ${DEPLOY_DIR_IMAGE}/u-boot -type f -name "u-boot-${MACHINE}.bin.spkg")
+ UBOOT=$(find ${DEPLOY_DIR_IMAGE}/u-boot -type f -name "u-boot-${MACHINE}-${BUILD_NUMBER}.bin.spkg")
UBOOT_IMG=$(basename ${UBOOT})
- UBOOT_FIT=$(find ${DEPLOY_DIR_IMAGE}/u-boot -type f -name "u-boot-${MACHINE}.itb")
+ UBOOT_FIT=$(find ${DEPLOY_DIR_IMAGE}/u-boot -type f -name "u-boot-${MACHINE}-${BUILD_NUMBER}.itb")
UBOOT_FIT_IMG=$(basename ${UBOOT_FIT})
DTB=$(find ${DEPLOY_DIR_IMAGE} -type f -name "*rzn1*bestla*.dtb")
DTB_IMG=$(basename ${DTB})
@@ -414,9 +421,9 @@ case "${MACHINE}" in
KERNEL_IMG=$(basename ${KERNEL})
KERNEL_FIT=$(find ${DEPLOY_DIR_IMAGE} -type f -name "fitImage*.itb")
KERNEL_FIT_IMG=$(basename ${KERNEL_FIT})
- FSBL=$(find ${DEPLOY_DIR_IMAGE}/fsbl -type f -name "fsbl-fip-${MACHINE}.spkg")
+ FSBL=$(find ${DEPLOY_DIR_IMAGE}/fsbl -type f -name "fsbl-fip-${MACHINE}-${BUILD_NUMBER}.spkg")
FSBL_IMG=$(basename ${FSBL})
- OPTEE_FIT=$(find ${DEPLOY_DIR_IMAGE}/optee -type f -name "optee-os-${MACHINE}.itb")
+ OPTEE_FIT=$(find ${DEPLOY_DIR_IMAGE}/optee -type f -name "optee-os-${MACHINE}-${BUILD_NUMBER}.itb")
OPTEE_FIT_IMG=$(basename ${OPTEE_FIT})
UBI=$(find ${DEPLOY_DIR_IMAGE} -type f -name "prod-image-${MACHINE}-${BUILD_NUMBER}.rootfs.fitubi")
UBI_IMG=$(basename ${UBI})
@@ -430,9 +437,9 @@ case "${MACHINE}" in
WIC_BMAP=$(find ${DEPLOY_DIR_IMAGE} -type f -name "prod-image-snarc-soca9-${BUILD_NUMBER}.rootfs.wic.bmap" | xargs -r basename)
# The following images will have their size reported to SQUAD
- UBOOT=$(find ${DEPLOY_DIR_IMAGE} -type f -name "u-boot-with-spl.sfp")
+ UBOOT=$(find ${DEPLOY_DIR_IMAGE} -type f -name "u-boot-with-spl-${BUILD_NUMBER}.sfp")
UBOOT_IMG=$(basename ${UBOOT})
- DTB=$(find ${DEPLOY_DIR_IMAGE} -type f -name "*soca9*_qspi_micronN25Q_bestla_512m.dtb")
+ DTB=$(find ${DEPLOY_DIR_IMAGE} -type f -name "zImage-*soca9*.dtb")
DTB_IMG=$(basename ${DTB})
KERNEL=$(find ${DEPLOY_DIR_IMAGE} -type f -name "zImage--*soca9*.bin")
KERNEL_IMG=$(basename ${KERNEL})
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/dev-image.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/dev-image.yaml
index 0c42d1e73..dace61c43 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/dev-image.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/dev-image.yaml
@@ -104,7 +104,7 @@ actions:
- setenv serverip {SERVER_IP}
- tftp {KERNEL_ADDR} {KERNEL}
- tftp {DTB_ADDR} {DTB}
- - "setenv bootargs 'console=ttyS0,115200n8 root=/dev/nfs rw nfsroot={NFS_SERVER_IP}:{NFSROOTFS},tcp,hard,intr,vers=3 rootwait coherent_pool=2M ip=dhcp'"
+ - "setenv bootargs 'console=ttyS0,115200n8 root=/dev/nfs rw nfsroot={NFS_SERVER_IP}:{NFSROOTFS},tcp,hard,intr,vers=3 rootwait coherent_pool=2M ip=dhcp audit=0'"
- '{BOOTX}'
auto_login:
login_prompt: "login:"
@@ -211,6 +211,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j17.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j17.yaml
index dd79f145d..45fb0635f 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j17.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j17.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j21.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j21.yaml
index 93b6e42a1..528b85c58 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j21.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j21.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml
index fa886b29e..7afb4a9c3 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22.yaml
index bb6e6ef16..a9e83949f 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j22.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml
index 8c5e3a1a7..3e5f0c641 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23.yaml
index 4b6a86bdf..f0ebf2db1 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j23.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml
index 381cb6cc5..0a94b18ce 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24.yaml
index 51c641361..d42091ddc 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/lava-multinode-rzn1d-j24.yaml
@@ -142,6 +142,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/ltp-ptest.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/ltp-ptest.yaml
index 486c6e90a..62108e973 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/ltp-ptest.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/ltp-ptest.yaml
@@ -92,6 +92,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - "setenv linux_sd 'mmc rescan; fatload mmc 0:1 ${fdt_addr_r} ${fdt_name}; fatload mmc 0:1 ${kernel_addr_r} ${kernel_name}; setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait coherent_pool=2M audit=0; bootz ${kernel_addr_r} - ${fdt_addr_r}'"
- run linux_sd
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml
index 392701333..6f5b9684e 100644
--- a/schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml
+++ b/schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml
@@ -229,6 +229,7 @@ actions:
minutes: 20
method: u-boot
commands:
+ - setenv bootargs $bootargs audit=0
- run linux_bestla
auto_login:
login_prompt: "login:"
@@ -274,7 +275,7 @@ actions:
- command: systemctl --no-pager status docker
- command: ifconfig -a
- command: docker run hello-world
-# - command: docker run -it ubuntu uname -a
+ - command: docker run -it ubuntu uname -a
##################
@@ -299,6 +300,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - setenv bootargs $bootargs audit=0
- run linux_bestla
auto_login:
login_prompt: "login:"
@@ -341,6 +343,7 @@ actions:
minutes: 10
method: u-boot
commands:
+ - setenv bootargs $bootargs audit=0
- run linux_bestla
auto_login:
login_prompt: "login:"
diff --git a/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml b/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml
index 55982c956..3c1d4e599 100644
--- a/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml
+++ b/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml
@@ -397,6 +397,27 @@ actions:
SKIP_INSTALL: 'true'
EEPROM: '/sys/bus/spi/devices/spi0.0/eeprom'
+ - name: docker-hello-world
+ from: git
+ history: false
+ repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
+ branch: master
+ path: automated/linux/docker/docker.yaml
+ parameters:
+ IMAGE: "hello-world"
+ SKIP_INSTALL: True
+
+ - name: docker
+ from: git
+ history: false
+ repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
+ branch: master
+ path: automated/linux/docker/docker.yaml
+ parameters:
+ IMAGE: "arm32v7/ubuntu"
+ SKIP_INSTALL: True
+
+
metadata:
machine: ${MACHINE}
diff --git a/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml b/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml
index 457600c99..9817fd511 100644
--- a/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml
+++ b/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml
@@ -247,6 +247,12 @@ actions:
- command: ifconfig -a
- command: ping -c 3 github.com
- command: which docker
+ - command: systemctl --no-pager status docker
+ - command: sleep 100
+ - command: systemctl --no-pager status docker
+ - command: ifconfig -a
+ - command: docker run hello-world
+ - command: docker run -it ubuntu uname -a
- test:
timeout:
diff --git a/tcwg-benchmark-compare.yaml b/tcwg-benchmark-compare.yaml
index 4e838a24e..ca300cea7 100644
--- a/tcwg-benchmark-compare.yaml
+++ b/tcwg-benchmark-compare.yaml
@@ -34,7 +34,7 @@
default: master
description: 'Bmk-scripts branch to use'
disabled: false
- node: tcwg-bmk-coordinator
+ node: tcwg-bmk-bkp-01
concurrent: true
display-name: 'TCWG BBB Benchmark Compare'
scm:
diff --git a/tcwg-benchmark-stm32.yaml b/tcwg-benchmark-stm32.yaml
index eb7bc0d6b..473bde79b 100644
--- a/tcwg-benchmark-stm32.yaml
+++ b/tcwg-benchmark-stm32.yaml
@@ -129,7 +129,7 @@
description: 'Reboot the board before building and running the benchmarks.'
- string:
name: displaytag
- default: ''
+ default: '#$BUILD_NUMBER'
description: 'Tag to display in the Jenkins console, so that the build name is more meaningful'
- bool:
name: ignore_errors
@@ -152,7 +152,7 @@
default: master
description: 'Bmk-scripts branch to use'
disabled: false
- node: tcwg-bmk-coordinator
+ node: tcwg-bmk-bkp-01
child-workspace: $label
concurrent: true
display-name: 'TCWG BBB Benchmark stm32'
@@ -187,4 +187,9 @@
# Run the benchmark
exec ./jenkins-scripts/tcwg-benchmark-bare.sh
unstable-return: 125
-# checksum: 6a778852f84ac85a68d9a2de09a3fb94
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ allow-empty: true
+# checksum: c43b706213f262f178863a09fd78b1bf
diff --git a/tcwg-benchmark-tk1.yaml b/tcwg-benchmark-tk1.yaml
deleted file mode 100644
index 963b6f2a8..000000000
--- a/tcwg-benchmark-tk1.yaml
+++ /dev/null
@@ -1,199 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-benchmark.yaml.in and tcwg-benchmark/tcwg-benchmark-tk1.def. Do not edit.
-#BEGIN: tcwg/default.yaml.inc
-# -*- mode: Yaml -*-
-
-- property:
- name: default-properties
- properties:
- - authorization:
- tcwg-benchmark:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 100
-
-- scm:
- name: jenkins-scripts
- scm:
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- branches:
- - $scripts_branch
- basedir: jenkins-scripts
- skip-tag: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-- scm:
- name: bmk-scripts
- scm:
- - git:
- url: https://git.linaro.org/toolchain/bmk-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- branches:
- - $bmk_branch
- basedir: bmk-scripts
- skip-tag: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/bmk-scripts.git
- wipe-workspace: false
- clean:
- before: true
- prune: true
-#END: tcwg/default.yaml.inc
-
-- job:
- name: tcwg-benchmark-tk1
- project-type: matrix
- defaults: global
- properties:
- - default-properties
- parameters:
- - string:
- name: toolchain_url
- default: ''
- description: 'Toolchain URL. Either http[s]://xxx.tar.xz, rsync://machine:/path/bin/target-triplet-, or ssh://machine/path/compiler'
- - choice:
- name: toolchain_type
- choices:
- - auto
- - gnu
- - llvm
- - string:
- name: sysroot
- default: 'tarball'
- description: 'Rsync-friendly path to the sysroot to run against; use libs from toolchain_url tarball/rsync if "tarball"; use system libs if empty'
- - string:
- name: bench_list
- default: 'bzip2'
- description: 'List of benchmarks to run (from spec2k6). Use "all" to run all of them.'
- - string:
- name: cflags
- default: ''
- description: 'CFLAGS to use'
- - string:
- name: ldflags
- default: 'default'
- description: 'LDFLAGS to use'
- - choice:
- name: extension
- choices:
- - default
- - O2
- - O3
- - O2g
- - O3g
- - Ofast
- - Os
- description: 'Compilation profile'
- - choice:
- name: testmode
- choices:
- - verify
- - build
- - benchmark
- description: 'Whether to just build or run full benchmarks'
- - string:
- name: iterations
- default: '1'
- description: 'Number of benchmark iterations'
- - string:
- name: results_id
- default: 'tk1_32/tcwg-benchmark/@build_num@'
- description: 'ID for benchmarking results; results will appear in bkp-01.tcwglab:/home/tcwg-benchmark/results-$results_id/'
- - bool:
- name: forceinstall
- default: 'false'
- description: 'Force clean re-install of benchmark sources'
- - choice:
- name: run_profile
- choices:
- - parallel9x1
- - parallel9x4
- - parallel3x3
- - parallel3x1
- - serial1
- description: 'Benchmark profile to use: parallel3x3 runs on 3 boards and 3 CPUs in parallel; parallel3x1 runs on 3 boards on 1 CPU in parallel; serial1 runs on a single board on 1 CPU.'
- - string:
- name: image_arch
- default: 'armhf'
- description: 'Docker image architecture -- arm64 or armhf'
- - bool:
- name: reboot
- default: 'false'
- description: 'Reboot the board before building and running the benchmarks.'
- - string:
- name: displaytag
- default: ''
- description: 'Tag to display in the Jenkins console, so that the build name is more meaningful'
- - bool:
- name: ignore_errors
- default: 'false'
- description: 'Ignore build errors as much as possible'
- - string:
- name: clean_older_than
- default: '60'
- description: 'Delete previous results older than X days (on board)'
- - string:
- name: builder
- default: 'tcwg-x86_64-build'
- description: 'Builder -- jenkins label or node'
- - string:
- name: scripts_branch
- default: master
- description: 'Jenkins-scripts branch to use'
- - string:
- name: bmk_branch
- default: master
- description: 'Bmk-scripts branch to use'
- disabled: false
- node: tcwg-bmk-coordinator
- child-workspace: $label
- concurrent: true
- display-name: 'TCWG BBB Benchmark tk1'
- scm:
- - jenkins-scripts
- - bmk-scripts
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-bmk-tk1-01
- - tcwg-bmk-tk1-02
- - tcwg-bmk-tk1-03
- - tcwg-bmk-tk1-04
- - tcwg-bmk-tk1-05
- - tcwg-bmk-tk1-06
- - tcwg-bmk-tk1-07
- - tcwg-bmk-tk1-08
- - tcwg-bmk-tk1-09
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 900
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'tcwg-benchmark'
- - build-name:
- name: '#$BUILD_NUMBER-$displaytag'
- builders:
- - shell:
- command: |
- #!/bin/bash
-
- set -ex
- ssh-add -l
-
- # Run the benchmark
- exec ./jenkins-scripts/tcwg-benchmark.sh
- unstable-return: 125
-# checksum: 2de75c20305004f22a6d9f0d39617a4d
diff --git a/tcwg-benchmark-tx1.yaml b/tcwg-benchmark-tx1.yaml
deleted file mode 100644
index 26f1360b8..000000000
--- a/tcwg-benchmark-tx1.yaml
+++ /dev/null
@@ -1,199 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-benchmark.yaml.in and tcwg-benchmark/tcwg-benchmark-tx1.def. Do not edit.
-#BEGIN: tcwg/default.yaml.inc
-# -*- mode: Yaml -*-
-
-- property:
- name: default-properties
- properties:
- - authorization:
- tcwg-benchmark:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 100
-
-- scm:
- name: jenkins-scripts
- scm:
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- branches:
- - $scripts_branch
- basedir: jenkins-scripts
- skip-tag: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-- scm:
- name: bmk-scripts
- scm:
- - git:
- url: https://git.linaro.org/toolchain/bmk-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- branches:
- - $bmk_branch
- basedir: bmk-scripts
- skip-tag: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/bmk-scripts.git
- wipe-workspace: false
- clean:
- before: true
- prune: true
-#END: tcwg/default.yaml.inc
-
-- job:
- name: tcwg-benchmark-tx1
- project-type: matrix
- defaults: global
- properties:
- - default-properties
- parameters:
- - string:
- name: toolchain_url
- default: ''
- description: 'Toolchain URL. Either http[s]://xxx.tar.xz, rsync://machine:/path/bin/target-triplet-, or ssh://machine/path/compiler'
- - choice:
- name: toolchain_type
- choices:
- - auto
- - gnu
- - llvm
- - string:
- name: sysroot
- default: 'tarball'
- description: 'Rsync-friendly path to the sysroot to run against; use libs from toolchain_url tarball/rsync if "tarball"; use system libs if empty'
- - string:
- name: bench_list
- default: 'bzip2'
- description: 'List of benchmarks to run (from spec2k6). Use "all" to run all of them.'
- - string:
- name: cflags
- default: ''
- description: 'CFLAGS to use'
- - string:
- name: ldflags
- default: 'default'
- description: 'LDFLAGS to use'
- - choice:
- name: extension
- choices:
- - default
- - O2
- - O3
- - O2g
- - O3g
- - Ofast
- - Os
- description: 'Compilation profile'
- - choice:
- name: testmode
- choices:
- - verify
- - build
- - benchmark
- description: 'Whether to just build or run full benchmarks'
- - string:
- name: iterations
- default: '1'
- description: 'Number of benchmark iterations'
- - string:
- name: results_id
- default: 'tx1_64/tcwg-benchmark/@build_num@'
- description: 'ID for benchmarking results; results will appear in bkp-01.tcwglab:/home/tcwg-benchmark/results-$results_id/'
- - bool:
- name: forceinstall
- default: 'false'
- description: 'Force clean re-install of benchmark sources'
- - choice:
- name: run_profile
- choices:
- - parallel9x1
- - parallel9x4
- - parallel3x3
- - parallel3x1
- - serial1
- description: 'Benchmark profile to use: parallel3x3 runs on 3 boards and 3 CPUs in parallel; parallel3x1 runs on 3 boards on 1 CPU in parallel; serial1 runs on a single board on 1 CPU.'
- - string:
- name: image_arch
- default: 'arm64'
- description: 'Docker image architecture -- arm64 or armhf'
- - bool:
- name: reboot
- default: 'false'
- description: 'Reboot the board before building and running the benchmarks.'
- - string:
- name: displaytag
- default: ''
- description: 'Tag to display in the Jenkins console, so that the build name is more meaningful'
- - bool:
- name: ignore_errors
- default: 'false'
- description: 'Ignore build errors as much as possible'
- - string:
- name: clean_older_than
- default: '60'
- description: 'Delete previous results older than X days (on board)'
- - string:
- name: builder
- default: 'tcwg-x86_64-build'
- description: 'Builder -- jenkins label or node'
- - string:
- name: scripts_branch
- default: master
- description: 'Jenkins-scripts branch to use'
- - string:
- name: bmk_branch
- default: master
- description: 'Bmk-scripts branch to use'
- disabled: false
- node: tcwg-bmk-coordinator
- child-workspace: $label
- concurrent: true
- display-name: 'TCWG BBB Benchmark tx1'
- scm:
- - jenkins-scripts
- - bmk-scripts
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-bmk-tx1-01
- - tcwg-bmk-tx1-02
- - tcwg-bmk-tx1-03
- - tcwg-bmk-tx1-04
- - tcwg-bmk-tx1-05
- - tcwg-bmk-tx1-06
- - tcwg-bmk-tx1-07
- - tcwg-bmk-tx1-08
- - tcwg-bmk-tx1-09
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 900
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'tcwg-benchmark'
- - build-name:
- name: '#$BUILD_NUMBER-$displaytag'
- builders:
- - shell:
- command: |
- #!/bin/bash
-
- set -ex
- ssh-add -l
-
- # Run the benchmark
- exec ./jenkins-scripts/tcwg-benchmark.sh
- unstable-return: 125
-# checksum: 4a9e451c93b875f1488500a23f4dde07
diff --git a/tcwg-benchmark.yaml b/tcwg-benchmark.yaml
new file mode 100644
index 000000000..387227b68
--- /dev/null
+++ b/tcwg-benchmark.yaml
@@ -0,0 +1,287 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-benchmark.yaml.in and tcwg-benchmark/tcwg-benchmark.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ # Allow users in tcwg-benchmark group (e.g., tcwg-buildslave)
+ # start and stop builds. We use this in tcwg_bmk* CI loops.
+ tcwg-benchmark:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
+
+- scm:
+ name: jenkins-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $scripts_branch
+ basedir: jenkins-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+- scm:
+ name: bmk-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/bmk-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $bmk_branch
+ basedir: bmk-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/bmk-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+#END: tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-benchmark
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - choice:
+ name: bmk_hw
+ choices:
+ - apm
+ - sq
+ - stm32
+ - tk1
+ - tx1
+ description: 'Hardware to use for benchmarking'
+ - string:
+ name: toolchain_url
+ default: ''
+ description: |
+ Toolchain URL. Either http[s]://xxx.tar.xz,
+ rsync://machine:/path/bin/target-triplet-, or
+ ssh://machine/path/compiler. You need to specify 'builder'
+ setting below when using non-ssh:// toolchain_urls.
+ - choice:
+ name: toolchain_type
+ choices:
+ - auto
+ - gnu
+ - llvm
+ - string:
+ name: sysroot
+ default: 'tarball'
+ description: 'Rsync-friendly path to the sysroot to run against; use libs from toolchain_url tarball/rsync if "tarball"; use system libs if empty'
+ - string:
+ name: bench_list
+ default: 'all'
+ description: 'List of benchmarks to run (from spec2k6). Use "all" to run all of them.'
+ - string:
+ name: cflags
+ default: ''
+ description: 'CFLAGS to use'
+ - string:
+ name: ldflags
+ default: 'default'
+ description: 'LDFLAGS to use'
+ - choice:
+ name: extension
+ choices:
+ - default
+ - O2
+ - O3
+ - O2g
+ - O3g
+ - Ofast
+ - Os
+ description: 'Compilation profile'
+ - choice:
+ name: testmode
+ choices:
+ - verify
+ - build
+ - benchmark
+ description: 'Whether to just build or run full benchmarks'
+ - string:
+ name: iterations
+ default: '1'
+ description: 'Number of benchmark iterations'
+ - string:
+ name: results_id
+ default: '@hw_tag@/tcwg-benchmark/@build_num@'
+ description: 'ID for benchmarking results; results will appear in bkp-01.tcwglab:/home/tcwg-benchmark/results-$results_id/'
+ - bool:
+ name: forceinstall
+ default: 'false'
+ description: 'Force clean re-install of benchmark sources'
+ - choice:
+ name: run_profile
+ choices:
+ - parallel
+ - serial
+ description: |
+ parallel - Run benchmarks in parallel on all CPU cores.
+ serial - Run benchmarks serially on a single CPU core.
+ - choice:
+ name: board_selection
+ choices:
+ - balance
+ - one_board
+ - all_boards
+ description: |
+ balance - Distribute benchmarks across all available boards.
+ 1board - Run all benchmarks on a single board.
+ allboards - Run all benchmarks on all boards (e.g., to check that all boards give the same performance result).
+ - choice:
+ name: image_arch
+ choices:
+ - arm64
+ - armhf
+ - amd64
+ description: 'Docker image architecture'
+ - bool:
+ name: reboot
+ default: 'false'
+ description: 'Reboot the board before building and running the benchmarks.'
+ - string:
+ name: displaytag
+ default: '$bmk_hw'
+ description: 'Tag to display in the Jenkins console, so that the build name is more meaningful'
+ - bool:
+ name: ignore_errors
+ default: 'false'
+ description: 'Ignore build errors as much as possible'
+ - string:
+ name: clean_older_than
+ default: '60'
+ description: 'Delete previous results older than X days (on board)'
+ - string:
+ name: builder
+ default: 'bmk_board'
+ description: |
+ Jenkins label or node to procure a builder from and the docker
+ image distro tag to use for the build environment.
+ This is needed only for non-ssh:// toolchain_urls.
+ Special value of bmk_board uses benchmarking board as the builder
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Jenkins-scripts branch to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Bmk-scripts branch to use'
+ - node:
+ name: bmk_node
+ default-slaves:
+ - tcwg-bmk-bkp-01
+ allowed-slaves:
+ - tcwg-bmk-bkp-01
+ - tcwg-bmk-apm
+ - tcwg-bmk-sq
+ - tcwg-bmk-stm32
+ - tcwg-bmk-tk1
+ - tcwg-bmk-tx1
+ description: 'Bmk node; used internally, do not touch'
+ disabled: false
+ concurrent: true
+ display-name: 'TCWG Benchmark'
+ workspace: workspace/tcwg-benchmark-${NODE_NAME}_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - timeout:
+ timeout: 900
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - 'tcwg-benchmark'
+ - build-name:
+ name: '#$BUILD_NUMBER-$displaytag'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+
+ set -euf -o pipefail
+ set -x
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ case "$bmk_hw:$image_arch" in
+ apm:arm64) hw_tag=apm_64 ;;
+ apm:armhf) hw_tag=apm_32 ;;
+ sq:arm64) hw_tag=sq_64 ;;
+ sq:armhf) hw_tag=sq_32 ;;
+ stm32:amd64) hw_tag=stm32 ;;
+ tk1:armhf) hw_tag=tk1_32 ;;
+ tx1:arm64) hw_tag=tx1_64 ;;
+ tx1:armhf) hw_tag=tx1_32 ;;
+ *)
+ echo "ERROR: Unsupported bmk_hw:image_arch: $bmk_hw:$image_arch"
+ exit 1
+ ;;
+ esac
+
+ results_id=$(echo "$results_id" | sed \
+ -e "s/@build_num@/$BUILD_NUMBER/g" \
+ -e "s/@hw_tag@/$hw_tag/g")
+
+ n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
+ count=1
+ while read -a bmks; do
+ cat > artifacts/bmk-$count-parameters <<EOF
+ bench_list=${bmks[@]}
+ displaytag=$BUILD_NUMBER+$count-$displaytag
+ bmk_node=tcwg-bmk-$bmk_hw
+ results_id=$results_id
+ EOF
+ count=$(($count+1))
+ done < <(./bmk-scripts/break-up-bmks.sh \
+ --bench_list "$bench_list" \
+ --bmk_hw "$bmk_hw" \
+ --n_boards "$n_boards" \
+ --run_profile "$run_profile" \
+ --board_selection "$board_selection")
+ - trigger-builds:
+ - project: tcwg-benchmark_backend
+ block: true
+ current-parameters: true
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/bmk-*-parameters
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ allow-empty: true
+ - email-ext:
+ recipients: |
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+# checksum: 396779629172ac5f1bc1a68ec9a423b3
diff --git a/tcwg-benchmark.yaml.in b/tcwg-benchmark.yaml.in
index 4ca104f52..9bf49c5dd 100644
--- a/tcwg-benchmark.yaml.in
+++ b/tcwg-benchmark.yaml.in
@@ -1,16 +1,29 @@
#include tcwg/default.yaml.inc
- job:
- name: tcwg-benchmark-#{HW}
- project-type: matrix
+ name: tcwg-benchmark#{BACKEND}
+ project-type: freestyle
defaults: global
properties:
- default-properties
parameters:
+ - choice:
+ name: bmk_hw
+ choices:
+ - apm
+ - sq
+ - stm32
+ - tk1
+ - tx1
+ description: 'Hardware to use for benchmarking'
- string:
name: toolchain_url
default: ''
- description: 'Toolchain URL. Either http[s]://xxx.tar.xz, rsync://machine:/path/bin/target-triplet-, or ssh://machine/path/compiler'
+ description: |
+ Toolchain URL. Either http[s]://xxx.tar.xz,
+ rsync://machine:/path/bin/target-triplet-, or
+ ssh://machine/path/compiler. You need to specify 'builder'
+ setting below when using non-ssh:// toolchain_urls.
- choice:
name: toolchain_type
choices:
@@ -23,11 +36,7 @@
description: 'Rsync-friendly path to the sysroot to run against; use libs from toolchain_url tarball/rsync if "tarball"; use system libs if empty'
- string:
name: bench_list
-#if HW_stm32
- default: 'coremark'
-#else
- default: 'bzip2'
-#endif
+ default: 'all'
description: 'List of benchmarks to run (from spec2k6). Use "all" to run all of them.'
- string:
name: cflags
@@ -61,46 +70,46 @@
description: 'Number of benchmark iterations'
- string:
name: results_id
-#if HW_tk1
- default: 'tk1_32/tcwg-benchmark/@build_num@'
-#elif HW_tx1
- default: 'tx1_64/tcwg-benchmark/@build_num@'
-#elif HW_stm32
- default: 'stm32_STM32L476RGTx/tcwg-benchmark/@build_num@'
+#if !BACKEND__backend
+ default: '@hw_tag@/tcwg-benchmark/@build_num@'
#endif
description: 'ID for benchmarking results; results will appear in bkp-01.tcwglab:/home/tcwg-benchmark/results-$results_id/'
- bool:
name: forceinstall
-#if HW_stm32
- default: 'true'
-#else
default: 'false'
-#endif
description: 'Force clean re-install of benchmark sources'
- choice:
name: run_profile
choices:
- - parallel9x1
- - parallel9x4
- - parallel3x3
- - parallel3x1
- - serial1
- description: 'Benchmark profile to use: parallel3x3 runs on 3 boards and 3 CPUs in parallel; parallel3x1 runs on 3 boards on 1 CPU in parallel; serial1 runs on a single board on 1 CPU.'
- - string:
+ - parallel
+ - serial
+ description: |
+ parallel - Run benchmarks in parallel on all CPU cores.
+ serial - Run benchmarks serially on a single CPU core.
+ - choice:
+ name: board_selection
+ choices:
+ - balance
+ - one_board
+ - all_boards
+ description: |
+ balance - Distribute benchmarks across all available boards.
+ 1board - Run all benchmarks on a single board.
+ allboards - Run all benchmarks on all boards (e.g., to check that all boards give the same performance result).
+ - choice:
name: image_arch
-#if HW_tk1
- default: 'armhf'
-#elif HW_tx1
- default: 'arm64'
-#endif
- description: 'Docker image architecture -- arm64 or armhf'
+ choices:
+ - arm64
+ - armhf
+ - amd64
+ description: 'Docker image architecture'
- bool:
name: reboot
default: 'false'
description: 'Reboot the board before building and running the benchmarks.'
- string:
name: displaytag
- default: ''
+ default: '$bmk_hw'
description: 'Tag to display in the Jenkins console, so that the build name is more meaningful'
- bool:
name: ignore_errors
@@ -112,8 +121,12 @@
description: 'Delete previous results older than X days (on board)'
- string:
name: builder
- default: 'tcwg-x86_64-build'
- description: 'Builder -- jenkins label or node'
+ default: 'bmk_board'
+ description: |
+ Jenkins label or node to procure a builder from and the docker
+ image distro tag to use for the build environment.
+ This is needed only for non-ssh:// toolchain_urls.
+ Special value of bmk_board uses benchmarking board as the builder
- string:
name: scripts_branch
default: master
@@ -122,34 +135,25 @@
name: bmk_branch
default: master
description: 'Bmk-scripts branch to use'
+ - node:
+ name: bmk_node
+ default-slaves:
+ - tcwg-bmk-bkp-01
+ allowed-slaves:
+ - tcwg-bmk-bkp-01
+ - tcwg-bmk-apm
+ - tcwg-bmk-sq
+ - tcwg-bmk-stm32
+ - tcwg-bmk-tk1
+ - tcwg-bmk-tx1
+ description: 'Bmk node; used internally, do not touch'
disabled: false
- node: tcwg-bmk-coordinator
- child-workspace: $label
concurrent: true
- display-name: 'TCWG BBB Benchmark #{HW}'
+ display-name: 'TCWG Benchmark#{BACKEND}'
+ workspace: workspace/tcwg-benchmark-${NODE_NAME}_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
- bmk-scripts
- axes:
- - axis:
- type: slave
- name: label
- values:
-#if HW_tk1 || HW_tx1
- - tcwg-bmk-#{HW}-01
- - tcwg-bmk-#{HW}-02
- - tcwg-bmk-#{HW}-03
- - tcwg-bmk-#{HW}-04
- - tcwg-bmk-#{HW}-05
- - tcwg-bmk-#{HW}-06
- - tcwg-bmk-#{HW}-07
- - tcwg-bmk-#{HW}-08
- - tcwg-bmk-#{HW}-09
-#elif HW_stm32
- - tcwg-bmk-#{HW}-01
-#endif
- execution-strategy:
- sequential: false
wrappers:
- timeout:
timeout: 900
@@ -160,17 +164,150 @@
- build-name:
name: '#$BUILD_NUMBER-$displaytag'
builders:
- - shell:
- command: |
- #!/bin/bash
+#if !BACKEND__backend
+ - shell:
+ command: |
+ #!/bin/bash
+
+ set -euf -o pipefail
+ set -x
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ case "$bmk_hw:$image_arch" in
+ apm:arm64) hw_tag=apm_64 ;;
+ apm:armhf) hw_tag=apm_32 ;;
+ sq:arm64) hw_tag=sq_64 ;;
+ sq:armhf) hw_tag=sq_32 ;;
+ stm32:amd64) hw_tag=stm32 ;;
+ tk1:armhf) hw_tag=tk1_32 ;;
+ tx1:arm64) hw_tag=tx1_64 ;;
+ tx1:armhf) hw_tag=tx1_32 ;;
+ *)
+ echo "ERROR: Unsupported bmk_hw:image_arch: $bmk_hw:$image_arch"
+ exit 1
+ ;;
+ esac
+
+ results_id=$(echo "$results_id" | sed \
+ -e "s/@build_num@/$BUILD_NUMBER/g" \
+ -e "s/@hw_tag@/$hw_tag/g")
+
+ n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
+ count=1
+ while read -a bmks; do
+ cat > artifacts/bmk-$count-parameters <<EOF
+ bench_list=${bmks[@]}
+ displaytag=$BUILD_NUMBER+$count-$displaytag
+ bmk_node=tcwg-bmk-$bmk_hw
+ results_id=$results_id
+ EOF
+ count=$(($count+1))
+ done < <(./bmk-scripts/break-up-bmks.sh \
+ --bench_list "$bench_list" \
+ --bmk_hw "$bmk_hw" \
+ --n_boards "$n_boards" \
+ --run_profile "$run_profile" \
+ --board_selection "$board_selection")
+ - trigger-builds:
+ - project: tcwg-benchmark_backend
+ block: true
+ current-parameters: true
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/bmk-*-parameters
+#else
+ - shell:
+ command: |
+ #!/bin/bash
+
+ set -ef -o pipefail
+ set -x
+
+ rm -rf artifacts
+ mkdir -p artifacts/jenkins
- set -ex
- ssh-add -l
+ # Retry benchmarking once, just in case we selected a board that
+ # recently went offline.
+ bmk_retry=true
- # Run the benchmark
-#if HW_tk1 || HW_tx1
- exec ./jenkins-scripts/tcwg-benchmark.sh
-#elif HW_stm32
- exec ./jenkins-scripts/tcwg-benchmark-bare.sh
+ while true; do
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
+ bmk_start=$(date +%s)
+ (
+ flock -en -E 124 9
+ touch $lock
+ boardname=$(cat <&9)
+ export boardname
+ echo "#$BUILD_NUMBER-$displaytag-$boardname" > artifacts/jenkins/build-name
+ exec ./jenkins-scripts/tcwg-benchmark.sh \
+ --boardname "$boardname" \
+ --toolchain_url "$toolchain_url" \
+ --toolchain_type "$toolchain_type" \
+ --sysroot "$sysroot" \
+ --bench_list "$bench_list" \
+ --cflags "$cflags" \
+ --ldflags "$ldflags" \
+ --extension "$extension" \
+ --testmode "$testmode" \
+ --iterations "$iterations" \
+ --results_id "$results_id" \
+ --forceinstall "$forceinstall" \
+ --run_profile "$run_profile" \
+ --image_arch "$image_arch" \
+ --reboot "$reboot" \
+ --ignore_errors "$ignore_errors" \
+ --clean_older_than "$clean_older_than" \
+ --builder "$builder" \
+ --WORKSPACE "$WORKSPACE"
+ ) 9<$lock &
+ res=0 && wait $! || res=$?
+ if [ $res != 0 ]; then
+ if [ $res = 124 ]; then
+ # Try to lock next board.
+ continue
+ elif $bmk_retry; then
+ bmk_retry=false
+ if [ $res = 125 ]; then
+ echo "Failed to prepare board $lock for benchmarking, retry with a different board." >> artifacts/jenkins/mail-body.txt
+ continue
+ elif [ $(($(date +%s) - $bmk_start)) -le 300 ]; then
+ echo "Benchmarking on board $lock failed due to /something/ within 5 minutes -- give it another chance." >> artifacts/jenkins/mail-body.txt
+ continue
+ fi
+ fi
+ echo "Benchmarking on board $lock failed -- giving up." >> artifacts/jenkins/mail-body.txt
+ fi
+ if [ -f artifacts/jenkins/mail-body.txt ]; then
+ if [ $res = 0 ]; then
+ echo "Benchmarking succeeded" >> artifacts/jenkins/mail-body.txt
+ fi
+ echo "$BUILD_URL" >> artifacts/jenkins/mail-body.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ fi
+ exit $res
+ done
+ sleep 30
+ done
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
#endif
- unstable-return: 125
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ allow-empty: true
+ - email-ext:
+ recipients: |
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
diff --git a/tcwg-benchmark/tcwg-benchmark-tk1.def b/tcwg-benchmark/tcwg-benchmark-tk1.def
deleted file mode 100644
index 07fbde158..000000000
--- a/tcwg-benchmark/tcwg-benchmark-tk1.def
+++ /dev/null
@@ -1,2 +0,0 @@
--v HW=tk1
--v TCWG=benchmark
diff --git a/tcwg-benchmark/tcwg-benchmark-tx1.def b/tcwg-benchmark/tcwg-benchmark-tx1.def
deleted file mode 100644
index 0fd72f780..000000000
--- a/tcwg-benchmark/tcwg-benchmark-tx1.def
+++ /dev/null
@@ -1,2 +0,0 @@
--v HW=tx1
--v TCWG=benchmark
diff --git a/tcwg-benchmark/tcwg-benchmark-stm32.def b/tcwg-benchmark/tcwg-benchmark.def
index 92c08cc49..c8500f19f 100644
--- a/tcwg-benchmark/tcwg-benchmark-stm32.def
+++ b/tcwg-benchmark/tcwg-benchmark.def
@@ -1,2 +1,2 @@
--v HW=stm32
+-v BACKEND=
-v TCWG=benchmark
diff --git a/tcwg-benchmark/tcwg-benchmark_backend.def b/tcwg-benchmark/tcwg-benchmark_backend.def
new file mode 100644
index 000000000..243847040
--- /dev/null
+++ b/tcwg-benchmark/tcwg-benchmark_backend.def
@@ -0,0 +1,2 @@
+-v BACKEND=_backend
+-v TCWG=benchmark
diff --git a/tcwg-benchmark_backend.yaml b/tcwg-benchmark_backend.yaml
new file mode 100644
index 000000000..255a64d3d
--- /dev/null
+++ b/tcwg-benchmark_backend.yaml
@@ -0,0 +1,310 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-benchmark.yaml.in and tcwg-benchmark/tcwg-benchmark_backend.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ # Allow users in tcwg-benchmark group (e.g., tcwg-buildslave)
+ # start and stop builds. We use this in tcwg_bmk* CI loops.
+ tcwg-benchmark:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
+
+- scm:
+ name: jenkins-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $scripts_branch
+ basedir: jenkins-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+- scm:
+ name: bmk-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/bmk-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $bmk_branch
+ basedir: bmk-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/bmk-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+#END: tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-benchmark_backend
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - choice:
+ name: bmk_hw
+ choices:
+ - apm
+ - sq
+ - stm32
+ - tk1
+ - tx1
+ description: 'Hardware to use for benchmarking'
+ - string:
+ name: toolchain_url
+ default: ''
+ description: |
+ Toolchain URL. Either http[s]://xxx.tar.xz,
+ rsync://machine:/path/bin/target-triplet-, or
+ ssh://machine/path/compiler. You need to specify 'builder'
+ setting below when using non-ssh:// toolchain_urls.
+ - choice:
+ name: toolchain_type
+ choices:
+ - auto
+ - gnu
+ - llvm
+ - string:
+ name: sysroot
+ default: 'tarball'
+ description: 'Rsync-friendly path to the sysroot to run against; use libs from toolchain_url tarball/rsync if "tarball"; use system libs if empty'
+ - string:
+ name: bench_list
+ default: 'all'
+ description: 'List of benchmarks to run (from spec2k6). Use "all" to run all of them.'
+ - string:
+ name: cflags
+ default: ''
+ description: 'CFLAGS to use'
+ - string:
+ name: ldflags
+ default: 'default'
+ description: 'LDFLAGS to use'
+ - choice:
+ name: extension
+ choices:
+ - default
+ - O2
+ - O3
+ - O2g
+ - O3g
+ - Ofast
+ - Os
+ description: 'Compilation profile'
+ - choice:
+ name: testmode
+ choices:
+ - verify
+ - build
+ - benchmark
+ description: 'Whether to just build or run full benchmarks'
+ - string:
+ name: iterations
+ default: '1'
+ description: 'Number of benchmark iterations'
+ - string:
+ name: results_id
+ description: 'ID for benchmarking results; results will appear in bkp-01.tcwglab:/home/tcwg-benchmark/results-$results_id/'
+ - bool:
+ name: forceinstall
+ default: 'false'
+ description: 'Force clean re-install of benchmark sources'
+ - choice:
+ name: run_profile
+ choices:
+ - parallel
+ - serial
+ description: |
+ parallel - Run benchmarks in parallel on all CPU cores.
+ serial - Run benchmarks serially on a single CPU core.
+ - choice:
+ name: board_selection
+ choices:
+ - balance
+ - one_board
+ - all_boards
+ description: |
+ balance - Distribute benchmarks across all available boards.
+ 1board - Run all benchmarks on a single board.
+ allboards - Run all benchmarks on all boards (e.g., to check that all boards give the same performance result).
+ - choice:
+ name: image_arch
+ choices:
+ - arm64
+ - armhf
+ - amd64
+ description: 'Docker image architecture'
+ - bool:
+ name: reboot
+ default: 'false'
+ description: 'Reboot the board before building and running the benchmarks.'
+ - string:
+ name: displaytag
+ default: '$bmk_hw'
+ description: 'Tag to display in the Jenkins console, so that the build name is more meaningful'
+ - bool:
+ name: ignore_errors
+ default: 'false'
+ description: 'Ignore build errors as much as possible'
+ - string:
+ name: clean_older_than
+ default: '60'
+ description: 'Delete previous results older than X days (on board)'
+ - string:
+ name: builder
+ default: 'bmk_board'
+ description: |
+ Jenkins label or node to procure a builder from and the docker
+ image distro tag to use for the build environment.
+ This is needed only for non-ssh:// toolchain_urls.
+ Special value of bmk_board uses benchmarking board as the builder
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Jenkins-scripts branch to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Bmk-scripts branch to use'
+ - node:
+ name: bmk_node
+ default-slaves:
+ - tcwg-bmk-bkp-01
+ allowed-slaves:
+ - tcwg-bmk-bkp-01
+ - tcwg-bmk-apm
+ - tcwg-bmk-sq
+ - tcwg-bmk-stm32
+ - tcwg-bmk-tk1
+ - tcwg-bmk-tx1
+ description: 'Bmk node; used internally, do not touch'
+ disabled: false
+ concurrent: true
+ display-name: 'TCWG Benchmark_backend'
+ workspace: workspace/tcwg-benchmark-${NODE_NAME}_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - timeout:
+ timeout: 900
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - 'tcwg-benchmark'
+ - build-name:
+ name: '#$BUILD_NUMBER-$displaytag'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+
+ set -ef -o pipefail
+ set -x
+
+ rm -rf artifacts
+ mkdir -p artifacts/jenkins
+
+ # Retry benchmarking once, just in case we selected a board that
+ # recently went offline.
+ bmk_retry=true
+
+ while true; do
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
+ bmk_start=$(date +%s)
+ (
+ flock -en -E 124 9
+ touch $lock
+ boardname=$(cat <&9)
+ export boardname
+ echo "#$BUILD_NUMBER-$displaytag-$boardname" > artifacts/jenkins/build-name
+ exec ./jenkins-scripts/tcwg-benchmark.sh \
+ --boardname "$boardname" \
+ --toolchain_url "$toolchain_url" \
+ --toolchain_type "$toolchain_type" \
+ --sysroot "$sysroot" \
+ --bench_list "$bench_list" \
+ --cflags "$cflags" \
+ --ldflags "$ldflags" \
+ --extension "$extension" \
+ --testmode "$testmode" \
+ --iterations "$iterations" \
+ --results_id "$results_id" \
+ --forceinstall "$forceinstall" \
+ --run_profile "$run_profile" \
+ --image_arch "$image_arch" \
+ --reboot "$reboot" \
+ --ignore_errors "$ignore_errors" \
+ --clean_older_than "$clean_older_than" \
+ --builder "$builder" \
+ --WORKSPACE "$WORKSPACE"
+ ) 9<$lock &
+ res=0 && wait $! || res=$?
+ if [ $res != 0 ]; then
+ if [ $res = 124 ]; then
+ # Try to lock next board.
+ continue
+ elif $bmk_retry; then
+ bmk_retry=false
+ if [ $res = 125 ]; then
+ echo "Failed to prepare board $lock for benchmarking, retry with a different board." >> artifacts/jenkins/mail-body.txt
+ continue
+ elif [ $(($(date +%s) - $bmk_start)) -le 300 ]; then
+ echo "Benchmarking on board $lock failed due to /something/ within 5 minutes -- give it another chance." >> artifacts/jenkins/mail-body.txt
+ continue
+ fi
+ fi
+ echo "Benchmarking on board $lock failed -- giving up." >> artifacts/jenkins/mail-body.txt
+ fi
+ if [ -f artifacts/jenkins/mail-body.txt ]; then
+ if [ $res = 0 ]; then
+ echo "Benchmarking succeeded" >> artifacts/jenkins/mail-body.txt
+ fi
+ echo "$BUILD_URL" >> artifacts/jenkins/mail-body.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ fi
+ exit $res
+ done
+ sleep 30
+ done
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ allow-empty: true
+ - email-ext:
+ recipients: |
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+# checksum: 1e6eae88274bae617a09fe2a8cbec71c
diff --git a/tcwg-buildslave-command.yaml b/tcwg-buildslave-command.yaml
index 3082b1129..42dced182 100644
--- a/tcwg-buildslave-command.yaml
+++ b/tcwg-buildslave-command.yaml
@@ -15,7 +15,7 @@
parameters:
- label:
name: nodes
- default: tcwg-amp_64-build || tcwg-apm_64-build || tcwg-apm_64-test || tcwg-coordinator || tcwg-d05-01 || tcwg-sq_64-build || tcwg-tk1_32-build || tcwg-x86_64-build || tcwg-x86_64-cam
+ default: tcwg-amp_64-build || tcwg-apm_64-build || tcwg-apm_64-test || tcwg-coordinator || tcwg-sq_64-build || tcwg-tk1_32-build || tcwg-x86_64-build || tcwg-x86_64-cam
all-nodes: true
matching-label: 'allCases'
node-eligibility: 'ignore-offline'
diff --git a/tcwg-cleanup-stale-containers.yaml b/tcwg-cleanup-stale-containers.yaml
index 320352768..a9de075a5 100644
--- a/tcwg-cleanup-stale-containers.yaml
+++ b/tcwg-cleanup-stale-containers.yaml
@@ -22,11 +22,10 @@
default: tcwg
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: cleanup_running_hours
- default: '10'
+ default: '48'
description: 'Delete containers that are more then "hours" old. Use "0" to disable time check. Use negative values for dry-run.'
- string:
name: cleanup_stopped_hours
@@ -84,33 +83,17 @@
Cleaning stale containers on $NODE_NAME.
Please check console output at $BUILD_URL to view the results
EOF
- maybe_ssh=""
- case "$NODE_NAME" in
- tcwg-bmk-bkp-*) ;;
- tcwg-bmk-stm32-*) ;;
- tcwg-bmk-*)
- # Copy jenkins-scripts to benchmarking boards,
- # and run cleanups remotely.
- board="tcwg-${NODE_NAME#tcwg-bmk-}.tcwglab"
- rsync -az --del --rsync-path "mkdir -p $WORKSPACE/; rsync" $WORKSPACE/ $board:$WORKSPACE/
- maybe_ssh="ssh $board"
- ;;
- esac
case "$NODE_NAME" in
tcwg-bmk-bkp-*) ;;
tcwg-bmk-*|tcwg-x86_64-dev-*-short)
# Only cleanup ssh-agent processes for secondary nodes
# hosted on tcwg-bmk-bkp-01 and tcwg-x86_64-dev-* machines.
./tcwg-cleanup-stale-containers.sh --cleanup-running-hours 0 --cleanup-stopped-hours 0 --cleanup-ssh-agent-hours $cleanup_ssh_agent_hours --cleanup-volumes false --cleanup-images false --verbose $verbose || true
+ exit 0
;;
esac
- # Nothing else to do for dev-*-short nodes.
- case "$NODE_NAME" in
- tcwg-x86_64-dev-*-short) exit 0 ;;
- esac
-
- $maybe_ssh $WORKSPACE/tcwg-cleanup-stale-containers.sh --cleanup-running-hours $cleanup_running_hours --cleanup-stopped-hours $cleanup_stopped_hours --cleanup-ssh-agent-hours $cleanup_ssh_agent_hours --cleanup-volumes $cleanup_volumes --cleanup-images $cleanup_images --verbose $verbose
+ $WORKSPACE/tcwg-cleanup-stale-containers.sh --cleanup-running-hours $cleanup_running_hours --cleanup-stopped-hours $cleanup_stopped_hours --cleanup-ssh-agent-hours $cleanup_ssh_agent_hours --cleanup-volumes $cleanup_volumes --cleanup-images $cleanup_images --verbose $verbose
publishers:
- email-ext:
recipients: tcwg-validation@linaro.org
diff --git a/tcwg-cleanup-stale-workspaces.yaml b/tcwg-cleanup-stale-workspaces.yaml
index 93f27f48f..10be91fd9 100644
--- a/tcwg-cleanup-stale-workspaces.yaml
+++ b/tcwg-cleanup-stale-workspaces.yaml
@@ -23,10 +23,9 @@
parameters:
- label:
name: node_list
- default: tcwg-build || tcwg-apm_64-build || tcwg-apm_64-test || tcwg-coordinator || tcwg-d05-01 || tcwg-sq_64-build || tcwg-tk1_32-build || tcwg-x86_64-build || tcwg-x86_64-cam
+ default: tcwg-build || tcwg-apm_64-build || tcwg-apm_64-test || tcwg-coordinator || tcwg-sq_64-build || tcwg-tk1_32-build || tcwg-x86_64-build || tcwg-x86_64-cam
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: days
diff --git a/tcwg-gnu-builds.yaml b/tcwg-gnu-builds.yaml
index c78893f7d..d7ca9b91f 100644
--- a/tcwg-gnu-builds.yaml
+++ b/tcwg-gnu-builds.yaml
@@ -149,7 +149,7 @@
alias: "host_armhf_target_native"
enable-condition: "$host_armhf_target_native"
node-label-name: "builder"
- node-label: "tcwg-x15 && tcwg-armv7"
+ node-label: "tcwg-build && tcwg-armv7"
property-file: build-params.txt
predefined-parameters: "target=native"
- shell: |
@@ -332,4 +332,4 @@
predefined-parameters: |
version=master
distro=lts
-# checksum: 6eadaacf14a0b8ffd682d66a01b93b79
+# checksum: 2fef0cde48ab6c781bc1dd7ac46eeff2
diff --git a/tcwg-gnu-builds.yaml.in b/tcwg-gnu-builds.yaml.in
index d8c7731b3..91651a43b 100644
--- a/tcwg-gnu-builds.yaml.in
+++ b/tcwg-gnu-builds.yaml.in
@@ -115,7 +115,7 @@
alias: "host_armhf_target_native"
enable-condition: "$host_armhf_target_native"
node-label-name: "builder"
- node-label: "tcwg-x15 && tcwg-armv7"
+ node-label: "tcwg-build && tcwg-armv7"
property-file: build-params.txt
predefined-parameters: "target=native"
- shell: |
diff --git a/tcwg-gnu-patch-benchmarking.yaml b/tcwg-gnu-patch-benchmarking.yaml
index 36defb270..2466df0bc 100644
--- a/tcwg-gnu-patch-benchmarking.yaml
+++ b/tcwg-gnu-patch-benchmarking.yaml
@@ -72,7 +72,7 @@
bmk_branch=master
description: 'Benchmark parameters, see tcwg-benchmark job'
disabled: false
- node: tcwg-bmk-coordinator
+ node: tcwg-bmk-bkp-01
concurrent: true
display-name: 'TCWG ZZZ GNU Patch Benchmarking'
scm:
diff --git a/tcwg-infra-update-home.yaml b/tcwg-infra-update-home.yaml
index 3ca26352a..759f45203 100644
--- a/tcwg-infra-update-home.yaml
+++ b/tcwg-infra-update-home.yaml
@@ -27,7 +27,7 @@
matching-label: 'allCases'
node-eligibility: 'all'
description: 'Machines to run on'
- disabled: false
+ disabled: true
concurrent: true
display-name: 'TCWG CCC Update TCWG Infra /home files'
workspace: workspace/tcwg-infra-update-home_$EXECUTOR_NUMBER/$NODE_NAME
diff --git a/tcwg-llvm-patch-benchmarking.yaml b/tcwg-llvm-patch-benchmarking.yaml
index d5a48bd8a..155ebff13 100644
--- a/tcwg-llvm-patch-benchmarking.yaml
+++ b/tcwg-llvm-patch-benchmarking.yaml
@@ -72,7 +72,7 @@
bmk_branch=master
description: 'Benchmark parameters, see tcwg-benchmark job'
disabled: true
- node: tcwg-bmk-coordinator
+ node: tcwg-bmk-bkp-01
concurrent: true
display-name: 'TCWG ZZZ LLVM Patch Benchmarking'
scm:
diff --git a/tcwg-llvm-release.yaml b/tcwg-llvm-release.yaml
index 391aa82b2..a1efed40f 100644
--- a/tcwg-llvm-release.yaml
+++ b/tcwg-llvm-release.yaml
@@ -20,7 +20,7 @@
description: 'Release number. Ex. 4.0.1'
- string:
name: candidate
- default: 'git-ref=master'
+ default: 'git-ref=main'
description: 'RC number. Ex. 1, 2, final'
- string:
name: toolchain
@@ -36,7 +36,7 @@
description: 'Override the default system compiler. Only used if "toolchain" is empty.'
- string:
name: target_list
- default: 'tcwg-x86_64-cam tcwg-tk1_32-build tcwg-amp'
+ default: 'tcwg-x86_64-cam tcwg-tk1_32-build tcwg-jade-03'
description: 'List of targets should be a subset of slave axis'
- string:
name: scripts_branch
@@ -76,9 +76,9 @@
- tcwg-tk1_32-build
- tcwg-llvm_tk1-01
- tcwg-llvm_tk1-02
- - tcwg-apm_64-build
- - tcwg-d05_64-build
- - tcwg-amp
+ - tcwg-jade-02
+ - tcwg-jade-03
+ - tcwg-jade-04
- axis:
type: dynamic
name: target
@@ -121,17 +121,9 @@
builder_arch=armhf
buildjobs=3 # TK1s only have 4 cores and little RAM
;;
- tcwg-apm_64-build)
+ tcwg-jade*)
builder_arch=arm64
- buildjobs=8 # APMs only have 8 cores
- ;;
- tcwg-d05_64-build)
- builder_arch=arm64
- buildjobs=64 # D05 has lots of cores
- ;;
- tcwg-amp)
- builder_arch=arm64
- buildjobs=32 # Amperes have 32 cores
+ buildjobs=64 # Jades have lots of cores
;;
*) echo "ERROR: Unsupported label: $label"; exit 1 ;;
esac
diff --git a/tcwg-reboot.yaml b/tcwg-reboot.yaml
index 12f948a49..f4b1a1cf1 100644
--- a/tcwg-reboot.yaml
+++ b/tcwg-reboot.yaml
@@ -26,7 +26,6 @@
default: tcwg-apm_64-build
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- bool:
name: dry_run
diff --git a/tcwg-report-stale-rr-jobs.yaml b/tcwg-report-stale-rr-jobs.yaml
index 7fcb4c88a..55580a720 100644
--- a/tcwg-report-stale-rr-jobs.yaml
+++ b/tcwg-report-stale-rr-jobs.yaml
@@ -67,7 +67,12 @@
mkdir artifacts
./jenkins-scripts/tcwg-report-stale-rr-jobs.sh --days "$days" 2>&1 \
| tee artifacts/stale-jobs.log
- if [ x"$(cat artifacts/stale-jobs.log | wc -l)" != x"0" ]; then
+ n_lines=$(cat artifacts/stale-jobs.log | wc -l)
+ if [ x"$n_lines" != x"0" ]; then
+ (
+ echo "Jobs with no new results in $days days ($n_lines entries):"
+ cat artifacts/stale-jobs.log
+ ) > artifacts/email-body.txt
exit 1
fi
publishers:
@@ -78,8 +83,7 @@
recipients: maxim.kuvyrkov@linaro.org
content-type: text
body: |
- Jobs with no new results in $days days:
- ${FILE,path="artifacts/stale-jobs.log"}
+ ${FILE,path="artifacts/email-body.txt"}
failure: true
aborted: true
-# checksum: 8c370784a7a676d081e160064c2770f5
+# checksum: 0efd29c238266ddfa1958a49c68038f5
diff --git a/tcwg-report-stale-rr-jobs.yaml.in b/tcwg-report-stale-rr-jobs.yaml.in
index d52df66c5..4887c968d 100644
--- a/tcwg-report-stale-rr-jobs.yaml.in
+++ b/tcwg-report-stale-rr-jobs.yaml.in
@@ -33,7 +33,12 @@
mkdir artifacts
./jenkins-scripts/tcwg-report-stale-rr-jobs.sh --days "$days" 2>&1 \
| tee artifacts/stale-jobs.log
- if [ x"$(cat artifacts/stale-jobs.log | wc -l)" != x"0" ]; then
+ n_lines=$(cat artifacts/stale-jobs.log | wc -l)
+ if [ x"$n_lines" != x"0" ]; then
+ (
+ echo "Jobs with no new results in $days days ($n_lines entries):"
+ cat artifacts/stale-jobs.log
+ ) > artifacts/email-body.txt
exit 1
fi
publishers:
@@ -44,7 +49,6 @@
recipients: maxim.kuvyrkov@linaro.org
content-type: text
body: |
- Jobs with no new results in $days days:
- ${FILE,path="artifacts/stale-jobs.log"}
+ ${FILE,path="artifacts/email-body.txt"}
failure: true
aborted: true
diff --git a/tcwg-update-bmk-containers.yaml b/tcwg-update-bmk-containers.yaml
new file mode 100644
index 000000000..9402cc3f3
--- /dev/null
+++ b/tcwg-update-bmk-containers.yaml
@@ -0,0 +1,143 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-containers.yaml.in and tcwg-update-containers/tcwg-update-bmk-containers.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+
+- scm:
+ name: jenkins-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $scripts_branch
+ basedir: jenkins-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+#END: tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-update-bmk-containers
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
+ - throttle:
+ max-per-node: 1
+ option: project
+ parameters:
+ - label:
+ name: nodes
+ default: tcwg-bmk-hw
+ all-nodes: true
+ matching-label: 'allCases'
+ description: 'Machines to run on'
+ - string:
+ name: distro
+ default: 'bionic'
+ description: 'Distro version to use.'
+ - bool:
+ name: force
+ default: 'false'
+ description: 'Whether to force update even with no changes in image'
+ - bool:
+ name: verbose
+ default: 'true'
+ description: 'Whether to be verbose'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ disabled: false
+ node: tcwg-coordinator
+ concurrent: true
+ display-name: 'TCWG CCC Update bmk containers'
+ # We need to unshare workspace with $NODE_NAME in the path to
+ # correctly run on tcwg-bmk-* nodes.
+ workspace: workspace/tcwg-update-bmk-containers_$EXECUTOR_NUMBER/$NODE_NAME
+ scm:
+ - jenkins-scripts
+ triggers:
+ - timed: '@daily'
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - 'tcwg-benchmark'
+ - build-name:
+ name: '#${BUILD_NUMBER}-${NODE_NAME}'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
+ (
+ flock -e 9
+ touch $lock
+ board=$(cat <&9)
+ rsync -az --delete ./jenkins-scripts/ $board:jenkins-scripts/
+ node=$(echo "$board" \
+ | sed -e "s/tcwg-bmk-/tcwg-/" -e "s/\.tcwglab\$//")
+ ssh -Snone $board ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --force "$force" \
+ --verbose "$verbose"
+ ssh -Snone $board ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --node "$node" \
+ --force "$force" \
+ --verbose "$verbose"
+
+ # We start the jenkins container above so that it can process
+ # all the queued cleanup and maintenance tasks.
+ # Here we wait for jenkins container to become idle by looking
+ # at number of processes. Idle container has
+ # - HEADER
+ # - tini
+ # - sudo java
+ # - java
+ # processes -- 4 lines.
+ while sleep 60; do
+ if [ "$(ssh -Snone $board docker top $node | wc -l)" -le "4" ]; then
+ break
+ fi
+ done
+
+ # Now stop the jenkins container so that it's not terminated
+ # midway some other build by a starting benchmarking job.
+ ssh -Snone $board docker stop "$node"
+ ) 9<$lock &
+ done
+ wait
+# checksum: 1a122257d45e8e44dabddf713ab7d025
diff --git a/tcwg-update-bmk_ref.yaml b/tcwg-update-bmk_ref.yaml
new file mode 100644
index 000000000..04ae170c6
--- /dev/null
+++ b/tcwg-update-bmk_ref.yaml
@@ -0,0 +1,131 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-source-caches.yaml.in and tcwg-update-source-caches/tcwg-update-bmk_ref.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+
+- scm:
+ name: jenkins-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $scripts_branch
+ basedir: jenkins-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+#END: tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-update-bmk_ref
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - bool:
+ name: generate_abe
+ default: false
+ description: 'Generate ABE snapshots'
+ - bool:
+ name: generate_bmk
+ default: true
+ description: 'Generate benchmark source cache'
+ - bool:
+ name: generate_misc
+ default: false
+ description: 'Generate misc file'
+ - bool:
+ name: update_abe_git
+ default: true
+ description: 'Update Git repos'
+ - bool:
+ name: verbose
+ default: true
+ description: 'Enable verbose output'
+ - string:
+ name: scripts_branch
+ default: refs/remotes/origin/master
+ description: 'Scripts revision to use'
+ - string:
+ name: abe_branch
+ default: tested
+ description: 'Abe revision to use'
+ - string:
+ name: distro
+ default: default
+ description: 'Docker image tag to use'
+ disabled: false
+ concurrent: false
+ node: tcwg-bmk-bkp-01
+ display-name: 'TCWG CCC Update bmk_ref cache on TCWG machines'
+ triggers:
+ - timed: '@weekly'
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - 'tcwg-benchmark'
+ - build-name:
+ name: '#${BUILD_NUMBER}'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ new_cache=$(mktemp -d)
+ trap "rm -rf $new_cache" EXIT
+ cache_dir=/home/shared/git
+ sudo mkdir -p $cache_dir
+ sudo chown $USER:tcwg-infra $cache_dir
+ # Use previous cache to speed up re-generation.
+ rsync -a --del $cache_dir/ $new_cache/
+ ./jenkins-scripts/tcwg-generate-source-cache.sh \
+ --cache_dir "$new_cache" \
+ --generate_abe "$generate_abe" \
+ --generate_bmk "$generate_bmk" \
+ --generate_misc "$generate_misc" \
+ --update_abe_git "$update_abe_git" \
+ --verbose "$verbose" \
+ --abe_branch "$abe_branch"
+ rsync -a --del $new_cache/ $cache_dir/
+ - trigger-builds:
+ - project: tcwg-buildslave-command
+ predefined-parameters: |
+ command=set -ex; cache_dir=/home/shared/git; sudo mkdir -p $cache_dir; sudo chown tcwg-buildslave:tcwg-infra $cache_dir; rsync -az --del bkp-01.tcwglab:$cache_dir/ $cache_dir/
+
+ displayname=bmk_ref
+ parameter-factories:
+ - factory: allnodesforlabel
+ name: nodes
+ node-label: tcwg-hw-bmk
+ ignore-offline-nodes: false
+ block: false
+ publishers:
+ - email-ext:
+ recipients: tcwg-validation@linaro.org
+ aborted: true
+
+# checksum: 894ccb9e25b89d34fb62a4ad6d143252
diff --git a/tcwg-update-buildkite-containers.yaml b/tcwg-update-buildkite-containers.yaml
index 31543b35a..4ca5dabde 100644
--- a/tcwg-update-buildkite-containers.yaml
+++ b/tcwg-update-buildkite-containers.yaml
@@ -1,4 +1,4 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update.yaml.in and tcwg-update/tcwg-update-buildkite-containers.def. Do not edit.
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-containers.yaml.in and tcwg-update-containers/tcwg-update-buildkite-containers.def. Do not edit.
#BEGIN: tcwg/default.yaml.inc
# -*- mode: Yaml -*-
@@ -58,7 +58,6 @@
default: tcwg-llvmbot
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
@@ -110,4 +109,4 @@
--password "$TCWG_BUILDKITE_TOKEN_LIBCXX" \
--force "$force" \
--verbose "$verbose"
-# checksum: 28c43aa623055ef87d5e78d6b128696c
+# checksum: af6845ac29f3319143bf5ed529dd822d
diff --git a/tcwg-update.yaml.in b/tcwg-update-containers.yaml.in
index fea83ca55..e07b7dd0a 100644
--- a/tcwg-update.yaml.in
+++ b/tcwg-update-containers.yaml.in
@@ -22,19 +22,20 @@
- label:
name: nodes
#if CONTAINER_host
- default: tcwg && !tcwg-bmk && !tcwg-short
+ default: tcwg && !tcwg-secondary-node
#elif CONTAINER_jenkins
# We can't restart coordinator nodes because we can't block-out
# matrix master jobs. Similarly, we can't restart nodes with
# multiple executors because we risk killing builds on other
# executors.
- default: tcwg && !tcwg-coordinator && !tcwg-bmk-coordinator && !tcwg-short && !tcwg-x86_64-build && !tcwg-x86_64-build-09 && !tcwg-x86_64-build-10
+ default: tcwg && !tcwg-coordinator && !tcwg-parallel-jobs
#elif CONTAINER_llvmbot || CONTAINER_buildkite
default: tcwg-llvmbot
+#elif CONTAINER_bmk
+ default: tcwg-bmk-hw
#endif
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
@@ -83,6 +84,10 @@
- text:
credential-id: TCWG_BUILDKITE_TOKEN_LIBCXX
variable: TCWG_BUILDKITE_TOKEN_LIBCXX
+#elif CONTAINER_bmk
+ - ssh-agent-credentials:
+ users:
+ - 'tcwg-benchmark'
#endif
- build-name:
name: '#${BUILD_NUMBER}-${NODE_NAME}'
@@ -125,4 +130,44 @@
--password "$TCWG_BUILDKITE_TOKEN_LIBCXX" \
--force "$force" \
--verbose "$verbose"
+#elif CONTAINER_bmk
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
+ (
+ flock -e 9
+ touch $lock
+ board=$(cat <&9)
+ rsync -az --delete ./jenkins-scripts/ $board:jenkins-scripts/
+ node=$(echo "$board" \
+ | sed -e "s/tcwg-bmk-/tcwg-/" -e "s/\.tcwglab\$//")
+ ssh -Snone $board ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --force "$force" \
+ --verbose "$verbose"
+ ssh -Snone $board ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --node "$node" \
+ --force "$force" \
+ --verbose "$verbose"
+
+ # We start the jenkins container above so that it can process
+ # all the queued cleanup and maintenance tasks.
+ # Here we wait for jenkins container to become idle by looking
+ # at number of processes. Idle container has
+ # - HEADER
+ # - tini
+ # - sudo java
+ # - java
+ # processes -- 4 lines.
+ while sleep 60; do
+ if [ "$(ssh -Snone $board docker top $node | wc -l)" -le "4" ]; then
+ break
+ fi
+ done
+
+ # Now stop the jenkins container so that it's not terminated
+ # midway some other build by a starting benchmarking job.
+ ssh -Snone $board docker stop "$node"
+ ) 9<$lock &
+ done
+ wait
#endif
diff --git a/tcwg-update-containers/tcwg-update-bmk-containers.def b/tcwg-update-containers/tcwg-update-bmk-containers.def
new file mode 100644
index 000000000..beba688ac
--- /dev/null
+++ b/tcwg-update-containers/tcwg-update-bmk-containers.def
@@ -0,0 +1 @@
+-v CONTAINER=bmk
diff --git a/tcwg-update/tcwg-update-buildkite-containers.def b/tcwg-update-containers/tcwg-update-buildkite-containers.def
index d093f7cac..d093f7cac 100644
--- a/tcwg-update/tcwg-update-buildkite-containers.def
+++ b/tcwg-update-containers/tcwg-update-buildkite-containers.def
diff --git a/tcwg-update/tcwg-update-host-containers.def b/tcwg-update-containers/tcwg-update-host-containers.def
index 04c3b8041..04c3b8041 100644
--- a/tcwg-update/tcwg-update-host-containers.def
+++ b/tcwg-update-containers/tcwg-update-host-containers.def
diff --git a/tcwg-update/tcwg-update-jenkins-containers.def b/tcwg-update-containers/tcwg-update-jenkins-containers.def
index 0a9af3762..0a9af3762 100644
--- a/tcwg-update/tcwg-update-jenkins-containers.def
+++ b/tcwg-update-containers/tcwg-update-jenkins-containers.def
diff --git a/tcwg-update/tcwg-update-llvmbot-containers.def b/tcwg-update-containers/tcwg-update-llvmbot-containers.def
index 6f6474056..6f6474056 100644
--- a/tcwg-update/tcwg-update-llvmbot-containers.def
+++ b/tcwg-update-containers/tcwg-update-llvmbot-containers.def
diff --git a/tcwg-update-host-containers.yaml b/tcwg-update-host-containers.yaml
index 9a28c5d24..65c753a5c 100644
--- a/tcwg-update-host-containers.yaml
+++ b/tcwg-update-host-containers.yaml
@@ -1,4 +1,4 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update.yaml.in and tcwg-update/tcwg-update-host-containers.def. Do not edit.
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-containers.yaml.in and tcwg-update-containers/tcwg-update-host-containers.def. Do not edit.
#BEGIN: tcwg/default.yaml.inc
# -*- mode: Yaml -*-
@@ -55,10 +55,9 @@
parameters:
- label:
name: nodes
- default: tcwg && !tcwg-bmk && !tcwg-short
+ default: tcwg && !tcwg-secondary-node
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
@@ -108,4 +107,4 @@
--group "$group" \
--force "$force" \
--verbose "$verbose"
-# checksum: b1c82ebd40a5b660931d8c5eafd527a2
+# checksum: 356166644aabf7902a0363f1341e6e4b
diff --git a/tcwg-update-jenkins-containers.yaml b/tcwg-update-jenkins-containers.yaml
index eb37b3205..d715daa7a 100644
--- a/tcwg-update-jenkins-containers.yaml
+++ b/tcwg-update-jenkins-containers.yaml
@@ -1,4 +1,4 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update.yaml.in and tcwg-update/tcwg-update-jenkins-containers.def. Do not edit.
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-containers.yaml.in and tcwg-update-containers/tcwg-update-jenkins-containers.def. Do not edit.
#BEGIN: tcwg/default.yaml.inc
# -*- mode: Yaml -*-
@@ -59,10 +59,9 @@
# matrix master jobs. Similarly, we can't restart nodes with
# multiple executors because we risk killing builds on other
# executors.
- default: tcwg && !tcwg-coordinator && !tcwg-bmk-coordinator && !tcwg-short && !tcwg-x86_64-build && !tcwg-x86_64-build-09 && !tcwg-x86_64-build-10
+ default: tcwg && !tcwg-coordinator && !tcwg-parallel-jobs
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
@@ -109,4 +108,4 @@
--force "$force" \
--verbose "$verbose" || exit 125
unstable-return: 125
-# checksum: 0152adfec213c728ae009c77bd2658c7
+# checksum: 0ffff2c054f377aa3bd825cbcd10296b
diff --git a/tcwg-update-llvmbot-containers.yaml b/tcwg-update-llvmbot-containers.yaml
index 71703eae5..50fab6e1c 100644
--- a/tcwg-update-llvmbot-containers.yaml
+++ b/tcwg-update-llvmbot-containers.yaml
@@ -1,4 +1,4 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update.yaml.in and tcwg-update/tcwg-update-llvmbot-containers.def. Do not edit.
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-containers.yaml.in and tcwg-update-containers/tcwg-update-llvmbot-containers.def. Do not edit.
#BEGIN: tcwg/default.yaml.inc
# -*- mode: Yaml -*-
@@ -58,7 +58,6 @@
default: tcwg-llvmbot
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
@@ -114,4 +113,4 @@
--password "$TCWG_LLVMBOT_PASSWORD" \
--force "$force" \
--verbose "$verbose"
-# checksum: 2b8b2079199a86037f284250da54b559
+# checksum: 86db4ab0fe8e2d1d076588d2353c88a7
diff --git a/tcwg-update-snapshots_ref.yaml b/tcwg-update-snapshots_ref.yaml
index 4851088ec..9d36ea86b 100644
--- a/tcwg-update-snapshots_ref.yaml
+++ b/tcwg-update-snapshots_ref.yaml
@@ -1,31 +1,62 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-source-caches.yaml.in and tcwg-update-source-caches/tcwg-update-snapshots_ref.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+
+- scm:
+ name: jenkins-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $scripts_branch
+ basedir: jenkins-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+#END: tcwg/default.yaml.inc
+
- job:
name: tcwg-update-snapshots_ref
project-type: freestyle
defaults: global
properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
+ - default-properties
parameters:
- bool:
name: generate_abe
default: true
description: 'Generate ABE snapshots'
- bool:
+ name: generate_bmk
+ default: false
+ description: 'Generate benchmark source cache'
+ - bool:
name: generate_misc
default: true
description: 'Generate misc file'
- bool:
name: update_abe_git
default: true
- description: 'Update ABE Git repos'
+ description: 'Update Git repos'
- bool:
name: verbose
default: true
@@ -45,25 +76,18 @@
disabled: false
concurrent: false
node: tcwg-x86_64-dev-01
- display-name: 'TCWG CCC Update reference ABE snapshots on TCWG machines'
+ display-name: 'TCWG CCC Update snapshots_ref cache on TCWG machines'
triggers:
- timed: '@weekly'
scm:
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- branches:
- - ${scripts_branch}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
+ - jenkins-scripts
wrappers:
- timeout:
timeout: 600
- timestamps
- ssh-agent-credentials:
- # tcwg-buildslave user id
users:
+ # tcwg-buildslave user id
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- build-name:
name: '#${BUILD_NUMBER}'
@@ -71,29 +95,36 @@
- shell: |
#!/bin/bash
set -ex
- snapshots_dir=$HOME/snapshots-ref
- rsync -a --del $snapshots_dir/ ${snapshots_dir}-new/
- ./tcwg-generate-source-cache.sh \
- --dir-abe ${snapshots_dir}-new \
- --generate-abe $generate_abe \
- --generate-misc $generate_misc \
- --update-abe-git $update_abe_git \
- --verbose $verbose \
- --abe-branch $abe_branch
- rsync -a --del ${snapshots_dir}-new/ $snapshots_dir/
+
+ new_cache=$(mktemp -d)
+ trap "rm -rf $new_cache" EXIT
+ cache_dir=$HOME/snapshots-ref
+ # Use previous cache to speed up re-generation.
+ rsync -a --del $cache_dir/ $new_cache/
+ ./jenkins-scripts/tcwg-generate-source-cache.sh \
+ --cache_dir "$new_cache" \
+ --generate_abe "$generate_abe" \
+ --generate_bmk "$generate_bmk" \
+ --generate_misc "$generate_misc" \
+ --update_abe_git "$update_abe_git" \
+ --verbose "$verbose" \
+ --abe_branch "$abe_branch"
+ rsync -a --del $new_cache/ $cache_dir/
- trigger-builds:
- project: tcwg-buildslave-command
predefined-parameters: |
- command=set -ex; snapshots_dir=$HOME/snapshots-ref; mkdir -p $snapshots_dir/; rsync -a --del $snapshots_dir/ ${snapshots_dir}-new/; rsync -az --del $NODE_NAME.tcwglab:${snapshots_dir}/ ${snapshots_dir}-new/; flock -x ${snapshots_dir}.lock -c "rsync -a --del ${snapshots_dir}-new/ $snapshots_dir/"; rm -rf ${snapshots_dir}-new/
- displayname=snapshot-refs
+ command=set -ex; cache_dir=$HOME/snapshots-ref; mkdir -p $cache_dir; rsync -az --del dev-01.tcwglab:$cache_dir/ $cache_dir/
+
+ displayname=snapshots_ref
parameter-factories:
- factory: allnodesforlabel
name: nodes
- node-label: tcwg && !tcwg-bmk && !tcwg-bmk-coordinator && !tcwg-short && !tcwg-llvmbot
- ignore-offline-nodes: true
+ node-label: tcwg && !tcwg-bmk && !tcwg-short && !tcwg-llvmbot
+ ignore-offline-nodes: false
block: false
publishers:
- email-ext:
recipients: tcwg-validation@linaro.org
aborted: true
+# checksum: 5eaae9d065c252a581c961b2176f9323
diff --git a/tcwg-update-source-caches.yaml.in b/tcwg-update-source-caches.yaml.in
new file mode 100644
index 000000000..c7bd55f63
--- /dev/null
+++ b/tcwg-update-source-caches.yaml.in
@@ -0,0 +1,129 @@
+#include tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-update-#{CACHE}
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - bool:
+ name: generate_abe
+#if CACHE_snapshots_ref
+ default: true
+#elif CACHE_bmk_ref
+ default: false
+#endif
+ description: 'Generate ABE snapshots'
+ - bool:
+ name: generate_bmk
+#if CACHE_snapshots_ref
+ default: false
+#elif CACHE_bmk_ref
+ default: true
+#endif
+ description: 'Generate benchmark source cache'
+ - bool:
+ name: generate_misc
+#if CACHE_snapshots_ref
+ default: true
+#elif CACHE_bmk_ref
+ default: false
+#endif
+ description: 'Generate misc file'
+ - bool:
+ name: update_abe_git
+ default: true
+ description: 'Update Git repos'
+ - bool:
+ name: verbose
+ default: true
+ description: 'Enable verbose output'
+ - string:
+ name: scripts_branch
+ default: refs/remotes/origin/master
+ description: 'Scripts revision to use'
+ - string:
+ name: abe_branch
+ default: tested
+ description: 'Abe revision to use'
+ - string:
+ name: distro
+ default: default
+ description: 'Docker image tag to use'
+ disabled: false
+ concurrent: false
+#if CACHE_snapshots_ref
+ node: tcwg-x86_64-dev-01
+#elif CACHE_bmk_ref
+ node: tcwg-bmk-bkp-01
+#endif
+ display-name: 'TCWG CCC Update #{CACHE} cache on TCWG machines'
+ triggers:
+ - timed: '@weekly'
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+#if CACHE_snapshots_ref
+ # tcwg-buildslave user id
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+#elif CACHE_bmk_ref
+ - 'tcwg-benchmark'
+#endif
+ - build-name:
+ name: '#${BUILD_NUMBER}'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ new_cache=$(mktemp -d)
+ trap "rm -rf $new_cache" EXIT
+#if CACHE_snapshots_ref
+ cache_dir=$HOME/snapshots-ref
+#elif CACHE_bmk_ref
+ cache_dir=/home/shared/git
+ sudo mkdir -p $cache_dir
+ sudo chown $USER:tcwg-infra $cache_dir
+#endif
+ # Use previous cache to speed up re-generation.
+ rsync -a --del $cache_dir/ $new_cache/
+ ./jenkins-scripts/tcwg-generate-source-cache.sh \
+ --cache_dir "$new_cache" \
+ --generate_abe "$generate_abe" \
+ --generate_bmk "$generate_bmk" \
+ --generate_misc "$generate_misc" \
+ --update_abe_git "$update_abe_git" \
+ --verbose "$verbose" \
+ --abe_branch "$abe_branch"
+ rsync -a --del $new_cache/ $cache_dir/
+ - trigger-builds:
+ - project: tcwg-buildslave-command
+ predefined-parameters: |
+#if CACHE_snapshots_ref
+ command=set -ex; cache_dir=$HOME/snapshots-ref; mkdir -p $cache_dir; rsync -az --del dev-01.tcwglab:$cache_dir/ $cache_dir/
+#elif CACHE_bmk_ref
+ command=set -ex; cache_dir=/home/shared/git; sudo mkdir -p $cache_dir; sudo chown tcwg-buildslave:tcwg-infra $cache_dir; rsync -az --del bkp-01.tcwglab:$cache_dir/ $cache_dir/
+#endif
+
+ displayname=#{CACHE}
+ parameter-factories:
+ - factory: allnodesforlabel
+ name: nodes
+#if CACHE_snapshots_ref
+ node-label: tcwg && !tcwg-bmk && !tcwg-short && !tcwg-llvmbot
+#elif CACHE_bmk_ref
+ node-label: tcwg-hw-bmk
+#endif
+ ignore-offline-nodes: false
+ block: false
+ publishers:
+ - email-ext:
+ recipients: tcwg-validation@linaro.org
+ aborted: true
+
diff --git a/tcwg-update-source-caches/tcwg-update-bmk_ref.def b/tcwg-update-source-caches/tcwg-update-bmk_ref.def
new file mode 100644
index 000000000..b9306f859
--- /dev/null
+++ b/tcwg-update-source-caches/tcwg-update-bmk_ref.def
@@ -0,0 +1 @@
+-v CACHE=bmk_ref
diff --git a/tcwg-update-source-caches/tcwg-update-snapshots_ref.def b/tcwg-update-source-caches/tcwg-update-snapshots_ref.def
new file mode 100644
index 000000000..c06792171
--- /dev/null
+++ b/tcwg-update-source-caches/tcwg-update-snapshots_ref.def
@@ -0,0 +1 @@
+-v CACHE=snapshots_ref
diff --git a/tcwg/default.yaml.inc b/tcwg/default.yaml.inc
index 372ab133a..635c10e06 100644
--- a/tcwg/default.yaml.inc
+++ b/tcwg/default.yaml.inc
@@ -4,19 +4,18 @@
name: default-properties
properties:
- authorization:
-#if RR_tcwg_bmk || TCWG_benchmark
- tcwg-benchmark:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
-#else
anonymous:
- job-read
- job-extended-read
linaro:
- job-build
- job-cancel
+#if TCWG_benchmark
+ # Allow users in tcwg-benchmark group (e.g., tcwg-buildslave)
+ # start and stop builds. We use this in tcwg_bmk* CI loops.
+ tcwg-benchmark:
+ - job-build
+ - job-cancel
#endif
- build-discarder:
days-to-keep: 30
diff --git a/tcwg/round-robin.yaml.inc b/tcwg/round-robin.yaml.inc
index d6e6a79fe..04dcc8e64 100644
--- a/tcwg/round-robin.yaml.inc
+++ b/tcwg/round-robin.yaml.inc
@@ -8,19 +8,27 @@
- string:
name: ci_project
default: '{ci_project}'
+#if RR_tcwg_bmk
+ description: "CI project ID; used as namespace for git branches and selects benchmarking hardware"
+#else
description: "CI project ID; used as namespace for git branches"
+#endif
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
+#if PURPOSE_ci
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+#elif PURPOSE_dev
+ default: first.last@linaro.org
+#endif
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -40,13 +48,9 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
@@ -54,44 +58,37 @@
#if COMPONENTS_binutils
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
#if COMPONENTS_gcc
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
#if COMPONENTS_glibc
- component-parameters:
component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
#if COMPONENTS_newlib
- component-parameters:
component: newlib
- url: '{newlib_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
#if COMPONENTS_linux
- component-parameters:
component: linux
- url: '{linux_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
#if COMPONENTS_llvm
- component-parameters:
component: llvm
- url: '{llvm_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
#if COMPONENTS_qemu
- component-parameters:
component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
- choice:
name: update_baseline
@@ -204,28 +201,40 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
#if RR_tcwg_bmk
- echo "bmk_branch=$bmk_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
#endif
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -240,24 +249,18 @@
mkdir -p artifacts/jenkins
dryruncmd=""
-#if RR_tcwg_gcc
- # Don't run these known-bad configurations.
- case {target}-{type_of_test} in
- aarch64-bootstrap_profiled|\
- aarch64-bootstrap_profiled_lto|\
- aarch64-bootstrap_profiled_lto_lean|\
- aarch64-check_bootstrap_lto|\
- arm-bootstrap_profiled|\
- arm-bootstrap_profiled_lto*|\
- arm-check_bootstrap_lto)
- echo "Known bad configuration, not running."
- echo "Would have run:"
- # So we know it wasn't an infrastructure failure
- touch artifacts/failures
- dryruncmd="echo"
- ;;
- esac
-#endif
+
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
#if PURPOSE_ci
build_name="#$BUILD_NUMBER"
@@ -268,17 +271,16 @@
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
+ eval "g=\$$$${{c}}_git"
#if PURPOSE_ci
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
#endif
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -307,17 +309,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -327,21 +326,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -358,13 +352,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
+ name: bad_git
default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -381,8 +371,8 @@
#if PURPOSE_ci
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
#endif
- builder:
@@ -404,7 +394,7 @@
echo "$build_name" > artifacts/jenkins/build-name
# artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
#if RR_tcwg_bmk
- echo "christophe.lyon@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
#elif RR_tcwg_binutils || RR_tcwg_gcc
echo "prathamesh.kulkarni@linaro.org,tcwg-gcc@linaro.org" > artifacts/jenkins/mail-recipients.txt
#elif RR_tcwg_kernel
@@ -425,12 +415,11 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
#if PURPOSE_ci
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
#endif
-- \
==rr[ci_project] $ci_project \
@@ -439,25 +428,34 @@
#if RR_tcwg_bmk
--bmk_branch "$bmk_branch" \
#endif
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
diff --git a/tcwg_binutils.yaml b/tcwg_binutils.yaml
index ce1235244..041274205 100644
--- a/tcwg_binutils.yaml
+++ b/tcwg_binutils.yaml
@@ -5,24 +5,37 @@
toolchain_name: gnu
ci_project: tcwg_gnu
binutils_url: git://sourceware.org/git/binutils-gdb.git
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
- distro: lts_1
target:
- aarch64:
- node: tcwg-armv8_64
+ node: tcwg-build && tcwg-armv8_64
docker_arch: arm64
- arm:
- node: tcwg-armv8_32
+ node: tcwg-build && tcwg-armv8_32
docker_arch: armhf
disabled: false
type_of_test:
- check_binutils
jobs:
+ - tcwg_binutils-master
+ - tcwg_binutils-release
+
+- job-group:
+ name: tcwg_binutils-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ distro: lts
+ cron: 'H H/12 * * *'
+ jobs:
+ - 'tcwg_binutils-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - 'tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+
+- job-group:
+ name: tcwg_binutils-release
+ toolchain_ver: release
+ binutils_branch: refs/heads/binutils-2_36-branch
+ distro: lts_1
+ cron: 'H H H/2 * *'
+ jobs:
- 'tcwg_binutils-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- 'tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
@@ -79,15 +92,15 @@
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -101,21 +114,16 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -178,25 +186,37 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -212,20 +232,31 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -247,17 +278,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -267,21 +295,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -298,13 +321,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
+ name: bad_git
default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -320,8 +339,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -349,34 +368,42 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -398,8 +425,7 @@
- build-parameters:
ci_project: '{ci_project}'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- binutils_url: '{binutils_url}'
- default_branch: 'default'
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: '{disabled}'
node: '{node} && tcwg-build'
@@ -412,7 +438,7 @@
binutils_branch: '{binutils_branch}'
triggers:
- pollscm:
- cron: 'H H H/2 * *'
+ cron: '{cron}'
wrappers:
- build-wrappers:
timeout: 1000
@@ -421,17 +447,12 @@
build_script: 'tcwg_gnu-build.sh'
components: 'binutils'
rr_project: 'tcwg_binutils'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
target: '{target}'
type_of_test: '{type_of_test}'
publishers:
- build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
- job-template:
name: tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
@@ -467,8 +488,8 @@
- run-bisect:
build_script: 'tcwg_gnu-build.sh'
rr_project: 'tcwg_binutils'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
publishers:
- bisect-publishers
-# checksum: 557ca8a0570213fa83f592d455fdeeb7
+# checksum: 7a98db757befde751ca12819ca40b5f4
diff --git a/tcwg_bmk_ci.yaml.in b/tcwg_bmk_ci.yaml.in
index 4ff76f5ee..f9f226cc6 100644
--- a/tcwg_bmk_ci.yaml.in
+++ b/tcwg_bmk_ci.yaml.in
@@ -3,10 +3,10 @@
name: tcwg_bmk_ci_#{TOOLCHAIN}
binutils_url: git://sourceware.org/git/binutils-gdb.git
gcc_url: https://github.com/gcc-mirror/gcc.git
-#if TOOLCHAIN_gnu_eabi
- newlib_url: git://sourceware.org/git/newlib-cygwin.git
-#else
+#if !TOOLCHAIN_gnu_eabi
glibc_url: git://sourceware.org/git/glibc.git
+#else
+ newlib_url: git://sourceware.org/git/newlib-cygwin.git
#endif
#if TOOLCHAIN_llvm
llvm_url: https://github.com/llvm/llvm-project.git
@@ -15,44 +15,18 @@
#if TOOLCHAIN_gnu_eabi
- stm32:
target: arm_eabi
- node: tcwg-x86_64-dev-02
#else
+ - apm:
+ target: arm
+ - apm:
+ target: aarch64
- tk1:
target: arm
- node: tcwg-x86_64-build_bmk_tk1
- tx1:
target: aarch64
- node: tcwg-x86_64-build_bmk_tx1
#endif
toolchain_name: #{TOOLCHAIN}
components: #{COMPONENTS}
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- gcc_branch: refs/heads/master
-#if !TOOLCHAIN_gnu_eabi
- glibc_branch: refs/heads/master
-#endif
-#if TOOLCHAIN_llvm
- llvm_branch: refs/heads/main
-#endif
-#if TOOLCHAIN_gnu_eabi
- newlib_branch: refs/heads/master
-#endif
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
- gcc_branch: refs/heads/releases/gcc-10
-#if !TOOLCHAIN_gnu_eabi
- glibc_branch: refs/heads/release/2.32/master
-#endif
-#if TOOLCHAIN_llvm
- llvm_branch: refs/heads/release/12.x
-#endif
-#if TOOLCHAIN_gnu_eabi
- newlib_branch: refs/tags/newlib-3.3.0
-#endif
- distro: lts_1
bmk:
#if TOOLCHAIN_gnu_eabi
- coremark
@@ -60,59 +34,94 @@
- spec2k6
#endif
cflags:
- - Os:
- cron_schedule: H H H/7 * *
- - Os_LTO:
- cron_schedule: H H H/7 * *
- - Oz:
- cron_schedule: H H H/7 * *
- - Oz_LTO:
- cron_schedule: H H H/7 * *
- - O2:
- cron_schedule: H H H/7 * *
- - O2_LTO:
- cron_schedule: H H H/7 * *
- - O3:
- cron_schedule: H H H/7 * *
- - O3_LTO:
- cron_schedule: H H H/7 * *
- - Os-vs-Os_LTO:
- cron_schedule: H H H * *
- - O2-vs-O2_LTO:
- cron_schedule: H H H * *
- - O3-vs-O3_LTO:
- cron_schedule: H H H * *
- - O3_VECT:
- cron_schedule: H H H/7 * *
- - O3_LTO_VECT:
- cron_schedule: H H H/7 * *
+ - Os
+ - Os_LTO
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+#if TOOLCHAIN_llvm
+ - Oz
+ - Oz_LTO
+#else
+ - O3_VECT
+ - O3_LTO_VECT
+#endif
jobs:
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}-master'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}-release'
exclude:
- - toolchain_name: gnu
+ - hw: apm
+ cflags: O2
+ - hw: apm
+ cflags: O2_LTO
+ - hw: apm
+ cflags: O3
+ - hw: apm
+ cflags: O3_LTO
+ - hw: apm
+ cflags: O3_VECT
+ - hw: apm
+ cflags: O3_LTO_VECT
+ - hw: tk1
+ cflags: Os
+ - hw: tk1
+ cflags: Os_LTO
+ - hw: tk1
cflags: Oz
- - toolchain_name: gnu
+ - hw: tk1
cflags: Oz_LTO
- - toolchain_name: gnu_eabi
+ - hw: tx1
+ cflags: Os
+ - hw: tx1
+ cflags: Os_LTO
+ - hw: tx1
cflags: Oz
- - toolchain_name: gnu_eabi
+ - hw: tx1
cflags: Oz_LTO
- - toolchain_name: llvm
- cflags: Os-vs-Os_LTO
- - toolchain_name: llvm
- cflags: O2-vs-O2_LTO
- - toolchain_name: llvm
- cflags: O3-vs-O3_LTO
- - toolchain_name: llvm
- cflags: O3_VECT
- - toolchain_name: llvm
- cflags: O3_LTO_VECT
+
+- job-group:
+ name: tcwg_bmk_ci_#{TOOLCHAIN}-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+#if !TOOLCHAIN_gnu_eabi
+ glibc_branch: refs/heads/master
+#else
+ newlib_branch: refs/heads/master
+#endif
+#if TOOLCHAIN_llvm
+ llvm_branch: refs/heads/main
+#endif
+ distro: lts
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+
+- job-group:
+ name: tcwg_bmk_ci_#{TOOLCHAIN}-release
+ toolchain_ver: release
+ binutils_branch: refs/heads/binutils-2_36-branch
+ gcc_branch: refs/heads/releases/gcc-10
+#if !TOOLCHAIN_gnu_eabi
+ glibc_branch: refs/heads/release/2.32/master
+#else
+ newlib_branch: refs/tags/newlib-3.3.0
+#endif
+#if TOOLCHAIN_llvm
+ llvm_branch: refs/heads/release/12.x
+#endif
+ distro: lts_1
+ cron_schedule: 'H H H/7 * *'
+ jobs:
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- view:
name: tcwg_bmk_ci_#{TOOLCHAIN}
view-type: list
- regex: 'tcwg_bmk_ci_#{TOOLCHAIN}-.*'
+ regex: 'tcwg_bmk_ci_#{TOOLCHAIN}-build-.*'
#include tcwg/round-robin.yaml.inc
@@ -124,28 +133,20 @@
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- "tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}"
queue-scanning: 'ALL'
parameters:
- build-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_#{TOOLCHAIN}_{hw}'
ci_config: '#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
-#if !TOOLCHAIN_gnu_eabi
- glibc_url: '{glibc_url}'
-#endif
-#if TOOLCHAIN_llvm
- llvm_url: '{llvm_url}'
-#endif
-#if TOOLCHAIN_gnu_eabi
- newlib_url: '{newlib_url}'
-#endif
- default_branch: default
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: false
- node: '{node}'
+#if TOOLCHAIN_gnu_eabi
+ node: tcwg-x86_64-build
+#else
+ node: tcwg-x86_64-build_bmk
+#endif
concurrent: false
display-name: 'TCWG Build tcwg_bmk_{hw}/#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -158,15 +159,14 @@
#if !TOOLCHAIN_gnu_eabi
glibc_url: '{glibc_url}'
glibc_branch: '{glibc_branch}'
+#else
+ newlib_url: '{newlib_url}'
+ newlib_branch: '{newlib_branch}'
#endif
#if TOOLCHAIN_llvm
llvm_url: '{llvm_url}'
llvm_branch: '{llvm_branch}'
#endif
-#if TOOLCHAIN_gnu_eabi
- newlib_url: '{newlib_url}'
- newlib_branch: '{newlib_branch}'
-#endif
triggers:
- pollscm:
cron: '{cron_schedule}'
@@ -178,7 +178,7 @@
build_script: 'tcwg_bmk-build.sh'
components: '{components}'
rr_project: 'tcwg_bmk_ci_#{TOOLCHAIN}'
- ci_project_config: 'tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- build-publishers
@@ -195,16 +195,19 @@
# same regression tends to appear in multiple configurations,
# run bisections for all configurations in-order.
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- - "tcwg_bmk_ci_.*-bisect-tcwg_bmk_{hw}-.*"
+ - "tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-.*"
queue-scanning: 'BUILDABLE'
parameters:
- bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_#{TOOLCHAIN}_{hw}'
ci_config: '#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
distro: '{distro}'
disabled: false
- node: '{node}'
+#if TOOLCHAIN_gnu_eabi
+ node: tcwg-x86_64-dev-02
+#else
+ node: tcwg-x86_64-build_bmk
+#endif
concurrent: false
display-name: 'TCWG Bisect tcwg_bmk_{hw}/#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -218,6 +221,6 @@
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
rr_project: 'tcwg_bmk_ci_#{TOOLCHAIN}'
- ci_project_config: 'tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
diff --git a/tcwg_bmk_ci_gnu.yaml b/tcwg_bmk_ci_gnu.yaml
index 9bf1f3beb..185d6c1ff 100644
--- a/tcwg_bmk_ci_gnu.yaml
+++ b/tcwg_bmk_ci_gnu.yaml
@@ -6,81 +6,88 @@
gcc_url: https://github.com/gcc-mirror/gcc.git
glibc_url: git://sourceware.org/git/glibc.git
hw:
+ - apm:
+ target: arm
+ - apm:
+ target: aarch64
- tk1:
target: arm
- node: tcwg-x86_64-build_bmk_tk1
- tx1:
target: aarch64
- node: tcwg-x86_64-build_bmk_tx1
toolchain_name: gnu
components: binutils gcc glibc
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- gcc_branch: refs/heads/master
- glibc_branch: refs/heads/master
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
- gcc_branch: refs/heads/releases/gcc-10
- glibc_branch: refs/heads/release/2.32/master
- distro: lts_1
bmk:
- spec2k6
cflags:
- - Os:
- cron_schedule: H H H/7 * *
- - Os_LTO:
- cron_schedule: H H H/7 * *
- - Oz:
- cron_schedule: H H H/7 * *
- - Oz_LTO:
- cron_schedule: H H H/7 * *
- - O2:
- cron_schedule: H H H/7 * *
- - O2_LTO:
- cron_schedule: H H H/7 * *
- - O3:
- cron_schedule: H H H/7 * *
- - O3_LTO:
- cron_schedule: H H H/7 * *
- - Os-vs-Os_LTO:
- cron_schedule: H H H * *
- - O2-vs-O2_LTO:
- cron_schedule: H H H * *
- - O3-vs-O3_LTO:
- cron_schedule: H H H * *
- - O3_VECT:
- cron_schedule: H H H/7 * *
- - O3_LTO_VECT:
- cron_schedule: H H H/7 * *
+ - Os
+ - Os_LTO
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - O3_VECT
+ - O3_LTO_VECT
jobs:
- - 'tcwg_bmk_ci_gnu-build-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
- - 'tcwg_bmk_ci_gnu-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_gnu-master'
+ - 'tcwg_bmk_ci_gnu-release'
exclude:
- - toolchain_name: gnu
+ - hw: apm
+ cflags: O2
+ - hw: apm
+ cflags: O2_LTO
+ - hw: apm
+ cflags: O3
+ - hw: apm
+ cflags: O3_LTO
+ - hw: apm
+ cflags: O3_VECT
+ - hw: apm
+ cflags: O3_LTO_VECT
+ - hw: tk1
+ cflags: Os
+ - hw: tk1
+ cflags: Os_LTO
+ - hw: tk1
cflags: Oz
- - toolchain_name: gnu
+ - hw: tk1
cflags: Oz_LTO
- - toolchain_name: gnu_eabi
+ - hw: tx1
+ cflags: Os
+ - hw: tx1
+ cflags: Os_LTO
+ - hw: tx1
cflags: Oz
- - toolchain_name: gnu_eabi
+ - hw: tx1
cflags: Oz_LTO
- - toolchain_name: llvm
- cflags: Os-vs-Os_LTO
- - toolchain_name: llvm
- cflags: O2-vs-O2_LTO
- - toolchain_name: llvm
- cflags: O3-vs-O3_LTO
- - toolchain_name: llvm
- cflags: O3_VECT
- - toolchain_name: llvm
- cflags: O3_LTO_VECT
+
+- job-group:
+ name: tcwg_bmk_ci_gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: lts
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk_ci_gnu-build-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_gnu-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+
+- job-group:
+ name: tcwg_bmk_ci_gnu-release
+ toolchain_ver: release
+ binutils_branch: refs/heads/binutils-2_36-branch
+ gcc_branch: refs/heads/releases/gcc-10
+ glibc_branch: refs/heads/release/2.32/master
+ distro: lts_1
+ cron_schedule: 'H H H/7 * *'
+ jobs:
+ - 'tcwg_bmk_ci_gnu-build-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_gnu-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
- view:
name: tcwg_bmk_ci_gnu
view-type: list
- regex: 'tcwg_bmk_ci_gnu-.*'
+ regex: 'tcwg_bmk_ci_gnu-build-.*'
#BEGIN: tcwg/round-robin.yaml.inc
# -*- mode: Yaml -*-
@@ -92,9 +99,10 @@
name: default-properties
properties:
- authorization:
- tcwg-benchmark:
+ anonymous:
- job-read
- job-extended-read
+ linaro:
- job-build
- job-cancel
- build-discarder:
@@ -140,19 +148,19 @@
- string:
name: ci_project
default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
+ description: "CI project ID; used as namespace for git branches and selects benchmarking hardware"
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -170,29 +178,22 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -266,26 +267,38 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- echo "bmk_branch=$bmk_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -301,20 +314,31 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -336,17 +360,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -356,21 +377,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -387,13 +403,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
+ name: bad_git
default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -409,8 +421,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -426,7 +438,7 @@
build_name="#$BUILD_NUMBER-$current_project"
echo "$build_name" > artifacts/jenkins/build-name
# artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "christophe.lyon@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
./jenkins-scripts/docker-run.sh \
@@ -437,35 +449,43 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
--bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -481,20 +501,16 @@
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- "tcwg_bmk_ci_gnu-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}"
queue-scanning: 'ALL'
parameters:
- build-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_gnu_{hw}'
ci_config: 'gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- glibc_url: '{glibc_url}'
- default_branch: default
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build_bmk
concurrent: false
display-name: 'TCWG Build tcwg_bmk_{hw}/gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -517,7 +533,7 @@
build_script: 'tcwg_bmk-build.sh'
components: '{components}'
rr_project: 'tcwg_bmk_ci_gnu'
- ci_project_config: 'tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- build-publishers
@@ -534,16 +550,15 @@
# same regression tends to appear in multiple configurations,
# run bisections for all configurations in-order.
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- - "tcwg_bmk_ci_.*-bisect-tcwg_bmk_{hw}-.*"
+ - "tcwg_bmk_ci_gnu-bisect-tcwg_bmk_{hw}-gnu-.*"
queue-scanning: 'BUILDABLE'
parameters:
- bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_gnu_{hw}'
ci_config: 'gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
distro: '{distro}'
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build_bmk
concurrent: false
display-name: 'TCWG Bisect tcwg_bmk_{hw}/gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -557,7 +572,7 @@
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
rr_project: 'tcwg_bmk_ci_gnu'
- ci_project_config: 'tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
-# checksum: 0d0bc83d8d6ac1a5839dde45275a89b2
+# checksum: 92e961052a684f099fb04699e2984cd5
diff --git a/tcwg_bmk_ci_gnu_eabi.yaml b/tcwg_bmk_ci_gnu_eabi.yaml
index e7198bc83..b0e89b081 100644
--- a/tcwg_bmk_ci_gnu_eabi.yaml
+++ b/tcwg_bmk_ci_gnu_eabi.yaml
@@ -8,76 +8,80 @@
hw:
- stm32:
target: arm_eabi
- node: tcwg-x86_64-dev-02
toolchain_name: gnu_eabi
components: binutils gcc newlib
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- gcc_branch: refs/heads/master
- newlib_branch: refs/heads/master
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
- gcc_branch: refs/heads/releases/gcc-10
- newlib_branch: refs/tags/newlib-3.3.0
- distro: lts_1
bmk:
- coremark
cflags:
- - Os:
- cron_schedule: H H H/7 * *
- - Os_LTO:
- cron_schedule: H H H/7 * *
- - Oz:
- cron_schedule: H H H/7 * *
- - Oz_LTO:
- cron_schedule: H H H/7 * *
- - O2:
- cron_schedule: H H H/7 * *
- - O2_LTO:
- cron_schedule: H H H/7 * *
- - O3:
- cron_schedule: H H H/7 * *
- - O3_LTO:
- cron_schedule: H H H/7 * *
- - Os-vs-Os_LTO:
- cron_schedule: H H H * *
- - O2-vs-O2_LTO:
- cron_schedule: H H H * *
- - O3-vs-O3_LTO:
- cron_schedule: H H H * *
- - O3_VECT:
- cron_schedule: H H H/7 * *
- - O3_LTO_VECT:
- cron_schedule: H H H/7 * *
+ - Os
+ - Os_LTO
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - O3_VECT
+ - O3_LTO_VECT
jobs:
- - 'tcwg_bmk_ci_gnu_eabi-build-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
- - 'tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_gnu_eabi-master'
+ - 'tcwg_bmk_ci_gnu_eabi-release'
exclude:
- - toolchain_name: gnu
+ - hw: apm
+ cflags: O2
+ - hw: apm
+ cflags: O2_LTO
+ - hw: apm
+ cflags: O3
+ - hw: apm
+ cflags: O3_LTO
+ - hw: apm
+ cflags: O3_VECT
+ - hw: apm
+ cflags: O3_LTO_VECT
+ - hw: tk1
+ cflags: Os
+ - hw: tk1
+ cflags: Os_LTO
+ - hw: tk1
cflags: Oz
- - toolchain_name: gnu
+ - hw: tk1
cflags: Oz_LTO
- - toolchain_name: gnu_eabi
+ - hw: tx1
+ cflags: Os
+ - hw: tx1
+ cflags: Os_LTO
+ - hw: tx1
cflags: Oz
- - toolchain_name: gnu_eabi
+ - hw: tx1
cflags: Oz_LTO
- - toolchain_name: llvm
- cflags: Os-vs-Os_LTO
- - toolchain_name: llvm
- cflags: O2-vs-O2_LTO
- - toolchain_name: llvm
- cflags: O3-vs-O3_LTO
- - toolchain_name: llvm
- cflags: O3_VECT
- - toolchain_name: llvm
- cflags: O3_LTO_VECT
+
+- job-group:
+ name: tcwg_bmk_ci_gnu_eabi-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ newlib_branch: refs/heads/master
+ distro: lts
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk_ci_gnu_eabi-build-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
+
+- job-group:
+ name: tcwg_bmk_ci_gnu_eabi-release
+ toolchain_ver: release
+ binutils_branch: refs/heads/binutils-2_36-branch
+ gcc_branch: refs/heads/releases/gcc-10
+ newlib_branch: refs/tags/newlib-3.3.0
+ distro: lts_1
+ cron_schedule: 'H H H/7 * *'
+ jobs:
+ - 'tcwg_bmk_ci_gnu_eabi-build-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
- view:
name: tcwg_bmk_ci_gnu_eabi
view-type: list
- regex: 'tcwg_bmk_ci_gnu_eabi-.*'
+ regex: 'tcwg_bmk_ci_gnu_eabi-build-.*'
#BEGIN: tcwg/round-robin.yaml.inc
# -*- mode: Yaml -*-
@@ -89,9 +93,10 @@
name: default-properties
properties:
- authorization:
- tcwg-benchmark:
+ anonymous:
- job-read
- job-extended-read
+ linaro:
- job-build
- job-cancel
- build-discarder:
@@ -137,19 +142,19 @@
- string:
name: ci_project
default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
+ description: "CI project ID; used as namespace for git branches and selects benchmarking hardware"
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -167,29 +172,22 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: newlib
- url: '{newlib_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -263,26 +261,38 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- echo "bmk_branch=$bmk_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -298,20 +308,31 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -333,17 +354,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -353,21 +371,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -384,13 +397,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
+ name: bad_git
default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -406,8 +415,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -423,7 +432,7 @@
build_name="#$BUILD_NUMBER-$current_project"
echo "$build_name" > artifacts/jenkins/build-name
# artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "christophe.lyon@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
./jenkins-scripts/docker-run.sh \
@@ -434,35 +443,43 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
--bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -478,20 +495,16 @@
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- "tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}"
queue-scanning: 'ALL'
parameters:
- build-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_gnu_eabi_{hw}'
ci_config: 'gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- newlib_url: '{newlib_url}'
- default_branch: default
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build
concurrent: false
display-name: 'TCWG Build tcwg_bmk_{hw}/gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -514,7 +527,7 @@
build_script: 'tcwg_bmk-build.sh'
components: '{components}'
rr_project: 'tcwg_bmk_ci_gnu_eabi'
- ci_project_config: 'tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- build-publishers
@@ -531,16 +544,15 @@
# same regression tends to appear in multiple configurations,
# run bisections for all configurations in-order.
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- - "tcwg_bmk_ci_.*-bisect-tcwg_bmk_{hw}-.*"
+ - "tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_{hw}-gnu_eabi-.*"
queue-scanning: 'BUILDABLE'
parameters:
- bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_gnu_eabi_{hw}'
ci_config: 'gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
distro: '{distro}'
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-dev-02
concurrent: false
display-name: 'TCWG Bisect tcwg_bmk_{hw}/gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -554,7 +566,7 @@
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
rr_project: 'tcwg_bmk_ci_gnu_eabi'
- ci_project_config: 'tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
-# checksum: 479252d06d3ef9a6be6cc2e8e461e460
+# checksum: 12c2166685e97438684af2c979611c25
diff --git a/tcwg_bmk_ci_llvm.yaml b/tcwg_bmk_ci_llvm.yaml
index 78d4e4a68..34335f310 100644
--- a/tcwg_bmk_ci_llvm.yaml
+++ b/tcwg_bmk_ci_llvm.yaml
@@ -7,83 +7,90 @@
glibc_url: git://sourceware.org/git/glibc.git
llvm_url: https://github.com/llvm/llvm-project.git
hw:
+ - apm:
+ target: arm
+ - apm:
+ target: aarch64
- tk1:
target: arm
- node: tcwg-x86_64-build_bmk_tk1
- tx1:
target: aarch64
- node: tcwg-x86_64-build_bmk_tx1
toolchain_name: llvm
components: binutils gcc glibc llvm
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- gcc_branch: refs/heads/master
- glibc_branch: refs/heads/master
- llvm_branch: refs/heads/main
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
- gcc_branch: refs/heads/releases/gcc-10
- glibc_branch: refs/heads/release/2.32/master
- llvm_branch: refs/heads/release/12.x
- distro: lts_1
bmk:
- spec2k6
cflags:
- - Os:
- cron_schedule: H H H/7 * *
- - Os_LTO:
- cron_schedule: H H H/7 * *
- - Oz:
- cron_schedule: H H H/7 * *
- - Oz_LTO:
- cron_schedule: H H H/7 * *
- - O2:
- cron_schedule: H H H/7 * *
- - O2_LTO:
- cron_schedule: H H H/7 * *
- - O3:
- cron_schedule: H H H/7 * *
- - O3_LTO:
- cron_schedule: H H H/7 * *
- - Os-vs-Os_LTO:
- cron_schedule: H H H * *
- - O2-vs-O2_LTO:
- cron_schedule: H H H * *
- - O3-vs-O3_LTO:
- cron_schedule: H H H * *
- - O3_VECT:
- cron_schedule: H H H/7 * *
- - O3_LTO_VECT:
- cron_schedule: H H H/7 * *
+ - Os
+ - Os_LTO
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Oz
+ - Oz_LTO
jobs:
- - 'tcwg_bmk_ci_llvm-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
- - 'tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_llvm-master'
+ - 'tcwg_bmk_ci_llvm-release'
exclude:
- - toolchain_name: gnu
+ - hw: apm
+ cflags: O2
+ - hw: apm
+ cflags: O2_LTO
+ - hw: apm
+ cflags: O3
+ - hw: apm
+ cflags: O3_LTO
+ - hw: apm
+ cflags: O3_VECT
+ - hw: apm
+ cflags: O3_LTO_VECT
+ - hw: tk1
+ cflags: Os
+ - hw: tk1
+ cflags: Os_LTO
+ - hw: tk1
cflags: Oz
- - toolchain_name: gnu
+ - hw: tk1
cflags: Oz_LTO
- - toolchain_name: gnu_eabi
+ - hw: tx1
+ cflags: Os
+ - hw: tx1
+ cflags: Os_LTO
+ - hw: tx1
cflags: Oz
- - toolchain_name: gnu_eabi
+ - hw: tx1
cflags: Oz_LTO
- - toolchain_name: llvm
- cflags: Os-vs-Os_LTO
- - toolchain_name: llvm
- cflags: O2-vs-O2_LTO
- - toolchain_name: llvm
- cflags: O3-vs-O3_LTO
- - toolchain_name: llvm
- cflags: O3_VECT
- - toolchain_name: llvm
- cflags: O3_LTO_VECT
+
+- job-group:
+ name: tcwg_bmk_ci_llvm-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ llvm_branch: refs/heads/main
+ distro: lts
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk_ci_llvm-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+
+- job-group:
+ name: tcwg_bmk_ci_llvm-release
+ toolchain_ver: release
+ binutils_branch: refs/heads/binutils-2_36-branch
+ gcc_branch: refs/heads/releases/gcc-10
+ glibc_branch: refs/heads/release/2.32/master
+ llvm_branch: refs/heads/release/12.x
+ distro: lts_1
+ cron_schedule: 'H H H/7 * *'
+ jobs:
+ - 'tcwg_bmk_ci_llvm-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
- view:
name: tcwg_bmk_ci_llvm
view-type: list
- regex: 'tcwg_bmk_ci_llvm-.*'
+ regex: 'tcwg_bmk_ci_llvm-build-.*'
#BEGIN: tcwg/round-robin.yaml.inc
# -*- mode: Yaml -*-
@@ -95,9 +102,10 @@
name: default-properties
properties:
- authorization:
- tcwg-benchmark:
+ anonymous:
- job-read
- job-extended-read
+ linaro:
- job-build
- job-cancel
- build-discarder:
@@ -143,19 +151,19 @@
- string:
name: ci_project
default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
+ description: "CI project ID; used as namespace for git branches and selects benchmarking hardware"
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -173,33 +181,25 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: llvm
- url: '{llvm_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -278,26 +278,38 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- echo "bmk_branch=$bmk_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -313,20 +325,31 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -348,17 +371,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -368,21 +388,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -399,13 +414,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
+ name: bad_git
default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -421,8 +432,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -438,7 +449,7 @@
build_name="#$BUILD_NUMBER-$current_project"
echo "$build_name" > artifacts/jenkins/build-name
# artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "christophe.lyon@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
./jenkins-scripts/docker-run.sh \
@@ -449,35 +460,43 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
--bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -493,21 +512,16 @@
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- "tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}"
queue-scanning: 'ALL'
parameters:
- build-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_llvm_{hw}'
ci_config: 'llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- glibc_url: '{glibc_url}'
- llvm_url: '{llvm_url}'
- default_branch: default
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build_bmk
concurrent: false
display-name: 'TCWG Build tcwg_bmk_{hw}/llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -532,7 +546,7 @@
build_script: 'tcwg_bmk-build.sh'
components: '{components}'
rr_project: 'tcwg_bmk_ci_llvm'
- ci_project_config: 'tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- build-publishers
@@ -549,16 +563,15 @@
# same regression tends to appear in multiple configurations,
# run bisections for all configurations in-order.
blocking-jobs:
- - "tcwg_bmk_dev_.*-tcwg_bmk_{hw}"
- - "tcwg_bmk_ci_.*-bisect-tcwg_bmk_{hw}-.*"
+ - "tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-.*"
queue-scanning: 'BUILDABLE'
parameters:
- bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
+ ci_project: 'tcwg_bmk_llvm_{hw}'
ci_config: 'llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
distro: '{distro}'
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build_bmk
concurrent: false
display-name: 'TCWG Bisect tcwg_bmk_{hw}/llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
@@ -572,7 +585,7 @@
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
rr_project: 'tcwg_bmk_ci_llvm'
- ci_project_config: 'tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ job_suffix: '-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
-# checksum: 3b6c3c28b3bcd1bdf93a4de897e4e5de
+# checksum: 8d2d37a2710f00924cc4734ebdbac186
diff --git a/tcwg_bmk_dev.yaml.in b/tcwg_bmk_dev.yaml.in
index d46900e85..781f237c3 100644
--- a/tcwg_bmk_dev.yaml.in
+++ b/tcwg_bmk_dev.yaml.in
@@ -2,57 +2,39 @@
- project:
name: tcwg_bmk_dev_#{TOOLCHAIN}
- hw:
- - tk1:
- node: tcwg-x86_64-build_bmk_tk1
- - tx1:
- node: tcwg-x86_64-build_bmk_tx1
-#if TOOLCHAIN_gnu
- components: binutils gcc glibc
-#elif TOOLCHAIN_llvm
- components: binutils gcc glibc llvm
-#endif
jobs:
- - 'tcwg_bmk_dev_#{TOOLCHAIN}-build-tcwg_bmk_{hw}'
- - 'tcwg_bmk_dev_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}'
+ - 'tcwg_bmk_dev_#{TOOLCHAIN}-build'
+ - 'tcwg_bmk_dev_#{TOOLCHAIN}-bisect'
- view:
name: tcwg_bmk_dev_#{TOOLCHAIN}
view-type: list
job-name:
- - tcwg_bmk_dev_#{TOOLCHAIN}-build-tcwg_bmk_tk1
- - tcwg_bmk_dev_#{TOOLCHAIN}-bisect-tcwg_bmk_tk1
- - tcwg_bmk_dev_#{TOOLCHAIN}-build-tcwg_bmk_tx1
- - tcwg_bmk_dev_#{TOOLCHAIN}-bisect-tcwg_bmk_tx1
- - tcwg-benchmark-tk1
- - tcwg-benchmark-tx1
+ - tcwg_bmk_dev_#{TOOLCHAIN}-build
+ - tcwg_bmk_dev_#{TOOLCHAIN}-bisect
+ - tcwg-benchmark
+ - tcwg-benchmark-backend
- job-template:
- name: tcwg_bmk_dev_#{TOOLCHAIN}-build-tcwg_bmk_{hw}
+ name: tcwg_bmk_dev_#{TOOLCHAIN}-build
project-type: freestyle
defaults: global
properties:
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_dev_.*-bisect-tcwg_bmk_{hw}"
+ - "tcwg_bmk_dev_#{TOOLCHAIN}-bisect"
queue-scanning: 'ALL'
parameters:
- build-parameters:
- ci_project: tcwg_bmk-YOUR_ID
- ci_config: #{TOOLCHAIN}-release-aarch64-spec2k6-O2
- binutils_url: https://git.linaro.org/toolchain/ci/binutils-gdb.git
- gcc_url: https://git.linaro.org/toolchain/ci/gcc.git
- glibc_url: https://git.linaro.org/toolchain/ci/glibc.git
-#if TOOLCHAIN_llvm
- llvm_url: https://git.linaro.org/toolchain/ci/llvm-project.git
-#endif
- default_branch: baseline
+ ci_project: 'tcwg_bmk_NAME_#{TOOLCHAIN}_HW'
+ ci_config: #{TOOLCHAIN}-master-aarch64-spec2k6-O2
+ default_git: baseline
distro: lts_1
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/#{TOOLCHAIN}'
+ display-name: 'TCWG Build tcwg_bmk_dev_#{TOOLCHAIN}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
scm:
- build-scms
@@ -62,27 +44,27 @@
builders:
- run-build:
build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
+ components: #{COMPONENTS}
rr_project: 'tcwg_bmk_dev_#{TOOLCHAIN}'
- ci_project_config: 'tcwg_bmk_{hw}'
+ job_suffix: ''
publishers:
- build-publishers
- job-template:
- name: tcwg_bmk_dev_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}
+ name: tcwg_bmk_dev_#{TOOLCHAIN}-bisect
project-type: freestyle
defaults: global
properties:
- default-properties
parameters:
- bisect-parameters:
- ci_project: 'tcwg_bmk-YOUR_ID'
- ci_config: #{TOOLCHAIN}-release-aarch64-spec2k6-O2
+ ci_project: 'tcwg_bmk_NAME_#{TOOLCHAIN}_HW'
+ ci_config: #{TOOLCHAIN}-master-aarch64-spec2k6-O2
distro: lts_1
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/#{TOOLCHAIN}'
+ display-name: 'TCWG Bisect tcwg_bmk_dev_#{TOOLCHAIN}'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
@@ -93,8 +75,8 @@
builders:
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
+ components: #{COMPONENTS}
rr_project: 'tcwg_bmk_dev_#{TOOLCHAIN}'
- ci_project_config: 'tcwg_bmk_{hw}'
+ job_suffix: ''
publishers:
- bisect-publishers
diff --git a/tcwg_bmk_dev_gnu.yaml b/tcwg_bmk_dev_gnu.yaml
index e87338226..3c11cfb13 100644
--- a/tcwg_bmk_dev_gnu.yaml
+++ b/tcwg_bmk_dev_gnu.yaml
@@ -9,9 +9,10 @@
name: default-properties
properties:
- authorization:
- tcwg-benchmark:
+ anonymous:
- job-read
- job-extended-read
+ linaro:
- job-build
- job-cancel
- build-discarder:
@@ -57,19 +58,19 @@
- string:
name: ci_project
default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
+ description: "CI project ID; used as namespace for git branches and selects benchmarking hardware"
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ default: first.last@linaro.org
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -87,29 +88,22 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -168,26 +162,38 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- echo "bmk_branch=$bmk_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -203,16 +209,27 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER-$ci_project/$ci_config"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" != x"baseline" ]; then
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -234,17 +251,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -254,21 +268,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -285,13 +294,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
+ name: bad_git
default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -320,7 +325,7 @@
build_name="#$BUILD_NUMBER-$ci_project/$ci_config-$current_project"
echo "$build_name" > artifacts/jenkins/build-name
# artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "christophe.lyon@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
./jenkins-scripts/docker-run.sh \
@@ -331,8 +336,7 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
-- \
@@ -340,25 +344,34 @@
==rr[ci_config] $ci_config \
$extra_build_params \
--bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -368,50 +381,39 @@
- project:
name: tcwg_bmk_dev_gnu
- hw:
- - tk1:
- node: tcwg-x86_64-build_bmk_tk1
- - tx1:
- node: tcwg-x86_64-build_bmk_tx1
- components: binutils gcc glibc
jobs:
- - 'tcwg_bmk_dev_gnu-build-tcwg_bmk_{hw}'
- - 'tcwg_bmk_dev_gnu-bisect-tcwg_bmk_{hw}'
+ - 'tcwg_bmk_dev_gnu-build'
+ - 'tcwg_bmk_dev_gnu-bisect'
- view:
name: tcwg_bmk_dev_gnu
view-type: list
job-name:
- - tcwg_bmk_dev_gnu-build-tcwg_bmk_tk1
- - tcwg_bmk_dev_gnu-bisect-tcwg_bmk_tk1
- - tcwg_bmk_dev_gnu-build-tcwg_bmk_tx1
- - tcwg_bmk_dev_gnu-bisect-tcwg_bmk_tx1
- - tcwg-benchmark-tk1
- - tcwg-benchmark-tx1
+ - tcwg_bmk_dev_gnu-build
+ - tcwg_bmk_dev_gnu-bisect
+ - tcwg-benchmark
+ - tcwg-benchmark-backend
- job-template:
- name: tcwg_bmk_dev_gnu-build-tcwg_bmk_{hw}
+ name: tcwg_bmk_dev_gnu-build
project-type: freestyle
defaults: global
properties:
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_dev_.*-bisect-tcwg_bmk_{hw}"
+ - "tcwg_bmk_dev_gnu-bisect"
queue-scanning: 'ALL'
parameters:
- build-parameters:
- ci_project: tcwg_bmk-YOUR_ID
- ci_config: gnu-release-aarch64-spec2k6-O2
- binutils_url: https://git.linaro.org/toolchain/ci/binutils-gdb.git
- gcc_url: https://git.linaro.org/toolchain/ci/gcc.git
- glibc_url: https://git.linaro.org/toolchain/ci/glibc.git
- default_branch: baseline
+ ci_project: 'tcwg_bmk_NAME_gnu_HW'
+ ci_config: gnu-master-aarch64-spec2k6-O2
+ default_git: baseline
distro: lts_1
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/gnu'
+ display-name: 'TCWG Build tcwg_bmk_dev_gnu'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
scm:
- build-scms
@@ -421,27 +423,27 @@
builders:
- run-build:
build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
+ components: binutils gcc glibc
rr_project: 'tcwg_bmk_dev_gnu'
- ci_project_config: 'tcwg_bmk_{hw}'
+ job_suffix: ''
publishers:
- build-publishers
- job-template:
- name: tcwg_bmk_dev_gnu-bisect-tcwg_bmk_{hw}
+ name: tcwg_bmk_dev_gnu-bisect
project-type: freestyle
defaults: global
properties:
- default-properties
parameters:
- bisect-parameters:
- ci_project: 'tcwg_bmk-YOUR_ID'
- ci_config: gnu-release-aarch64-spec2k6-O2
+ ci_project: 'tcwg_bmk_NAME_gnu_HW'
+ ci_config: gnu-master-aarch64-spec2k6-O2
distro: lts_1
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/gnu'
+ display-name: 'TCWG Bisect tcwg_bmk_dev_gnu'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
@@ -452,9 +454,9 @@
builders:
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
+ components: binutils gcc glibc
rr_project: 'tcwg_bmk_dev_gnu'
- ci_project_config: 'tcwg_bmk_{hw}'
+ job_suffix: ''
publishers:
- bisect-publishers
-# checksum: 71aa5312c5bb6632b6e82f940a7573d5
+# checksum: ced3abe510ad78a103cb1ce8c88d90d7
diff --git a/tcwg_bmk_dev_llvm.yaml b/tcwg_bmk_dev_llvm.yaml
index b4fd9223b..7ca8672e0 100644
--- a/tcwg_bmk_dev_llvm.yaml
+++ b/tcwg_bmk_dev_llvm.yaml
@@ -9,9 +9,10 @@
name: default-properties
properties:
- authorization:
- tcwg-benchmark:
+ anonymous:
- job-read
- job-extended-read
+ linaro:
- job-build
- job-cancel
- build-discarder:
@@ -57,19 +58,19 @@
- string:
name: ci_project
default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
+ description: "CI project ID; used as namespace for git branches and selects benchmarking hardware"
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ default: first.last@linaro.org
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -87,33 +88,25 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: llvm
- url: '{llvm_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -172,26 +165,38 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- echo "bmk_branch=$bmk_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -207,16 +212,27 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER-$ci_project/$ci_config"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" != x"baseline" ]; then
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -238,17 +254,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -258,21 +271,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -289,13 +297,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
+ name: bad_git
default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -324,7 +328,7 @@
build_name="#$BUILD_NUMBER-$ci_project/$ci_config-$current_project"
echo "$build_name" > artifacts/jenkins/build-name
# artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "christophe.lyon@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
./jenkins-scripts/docker-run.sh \
@@ -335,8 +339,7 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
-- \
@@ -344,25 +347,34 @@
==rr[ci_config] $ci_config \
$extra_build_params \
--bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -372,51 +384,39 @@
- project:
name: tcwg_bmk_dev_llvm
- hw:
- - tk1:
- node: tcwg-x86_64-build_bmk_tk1
- - tx1:
- node: tcwg-x86_64-build_bmk_tx1
- components: binutils gcc glibc llvm
jobs:
- - 'tcwg_bmk_dev_llvm-build-tcwg_bmk_{hw}'
- - 'tcwg_bmk_dev_llvm-bisect-tcwg_bmk_{hw}'
+ - 'tcwg_bmk_dev_llvm-build'
+ - 'tcwg_bmk_dev_llvm-bisect'
- view:
name: tcwg_bmk_dev_llvm
view-type: list
job-name:
- - tcwg_bmk_dev_llvm-build-tcwg_bmk_tk1
- - tcwg_bmk_dev_llvm-bisect-tcwg_bmk_tk1
- - tcwg_bmk_dev_llvm-build-tcwg_bmk_tx1
- - tcwg_bmk_dev_llvm-bisect-tcwg_bmk_tx1
- - tcwg-benchmark-tk1
- - tcwg-benchmark-tx1
+ - tcwg_bmk_dev_llvm-build
+ - tcwg_bmk_dev_llvm-bisect
+ - tcwg-benchmark
+ - tcwg-benchmark-backend
- job-template:
- name: tcwg_bmk_dev_llvm-build-tcwg_bmk_{hw}
+ name: tcwg_bmk_dev_llvm-build
project-type: freestyle
defaults: global
properties:
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_dev_.*-bisect-tcwg_bmk_{hw}"
+ - "tcwg_bmk_dev_llvm-bisect"
queue-scanning: 'ALL'
parameters:
- build-parameters:
- ci_project: tcwg_bmk-YOUR_ID
- ci_config: llvm-release-aarch64-spec2k6-O2
- binutils_url: https://git.linaro.org/toolchain/ci/binutils-gdb.git
- gcc_url: https://git.linaro.org/toolchain/ci/gcc.git
- glibc_url: https://git.linaro.org/toolchain/ci/glibc.git
- llvm_url: https://git.linaro.org/toolchain/ci/llvm-project.git
- default_branch: baseline
+ ci_project: 'tcwg_bmk_NAME_llvm_HW'
+ ci_config: llvm-master-aarch64-spec2k6-O2
+ default_git: baseline
distro: lts_1
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/llvm'
+ display-name: 'TCWG Build tcwg_bmk_dev_llvm'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
scm:
- build-scms
@@ -426,27 +426,27 @@
builders:
- run-build:
build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
+ components: binutils gcc glibc llvm
rr_project: 'tcwg_bmk_dev_llvm'
- ci_project_config: 'tcwg_bmk_{hw}'
+ job_suffix: ''
publishers:
- build-publishers
- job-template:
- name: tcwg_bmk_dev_llvm-bisect-tcwg_bmk_{hw}
+ name: tcwg_bmk_dev_llvm-bisect
project-type: freestyle
defaults: global
properties:
- default-properties
parameters:
- bisect-parameters:
- ci_project: 'tcwg_bmk-YOUR_ID'
- ci_config: llvm-release-aarch64-spec2k6-O2
+ ci_project: 'tcwg_bmk_NAME_llvm_HW'
+ ci_config: llvm-master-aarch64-spec2k6-O2
distro: lts_1
disabled: false
- node: '{node}'
+ node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/llvm'
+ display-name: 'TCWG Bisect tcwg_bmk_dev_llvm'
workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
@@ -457,9 +457,9 @@
builders:
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
+ components: binutils gcc glibc llvm
rr_project: 'tcwg_bmk_dev_llvm'
- ci_project_config: 'tcwg_bmk_{hw}'
+ job_suffix: ''
publishers:
- bisect-publishers
-# checksum: cf3128bcfe71ea7366ce5088daa0e9bf
+# checksum: ac61766b5bc54a2160d7e7747565aa6f
diff --git a/tcwg_cross.yaml b/tcwg_cross.yaml
index 864205779..8838d0cdb 100644
--- a/tcwg_cross.yaml
+++ b/tcwg_cross.yaml
@@ -8,19 +8,6 @@
gcc_url: https://github.com/gcc-mirror/gcc.git
glibc_url: git://sourceware.org/git/glibc.git
qemu_url: https://git.qemu.org/git/qemu.git
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- gcc_branch: refs/heads/master
- glibc_branch: refs/heads/master
- qemu_branch: refs/heads/master
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
- gcc_branch: refs/heads/releases/gcc-10
- glibc_branch: refs/heads/release/2.32/master
- qemu_branch: refs/tags/v5.2.0
- distro: lts_1
target:
- aarch64
- arm
@@ -28,8 +15,33 @@
disabled: false
type_of_test:
- build_cross
- - check_cross:
- disabled: true
+ - check_cross
+ jobs:
+ - tcwg_cross-master
+ - tcwg_cross-release
+
+- job-group:
+ name: tcwg_cross-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ qemu_branch: refs/heads/master
+ distro: lts
+ cron: 'H H/12 * * *'
+ jobs:
+ - 'tcwg_cross-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - 'tcwg_cross-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+
+- job-group:
+ name: tcwg_cross-release
+ toolchain_ver: release
+ binutils_branch: refs/heads/binutils-2_36-branch
+ gcc_branch: refs/heads/releases/gcc-11
+ glibc_branch: refs/heads/release/2.32/master
+ qemu_branch: refs/heads/master
+ distro: lts_1
+ cron: 'H H H/2 * *'
jobs:
- 'tcwg_cross-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- 'tcwg_cross-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
@@ -87,15 +99,15 @@
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -109,33 +121,25 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -213,25 +217,37 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -247,20 +263,31 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -280,17 +307,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -300,21 +324,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -331,13 +350,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
+ name: bad_git
default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -353,8 +368,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -379,34 +394,42 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -428,11 +451,7 @@
- build-parameters:
ci_project: '{ci_project}'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- glibc_url: '{glibc_url}'
- qemu_url: '{qemu_url}'
- default_branch: 'default'
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: '{disabled}'
node: '{node} && tcwg-build'
@@ -451,7 +470,7 @@
qemu_branch: '{qemu_branch}'
triggers:
- pollscm:
- cron: 'H H H/2 * *'
+ cron: '{cron}'
wrappers:
- build-wrappers:
timeout: 1000
@@ -460,16 +479,11 @@
build_script: 'tcwg_gnu-build.sh'
components: 'binutils gcc glibc qemu'
rr_project: 'tcwg_cross'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
target: '{target}'
type_of_test: '{type_of_test}'
publishers:
- build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
- job-template:
name: tcwg_cross-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
@@ -505,7 +519,7 @@
- run-bisect:
build_script: 'tcwg_gnu-build.sh'
rr_project: 'tcwg_cross'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
publishers:
- bisect-publishers
-# checksum: 96e2941c067c01576a4273aaa6d02c59
+# checksum: c20249042a487b09dac0d80dc7bdd96e
diff --git a/tcwg_gcc.yaml b/tcwg_gcc.yaml
index bd401cd0c..6ccdc6398 100644
--- a/tcwg_gcc.yaml
+++ b/tcwg_gcc.yaml
@@ -4,23 +4,19 @@
name: tcwg_gcc
toolchain_name: gnu
ci_project: tcwg_gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
gcc_url: https://github.com/gcc-mirror/gcc.git
- toolchain_ver:
- - master:
- gcc_branch: refs/heads/master
- distro: lts
- - release:
- gcc_branch: refs/heads/releases/gcc-10
- distro: lts_1
target:
- aarch64:
- node: tcwg-armv8_64
+ node: tcwg-build && tcwg-armv8_64
docker_arch: arm64
- arm:
- node: tcwg-armv8_32
+ node: tcwg-build && tcwg-armv8_32
docker_arch: armhf
disabled: false
type_of_test:
+ - bootstrap
+ - bootstrap_lto
- bootstrap_O1
- bootstrap_O3
- bootstrap_debug
@@ -28,10 +24,31 @@
- bootstrap_profiled_lto
- bootstrap_profiled_lto_lean
- bootstrap_ubsan
- - check_bootstrap:
- disabled: true
- - check_bootstrap_lto:
- disabled: true
+ - check_gcc
+ - check_bootstrap
+ - check_bootstrap_lto
+ jobs:
+ - tcwg_gcc-master
+ - tcwg_gcc-release
+
+- job-group:
+ name: tcwg_gcc-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ distro: lts
+ cron: 'H H/12 * * *'
+ jobs:
+ - 'tcwg_gcc-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - 'tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+
+- job-group:
+ name: tcwg_gcc-release
+ toolchain_ver: release
+ binutils_branch: refs/heads/binutils-2_36-branch
+ gcc_branch: refs/heads/releases/gcc-11
+ distro: lts_1
+ cron: 'H H H/2 * *'
jobs:
- 'tcwg_gcc-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- 'tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
@@ -89,15 +106,15 @@
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -111,21 +128,19 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -166,6 +181,11 @@
scm:
- jenkins-scripts
- component-scm:
+ component: binutils
+ url: '{binutils_url}'
+ branch: '{binutils_branch}'
+ reference: binutils-gdb.git
+ - component-scm:
component: gcc
url: '{gcc_url}'
branch: '{gcc_branch}'
@@ -188,25 +208,37 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -221,37 +253,32 @@
mkdir -p artifacts/jenkins
dryruncmd=""
- # Don't run these known-bad configurations.
- case {target}-{type_of_test} in
- aarch64-bootstrap_profiled|\
- aarch64-bootstrap_profiled_lto|\
- aarch64-bootstrap_profiled_lto_lean|\
- aarch64-check_bootstrap_lto|\
- arm-bootstrap_profiled|\
- arm-bootstrap_profiled_lto*|\
- arm-check_bootstrap_lto)
- echo "Known bad configuration, not running."
- echo "Would have run:"
- # So we know it wasn't an infrastructure failure
- touch artifacts/failures
- dryruncmd="echo"
- ;;
- esac
+
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -273,17 +300,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -293,21 +317,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -324,13 +343,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
+ name: bad_git
default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -346,8 +361,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -375,34 +390,42 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -424,8 +447,7 @@
- build-parameters:
ci_project: '{ci_project}'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- gcc_url: '{gcc_url}'
- default_branch: 'default'
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: '{disabled}'
node: '{node} && tcwg-build'
@@ -434,30 +456,27 @@
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
gcc_url: '{gcc_url}'
gcc_branch: '{gcc_branch}'
triggers:
- pollscm:
- cron: 'H H H/2 * *'
+ cron: '{cron}'
wrappers:
- build-wrappers:
timeout: 1000
builders:
- run-build:
build_script: 'tcwg_gnu-build.sh'
- components: 'gcc'
+ components: 'binutils gcc'
rr_project: 'tcwg_gcc'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
target: '{target}'
type_of_test: '{type_of_test}'
publishers:
- build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
- job-template:
name: tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
@@ -493,8 +512,8 @@
- run-bisect:
build_script: 'tcwg_gnu-build.sh'
rr_project: 'tcwg_gcc'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
publishers:
- bisect-publishers
-# checksum: f33116f75a5ed5891be3ca5deb2018cb
+# checksum: 8e678e704cd3ff905e4665828b136a13
diff --git a/tcwg_gnu.yaml.in b/tcwg_gnu.yaml.in
index 61fcecac0..ecad2400b 100644
--- a/tcwg_gnu.yaml.in
+++ b/tcwg_gnu.yaml.in
@@ -19,35 +19,6 @@
#if COMPONENTS_qemu
qemu_url: https://git.qemu.org/git/qemu.git
#endif
- toolchain_ver:
- - master:
-#if COMPONENTS_binutils
- binutils_branch: refs/heads/master
-#endif
-#if COMPONENTS_gcc
- gcc_branch: refs/heads/master
-#endif
-#if COMPONENTS_glibc
- glibc_branch: refs/heads/master
-#endif
-#if COMPONENTS_qemu
- qemu_branch: refs/heads/master
-#endif
- distro: lts
- - release:
-#if COMPONENTS_binutils
- binutils_branch: refs/heads/binutils-2_36-branch
-#endif
-#if COMPONENTS_gcc
- gcc_branch: refs/heads/releases/gcc-10
-#endif
-#if COMPONENTS_glibc
- glibc_branch: refs/heads/release/2.32/master
-#endif
-#if COMPONENTS_qemu
- qemu_branch: refs/tags/v5.2.0
-#endif
- distro: lts_1
target:
#if RR_tcwg_cross
- aarch64
@@ -55,10 +26,10 @@
node: tcwg-x86_64-build
#else
- aarch64:
- node: tcwg-armv8_64
+ node: tcwg-build && tcwg-armv8_64
docker_arch: arm64
- arm:
- node: tcwg-armv8_32
+ node: tcwg-build && tcwg-armv8_32
docker_arch: armhf
#endif
disabled: false
@@ -67,9 +38,10 @@
- check_binutils
#elif RR_tcwg_cross
- build_cross
- - check_cross:
- disabled: true
+ - check_cross
#elif RR_tcwg_gcc
+ - bootstrap
+ - bootstrap_lto
- bootstrap_O1
- bootstrap_O3
- bootstrap_debug
@@ -77,11 +49,52 @@
- bootstrap_profiled_lto
- bootstrap_profiled_lto_lean
- bootstrap_ubsan
- - check_bootstrap:
- disabled: true
- - check_bootstrap_lto:
- disabled: true
+ - check_gcc
+ - check_bootstrap
+ - check_bootstrap_lto
+#endif
+ jobs:
+ - #{RR}-master
+ - #{RR}-release
+
+- job-group:
+ name: #{RR}-master
+ toolchain_ver: master
+#if COMPONENTS_binutils
+ binutils_branch: refs/heads/master
+#endif
+#if COMPONENTS_gcc
+ gcc_branch: refs/heads/master
+#endif
+#if COMPONENTS_glibc
+ glibc_branch: refs/heads/master
+#endif
+#if COMPONENTS_qemu
+ qemu_branch: refs/heads/master
+#endif
+ distro: lts
+ cron: 'H H/12 * * *'
+ jobs:
+ - '#{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - '#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+
+- job-group:
+ name: #{RR}-release
+ toolchain_ver: release
+#if COMPONENTS_binutils
+ binutils_branch: refs/heads/binutils-2_36-branch
+#endif
+#if COMPONENTS_gcc
+ gcc_branch: refs/heads/releases/gcc-11
+#endif
+#if COMPONENTS_glibc
+ glibc_branch: refs/heads/release/2.32/master
+#endif
+#if COMPONENTS_qemu
+ qemu_branch: refs/heads/master
#endif
+ distro: lts_1
+ cron: 'H H H/2 * *'
jobs:
- '#{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- '#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
@@ -107,19 +120,7 @@
- build-parameters:
ci_project: '{ci_project}'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
-#if COMPONENTS_binutils
- binutils_url: '{binutils_url}'
-#endif
-#if COMPONENTS_gcc
- gcc_url: '{gcc_url}'
-#endif
-#if COMPONENTS_glibc
- glibc_url: '{glibc_url}'
-#endif
-#if COMPONENTS_qemu
- qemu_url: '{qemu_url}'
-#endif
- default_branch: 'default'
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: '{disabled}'
node: '{node} && tcwg-build'
@@ -146,7 +147,7 @@
#endif
triggers:
- pollscm:
- cron: 'H H H/2 * *'
+ cron: '{cron}'
wrappers:
- build-wrappers:
timeout: 1000
@@ -155,7 +156,7 @@
build_script: 'tcwg_gnu-build.sh'
components: '#{COMPONENTS}'
rr_project: '#{RR}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
#if RR_tcwg_binutils || RR_tcwg_gcc
docker_arch: '{docker_arch}'
#endif
@@ -163,11 +164,6 @@
type_of_test: '{type_of_test}'
publishers:
- build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
- job-template:
name: #{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
@@ -203,7 +199,7 @@
- run-bisect:
build_script: 'tcwg_gnu-build.sh'
rr_project: '#{RR}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
#if RR_tcwg_binutils || RR_tcwg_gcc
docker_arch: '{docker_arch}'
#endif
diff --git a/tcwg_gnu/tcwg_gcc.def b/tcwg_gnu/tcwg_gcc.def
index d158409c4..3fd184ee5 100644
--- a/tcwg_gnu/tcwg_gcc.def
+++ b/tcwg_gnu/tcwg_gcc.def
@@ -1,3 +1,4 @@
+-v COMPONENTS=binutils
-v COMPONENTS=gcc
-v PURPOSE=ci
-v RR=tcwg_gcc
diff --git a/tcwg_kernel-gnu.yaml b/tcwg_kernel-gnu.yaml
index 264961afd..c1c79b99b 100644
--- a/tcwg_kernel-gnu.yaml
+++ b/tcwg_kernel-gnu.yaml
@@ -14,8 +14,8 @@
qemu_branch: refs/heads/master
distro: lts
- release:
- binutils_branch: refs/heads/binutils-2_36-branch
- gcc_branch: refs/heads/releases/gcc-10
+ binutils_branch: refs/heads/binutils-2_37-branch
+ gcc_branch: refs/heads/releases/gcc-11
qemu_branch: refs/heads/master
distro: lts_1
target:
@@ -96,15 +96,15 @@
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -118,33 +118,25 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: linux
- url: '{linux_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -222,25 +214,37 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -256,20 +260,31 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -289,17 +304,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -309,21 +321,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -340,13 +347,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
+ name: bad_git
default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -362,8 +365,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -389,34 +392,42 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -438,11 +449,7 @@
- build-parameters:
ci_project: 'tcwg_kernel'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- qemu_url: '{qemu_url}'
- linux_url: '{linux_url}'
- default_branch: 'default'
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: false
node: tcwg-x86_64-build
@@ -470,7 +477,7 @@
build_script: 'tcwg_kernel-build.sh'
components: '{components}'
rr_project: 'tcwg_kernel-gnu'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- build-publishers
@@ -508,7 +515,7 @@
- run-bisect:
build_script: 'tcwg_kernel-build.sh'
rr_project: 'tcwg_kernel-gnu'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- bisect-publishers
-# checksum: fde5c7375d108236b594b9adf1de0627
+# checksum: f26f0de4452b9357dfb2fe1682775973
diff --git a/tcwg_kernel-llvm.yaml b/tcwg_kernel-llvm.yaml
index 7bf12994a..71fd638d1 100644
--- a/tcwg_kernel-llvm.yaml
+++ b/tcwg_kernel-llvm.yaml
@@ -14,7 +14,7 @@
qemu_branch: refs/heads/master
distro: lts
- release:
- binutils_branch: refs/heads/binutils-2_36-branch
+ binutils_branch: refs/heads/binutils-2_37-branch
llvm_branch: refs/heads/release/12.x
qemu_branch: refs/heads/master
distro: lts_1
@@ -96,15 +96,15 @@
- string:
name: ci_config
default: '{ci_config}'
- description: "CI configuration ID"
+ description: "CI configuration ID; used as name of git branches and selects build flags"
- string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: mail_recipients
default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Comma-separated list of email recipients"
- string:
name: distro
default: '{distro}'
@@ -118,33 +118,25 @@
name: component-parameters
parameters:
- string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'baseline' or 'jenkins-scm'"
- parameter:
name: build-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: linux
- url: '{linux_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: llvm
- url: '{llvm_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- component-parameters:
component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
@@ -222,25 +214,37 @@
- build-name-setter:
name: 'artifacts/jenkins/build-name'
file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
- builder:
name: run-build
@@ -256,20 +260,31 @@
dryruncmd=""
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
build_name="#$BUILD_NUMBER"
branch_opt=""
# 1 to skip jenkins-scripts
i=1
for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
fi
i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
+ if [ x"$g" != x"baseline" ]; then
build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
fi
done
@@ -289,17 +304,14 @@
--BUILD_URL "$BUILD_URL" &
res=0 && wait $! || res=$?
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
-
if [ $res != 0 ]; then
- touch artifacts/failures
+ echo $res > artifacts/failed
fi
- if [ -e artifacts/results ]; then
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
if [ x"$update_baseline" != x"update" ]; then
@@ -309,21 +321,16 @@
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
unstable-return: 125
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
- publisher:
name: build-publishers
@@ -340,13 +347,9 @@
default: ""
description: "Project to bisect"
- string:
- name: bad_url
+ name: bad_git
default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
+ description: "Bad git_url#branch/SHA1"
- file:
name: jenkins-scripts/replay_log
description: "Replay part of bisect using provided bisect log"
@@ -362,8 +365,8 @@
timeout: '{timeout}'
- credentials-binding:
- text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
- builder:
name: run-bisect
@@ -389,34 +392,42 @@
%% artifacts/manifests/bisect.sh \
--BUILD_URL "$BUILD_URL" \
--current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
+ --bad_git "$bad_git" \
--replay_log "$(pwd)/jenkins-scripts/replay_log" \
--build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ --TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
-- \
==rr[ci_project] $ci_project \
==rr[ci_config] $ci_config \
$extra_build_params \
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
if [ x"$mail_recipients" != x"default" ]; then
echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
fi
+ unstable-return: 125
- trigger-followup-builds:
rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ job_suffix: '{job_suffix}'
- publisher:
name: bisect-publishers
publishers:
- build-publishers
- email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
recipients: |
- ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
content-type: text
body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ ${FILE,path="artifacts/jenkins/mail-body.txt"}
failure: true
success: true
aborted: true
@@ -438,11 +449,7 @@
- build-parameters:
ci_project: 'tcwg_kernel'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- binutils_url: '{binutils_url}'
- llvm_url: '{llvm_url}'
- qemu_url: '{qemu_url}'
- linux_url: '{linux_url}'
- default_branch: 'default'
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: false
node: tcwg-x86_64-build
@@ -470,7 +477,7 @@
build_script: 'tcwg_kernel-build.sh'
components: '{components}'
rr_project: 'tcwg_kernel-llvm'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- build-publishers
@@ -508,7 +515,7 @@
- run-bisect:
build_script: 'tcwg_kernel-build.sh'
rr_project: 'tcwg_kernel-llvm'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- bisect-publishers
-# checksum: 587ec73da3360cc9bbb81319887e82fb
+# checksum: d13a408b55ef94206bde1cb214ba6282
diff --git a/tcwg_kernel.yaml.in b/tcwg_kernel.yaml.in
index 50f8b8e99..0c7fd5e57 100644
--- a/tcwg_kernel.yaml.in
+++ b/tcwg_kernel.yaml.in
@@ -21,9 +21,9 @@
qemu_branch: refs/heads/master
distro: lts
- release:
- binutils_branch: refs/heads/binutils-2_36-branch
+ binutils_branch: refs/heads/binutils-2_37-branch
#if TOOLCHAIN_gnu
- gcc_branch: refs/heads/releases/gcc-10
+ gcc_branch: refs/heads/releases/gcc-11
#elif TOOLCHAIN_llvm
llvm_branch: refs/heads/release/12.x
#endif
@@ -75,15 +75,7 @@
- build-parameters:
ci_project: 'tcwg_kernel'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- binutils_url: '{binutils_url}'
-#if TOOLCHAIN_gnu
- gcc_url: '{gcc_url}'
-#elif TOOLCHAIN_llvm
- llvm_url: '{llvm_url}'
-#endif
- qemu_url: '{qemu_url}'
- linux_url: '{linux_url}'
- default_branch: 'default'
+ default_git: 'jenkins-scm'
distro: '{distro}'
disabled: false
node: tcwg-x86_64-build
@@ -116,7 +108,7 @@
build_script: 'tcwg_kernel-build.sh'
components: '{components}'
rr_project: 'tcwg_kernel-#{TOOLCHAIN}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- build-publishers
@@ -154,6 +146,6 @@
- run-bisect:
build_script: 'tcwg_kernel-build.sh'
rr_project: 'tcwg_kernel-#{TOOLCHAIN}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ job_suffix: '-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- bisect-publishers
diff --git a/tcwg_monitoring.yaml b/tcwg_monitoring.yaml
index 8891a8b58..8b52e3b3b 100644
--- a/tcwg_monitoring.yaml
+++ b/tcwg_monitoring.yaml
@@ -1,9 +1,9 @@
- project:
name: tcwg_monitoring
slave_name:
- - apm-01
- - apm-02
- - apm-03
+ - tcwg-apm-01
+ - tcwg-apm-02
+ - tcwg-apm-03
- tcwg-sq-01
- tcwg-sq-02
- tcwg-tk1-10
@@ -67,7 +67,7 @@
- default-properties
parameters:
- default-parameters
- disabled: false
+ disabled: true
node: tcwg-coordinator
concurrent: true
display-name: 'TCWG Monitoring {slave_name}'
diff --git a/trigger-hikey-stable.yaml b/trigger-hikey-stable.yaml
index 52abffbb6..ad4472904 100644
--- a/trigger-hikey-stable.yaml
+++ b/trigger-hikey-stable.yaml
@@ -5,85 +5,62 @@
properties:
- authorization:
anonymous:
+ - job-discover
+ android-internal:
- job-read
- job-extended-read
- linaro:
- job-build
- job-cancel
+ - run-delete
+
- build-discarder:
days-to-keep: 30
num-to-keep: 30
- disabled: true
- node: triggers
+ disabled: false
+ node: docker-bionic-android-lkft
display-name: 'TOBEDELETED: only used for test purpose'
- scm:
- - git:
- remotes:
- - android-common:
- url: https://android.googlesource.com/kernel/common
- branches:
- - android-common/android12-5.4
- - android-common/android12-5.10
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#android-common/}'
+ - credentials-binding:
+ - text:
+ credential-id: QA_REPORTS_TOKEN
+ variable: QA_REPORTS_TOKEN
builders:
- shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- KERNEL_BRANCH_REAL="${GIT_BRANCH#android-common/}"
- MAKE_KERNELVERSION="$(make kernelversion)"
- KERNEL_BRANCH="${KERNEL_BRANCH_REAL}-weekly"
- KERNEL_DESCRIBE="${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}-$(date +%Y%m%d%H%M)"
-
- echo "KERNEL_DESCRIBE=${KERNEL_DESCRIBE}" > "properties.txt"
- echo "KERNEL_BRANCH=${KERNEL_BRANCH}" >> "properties.txt"
-
- params="lkft-${KERNEL_BRANCH}.txt"
- echo "KERNEL_DESCRIBE=${KERNEL_DESCRIBE}" >> "${params}"
- echo "SRCREV_kernel=${GIT_COMMIT}" >> "${params}"
- echo "MAKE_KERNELVERSION=${MAKE_KERNELVERSION}" >> "${params}"
- echo "KERNEL_BRANCH=${KERNEL_BRANCH}" >> "${params}"
- cat "${params}"
-
- # generate files for the api callback build
- f_api_callbacks="all-kernels.txt"
- cp -fv $params ${f_api_callbacks}
- QA_BUILD_VERSION=${KERNEL_DESCRIBE}
- echo "QA_BUILD_VERSION=${QA_BUILD_VERSION}" >> ${f_api_callbacks}
- echo "CALLER_JOB_NAME=${JOB_NAME}" >> ${f_api_callbacks}
- echo "CALLER_BUILD_NUMBER=${BUILD_NUMBER}" >>${f_api_callbacks}
- echo "ANDROID_BUILD_CONFIG=lkft-gki-${KERNEL_BRANCH_REAL}" >>${f_api_callbacks}
- echo "TEST_OTHER_PLANS_OVERRIDE=VTS CTS BENCHMARKS" >>${f_api_callbacks}
+ #!/bin/bash -x
+ if ! python --version|grep 3; then
+ sudo rm -fv /usr/bin/python && sudo ln -s /usr/bin/python3 /usr/bin/python
+ fi
+ pip3 install --user --force-reinstall ruamel.yaml Jinja2 squad-client
+ pip3 install --user --force-reinstall ruamel.yaml Jinja2 squad-client
+ which squad-client || true
+ ls -l ${HOME}/.local/bin/squad-client
- case "X${KERNEL_BRANCH_REAL}" in
- "Xandroid12-5.4")
- build_configs_to_be_triggered="lkft-db845c-aosp-master-5.4-gki lkft-hikey960-aosp-master-5.4-gki"
- ;;
- "Xandroid12-5.10")
- build_configs_to_be_triggered="lkft-db845c-aosp-master-android12-5.10-gki lkft-hikey960-aosp-master-android12-5.10-gki"
- ;;
- "Xandroid11-5.4")
- build_configs_to_be_triggered="lkft-db845c-android11-android11-5.4-gki lkft-hikey960-android11-android11-5.4-gki"
- ;;
- "X*")
- build_configs=""
- ;;
- esac
- echo "ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED=${build_configs_to_be_triggered}" >>${f_api_callbacks}
+ echo "QA_REPORTS_TOKEN=${QA_REPORTS_TOKEN}" > test.txt
+ cat test.txt
+ cp -v test.txt "${WORKSPACE}/"
- cat "${params}"
- echo "=========================="
- cat "${f_api_callbacks}"
+ ${HOME}/.local/bin/squad-client \
+ --squad-host https://qa-reports.linaro.org --squad-token "${QA_REPORTS_TOKEN}" \
+ create-or-update-project \
+ --group android-lkft --slug 5.10-gki-android13-aosp-master-db845c-full-cts-vts --name 5.10-gki-android13-aosp-master-db845c-full-cts-vts \
+ --is-public --plugins linux_log_parser,tradefed \
+ --settings 'PLUGINS_TRADEFED_EXTRACT_AGGREGATED: True
+ CI_LAVA_INFRA_ERROR_MESSAGES:
+ - Connection closed
+ - lava_test_shell connection dropped.
+ - fastboot-flash-action timed out
+ - lava-test-shell timed out after 1200 seconds
+ - "tradefed - adb device lost"
+ - "Download finished ([0-9]+ bytes) but was not expected size ([0-9]+ bytes), check your networking."
+ - Unable to fetch git repository
+ - "/usr/local/lab-scripts/cbrxd_hub_control --usb_port"
+ - "Device NOT found!"
+ - /usr/local/lab-scripts/cbrxd_hub_control
+ - "lava-docker-test-shell timed out after [0-9]+ seconds"
+ - "lxc-apt-install timed out after [0-9]+ seconds"
+ - "/usr/local/lab-scripts/cbrxd_hub_control --usb_port"
+ - "wait-device-boardid timed out after [0-9]+ seconds"' \
+ --no-overwrite --data-retention 0
publishers:
- email:
diff --git a/trigger-linux-stable-rc.yaml b/trigger-linux-stable-rc.yaml
index 66a8ba0a5..fbb7f3cc1 100644
--- a/trigger-linux-stable-rc.yaml
+++ b/trigger-linux-stable-rc.yaml
@@ -34,6 +34,7 @@
- linux-stable-rc/linux-5.10.y
- linux-stable-rc/linux-5.11.y
- linux-stable-rc/linux-5.12.y
+ - linux-stable-rc/linux-5.13.y
name: linux
skip-tag: true
shallow-clone: false
@@ -92,3 +93,5 @@
property-file: lkft-linux-5.11.y.txt
- project: openembedded-lkft-linux-stable-rc-5.12
property-file: lkft-linux-5.12.y.txt
+ - project: openembedded-lkft-linux-stable-rc-5.13
+ property-file: lkft-linux-5.13.y.txt
diff --git a/trigger-lkft-android-common.yaml b/trigger-lkft-android-common.yaml
index 2f501867d..ff661103a 100644
--- a/trigger-lkft-android-common.yaml
+++ b/trigger-lkft-android-common.yaml
@@ -28,7 +28,9 @@
- android-common/android-mainline
- android-common/android13-5.10
- android-common/android12-5.10
+ - android-common/android12-5.10-lts
- android-common/android12-5.4
+ - android-common/android12-5.4-lts
- android-common/android11-5.4
- android-common/android11-5.4-lts
skip-tag: true
diff --git a/trigger-lt-qcom-linux-5.10.0.yaml b/trigger-lt-qcom-linux-5.10.0.yaml
deleted file mode 100644
index 7b191851f..000000000
--- a/trigger-lt-qcom-linux-5.10.0.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-- job:
- name: trigger-lt-qcom-linux-5.10.0
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm LT kernel 5.10 branch'
- scm:
- - git:
- url: https://git.linaro.org/git/landing-teams/working/qualcomm/kernel.git
- refspec: +refs/heads/release/*:refs/remotes/origin/release/*
- name: origin
- branches:
- - refs/heads/release/qcomlt-5.10
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
-
- # bring in stable and mainline tags
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
-
- echo KERNEL_VERSION=$(make kernelversion) > qcomlt_parameters
- echo KERNEL_DESCRIBE=$(git describe --always) >> qcomlt_parameters
- echo KERNEL_BRANCH=$(echo ${GIT_BRANCH} | sed 's|origin/||') >> qcomlt_parameters
- echo TARGET_REPO=linaro-overlay-sid >> qcomlt_parameters
- echo KDEB_CHANGELOG_DIST=unstable >> qcomlt_parameters
- cat qcomlt_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'lt-qcom-linux'
- condition: SUCCESS
- property-file: qcomlt_parameters
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-linux-5.12.0.yaml b/trigger-lt-qcom-linux-5.12.0.yaml
deleted file mode 100644
index 25c9d4e50..000000000
--- a/trigger-lt-qcom-linux-5.12.0.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-- job:
- name: trigger-lt-qcom-linux-5.12.0
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm LT kernel 5.12 branch'
- scm:
- - git:
- url: https://git.linaro.org/git/landing-teams/working/qualcomm/kernel.git
- refspec: +refs/heads/release/*:refs/remotes/origin/release/*
- name: origin
- branches:
- - refs/heads/release/rb5/qcomlt-5.12
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
-
- # bring in stable and mainline tags
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
-
- echo KERNEL_VERSION=$(make kernelversion) > qcomlt_parameters
- echo KERNEL_DESCRIBE=$(git describe --always) >> qcomlt_parameters
- echo KERNEL_BRANCH=$(echo ${GIT_BRANCH} | sed 's|origin/||') >> qcomlt_parameters
- echo TARGET_REPO=linaro-overlay-sid >> qcomlt_parameters
- echo KDEB_CHANGELOG_DIST=unstable >> qcomlt_parameters
- cat qcomlt_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'lt-qcom-linux'
- condition: SUCCESS
- property-file: qcomlt_parameters
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-linux-5.7.0.yaml b/trigger-lt-qcom-linux-5.7.0.yaml
deleted file mode 100644
index 663cf6d8e..000000000
--- a/trigger-lt-qcom-linux-5.7.0.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-- job:
- name: trigger-lt-qcom-linux-5.7.0
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm LT kernel 5.7 branch'
- scm:
- - git:
- url: https://git.linaro.org/git/landing-teams/working/qualcomm/kernel.git
- refspec: +refs/heads/release/*:refs/remotes/origin/release/*
- name: origin
- branches:
- - refs/heads/release/qcomlt-5.7
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
-
- # bring in stable and mainline tags
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
-
- echo KERNEL_VERSION=$(make kernelversion) > qcomlt_parameters
- echo KERNEL_DESCRIBE=$(git describe --always) >> qcomlt_parameters
- echo KERNEL_BRANCH=$(echo ${GIT_BRANCH} | sed 's|origin/||') >> qcomlt_parameters
- echo TARGET_REPO=linaro-overlay-sid >> qcomlt_parameters
- echo KDEB_CHANGELOG_DIST=unstable >> qcomlt_parameters
- cat qcomlt_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'lt-qcom-linux'
- condition: SUCCESS
- property-file: qcomlt_parameters
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-linux-5.9.0.yaml b/trigger-lt-qcom-linux-5.9.0.yaml
deleted file mode 100644
index 5288ce9fb..000000000
--- a/trigger-lt-qcom-linux-5.9.0.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-- job:
- name: trigger-lt-qcom-linux-5.9.0
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm LT kernel 5.9 branch'
- scm:
- - git:
- url: https://git.linaro.org/git/landing-teams/working/qualcomm/kernel.git
- refspec: +refs/heads/release/*:refs/remotes/origin/release/*
- name: origin
- branches:
- - refs/heads/release/qcomlt-5.9
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
-
- # bring in stable and mainline tags
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
-
- echo KERNEL_VERSION=$(make kernelversion) > qcomlt_parameters
- echo KERNEL_DESCRIBE=$(git describe --always) >> qcomlt_parameters
- echo KERNEL_BRANCH=$(echo ${GIT_BRANCH} | sed 's|origin/||') >> qcomlt_parameters
- echo TARGET_REPO=linaro-overlay-sid >> qcomlt_parameters
- echo KDEB_CHANGELOG_DIST=unstable >> qcomlt_parameters
- cat qcomlt_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'lt-qcom-linux'
- condition: SUCCESS
- property-file: qcomlt_parameters
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-linux-build.yaml b/trigger-lt-qcom-linux-build.yaml
deleted file mode 100644
index 7c7702638..000000000
--- a/trigger-lt-qcom-linux-build.yaml
+++ /dev/null
@@ -1,103 +0,0 @@
-- job:
- name: trigger-lt-qcom-linux-build
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- parameters:
- - string:
- name: KERNEL_REPO_URL
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/kernel.git'
- - string:
- name: KERNEL_BRANCHES
- default: 'release/qcomlt-5.7 release/qcomlt-5.9 release/qcomlt-5.10 alimon/tracking'
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm LT kernel build'
- scm:
- - git:
- url: https://git.linaro.org/git/landing-teams/working/qualcomm/kernel.git
- refspec: +refs/heads/release/*:refs/remotes/origin/release/*
- name: origin
- branches:
- - refs/heads/release/.*
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - timed: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}'
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- rm -rf configs
- git clone --depth 1 http://git.linaro.org/ci/job/configs.git
- git fetch --all
-
- set +e
- ./configs/trigger-lt-qcom-linux-build/get_branch_to_build.py \
- > branch_to_build
- ret=$?
- if [ $ret -ne 0 ]; then
- echo "warning: no new kernel branch to build available"
- exit 1
- fi
- - inject:
- properties-file: branch_to_build
- - shell: |
- #!/bin/bash
- set -ex
-
- # bring in stable and mainline tags
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
- git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
- git checkout ${GIT_BRANCH}
-
- KERNEL_CONFIGS_arm64=defconfig
- if echo "${KERNEL_BRANCH}" | grep -q "release/.*"; then
- KERNEL_CONFIGS_arm64="${KERNEL_CONFIGS_arm64} distro.config"
- elif echo "${KERNEL_BRANCH}" | grep -q "alimon/tracking"; then
- KERNEL_CONFIGS_arm64="${KERNEL_CONFIGS_arm64} distro.config"
- fi
-
- echo KERNEL_REPO_URL=${KERNEL_REPO_URL} > build_parameters
- echo KERNEL_BRANCH=$(echo ${GIT_BRANCH} | sed 's|origin/||') >> build_parameters
- echo KERNEL_VERSION=$(make kernelversion) >> build_parameters
- echo KERNEL_DESCRIBE=$(git describe --always) >> build_parameters
- echo KERNEL_CONFIGS_arm64=${KERNEL_CONFIGS_arm64} >> build_parameters
- echo KDEB_CHANGELOG_DIST=unstable >> build_parameters
-
- cat build_parameters
- - inject:
- properties-file: build_parameters
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: true
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - trigger-lt-qcom-linux-build/postbuild.groovy
- - trigger-parameterized-builds:
- - project:
- - 'lt-qcom-linux-build'
- condition: SUCCESS
- property-file: build_parameters
diff --git a/trigger-lt-qcom-linux-release.yaml b/trigger-lt-qcom-linux-test-release.yaml
index 2df1915ec..f2636dda4 100644
--- a/trigger-lt-qcom-linux-release.yaml
+++ b/trigger-lt-qcom-linux-test-release.yaml
@@ -1,5 +1,5 @@
- job:
- name: trigger-lt-qcom-linux-release
+ name: trigger-lt-qcom-linux-test-release
project-type: freestyle
defaults: global
properties:
@@ -22,13 +22,13 @@
default: 'http://snapshots.linaro.org/member-builds/qcomlt/kernel/'
- string:
name: RELEASE_NAMES
- default: 'release_qcomlt-5.7 release_qcomlt-5.9 release_qcomlt-5.10 alimon_tracking'
+ default: 'release_qcomlt-5.7 release_qcomlt-5.9 release_qcomlt-5.10 release_qcomlt-5.13'
- string:
name: MACHINES
- default: 'apq8016-sbc apq8096-db820c sdm845-db845c sdm845-mtp qcs404-evb-1000 qcs404-evb-4000'
+ default: 'apq8016-sbc sdm845-db845c qrb5165-rb5'
disabled: false
node: triggers
- display-name: 'Trigger for LT Qualcomm Linux Release build'
+ display-name: 'Trigger for LT Qualcomm Linux test Release build'
triggers:
- timed: 'H/5 * * * *'
wrappers:
@@ -43,7 +43,7 @@
git clone --depth 1 http://git.linaro.org/ci/job/configs.git
set +e
- ./configs/trigger-lt-qcom-linux-release/get_latest_kernel_release_build.py \
+ ./configs/trigger-lt-qcom-linux-test-release/get_latest_kernel_release_build.py \
> release_parameters
ret=$?
cat release_parameters
@@ -82,6 +82,6 @@
unstable-on-warning: true
fail-on-error: false
- trigger-parameterized-builds:
- - project: lt-qcom-linux-release
+ - project: lt-qcom-linux-test-release
condition: SUCCESS
property-file: lt_qcom_parameters
diff --git a/trigger-lt-qcom-linux-release/get_latest_kernel_release_build.py b/trigger-lt-qcom-linux-test-release/get_latest_kernel_release_build.py
index 298ca4455..298ca4455 100755
--- a/trigger-lt-qcom-linux-release/get_latest_kernel_release_build.py
+++ b/trigger-lt-qcom-linux-test-release/get_latest_kernel_release_build.py
diff --git a/trigger-lt-qcom-linux-test.yaml b/trigger-lt-qcom-linux-test.yaml
new file mode 100644
index 000000000..ba24c3343
--- /dev/null
+++ b/trigger-lt-qcom-linux-test.yaml
@@ -0,0 +1,67 @@
+- project:
+ name: trigger-lt-qcom-linux-test
+ jobs:
+ - 'trigger-lt-qcom-linux-test-{flavor}':
+ flavor: 'mainline'
+ kernelci: 'mainline'
+ - 'trigger-lt-qcom-linux-test-{flavor}':
+ flavor: 'integration'
+ kernelci: 'qcom-lt'
+- job-template:
+ name: 'trigger-lt-qcom-linux-test-{flavor}'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ - job-workspace
+ linaro-landing-team-qualcomm-personnel:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ disabled: false
+ node: triggers
+ display-name: 'Trigger for LT Qualcomm Linux test build: {flavor}'
+ triggers:
+ - timed: 'H/5 * * * *'
+ wrappers:
+ - timeout:
+ timeout: 5
+ - timestamps
+ - credentials-binding:
+ - text:
+ credential-id: QCOMLT_KERNELCI_TOKEN
+ variable: QCOMLT_KERNELCI_TOKEN
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ rm -rf configs
+ git clone --depth 1 http://git.linaro.org/ci/job/configs.git
+
+
+ set +ex
+ ./configs/lt-qcom-linux-test/kernelci.py ${{QCOMLT_KERNELCI_TOKEN}} {kernelci} arm64 defconfig lt_qcom_parameters
+ ret=$?
+ if [ $ret -ne 0 ]; then
+ echo "warning: no new kernel ci build available"
+ exit 1
+ fi
+ - inject:
+ properties-file: lt_qcom_parameters
+ publishers:
+ - logparser:
+ parse-rules: '/var/jenkins_home/userContent/android.parse'
+ unstable-on-warning: true
+ fail-on-error: false
+ - trigger-parameterized-builds:
+ - project: lt-qcom-linux-test-{flavor}
+ condition: SUCCESS
+ property-file: lt_qcom_parameters
diff --git a/trigger-lt-qcom-linux.yaml b/trigger-lt-qcom-linux.yaml
index b2e50e098..75706afab 100644
--- a/trigger-lt-qcom-linux.yaml
+++ b/trigger-lt-qcom-linux.yaml
@@ -1,16 +1,25 @@
- project:
name: trigger-lt-qcom-linux
jobs:
- - 'trigger-lt-qcom-linux-{flavor}':
- flavor: 'mainline'
- kernelci: 'mainline'
- - 'trigger-lt-qcom-linux-{flavor}':
- flavor: 'integration'
- kernelci: 'qcom-lt'
+ - 'trigger-lt-qcom-linux-{version}':
+ branch: 'release/qcomlt-5.7'
+ version: '5.7'
+ - 'trigger-lt-qcom-linux-{version}':
+ branch: 'release/qcomlt-5.9'
+ version: '5.9'
+ - 'trigger-lt-qcom-linux-{version}':
+ branch: 'release/qcomlt-5.10'
+ version: '5.10'
+ - 'trigger-lt-qcom-linux-{version}':
+ branch: 'release/qcomlt-5.13'
+ version: '5.13'
- job-template:
- name: 'trigger-lt-qcom-linux-{flavor}'
+ name: 'trigger-lt-qcom-linux-{version}'
project-type: freestyle
defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
properties:
- authorization:
anonymous:
@@ -22,45 +31,46 @@
- job-extended-read
- job-build
- job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
disabled: false
node: triggers
- display-name: 'Trigger for LT Qualcomm Linux build: {flavor}'
+ display-name: 'Trigger for Qualcomm LT kernel {branch} branch'
+ scm:
+ - git:
+ url: https://git.linaro.org/git/landing-teams/working/qualcomm/kernel.git
+ refspec: +refs/heads/*:refs/remotes/origin/*
+ name: origin
+ branches:
+ - refs/heads/{branch}
+ skip-tag: true
+ shallow-clone: false
+ wipe-workspace: false
triggers:
- - timed: 'H/5 * * * *'
+ - pollscm: 'H/5 * * * *'
wrappers:
- - timeout:
- timeout: 5
- timestamps
- - credentials-binding:
- - text:
- credential-id: QCOMLT_KERNELCI_TOKEN
- variable: QCOMLT_KERNELCI_TOKEN
+ - build-name:
+ name: '#$BUILD_NUMBER-$GIT_REVISION,length=8'
builders:
- shell: |
- #!/bin/bash
- set -ex
+ #!/bin/bash -e
- rm -rf configs
- git clone --depth 1 http://git.linaro.org/ci/job/configs.git
+ # bring in stable and mainline tags
+ git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
+ git fetch --tags https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
- set +ex
- ./configs/lt-qcom-linux-test/kernelci.py ${{QCOMLT_KERNELCI_TOKEN}} {kernelci} arm64 defconfig lt_qcom_parameters
- ret=$?
- if [ $ret -ne 0 ]; then
- echo "warning: no new kernel ci build available"
- exit 1
- fi
- - inject:
- properties-file: lt_qcom_parameters
+ echo KERNEL_VERSION=$(make kernelversion) > qcomlt_parameters
+ echo KERNEL_DESCRIBE=$(git describe --always) >> qcomlt_parameters
+ echo KERNEL_BRANCH=$(echo $GIT_BRANCH | sed 's|origin/||') >> qcomlt_parameters
+ echo TARGET_REPO=linaro-overlay-sid >> qcomlt_parameters
+ echo KDEB_CHANGELOG_DIST=unstable >> qcomlt_parameters
+ cat qcomlt_parameters
publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: true
- fail-on-error: false
- trigger-parameterized-builds:
- - project: lt-qcom-linux-{flavor}
+ - project:
+ - 'lt-qcom-linux'
condition: SUCCESS
- property-file: lt_qcom_parameters
+ property-file: qcomlt_parameters
+ - email-ext:
+ recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
+ failure: true
+ still-failing: true
diff --git a/trigger-zephyr-upstream.yaml b/trigger-zephyr-upstream.yaml
index ae81164e3..78dddfc73 100644
--- a/trigger-zephyr-upstream.yaml
+++ b/trigger-zephyr-upstream.yaml
@@ -16,14 +16,14 @@
num-to-keep: 30
disabled: false
node: triggers
- display-name: 'Trigger for Zephyr project (master)'
+ display-name: 'Trigger for Zephyr project (main)'
scm:
- git:
url: https://github.com/zephyrproject-rtos/zephyr.git
- refspec: +refs/heads/master:refs/remotes/origin/master
+ refspec: +refs/heads/main:refs/remotes/origin/main
name: origin
branches:
- - refs/heads/master
+ - refs/heads/main
skip-tag: true
shallow-clone: true
wipe-workspace: false
diff --git a/uadk/builders-openssl.sh b/uadk/builders-openssl.sh
index 0d70ef124..326b00355 100755
--- a/uadk/builders-openssl.sh
+++ b/uadk/builders-openssl.sh
@@ -40,19 +40,16 @@ autoreconf -vfi
./configure \
--prefix=${WORKSPACE}/uadk-shared-v2/usr/local \
- --libdir=${WORKSPACE}/uadk-shared-v2/usr/local/lib
+ --libdir=${WORKSPACE}/uadk-shared-v2/usr/local/lib/engines-1.1
LD_LIBRARY_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/lib \
C_INCLUDE_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/include \
make -j$(nproc)
make install && make clean
-# FIXME: openssl: symbol lookup error: openssl: undefined symbol: EVP_mdc2, version OPENSSL_1_1_0
-# $ which openssl
-# $ /usr/local/bin/openssl
-# Using the system /usr/bin/openssl returns an error too
-#sudo \
-# LD_LIBRARY_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/lib \
-# openssl engine -t uadk
+sudo \
+ LD_LIBRARY_PATH=/usr/local/lib:${WORKSPACE}/uadk-shared-v2/usr/local/lib \
+ ${WORKSPACE}/uadk/test/sanity_test.sh \
+ ${WORKSPACE}/uadk-shared-v2/usr/local/lib/engines-1.1/uadk.so
cd ${WORKSPACE}
tar -cJf uadk-openssl.tar.xz uadk-*-v*/
diff --git a/zephyr-net.yaml b/zephyr-net.yaml
index 229c9e7e0..53b3216de 100644
--- a/zephyr-net.yaml
+++ b/zephyr-net.yaml
@@ -31,10 +31,10 @@
parameters:
- string:
name: BRANCH
- default: 'master'
+ default: 'main'
- string:
name: GIT_COMMIT
- default: 'master'
+ default: 'HEAD'
- string:
name: LAVA_SERVER
default: 'validation.linaro.org/RPC2/'
diff --git a/zephyr-upstream.yaml b/zephyr-upstream.yaml
index 044b13944..39a5a4579 100644
--- a/zephyr-upstream.yaml
+++ b/zephyr-upstream.yaml
@@ -25,7 +25,7 @@
parameters:
- string:
name: BRANCH
- default: 'master'
+ default: 'main'
- string:
name: LAVA_SERVER
default: 'validation.linaro.org/RPC2/'
@@ -41,9 +41,9 @@
disabled: false
node: master
child-workspace: .
- display-name: 'Zephyr project (master)'
+ display-name: 'Zephyr project (main)'
# We should avoid starting this job "on its own". That's because default
-# Git revision it builds is master/HEAD, and as this is a matrix job,
+# Git revision it builds is main/HEAD, and as this is a matrix job,
# different sub-builds may get different actual HEAD revision (e.g. if
# the tree is actively committed to). Instead, it should be triggered
# externally, with GIT_COMMIT parameter set to a specific SHA1 revision