aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--96boards-dragonboard410c-android.yaml2
-rw-r--r--96boards-dragonboard410c-aosp-master.yaml2
-rw-r--r--96boards-dragonboard845c-aosp-master.yaml10
-rw-r--r--96boards-dragonboard845c-aosp-master/builders.sh27
-rw-r--r--96boards-hikey-aosp-master.yaml2
-rw-r--r--96boards-hikey-debian.yaml68
-rw-r--r--96boards-hikey-linux.yaml4
-rw-r--r--96boards-hikey-uefi-openplatformpkg.yaml134
-rw-r--r--96boards-hikey960-aosp-master.yaml88
-rw-r--r--96boards-qrb5165-rb5-aosp-master/builders.sh53
-rw-r--r--96boards-reference-platform-aosp-db410c.yaml2
-rw-r--r--96boards-reference-uefi-staging.yaml4
-rw-r--r--android-clang-toolchain.yaml2
-rw-r--r--android-cts.yaml40
-rwxr-xr-xandroid-cts/builders.sh1
-rw-r--r--android-gcc-toolchain.yaml2
-rw-r--r--android-generic-build.yaml2
-rw-r--r--android-hikey-linaro-4.14-pmwg.yaml2
-rw-r--r--android-hikey-linaro-4.9-pmwg.yaml2
-rw-r--r--android-hikey-optee-master.yaml2
-rw-r--r--android-hikey-optee-o-clearkey-cdmi.yaml2
-rw-r--r--android-hikey-optee-o-clearkeydrmplugin.yaml2
-rw-r--r--android-hikey-optee-o-playready.yaml2
-rw-r--r--android-hikey-optee-o-widevine.yaml2
-rw-r--r--android-hikey-optee-o.yaml2
-rw-r--r--android-hikey-optee-p.yaml2
-rw-r--r--android-hikey960-linaro-4.14-pmwg.yaml2
-rw-r--r--android-hikey960-linaro-4.9-pmwg.yaml2
-rw-r--r--android-hikey960-optee-p.yaml2
-rw-r--r--android-imx8m.yaml2
-rw-r--r--android-lcr-reference-am65x-p-auto.yaml89
-rw-r--r--android-lcr-reference-am65x-p.yaml89
-rw-r--r--android-lcr-reference-hikey-master-auto.yaml83
-rw-r--r--android-lcr-reference-hikey-master-premerge-ci.yaml86
-rw-r--r--android-lcr-reference-hikey-master.yaml96
-rw-r--r--android-lcr-reference-hikey-o.yaml106
-rw-r--r--android-lcr-reference-hikey-p-auto.yaml83
-rw-r--r--android-lcr-reference-hikey-p.yaml102
-rw-r--r--android-lcr-reference-hikey-q.yaml86
-rw-r--r--android-lcr-reference-hikey960-master-auto.yaml83
-rw-r--r--android-lcr-reference-hikey960-master-car.yaml83
-rw-r--r--android-lcr-reference-hikey960-master.yaml96
-rw-r--r--android-lcr-reference-hikey960-p-auto.yaml83
-rw-r--r--android-lcr-reference-hikey960-p.yaml102
-rw-r--r--android-lcr-reference-hikey960-q.yaml86
-rw-r--r--android-lcr-reference-juno-o.yaml105
-rw-r--r--android-lcr-reference-x15-master-auto.yaml93
-rw-r--r--android-lcr-reference-x15-master.yaml93
-rw-r--r--android-lcr-reference-x15-o-premerge-ci.yaml83
-rw-r--r--android-lcr-reference-x15-o.yaml89
-rw-r--r--android-lcr-reference-x15-p-auto.yaml89
-rw-r--r--android-lcr-reference-x15-p.yaml89
-rw-r--r--android-lcr-reference-x15-q.yaml88
-rwxr-xr-xandroid-lcr/common/builders.sh21
-rw-r--r--android-lmg-vexpress-aosp-master.yaml2
-rw-r--r--android-master-clang.yaml2
-rw-r--r--android-r-lcr-manifest.yaml2
-rw-r--r--android-rockpi-cuttlefish.yaml87
-rwxr-xr-xandroid-rockpi-cuttlefish/builders.sh159
-rw-r--r--android-rockpi-cuttlefish/builders.yaml.inc10
-rwxr-xr-xandroid-rockpi-cuttlefish/downloader.sh211
-rw-r--r--android-rockpi-cuttlefish/publishers.yaml.inc23
-rw-r--r--android-vts.yaml40
-rwxr-xr-xandroid-vts/builders.sh1
-rw-r--r--android/linaro-publisher.sh1
-rw-r--r--aosp-mesa-testing.yaml2
-rw-r--r--aosp-mesa-testing/builders.sh2
-rw-r--r--archive-specjbb2013-product-tarball.yaml44
-rw-r--r--archive-specjbb2015-product-tarball.yaml44
-rw-r--r--armlt-platforms-release.yaml2
-rw-r--r--armlt-platforms.yaml2
-rw-r--r--armnn-ci-benchmarking.yaml2
-rw-r--r--armnn-ci-build.yaml2
-rw-r--r--armnn32-ci-build.yaml2
-rw-r--r--art-stable-aosp-reference.yaml65
-rw-r--r--art-tip-aosp-reference.yaml65
-rw-r--r--bigdata-bigtop-deb.yaml2
-rw-r--r--build-kvmtool.yaml4
-rw-r--r--build-package-clo/builder.sh110
-rw-r--r--build-package-obs.yaml2
-rw-r--r--build-package/upload-deb.sh25
-rw-r--r--build-rpm-obs.yaml2
-rw-r--r--ci-dockerfile-build-test.yaml11
-rw-r--r--ci-dockerfile-build.yaml11
-rw-r--r--ci-dockerfiles-deployment.yaml15
-rw-r--r--ci-dockerfiles-deployment/build-image.sh8
-rw-r--r--ci-dockerfiles-deployment/cleanup-update.sh31
-rw-r--r--ci-dockerfiles-monthly.yaml2
-rw-r--r--ci-dockerfiles-sanity-check.yaml15
-rw-r--r--ci-dockerslaves-cleanup.yaml18
-rw-r--r--ci-job-configs-sanity-check.yaml2
-rw-r--r--ci-terraform-sanity-check.yaml2
-rw-r--r--ddiaz-aosp.yaml34
-rw-r--r--ddiaz-oe-lkft.yaml258
-rw-r--r--ddiaz-test-5.3.yaml205
-rw-r--r--ddiaz-test.yaml32
-rw-r--r--drue-test-1.yaml2
-rw-r--r--drue-test-2.yaml2
-rw-r--r--erp-firmware.yaml60
-rw-r--r--erp-test-automation-matrix.yaml2
-rw-r--r--fai-test.yaml44
-rw-r--r--infrastructure-ansible-playbook.yaml2
-rw-r--r--infrastructure-linaro-license-protection.yaml2
-rw-r--r--infrastructure-patchwork-tools.yaml2
-rw-r--r--jdk-build-specjbb2015-jdk11.yaml2
-rw-r--r--jdk11-jcstress-test-persist-results.yaml2
-rw-r--r--jdk11-jcstress-test.yaml2
-rw-r--r--jdk11-jtreg-test-persist-results.yaml2
-rw-r--r--jdk11-jtreg-test.yaml2
-rw-r--r--jdk11-specjbb2015-benchmark-persist-results.yaml2
-rw-r--r--jdk11-specjbb2015-benchmark.yaml2
-rw-r--r--jdk11-terasort-benchmark-persist-results.yaml2
-rw-r--r--jdk11-terasort-benchmark.yaml2
-rw-r--r--jdk12-jcstress-test-persist-results.yaml2
-rw-r--r--jdk12-jcstress-test.yaml2
-rw-r--r--jdk12-jtreg-test-persist-results.yaml2
-rw-r--r--jdk12-jtreg-test.yaml2
-rw-r--r--jdk12-specjbb2015-benchmark-persist-results.yaml2
-rw-r--r--jdk12-specjbb2015-benchmark.yaml2
-rw-r--r--jdk12-terasort-benchmark-persist-results.yaml2
-rw-r--r--jdk12-terasort-benchmark.yaml2
-rw-r--r--jdk13-jcstress-test-persist-results.yaml2
-rw-r--r--jdk13-jcstress-test.yaml2
-rw-r--r--jdk13-jtreg-test-persist-results.yaml2
-rw-r--r--jdk13-jtreg-test.yaml2
-rw-r--r--jdk13-specjbb2015-benchmark-persist-results.yaml2
-rw-r--r--jdk13-specjbb2015-benchmark.yaml2
-rw-r--r--jdk13-terasort-benchmark-persist-results.yaml2
-rw-r--r--jdk13-terasort-benchmark.yaml2
-rw-r--r--jdk14-jcstress-test-persist-results.yaml2
-rw-r--r--jdk14-jcstress-test.yaml2
-rw-r--r--jdk14-jtreg-test-persist-results.yaml2
-rw-r--r--jdk14-jtreg-test.yaml2
-rw-r--r--jdk14-specjbb2015-benchmark-persist-results.yaml2
-rw-r--r--jdk14-specjbb2015-benchmark.yaml2
-rw-r--r--jdk14-terasort-benchmark-persist-results.yaml2
-rw-r--r--jdk14-terasort-benchmark.yaml2
-rw-r--r--jdk7u-update-src-tree.yaml2
-rw-r--r--jdk8-jcstress-test-persist-results.yaml2
-rw-r--r--jdk8-jcstress-test.yaml2
-rw-r--r--jdk8-jtreg-test-persist-results.yaml2
-rw-r--r--jdk8-jtreg-test.yaml2
-rw-r--r--jdk8-specjbb2015-benchmark-persist-results.yaml2
-rw-r--r--jdk8-specjbb2015-benchmark.yaml2
-rw-r--r--jdk8-terasort-benchmark-persist-results.yaml2
-rw-r--r--jdk8-terasort-benchmark.yaml2
-rw-r--r--jdkX-jcstress-test-persist-results.yaml2
-rw-r--r--jdkX-jcstress-test.yaml2
-rw-r--r--jdkX-jtreg-test-persist-results.yaml2
-rw-r--r--jdkX-jtreg-test.yaml2
-rw-r--r--jdkX-specjbb2015-benchmark-persist-results.yaml2
-rw-r--r--jdkX-specjbb2015-benchmark.yaml2
-rw-r--r--jdkX-terasort-benchmark-persist-results.yaml2
-rw-r--r--jdkX-terasort-benchmark.yaml2
-rw-r--r--kernel-testing-configs/templates/generic.yaml199
-rw-r--r--lava-dispatcher-daily-docker.yaml55
-rw-r--r--lava-dispatcher-docker.yaml55
-rw-r--r--ldcg-bigdata-apache-arrow.yaml44
-rw-r--r--ldcg-bigdata-apache-arrow/build.sh2
-rw-r--r--ldcg-bigdata-apache-drill.yaml10
-rw-r--r--ldcg-container-pytorch.yaml4
-rw-r--r--ldcg-container-tensorflow.yaml36
-rw-r--r--ldcg-onednn-benchmarks.yaml62
-rw-r--r--ldcg-onednn-benchmarks/build-onednn-acl.sh32
-rw-r--r--ldcg-onednn-benchmarks/convert-onednn-test-to-result.py32
-rw-r--r--ldcg-onednn-benchmarks/format-for-json.py17
-rw-r--r--ldcg-onednn-benchmarks/format-tests.sh92
-rw-r--r--ldcg-onednn-benchmarks/test-onednn.sh40
-rw-r--r--ldcg-python-cache.yaml2
-rw-r--r--ldcg-python-manylinux-cache.yaml7
-rw-r--r--ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh17
-rw-r--r--ldcg-python-manylinux-cache/build.sh2
-rw-r--r--ldcg-python-manylinux-cache/publishers.sh1
-rw-r--r--ldcg-python-manylinux-tensorflow-io.yaml48
-rw-r--r--ldcg-python-manylinux-tensorflow-nightly.yaml19
-rw-r--r--ldcg-python-manylinux-tensorflow-onednn-nightly.yaml54
-rw-r--r--ldcg-python-manylinux-tensorflow-text.yaml48
-rw-r--r--ldcg-python-manylinux-tensorflow.yaml51
-rw-r--r--ldcg-python-manylinux-tensorflow/Dockerfile13
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/.config/ansible-lint.yml5
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/ansible.cfg2
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-dual-abi.yml36
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-io.yml47
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-text-dual-abi.yml45
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml23
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tfio-dual-abi.yml49
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/build.yml25
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/deps.yml5
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/fetch-binary.yml11
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/main.yml22
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/stop.yml6
-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/ldcg_manylinux_tensorflow/tasks/init.yml24
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/ldcg_manylinux_tensorflow/tasks/publish.yml28
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/auditwheel-repair.yml29
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels-cache.yml7
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels.yml6
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/deps.yml13
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml20
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/wheel.yml24
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow14
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow-git11
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/upper-constraints.txt28
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/deps.yml6
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/fetch.yml99
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml39
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/manylinux-build.yml75
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/patch_tree.yml13
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/README_ut.md.j216
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/git_commit_hash.j21
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/linklibs.sh.j21
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/python_bin_path1
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/tf_configure.bazelrc10
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/tasks/dual-abi-build.yml236
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/hermetic-upper-constraints.txt3
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stderr.j21
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stdout.j21
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/pip-stdout.j21
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/run-tests.sh.j220
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/files/upper-constraints.txt2
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/build_wheel.yml9
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/fetch.yml32
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/gcc4-abi-build.yml63
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/manylinux-build.yml42
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/build_wheel.yml13
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/dual-abi-build.yml93
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/virtualenv.yml20
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/audit_tfio_wheels.sh.j26
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_binaries.sh.j214
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_wheels.sh.j27
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/init_venv.sh.j25
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/install_venv.sh.j25
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/files/upper-constraints.txt2
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/build_wheel.yml17
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/dual-abi-build.yml74
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/fetch.yml32
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/manylinux-build.yml31
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/virtualenv.yml20
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/audit_tf_text_wheels.sh.j213
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/build_tf_text_wheels.sh.j210
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/init_venv.sh.j25
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/install_venv.sh.j26
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/vars/vars-tf-text.yml31
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/vars/vars-tfio.yml33
-rw-r--r--ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml123
-rw-r--r--ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh7
-rw-r--r--ldcg-python-manylinux-tensorflow/build-tf-text.sh26
-rw-r--r--ldcg-python-manylinux-tensorflow/build-tfio-manylinux2014-wheels.sh17
-rw-r--r--ldcg-python-manylinux-tensorflow/build-tfio.sh26
-rw-r--r--ldcg-python-manylinux-tensorflow/build.sh56
-rw-r--r--ldcg-python-manylinux-tensorflow/publishers.sh53
-rw-r--r--ldcg-python-openxla.yaml40
-rw-r--r--ldcg-python-openxla/Dockerfile15
-rw-r--r--ldcg-python-openxla/ansible/ansible.cfg (renamed from ldcg-python-tensorflow/tensorflow/ansible.cfg)7
-rw-r--r--ldcg-python-openxla/ansible/playbooks/test-openxla.yml30
-rw-r--r--ldcg-python-openxla/ansible/roles/xla/tasks/fetch.yml28
-rw-r--r--ldcg-python-openxla/ansible/roles/xla/tasks/loop.yml28
-rw-r--r--ldcg-python-openxla/ansible/roles/xla/tasks/test.yml138
-rw-r--r--ldcg-python-openxla/ansible/roles/xla/templates/run-tests.sh.j211
-rw-r--r--ldcg-python-openxla/ansible/roles/xla/templates/tf_configure.bazelrc12
-rw-r--r--ldcg-python-openxla/ansible/roles/xla/templates/upper-constraints.txt7
-rw-r--r--ldcg-python-openxla/ansible/vars/vars.yml19
-rw-r--r--ldcg-python-openxla/build.sh25
-rw-r--r--ldcg-python-pytorch-vision.yaml7
-rw-r--r--ldcg-python-pytorch-vision/publishers.sh1
-rw-r--r--ldcg-python-tensorflow-nightly.yaml41
-rw-r--r--ldcg-python-tensorflow.yaml39
-rw-r--r--ldcg-python-tensorflow/Dockerfile-centos12
-rw-r--r--ldcg-python-tensorflow/Dockerfile-debian14
-rw-r--r--ldcg-python-tensorflow/build-containers.sh26
-rw-r--r--ldcg-python-tensorflow/build.sh28
-rw-r--r--ldcg-python-tensorflow/publishers.sh28
-rw-r--r--ldcg-python-tensorflow/tensorflow/LICENSE21
-rw-r--r--ldcg-python-tensorflow/tensorflow/README.md3
-rw-r--r--ldcg-python-tensorflow/tensorflow/inventory3
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/build_bazel.yml74
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/build_python.yml112
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/build_python_wheel.yml27
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/build_tensorflow.yml91
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/clean.yml41
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/files/check-tf.py29
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow14
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow-git11
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/files/upper-constraints.txt8
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/run-git.yml52
-rw-r--r--ldcg-python-tensorflow/tensorflow/playbooks/run.yml64
-rw-r--r--ldcg-python-tensorflow/tensorflow/vars/vars.yml3
-rw-r--r--ldcg-sbsa-acs.yaml13
-rw-r--r--ldcg-sbsa-firmware.yaml17
-rw-r--r--ldcg-sbsa-firmware/build-sbsa-acs.sh133
-rw-r--r--ldcg-sbsa-firmware/build.sh42
-rw-r--r--ldcg-sbsa-firmware/enable-bsa-acs.patch20
-rw-r--r--ldcg-sbsa-firmware/publishers.sh1
-rw-r--r--ldcg-tensorflow-asv-benchmarks.yaml33
-rw-r--r--ldcg-tensorflow-asv-benchmarks/ldcg-tensorflow-asv-benchmark.sh63
-rw-r--r--ldcg-update-images.yaml30
-rw-r--r--ldcg-update-images/build.sh5
-rw-r--r--ledge-cloud-image-fedora.yaml2
-rw-r--r--ledge-oe-premerge-ci.yaml147
-rw-r--r--ledge-ts.yaml (renamed from ledge-oe.yaml)34
-rw-r--r--ledge-u-boot.yaml (renamed from ledge-oe-release.yaml)62
-rwxr-xr-xledge/oe/builders.sh105
-rw-r--r--ledge/oe/lava-job-definitions/ledge-qemuarm64/template-boot.yaml83
-rw-r--r--ledge/oe/submit_for_testing.sh59
-rwxr-xr-xledge/ts/builders.sh92
-rw-r--r--ledge/ts/lava-job-definitions/stm32mp157c-dk2/template-boot.yaml64
-rw-r--r--ledge/ts/scripts/stm32.tar.gzbin0 -> 494732 bytes
-rw-r--r--ledge/ts/scripts/stm32mp157c-sdcard.tsv4
-rw-r--r--ledge/ts/scripts/ts-merge-images-esp.sh46
-rw-r--r--ledge/ts/scripts/ts-merge-images.sh70
-rw-r--r--ledge/ts/submit_for_testing.sh40
-rwxr-xr-xledge/u-boot/builders.sh68
-rw-r--r--ledge/u-boot/lava-job-definitions/qemu-arm64/template-boot.yaml60
-rw-r--r--ledge/u-boot/submit_for_testing.sh34
-rw-r--r--leg-96boards-developerbox-edk2.yaml6
-rw-r--r--leg-kolla-push-images.yaml44
-rw-r--r--leg-kolla-remove-images.yaml4
-rw-r--r--leg-kolla-rocky-ldc.yaml2
-rw-r--r--leg-kolla-stein-ldc.yaml2
-rw-r--r--leg-kolla-train-ldc.yaml4
-rw-r--r--leg-kolla-ussuri-ldc.yaml4
-rw-r--r--leg-kolla.yaml4
-rw-r--r--leg-sdi-remove-tags.yaml41
-rw-r--r--leg-virt-tiancore-edk2-upstream/lava-job-definitions/kvm-aarch64/template.json142
-rw-r--r--leg-virt-tiancore-edk2-upstream/lava-job-definitions/mustang/template.json77
-rw-r--r--leg-virt-tianocore-edk2-upstream.yaml165
-rw-r--r--leg-virt-tianocore-edk2-upstream/build-in-docker.sh65
-rw-r--r--leg-virt-tianocore-edk2-upstream/build.sh30
-rw-r--r--leg-virt-tianocore-edk2-upstream/publish.sh10
-rw-r--r--lhg-oe-build.yaml2
-rw-r--r--lhg-oe-rocko.yaml2
-rw-r--r--lhg-oe-thud.yaml2
-rw-r--r--lhg-oe-wpe-master.yaml2
-rw-r--r--lhg-oe-wpe-morty.yaml2
-rw-r--r--lhg-openembedded-playready-morty.yaml2
-rw-r--r--lhg-openembedded-playready-rocko.yaml2
-rw-r--r--linaro-art-build-metrics.yaml56
-rw-r--r--linaro-art-julien-sandbox.yaml64
-rw-r--r--linaro-art-scripts-presubmit.yaml74
-rw-r--r--linaro-art-test.yaml61
-rw-r--r--linaro-art-testing-presubmit-test.yaml65
-rw-r--r--linaro-art-tip-build-ARTBuild.yaml130
-rw-r--r--linaro-art-tip-build-ARTHostTest.yaml155
-rw-r--r--linaro-art-tip-build-ARTSimulatorTest.yaml148
-rw-r--r--linaro-art-tip-build-ARTTargetTest.yaml146
-rw-r--r--linaro-art-tip-build-ARTVixlTest.yaml2
-rw-r--r--linaro-art-tip-build-MicroBenchmarks-Baseline-intel.yaml139
-rw-r--r--linaro-art-tip-build-MicroBenchmarks-Baseline.yaml119
-rw-r--r--linaro-art-tip-build-MicroBenchmarks.yaml92
-rw-r--r--linaro-art-vixlpresubmit-macos.yaml5
-rw-r--r--linaro-art-vixlpresubmit-native-armv8.yaml5
-rw-r--r--linaro-art-vixlpresubmit.yaml5
-rw-r--r--linaro-art/microbenchmarks/builders.sh24
-rw-r--r--lite-aeolus-jerryscript.yaml10
-rw-r--r--lite-aeolus-micropython.yaml8
-rw-r--r--lite-aeolus-openamp.yaml8
-rw-r--r--lite-aeolus-zephyr.js.yaml2
-rw-r--r--lite-aeolus/build-init.sh2
-rw-r--r--lite-common/install-toolchains.sh11
-rw-r--r--lite-gateway-ubuntu-core.yaml55
-rw-r--r--lite-openembedded-zcu102-rocko.yaml4
-rw-r--r--lite-tf-m.yaml12
-rwxr-xr-xlite-tf-m/build.sh2
-rwxr-xr-xlite-tf-m/install-deps.sh3
-rwxr-xr-xlite-tf-m/tfm-build.sh2
-rw-r--r--lkft-android-common-gateway.yaml152
-rw-r--r--lkft-aosp-master-tracking.yaml326
-rw-r--r--lkft-aosp-master-x15.yaml147
-rw-r--r--lkft-aosp-member-wrapper.yaml159
-rw-r--r--lkft-aosp-member.yaml19
-rw-r--r--lkft-aosp.yaml41
-rw-r--r--lkft-api-callbacks.yaml51
-rw-r--r--lkft-db845c-5.4-rc.yaml91
-rw-r--r--lkft-generic-build.yaml100
-rw-r--r--lkft-generic-mirror-build.yaml102
-rw-r--r--lkft-generic-omap-build.yaml96
-rw-r--r--lkft-gki-kernel.yaml200
-rw-r--r--lkft-hikey-10.0-4.14-q.yaml95
-rw-r--r--lkft-hikey-10.0-4.9-q.yaml95
-rw-r--r--lkft-hikey-4.14-rc.yaml100
-rw-r--r--lkft-hikey-4.19-rc.yaml100
-rw-r--r--lkft-hikey-4.4-o.yaml95
-rw-r--r--lkft-hikey-4.4-p.yaml95
-rw-r--r--lkft-hikey-4.4-rc-p.yaml100
-rw-r--r--lkft-hikey-4.9-o.yaml95
-rw-r--r--lkft-hikey-4.9-rc.yaml100
-rw-r--r--lkft-hikey-android-10.0-gsi-4.19.yaml95
-rw-r--r--lkft-hikey-android-8.1-4.14.yaml139
-rw-r--r--lkft-hikey-android-8.1-4.4.yaml130
-rw-r--r--lkft-hikey-aosp-4.14-premerge-ci.yaml95
-rw-r--r--lkft-hikey-aosp-4.9-premerge-ci.yaml95
-rw-r--r--lkft-hikey-aosp-master-4.14.yaml92
-rw-r--r--lkft-hikey-aosp-master-4.19.yaml92
-rw-r--r--lkft-hikey-aosp-master-5.4.yaml92
-rw-r--r--lkft-hikey-merge-mirrors.yaml138
-rw-r--r--lkft-linux-clang.yaml144
-rw-r--r--lkft-member-build.yaml115
-rw-r--r--lkft-member-wrapper.yaml110
-rw-r--r--lkft-notify-developer.yaml2
-rw-r--r--lkft-notify-kselftest-next.yaml2
-rw-r--r--lkft-omap-merge-mirrors.yaml116
-rw-r--r--lkft-staging-lava.yaml2
-rw-r--r--lkft-staging-no-skiplist.yaml2
-rwxr-xr-xlkft/common/build-aosp-member.sh50
-rwxr-xr-xlkft/common/build-aosp.sh128
-rwxr-xr-xlkft/common/builders-v2.sh5
-rw-r--r--lkft/common/publisher-v2.sh10
-rw-r--r--lkft/lava-job-definitions/common/devices/dragonboard-845c4
-rw-r--r--lkft/lava-job-definitions/common/devices/hikey9607
-rw-r--r--lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v7a.yaml4
-rw-r--r--lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v8a.yaml4
-rw-r--r--lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v7a.yaml37
-rw-r--r--lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v8a.yaml37
-rw-r--r--lkft/lava-job-definitions/common/template-cts-CtsWindowManagerDeviceTestCases.yaml37
-rw-r--r--lkft/lava-job-definitions/common/template-cts-excluded-v7a.yaml63
-rw-r--r--lkft/lava-job-definitions/common/template-cts-excluded-v8a.yaml63
-rw-r--r--lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-camera.yaml41
-rw-r--r--lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-libcore.yaml41
-rw-r--r--lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-no-libcore-camera-webkit.yaml55
-rw-r--r--lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-webkit.yaml41
-rw-r--r--lkft/lava-job-definitions/common/template-cts-part1-v7a.yaml54
-rw-r--r--lkft/lava-job-definitions/common/template-cts-part1-v8a.yaml54
-rw-r--r--lkft/lava-job-definitions/common/template-cts-part2-v7a.yaml51
-rw-r--r--lkft/lava-job-definitions/common/template-cts-part2-v8a.yaml51
-rw-r--r--lkft/lava-job-definitions/common/template-cts-part3-v7a.yaml65
-rw-r--r--lkft/lava-job-definitions/common/template-cts-part3-v8a.yaml65
-rw-r--r--lkft/lava-job-definitions/common/template-cts-v7a.yaml58
-rw-r--r--lkft/lava-job-definitions/common/template-cts-v8a.yaml58
-rw-r--r--lkft/lava-job-definitions/common/template-lkft.yaml8
-rw-r--r--lkft/lava-job-definitions/common/template-vts-kernel-x15-powersave-ltp.yaml (renamed from lkft/lava-job-definitions/common/template-vts-CtsWindowManagerDeviceTestCases.yaml)9
-rw-r--r--lkft/lava-job-definitions/common/template-vts-kernel-x15-powersave-no-ltp.yaml39
-rw-r--r--lkft/lava-job-definitions/common/template-vts.yaml2
-rw-r--r--lkft/lava-job-definitions/docker/devices/dragonboard-845c20
-rw-r--r--lkft/lava-job-definitions/docker/devices/hikey13
-rw-r--r--lkft/lava-job-definitions/docker/devices/hikey96036
-rw-r--r--lkft/lava-job-definitions/docker/template-lkft.yaml11
-rw-r--r--lkft/lava-job-definitions/docker/template-vts.yaml2
-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.sh166
-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--lkft/x15-aosp/builders.sh2
-rw-r--r--llp-test.yaml40
-rw-r--r--lt-qcom-bootloader-dragonboard410c.yaml80
-rw-r--r--lt-qcom-bootloader-dragonboard820c.yaml77
-rw-r--r--lt-qcom-bootloader-dragonboard845c.yaml92
-rw-r--r--lt-qcom-bootloader-rb5.yaml92
-rw-r--r--lt-qcom-bootloader/dragonboard410c/builders.sh142
-rw-r--r--lt-qcom-bootloader/dragonboard820c/builders.sh130
-rw-r--r--lt-qcom-bootloader/dragonboard845c/builders.sh164
-rw-r--r--lt-qcom-bootloader/dragonboard845c/test_params11
-rw-r--r--lt-qcom-bootloader/rb5/builders.sh171
-rw-r--r--lt-qcom-bootloader/rb5/test_params11
-rw-r--r--lt-qcom-debian-images.yaml170
-rw-r--r--lt-qcom-debian-images/builders-fai.sh177
-rw-r--r--lt-qcom-debian-images/debpkgdiff.py56
-rw-r--r--lt-qcom-debian-images/installer.sh92
-rw-r--r--lt-qcom-debian-images/publishers.sh24
-rw-r--r--lt-qcom-debian-images/sdcard.sh67
-rwxr-xr-xlt-qcom-debian-images/submit_for_testing.sh91
-rwxr-xr-xlt-qcom-debian-images/test_submit_for_testing.sh27
-rw-r--r--lt-qcom-linux-aic100.yaml40
-rw-r--r--lt-qcom-linux-aosp.yaml123
-rw-r--r--lt-qcom-linux-aosp/fetch-configs.sh3
-rw-r--r--lt-qcom-linux-aosp/lava-job-definitions/dragonboard410c/template-boot.yaml94
-rw-r--r--lt-qcom-linux-aosp/package-aosp-bootimage.sh6
-rw-r--r--lt-qcom-linux-aosp/publisher_vars_db410c.sh3
-rw-r--r--lt-qcom-linux-aosp/publisher_vars_db820c.sh3
-rw-r--r--lt-qcom-linux-aosp/submit_for_testing.sh30
-rwxr-xr-xlt-qcom-linux-automerge-repo-manifest/builders.sh37
-rw-r--r--lt-qcom-linux-automerge.yaml89
-rwxr-xr-xlt-qcom-linux-automerge/builders-kernel.sh59
-rwxr-xr-xlt-qcom-linux-automerge/builders.sh116
-rw-r--r--lt-qcom-linux-automerge/presend-script.groovy3
-rw-r--r--lt-qcom-linux-build.yaml98
-rw-r--r--lt-qcom-linux-test-integration.yaml (renamed from lt-qcom-linux-integration.yaml)33
-rw-r--r--lt-qcom-linux-test-mainline.yaml (renamed from lt-qcom-linux-mainline.yaml)34
-rw-r--r--lt-qcom-linux-test-release.yaml (renamed from lt-qcom-linux-release.yaml)34
-rwxr-xr-xlt-qcom-linux-test/builders.sh6
-rwxr-xr-xlt-qcom-linux-test/get_latest_testimage.py7
-rwxr-xr-xlt-qcom-linux-test/kernelci.py64
-rwxr-xr-xlt-qcom-linux-test/linaroci.py124
-rwxr-xr-xlt-qcom-linux-test/submit_for_testing.sh192
-rwxr-xr-xlt-qcom-linux-test/test_submit_for_testing.sh2
-rw-r--r--lt-qcom-linux-testimages-desktop.yaml112
-rw-r--r--lt-qcom-linux-testimages.yaml74
-rw-r--r--lt-qcom-linux.yaml31
-rw-r--r--lt-qcom-linux/aosp_publishers.sh17
-rw-r--r--lt-qcom-linux/builders-deps.sh7
-rw-r--r--lt-qcom-linux/builders.sh34
-rw-r--r--lt-qcom-linux/builders_linaro_ci.sh25
-rw-r--r--lt-qcom-openembedded-meta-qcom-premerge.yaml103
-rw-r--r--lt-qcom-openembedded-rpb-dunfell.yaml124
-rw-r--r--lt-qcom-openembedded-rpb-master.yaml114
-rwxr-xr-xlt-qcom-openembedded/submit_for_testing.sh94
-rwxr-xr-xlt-qcom-openembedded/test_submit_for_testing.sh24
-rw-r--r--lt-qcom-u-boot.yaml81
-rw-r--r--lt-qcom-u-boot/builders.sh51
-rw-r--r--lt-qcom-yocto-meta-qcom-master.yaml74
-rw-r--r--lt-qcom/builders-deps.sh4
-rw-r--r--lt-qcom/lava-job-definitions/devices/dragonboard-410c13
-rw-r--r--lt-qcom/lava-job-definitions/devices/dragonboard-820c7
-rw-r--r--lt-qcom/lava-job-definitions/devices/dragonboard-845c17
-rw-r--r--lt-qcom/lava-job-definitions/devices/qcs404-evb-1k11
-rw-r--r--lt-qcom/lava-job-definitions/devices/qcs404-evb-4k11
-rw-r--r--lt-qcom/lava-job-definitions/devices/sdm845-mtp11
l---------lt-qcom/lava-job-definitions/lkft-fastboot.jinja21
l---------lt-qcom/lava-job-definitions/lkft.jinja21
-rw-r--r--lt-qcom/lava-job-definitions/lt-qcom-fastboot.jinja2239
l---------lt-qcom/lava-job-definitions/master.jinja21
-rw-r--r--lt-qcom/lava-job-definitions/testplan/bt.yaml20
-rw-r--r--lt-qcom/lava-job-definitions/testplan/desktop.yaml29
-rw-r--r--lt-qcom/lava-job-definitions/testplan/gst-validate.yaml21
-rw-r--r--lt-qcom/lava-job-definitions/testplan/main.yaml82
-rw-r--r--lt-qcom/lava-job-definitions/testplan/pmwg.yaml86
-rw-r--r--lt-qcom/lava-job-definitions/testplan/ptest.yaml20
-rw-r--r--lt-qcom/lava-job-definitions/testplan/stress.yaml38
-rw-r--r--lt-qcom/lava-job-definitions/testplan/wifi.yaml35
-rw-r--r--lt-qcom/meta-qcom.sh53
-rw-r--r--lt-qcom/publishers.sh7
-rw-r--r--ml-benchmarks.yaml2
-rw-r--r--mmwg-openembedded-dunfell.yaml2
-rw-r--r--mmwg-openembedded-widevine-dunfell.yaml2
-rw-r--r--openembedded-armv8-ilp32.yaml2
-rw-r--r--openembedded-armv8-luv-netboot-next.yaml2
-rw-r--r--openembedded-armv8-luvos-master.yaml2
-rw-r--r--openembedded-armv8-luvos-next.yaml2
-rw-r--r--openembedded-lkft-android-common-4.4-n-release.yaml2
-rw-r--r--openembedded-lkft-android-common-4.4-n.yaml2
-rw-r--r--openembedded-lkft-android-common-4.4-o-release.yaml2
-rw-r--r--openembedded-lkft-android-common-4.4-o.yaml2
-rw-r--r--openembedded-lkft-android-common-4.9-o-release.yaml2
-rw-r--r--openembedded-lkft-android-common-4.9-o.yaml2
-rw-r--r--openembedded-lkft-dlezcano-4.14.yaml2
-rw-r--r--openembedded-lkft-linaro-hikey-stable-4.4.yaml2
-rw-r--r--openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml162
-rw-r--r--openembedded-lkft-linux-developer.yaml260
-rw-r--r--openembedded-lkft-linux-generic.yaml143
-rw-r--r--openembedded-lkft-linux-mainline.yaml190
-rw-r--r--openembedded-lkft-linux-next.yaml186
-rw-r--r--openembedded-lkft-linux-stable-rc-4.14.yaml185
-rw-r--r--openembedded-lkft-linux-stable-rc-4.17.yaml172
-rw-r--r--openembedded-lkft-linux-stable-rc-4.18.yaml172
-rw-r--r--openembedded-lkft-linux-stable-rc-4.19.yaml185
-rw-r--r--openembedded-lkft-linux-stable-rc-4.20.yaml181
-rw-r--r--openembedded-lkft-linux-stable-rc-4.4.yaml177
-rw-r--r--openembedded-lkft-linux-stable-rc-4.9.yaml185
-rw-r--r--openembedded-lkft-linux-stable-rc-5.0.yaml182
-rw-r--r--openembedded-lkft-linux-stable-rc-5.1.yaml182
-rw-r--r--openembedded-lkft-linux-stable-rc-5.10.yaml187
-rw-r--r--openembedded-lkft-linux-stable-rc-5.11.yaml187
-rw-r--r--openembedded-lkft-linux-stable-rc-5.12.yaml187
-rw-r--r--openembedded-lkft-linux-stable-rc-5.2.yaml185
-rw-r--r--openembedded-lkft-linux-stable-rc-5.3.yaml185
-rw-r--r--openembedded-lkft-linux-stable-rc-5.4.yaml185
-rw-r--r--openembedded-lkft-linux-stable-rc-5.5.yaml186
-rw-r--r--openembedded-lkft-linux-stable-rc-5.6.yaml188
-rw-r--r--openembedded-lkft-linux-stable-rc-5.7.yaml188
-rw-r--r--openembedded-lkft-linux-stable-rc-5.8.yaml188
-rw-r--r--openembedded-lkft-linux-stable-rc-5.9.yaml187
-rw-r--r--openembedded-lkft-linux-stable-rc-rocko.yaml2
-rw-r--r--openembedded-lkft-linux-stable-rc-thud.yaml2
-rw-r--r--openembedded-lkft-linux-stable-rt-4.4.yaml176
-rw-r--r--openembedded-lkft-linux-stable-rt-4.9.yaml176
-rw-r--r--openembedded-lkft-lsk-4.14-rt-test.yaml159
-rw-r--r--openembedded-lkft-lsk-4.14-rt.yaml159
-rw-r--r--openembedded-lkft-lsk-4.14-test.yaml159
-rw-r--r--openembedded-lkft-lsk-4.14.yaml159
-rw-r--r--openembedded-lkft-lsk-4.4-rt-test.yaml145
-rw-r--r--openembedded-lkft-lsk-4.4-rt.yaml145
-rw-r--r--openembedded-lkft-lsk-4.4-test.yaml160
-rw-r--r--openembedded-lkft-lsk-4.4.yaml145
-rw-r--r--openembedded-lkft-lsk-4.9-rt-test.yaml159
-rw-r--r--openembedded-lkft-lsk-4.9-rt.yaml159
-rw-r--r--openembedded-lkft-lsk-4.9-test.yaml159
-rw-r--r--openembedded-lkft-lsk-4.9.yaml159
-rw-r--r--openembedded-lkft-sdk.yaml148
-rwxr-xr-xopenembedded-lkft/builders.sh4
-rw-r--r--openembedded-lkft/lava-job-definitions/devices/dragonboard-410c24
-rw-r--r--openembedded-lkft/lava-job-definitions/devices/hi6220-hikey36
-rw-r--r--openembedded-lkft/lava-job-definitions/devices/x157
-rw-r--r--openembedded-lkft/lava-job-definitions/lkft-fastboot.jinja287
-rw-r--r--openembedded-lkft/lava-job-definitions/testplan/kselftests-lkdtm.yaml4
-rwxr-xr-xopenembedded-lkft/submit_for_testing.sh36
-rw-r--r--openembedded-rootfs-external-toolchain.yaml2
-rw-r--r--optee-build.yaml2
-rw-r--r--optee-os.yaml2
-rw-r--r--pfalcon-test.yaml2
-rw-r--r--qa-test-definitions-sanity-check.yaml62
-rw-r--r--qclt.yaml15
-rw-r--r--rpb-debian-iot/hwpacks/linaro-hikey59
-rw-r--r--rpb-kernel-enterprise-deb/build.sh88
-rw-r--r--rpb-openembedded-dunfell-params.yaml.inc27
-rw-r--r--rpb-openembedded-gerrit-premerge-ci.yaml109
-rw-r--r--rpb-openembedded-master-params.yaml.inc27
-rw-r--r--rpb-openembedded-meta-96boards-premerge-ci.yaml114
-rw-r--r--rpb-openembedded-meta-rpb-premerge-ci.yaml114
-rw-r--r--rpb-openembedded-warrior-params.yaml.inc30
-rw-r--r--rpb-openembedded-zeus-params.yaml.inc30
-rw-r--r--rpb-openembedded.yaml115
-rw-r--r--rpb-openembedded/builders-tux.sh121
-rwxr-xr-xrpb-openembedded/builders.sh106
-rw-r--r--rpb-openembedded/lava-job-definitions/qemuarm64_atf_fip/template-boot.yaml2
-rw-r--r--rpb-openembedded/lava-job-definitions/qemuarm64uefi/template-boot.yaml2
-rwxr-xr-xrpb-openembedded/publishers.sh17
-rwxr-xr-xrun-jjb.py112
-rw-r--r--schneider-openembedded-dunfell-4.19.yaml7
-rw-r--r--schneider-openembedded-dunfell-5.10.yaml (renamed from schneider-openembedded-dunfell-5.4-test.yaml)25
-rw-r--r--schneider-openembedded-dunfell-5.4.yaml5
-rw-r--r--schneider-openembedded-sumo.yaml7
-rw-r--r--schneider-openembedded-test-am64x.yaml (renamed from aes-openembedded-rpb-sumo.yaml)85
-rw-r--r--schneider-openembedded-test-notify.yaml2
-rw-r--r--schneider-openembedded-warrior-4.19.yaml7
-rw-r--r--schneider-openembedded-warrior-4.9.yaml7
-rwxr-xr-xschneider-openembedded/builders-test.sh509
-rwxr-xr-xschneider-openembedded/builders.sh157
-rwxr-xr-xschneider-openembedded/cve-summary.sh5
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/dev-image.yaml465
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j17.yaml551
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j21.yaml528
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml684
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22.yaml684
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml685
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23.yaml684
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml684
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24.yaml684
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/ltp-ptest.yaml366
-rw-r--r--schneider-openembedded/lava-job-definitions-test/rzn1d/prod-image.yaml405
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/dev-image.yaml415
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j17.yaml614
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j21.yaml593
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22-mtu1508.yaml617
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22.yaml617
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23-mtu1508.yaml617
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23.yaml617
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24-mtu1508.yaml617
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24.yaml617
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/ltp-ptest.yaml134
-rw-r--r--schneider-openembedded/lava-job-definitions-test/soca9/prod-image.yaml347
-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.yaml3
-rw-r--r--schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml31
-rw-r--r--schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml2
-rw-r--r--schneider-openembedded/lava-job-definitions/soca9/ltp-ptest.yaml2
-rw-r--r--schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml2
-rwxr-xr-xschneider-openembedded/submit_for_testing.sh17
-rwxr-xr-xschneider-openembedded/submit_for_testing_test.sh98
-rw-r--r--sumits-oe.yaml160
-rw-r--r--swarm-demo-factory.yaml2
-rw-r--r--swarm-demo.yaml2
-rw-r--r--systems-diagnostics-amd64.yaml49
-rw-r--r--systems-diagnostics-controller.yaml (renamed from trigger-private-lt-qcom-ci-job-configs.yaml)43
-rw-r--r--systems-diagnostics-linarocp.yaml49
-rw-r--r--tcwg-abe-extended.yaml4
-rwxr-xr-xtcwg-abe-extended/builders.sh14
-rw-r--r--tcwg-abe-test.yaml6
-rw-r--r--tcwg-abe-tested.yaml29
-rw-r--r--tcwg-backport.yaml2
-rw-r--r--tcwg-benchmark-compare.yaml91
-rw-r--r--tcwg-benchmark-sq.yaml249
-rw-r--r--tcwg-benchmark-stm32.yaml248
-rw-r--r--tcwg-benchmark-tk1.yaml248
-rw-r--r--tcwg-benchmark-tx1.yaml249
-rw-r--r--tcwg-benchmark.yaml212
-rw-r--r--tcwg-benchmark.yaml.in366
-rw-r--r--tcwg-benchmark/tcwg-benchmark-sq.def2
-rw-r--r--tcwg-benchmark/tcwg-benchmark-stm32.def2
-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.def3
-rw-r--r--tcwg-benchmark/tcwg-benchmark_backend.def3
-rw-r--r--tcwg-benchmark_backend.yaml351
-rw-r--r--tcwg-binutils.yaml204
-rw-r--r--tcwg-buildapp.yaml141
-rw-r--r--tcwg-buildfarm-cmp.yaml185
-rw-r--r--tcwg-buildfarm.yaml24
-rw-r--r--tcwg-buildslave-command.yaml3
-rw-r--r--tcwg-check-ci-jobs-vs-yaml.yaml66
-rwxr-xr-xtcwg-check-ci-jobs-vs-yaml/tcwg-check-ci-jobs-vs-yaml.sh212
-rw-r--r--tcwg-cleanup-stale-containers.yaml19
-rw-r--r--tcwg-cleanup-stale-results.yaml119
-rw-r--r--tcwg-cleanup-stale-results.yaml.in85
-rw-r--r--tcwg-cleanup-stale-results/tcwg-cleanup-stale-results.def1
-rw-r--r--tcwg-cleanup-stale-workspaces.yaml79
-rw-r--r--tcwg-compare-results-gerrit.yaml2
-rw-r--r--tcwg-compare-results.yaml2
-rw-r--r--tcwg-dev-build.yaml.in282
-rw-r--r--tcwg-dev-build/tcwg-gnu-build.def2
-rw-r--r--tcwg-dev-build/tcwg-llvm-build.def2
-rw-r--r--tcwg-dev-build/tcwg-llvm_woa-build.def2
-rw-r--r--tcwg-dev-builds.yaml.in (renamed from tcwg-gnu-builds.yaml.in)79
-rw-r--r--tcwg-dev-builds/tcwg-gnu-builds.def2
-rw-r--r--tcwg-gcc-bisect.yaml4
-rw-r--r--tcwg-gcc-release-automation.yaml186
-rw-r--r--tcwg-gdb.yaml195
-rw-r--r--tcwg-gnu-build.yaml (renamed from tcwg-dev-build.yaml)69
-rw-r--r--tcwg-gnu-builds.yaml78
-rw-r--r--tcwg-gnu-patch-benchmarking.yaml287
-rw-r--r--tcwg-infra-update-home.yaml80
-rw-r--r--tcwg-llvm-build.yaml185
-rw-r--r--tcwg-llvm-patch-benchmarking.yaml250
-rw-r--r--tcwg-llvm-precommit.yaml2
-rw-r--r--tcwg-llvm-release.yaml28
-rw-r--r--tcwg-llvm-staged-build.yaml4
-rw-r--r--tcwg-llvm-testsuite.yaml4
-rw-r--r--tcwg-llvm_woa-build.yaml81
-rw-r--r--tcwg-lnt-check.yaml77
-rw-r--r--tcwg-lnt-report-check_gcc.yaml38
-rw-r--r--tcwg-lnt-run-spec-codesize.yaml56
-rw-r--r--tcwg-make-and-test-release.yaml186
-rw-r--r--tcwg-make-gcc-release-tag.yaml2
-rw-r--r--tcwg-make-release.yaml388
-rw-r--r--tcwg-make-source-tarball.yaml104
-rw-r--r--tcwg-publish-files.yaml2
-rw-r--r--tcwg-publish-snapshot.yaml2
-rw-r--r--tcwg-reboot.yaml3
-rw-r--r--tcwg-regression-detection.yaml235
-rw-r--r--tcwg-report-stale-rr-jobs.yaml31
-rw-r--r--tcwg-report-stale-rr-jobs.yaml.in26
-rw-r--r--tcwg-sanity-check.yaml.in95
-rw-r--r--tcwg-sanity-check/tcwg-lnt-check.def1
-rw-r--r--tcwg-sanity-check/tcwg-shell-scripts-sanity-check.def1
-rw-r--r--tcwg-shell-scripts-sanity-check.yaml11
-rw-r--r--tcwg-test-release-matrix.yaml182
-rw-r--r--tcwg-test-release.yaml133
-rw-r--r--tcwg-trigger-binutils.yaml98
-rw-r--r--tcwg-trigger-buildapp.yaml54
-rw-r--r--tcwg-trigger-gcc-trunk-ubsan.yaml57
-rw-r--r--tcwg-trigger-gdb.yaml98
-rw-r--r--tcwg-update-bmk-containers.yaml225
-rw-r--r--tcwg-update-bmk_ref.yaml129
-rw-r--r--tcwg-update-buildkite-containers.yaml17
-rw-r--r--tcwg-update-containers.yaml.in443
-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.yaml22
-rw-r--r--tcwg-update-jenkins-containers.yaml195
-rw-r--r--tcwg-update-llvmbot-containers.yaml17
-rw-r--r--tcwg-update-lnt-results.yaml96
-rw-r--r--tcwg-update-lnt-results.yaml.in62
-rw-r--r--tcwg-update-lnt-results/tcwg-update-lnt-results.def (renamed from tcwg-gnu-builds/tcwg-gnu-builds.def)0
-rw-r--r--tcwg-update-snapshots_ref.yaml99
-rw-r--r--tcwg-update-source-caches.yaml.in128
-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-update.yaml.in128
-rw-r--r--tcwg-upstream-monitoring.yaml164
-rw-r--r--tcwg-upstream2gerrit.yaml74
-rw-r--r--tcwg-validate-abetests.yaml2
-rw-r--r--tcwg.yaml67
-rw-r--r--tcwg/default.yaml.inc22
-rwxr-xr-xtcwg/generate-yamlfiles.sh12
-rw-r--r--tcwg/round-robin.yaml.inc1348
-rw-r--r--tcwg_aosp-build.yaml946
-rw-r--r--tcwg_aosp-code_size.yaml949
-rw-r--r--tcwg_aosp.yaml.in101
-rw-r--r--tcwg_aosp/tcwg_aosp-build.def7
-rw-r--r--tcwg_aosp/tcwg_aosp-code_size.def7
-rw-r--r--tcwg_binutils.yaml1274
-rw-r--r--tcwg_bmk-code_size-coremark--gnu_eabi.yaml968
-rw-r--r--tcwg_bmk-code_size-cpu2017fast--gnu.yaml980
-rw-r--r--tcwg_bmk-code_size-cpu2017fast--llvm.yaml952
-rw-r--r--tcwg_bmk-code_size-cpu2017rate--gnu.yaml980
-rw-r--r--tcwg_bmk-code_size-cpu2017rate--llvm.yaml952
-rw-r--r--tcwg_bmk-code_size-spec2k6--gnu.yaml981
-rw-r--r--tcwg_bmk-code_size-spec2k6--llvm.yaml954
-rw-r--r--tcwg_bmk-code_speed-coremark--gnu_eabi.yaml970
-rw-r--r--tcwg_bmk-code_speed-cpu2017rate--gnu.yaml983
-rw-r--r--tcwg_bmk-code_speed-cpu2017rate--llvm.yaml958
-rw-r--r--tcwg_bmk-code_speed-cpu2017speed--gnu.yaml985
-rw-r--r--tcwg_bmk-code_speed-cpu2017speed--llvm.yaml959
-rw-r--r--tcwg_bmk-code_speed-spec2k6--gnu.yaml986
-rw-r--r--tcwg_bmk-code_speed-spec2k6--llvm.yaml961
-rw-r--r--tcwg_bmk-code_sve-cpu2017fast--gnu.yaml978
-rw-r--r--tcwg_bmk-code_vect-cpu2017fast--gnu.yaml978
-rw-r--r--tcwg_bmk-code_vect-cpu2017fast--llvm.yaml950
-rw-r--r--tcwg_bmk-code_vect-cpu2017rate--gnu.yaml978
-rw-r--r--tcwg_bmk-code_vect-cpu2017rate--llvm.yaml950
-rw-r--r--tcwg_bmk-code_vect-spec2k6--gnu.yaml979
-rw-r--r--tcwg_bmk-code_vect-spec2k6--llvm.yaml952
-rw-r--r--tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.yaml978
-rw-r--r--tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.yaml951
-rw-r--r--tcwg_bmk-qc_speed-cpu2017rate--gnu.yaml985
-rw-r--r--tcwg_bmk-qc_speed-cpu2017rate--llvm.yaml950
-rw-r--r--tcwg_bmk.yaml.in235
-rw-r--r--tcwg_bmk/tcwg_bmk-code_size-coremark--gnu_eabi.def16
-rw-r--r--tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--gnu.def17
-rw-r--r--tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--llvm.def15
-rw-r--r--tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--gnu.def17
-rw-r--r--tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--llvm.def15
-rw-r--r--tcwg_bmk/tcwg_bmk-code_size-spec2k6--gnu.def18
-rw-r--r--tcwg_bmk/tcwg_bmk-code_size-spec2k6--llvm.def16
-rw-r--r--tcwg_bmk/tcwg_bmk-code_speed-coremark--gnu_eabi.def15
-rw-r--r--tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--gnu.def18
-rw-r--r--tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--llvm.def16
-rw-r--r--tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--gnu.def17
-rw-r--r--tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--llvm.def15
-rw-r--r--tcwg_bmk/tcwg_bmk-code_speed-spec2k6--gnu.def18
-rw-r--r--tcwg_bmk/tcwg_bmk-code_speed-spec2k6--llvm.def16
-rw-r--r--tcwg_bmk/tcwg_bmk-code_sve-cpu2017fast--gnu.def17
-rw-r--r--tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--gnu.def17
-rw-r--r--tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--llvm.def15
-rw-r--r--tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--gnu.def17
-rw-r--r--tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--llvm.def15
-rw-r--r--tcwg_bmk/tcwg_bmk-code_vect-spec2k6--gnu.def18
-rw-r--r--tcwg_bmk/tcwg_bmk-code_vect-spec2k6--llvm.def16
-rw-r--r--tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.def17
-rw-r--r--tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.def15
-rw-r--r--tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--gnu.def18
-rw-r--r--tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--llvm.def15
-rw-r--r--tcwg_bmk_ci.yaml.in223
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_gnu.def6
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def6
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_llvm.def7
-rw-r--r--tcwg_bmk_ci_gnu.yaml563
-rw-r--r--tcwg_bmk_ci_gnu_eabi.yaml560
-rw-r--r--tcwg_bmk_ci_llvm.yaml578
-rw-r--r--tcwg_bmk_dev.yaml.in100
-rw-r--r--tcwg_bmk_dev/tcwg_bmk_dev_gnu.def6
-rw-r--r--tcwg_bmk_dev/tcwg_bmk_dev_llvm.def7
-rw-r--r--tcwg_bmk_dev_gnu.yaml460
-rw-r--r--tcwg_bmk_dev_llvm.yaml465
-rw-r--r--tcwg_bootstrap.yaml1310
-rw-r--r--tcwg_chromium--master.yaml871
-rw-r--r--tcwg_chromium--masterfast.yaml873
-rw-r--r--tcwg_chromium.yaml.in83
-rw-r--r--tcwg_chromium/tcwg_chromium--master.def3
-rw-r--r--tcwg_chromium/tcwg_chromium--masterfast.def3
-rw-r--r--tcwg_cross.yaml511
-rw-r--r--tcwg_gcc.yaml1314
-rw-r--r--tcwg_gdb.yaml1357
-rw-r--r--tcwg_glibc.yaml1364
-rw-r--r--tcwg_gnu.yaml.in373
-rw-r--r--tcwg_gnu/tcwg_binutils.def5
-rw-r--r--tcwg_gnu/tcwg_bootstrap.def5
-rw-r--r--tcwg_gnu/tcwg_cross.def6
-rw-r--r--tcwg_gnu/tcwg_gcc.def6
-rw-r--r--tcwg_gnu/tcwg_gdb.def6
-rw-r--r--tcwg_gnu/tcwg_glibc.def7
-rw-r--r--tcwg_gnu/tcwg_gnu_cross.def10
-rw-r--r--tcwg_gnu/tcwg_gnu_embed.def9
-rw-r--r--tcwg_gnu/tcwg_gnu_mingw.def6
-rw-r--r--tcwg_gnu/tcwg_gnu_native.def11
-rw-r--r--tcwg_gnu_cross.yaml1348
-rw-r--r--tcwg_gnu_embed.yaml1349
-rw-r--r--tcwg_gnu_mingw.yaml1297
-rw-r--r--tcwg_gnu_native.yaml1359
-rw-r--r--tcwg_kernel--gnu.yaml948
-rw-r--r--tcwg_kernel--llvm.yaml948
-rw-r--r--tcwg_kernel-gnu.yaml514
-rw-r--r--tcwg_kernel-llvm.yaml514
-rw-r--r--tcwg_kernel.yaml.in91
-rw-r--r--tcwg_kernel/tcwg_kernel--gnu.def (renamed from tcwg_kernel/tcwg_kernel-gnu.def)2
-rw-r--r--tcwg_kernel/tcwg_kernel--llvm.def (renamed from tcwg_kernel/tcwg_kernel-llvm.def)2
-rw-r--r--tcwg_monitoring.yaml109
-rw-r--r--tcwg_monitoring_disk_users.yaml18
-rw-r--r--tensorflow-asv/thunderx-asv.sh15
-rw-r--r--test-definitions-validation.yaml2
-rw-r--r--testdef-docker-image-armhf.yaml45
-rw-r--r--testdef-docker-image.yaml45
-rw-r--r--trigger-96boards-reference-centos-installer-staging.yaml27
-rw-r--r--trigger-96boards-reference-centos-installer.yaml27
-rw-r--r--trigger-96boards-reference-debian-installer-staging.yaml30
-rw-r--r--trigger-96boards-reference-debian-installer.yaml27
-rw-r--r--trigger-android-weekly-builds.yaml6
-rw-r--r--trigger-ci-job-configs.yaml4
-rw-r--r--trigger-daily.yaml1
-rw-r--r--trigger-hikey-stable.yaml90
-rw-r--r--trigger-ldcg-onednn-benchmarks.yaml23
-rw-r--r--trigger-ldcg-tensorflow-asv-benchmarks.yaml23
-rw-r--r--trigger-ldcg-tensorflow-io.yaml35
-rw-r--r--trigger-ldcg-tensorflow-text.yaml35
-rw-r--r--trigger-linux-stable-rc.yaml94
-rw-r--r--trigger-lkft-android-common-presubmit.yaml70
-rw-r--r--trigger-lkft-android-common-weekly-android11.yaml95
-rw-r--r--trigger-lkft-android-common-weekly.yaml95
-rw-r--r--trigger-lkft-android-common.yaml71
-rw-r--r--trigger-lkft-aosp-common.yaml74
-rw-r--r--trigger-lkft-hikey-4.14.yaml57
-rw-r--r--trigger-lkft-hikey-stable.yaml96
-rw-r--r--trigger-lkft-linaro-hikey.yaml115
-rw-r--r--trigger-lkft-linaro-omap.yaml107
-rw-r--r--trigger-lkft-notify-developer.yaml61
-rw-r--r--trigger-lkft-notify-kselftest-next.yaml2
-rw-r--r--trigger-lkft-omap.yaml106
-rw-r--r--trigger-lkft-prebuilts.yaml81
-rw-r--r--trigger-lt-qcom-bootloaders.yaml47
-rw-r--r--trigger-lt-qcom-debian-sid-images.yaml53
-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-aosp-4.14.0.yaml55
-rw-r--r--trigger-lt-qcom-linux-automerge-repo-manifest.yaml53
-rw-r--r--trigger-lt-qcom-linux-automerge.yaml75
-rw-r--r--trigger-lt-qcom-linux-build.yaml103
-rw-r--r--trigger-lt-qcom-linux-release.yaml87
-rwxr-xr-xtrigger-lt-qcom-linux-release/get_latest_kernel_release_build.py60
-rw-r--r--trigger-lt-qcom-linux.yaml126
-rw-r--r--trigger-lt-qcom-openembedded-images-dunfell.yaml39
-rw-r--r--trigger-lt-qcom-openembedded-images-master.yaml41
-rw-r--r--trigger-lt-qcom-u-boot.yaml59
-rw-r--r--trigger-lt-qcom-yocto-meta-qcom.yaml34
-rw-r--r--trigger-ofp-perf-tests.yaml2
-rw-r--r--trigger-openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml69
-rw-r--r--trigger-openembedded-lkft-linux-devel-ddiaz.yaml66
-rw-r--r--trigger-openembedded-lkft-linux-mainline.yaml49
-rw-r--r--trigger-openembedded-lkft-linux-next.yaml49
-rw-r--r--trigger-openembedded-lkft-linux-stable-rc-ddiaz.yaml62
-rw-r--r--trigger-openembedded-lkft-shuah-next-onmaster.yaml74
-rw-r--r--trigger-private-ci-job-configs.yaml2
-rwxr-xr-xtrigger-private-ci-job-configs/poll-jobs.sh2
-rw-r--r--trigger-qemu-upstream.yaml2
-rw-r--r--trigger-robher-aosp.yaml34
-rw-r--r--trigger-rpb-kernel-noupstream.yaml41
-rw-r--r--trigger-rpb-kernel.yaml41
-rw-r--r--trigger-rpb-openembedded.yaml39
-rw-r--r--trigger-schneider-openembedded-dunfell-rzn1d-4.19.yaml8
-rw-r--r--trigger-schneider-openembedded-dunfell-rzn1d-5.10.yaml202
-rw-r--r--trigger-schneider-openembedded-dunfell-rzn1d-5.4.yaml10
-rw-r--r--trigger-schneider-openembedded-dunfell-soca9-4.19.yaml8
-rw-r--r--trigger-schneider-openembedded-dunfell-soca9-5.10.yaml192
-rw-r--r--trigger-schneider-openembedded-dunfell-soca9-5.4.yaml10
-rw-r--r--trigger-schneider-openembedded-warrior-rzn1d-4.19.yaml8
-rw-r--r--trigger-schneider-openembedded-warrior-soca9-4.19.yaml8
-rw-r--r--trigger-tvm-ci-build.yaml4
-rw-r--r--trigger-zephyr-upstream.yaml2
-rw-r--r--tvm-ci-build.yaml6
-rw-r--r--u-boot-am57xx-evm.yaml2
-rw-r--r--u-boot-upstream.yaml4
-rw-r--r--uadk-openssl.yaml12
-rw-r--r--uadk.yaml4
-rwxr-xr-xuadk/builders-openssl.sh55
-rwxr-xr-xuadk/builders.sh338
-rw-r--r--upload-deb-package.yaml53
-rw-r--r--yocto-check-layer.yaml2
-rw-r--r--zephyr-net.yaml12
-rwxr-xr-xzephyr-net/builders.sh6
-rw-r--r--zephyr-upstream-arm.yaml4
-rw-r--r--zephyr-upstream.yaml11
-rwxr-xr-xzephyr-upstream/builders.sh8
-rw-r--r--zephyr-upstream/submit_for_testing.py3
959 files changed, 55291 insertions, 50137 deletions
diff --git a/96boards-dragonboard410c-android.yaml b/96boards-dragonboard410c-android.yaml
index 069de696f9..79eaafc70d 100644
--- a/96boards-dragonboard410c-android.yaml
+++ b/96boards-dragonboard410c-android.yaml
@@ -9,7 +9,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
parameters:
diff --git a/96boards-dragonboard410c-aosp-master.yaml b/96boards-dragonboard410c-aosp-master.yaml
index baa69a4adc..1b94a3d3df 100644
--- a/96boards-dragonboard410c-aosp-master.yaml
+++ b/96boards-dragonboard410c-aosp-master.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/96boards-dragonboard845c-aosp-master.yaml b/96boards-dragonboard845c-aosp-master.yaml
index dbd7b91a41..ec9f68716b 100644
--- a/96boards-dragonboard845c-aosp-master.yaml
+++ b/96boards-dragonboard845c-aosp-master.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -28,7 +28,7 @@
name: PUB_DEST
default: '96boards/dragonboard845c/linaro/aosp-master/${BUILD_NUMBER}'
disabled: false
- node: docker-xenial-aosp
+ node: docker-focal-aosp
display-name: '96boards - AOSP Master - dragonboard845c'
concurrent: true
triggers:
@@ -50,6 +50,10 @@
- text:
credential-id: AP_KEY
variable: AP_KEY
+ # needed to publish to snapshots
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw:
@@ -69,4 +73,4 @@
- fingerprint:
files: 'build/fingerprints/*'
- email:
- recipients: 'vishal.bhoj@linaro.org fathi.boudra@linaro.org nicolas.dechesne@linaro.org amit.pundir@linaro.org'
+ recipients: 'vishal.bhoj@linaro.org fathi.boudra@linaro.org amit.pundir@linaro.org'
diff --git a/96boards-dragonboard845c-aosp-master/builders.sh b/96boards-dragonboard845c-aosp-master/builders.sh
index 3ed82c76d1..eeb1d01943 100644
--- a/96boards-dragonboard845c-aosp-master/builders.sh
+++ b/96boards-dragonboard845c-aosp-master/builders.sh
@@ -2,18 +2,20 @@
# Install needed packages
sudo apt-get update
-sudo apt-get install -y bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools python-wand rsync liblz4-tool lzop libssl-dev libdrm-intel1 python-pip
-wget -q \
- http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/a/android-tools/android-tools-fsutils_4.2.2+git20130218-3ubuntu41+linaro1_amd64.deb \
- http://old-releases.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u45-b14-1_amd64.deb \
- http://old-releases.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u45-b14-1_amd64.deb \
- http://old-releases.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u45-b14-1_amd64.deb
-sudo dpkg -i --force-all *.deb
-rm -f *.deb
+# Here is for packages not listed by the source.android.com site below.
+# But the following packages might not be really necessary,
+# as the docker image for docker-focal-aosp labelled nodes is linaro/jenkins-amd64-ubuntu:focal
+# which is defined here: https://git.linaro.org/infrastructure/ci-yadp-builder.git/tree/docker_templates_aosp_amd64.yml#n2
+# And the packages listed here might be already defined there.
+sudo apt-get install -y --allow-change-held-packages wget sudo python3 python-is-python3 openjdk-11-jdk-headless
+java -version
+
+## https://source.android.com/docs/setup/start/requirements#hardware-requirements
+sudo apt-get install -y --allow-change-held-packages git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
-# Install jinja2-cli and ruamel.yaml==0.16.13
-pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
+## keep the same package as listed here before
+sudo apt-get install -y python-mako gperf time genisoimage patch mtools rsync liblz4-tool lzop libssl-dev libdrm-intel1 python3-pip
# Set local configuration
git config --global user.email "ci_notify@linaro.org"
@@ -33,11 +35,12 @@ curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
chmod a+x ${HOME}/bin/*
export PATH=${HOME}/bin:${PATH}
-repo init -u https://android.googlesource.com/platform/manifest -b master --repo-branch=master --no-repo-verify
+repo init -u https://android.googlesource.com/platform/manifest -b main --repo-branch=master --no-repo-verify
repo sync -j$(nproc) -c -f
+./device/linaro/dragonboard/fetch-vendor-package.sh
rm -rf build-info
source build/envsetup.sh
-lunch db845c-userdebug
+lunch db845c-trunk_staging-userdebug
make -j$(nproc)
repo manifest -r -o out/target/product/db845c/pinned-manifest.xml
diff --git a/96boards-hikey-aosp-master.yaml b/96boards-hikey-aosp-master.yaml
index c2b921d642..1224a29a82 100644
--- a/96boards-hikey-aosp-master.yaml
+++ b/96boards-hikey-aosp-master.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
parameters:
diff --git a/96boards-hikey-debian.yaml b/96boards-hikey-debian.yaml
deleted file mode 100644
index 285ef84143..0000000000
--- a/96boards-hikey-debian.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
-- job:
- name: 96boards-hikey-debian
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro:
- - job-build
- - job-cancel
- parameters:
- - string:
- name: VENDOR
- default: 'linaro'
- - string:
- name: OS_FLAVOUR
- default: 'stretch'
- - string:
- name: PLATFORM_NAME
- default: 'hikey'
- - string:
- name: ROOTFS
- default: 'developer,1800M'
- - string:
- name: PUB_DEST
- default: '96boards/hikey/${VENDOR}/debian/${BUILD_NUMBER}'
- disabled: false
- node: docker-stretch-arm64
- display-name: 'Debian based images for HiKey'
- scm:
- - git:
- url: https://git.linaro.org/ci/fai.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell:
- !include-raw: 96boards-hikey-debian/builders-fai.sh
- - linaro-publish-token
- - shell: |
- # Publish to snapshots
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- out ${PUB_DEST}
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - rpb-openembedded/postbuild.groovy
- - email:
- recipients: 'riku.voipio@linaro.org manivannan.sadhasivam@linaro.org'
diff --git a/96boards-hikey-linux.yaml b/96boards-hikey-linux.yaml
index fbd220edcf..00311eeea1 100644
--- a/96boards-hikey-linux.yaml
+++ b/96boards-hikey-linux.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -34,7 +34,7 @@
- string:
name: KDEB_CHANGELOG_DIST
default: 'stretch'
- disabled: false
+ disabled: true
node: docker-stretch-arm64
display-name: '96boards-hikey Linux kernel build'
scm:
diff --git a/96boards-hikey-uefi-openplatformpkg.yaml b/96boards-hikey-uefi-openplatformpkg.yaml
deleted file mode 100644
index c29fec61ad..0000000000
--- a/96boards-hikey-uefi-openplatformpkg.yaml
+++ /dev/null
@@ -1,134 +0,0 @@
-- job:
- name: 96boards-hikey-uefi-openplatformpkg
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- disabled: false
- node: docker-stretch-amd64
- display-name: '96boards - HiKey UEFI (OpenPlatformPkg)'
- scm:
- - git:
- url: https://github.com/96boards-hikey/edk2.git
- refspec: +refs/heads/hikey-aosp:refs/remotes/origin/hikey-aosp
- name: origin
- branches:
- - refs/heads/hikey-aosp
- basedir: linaro-edk2
- skip-tag: true
- shallow-clone: true
- clean: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - linaro-publish-token
- - shell: |
- #!/bin/bash
-
- set -ex
-
- trap cleanup_exit INT TERM EXIT
-
- cleanup_exit()
- {
- cd ${WORKSPACE}
- rm -rf arm64-tc
- rm -rf arm-trusted-firmware
- rm -rf linaro-edk2/OpenPlatformPkg
- rm -rf uefi-tools
- rm -rf LinaroPkg
- rm -rf l-loader
- rm -rf out
- }
-
- sudo apt-get update
- sudo apt-get install -y libssl-dev python-requests python-crypto
-
- # sbin isn't in the PATH by default and prevent to find sgdisk
- export PATH="/usr/sbin:/sbin:$PATH"
-
- # Use pre-installed linaro toolchain
- export PATH="${HOME}/srv/toolchain/arm-tc-15.02/bin:${HOME}/srv/toolchain/arm64-tc-15.02/bin:$PATH"
- export CROSS_COMPILE_ta_arm64=aarch64-linux-gnu-
- export CROSS_COMPILE_ta_arm32=arm-linux-gnueabihf-
-
- # Check out arm-trusted-firmware
- git clone -b hikey --depth 1 https://github.com/96boards-hikey/arm-trusted-firmware.git
-
- # Check out OpenPlatformPkg
- git clone -b hikey-aosp --depth 1 https://github.com/96boards-hikey/OpenPlatformPkg.git linaro-edk2/OpenPlatformPkg
-
- git clone -b hikey-aosp --depth 1 https://github.com/96boards-hikey/uefi-tools.git
-
- git clone -b hikey-aosp --depth 1 https://github.com/96boards/LinaroPkg.git
- cp -a LinaroPkg/platforms.config uefi-tools/platforms.config
-
- export AARCH64_TOOLCHAIN=GCC49
- export EDK2_DIR=${WORKSPACE}/linaro-edk2
- export UEFI_TOOLS_DIR=${WORKSPACE}/uefi-tools
- export JENKINS_WORKSPACE=${WORKSPACE}
- unset WORKSPACE
-
- cd ${EDK2_DIR}
- ${UEFI_TOOLS_DIR}/uefi-build.sh -b RELEASE -a ../arm-trusted-firmware hikey
-
- unset WORKSPACE
- export WORKSPACE=${JENKINS_WORKSPACE}
-
- cd ${WORKSPACE}
- mkdir out
- cp -a ${EDK2_DIR}/Build/HiKey/RELEASE_GCC49/FV/*.bin out/
- cp -a ${EDK2_DIR}/Build/HiKey/RELEASE_GCC49/AARCH64/AndroidFastbootApp.efi out/
- # Don't ship BL33_AP_UEFI.fd, mcuimage.bin and tee.bin
- # (already included in the firmware image package - fip)
- #cp -a ${EDK2_DIR}/Build/HiKey/RELEASE_GCC49/FV/*.fd out/
- #cp -a ${EDK2_DIR}/HisiPkg/HiKeyPkg/NonFree/mcuimage.bin out/
-
- # Ship nvme.img with UEFI binaries for convenience
- dd if=/dev/zero of=out/nvme.img bs=128 count=1024
-
- git clone -b master --depth 1 https://github.com/96boards-hikey/l-loader.git
- cd l-loader
- ln -s ${WORKSPACE}/out/bl1.bin
- ln -s ${WORKSPACE}/out/bl2u.bin
- make
- cp -a l-loader.bin ptable*.img ${WORKSPACE}/out/
- cd ${WORKSPACE}
-
- cat > out/HEADER.textile << EOF
- Build information:
- * build: "${BUILD_URL}":${BUILD_URL}
- * UEFI tools git URL: "$(cd uefi-tools && git config remote.origin.url)":$(cd uefi-tools && git config remote.origin.url)
- * UEFI tools git branch: $(cd uefi-tools && git branch | grep -e '*' | cut -d' ' -f2)
- * UEFI tools git commit: $(cd uefi-tools && git log -n1 --pretty=format:%H)
- * EDK2 git URL: "${GIT_URL}":${GIT_URL}
- * EDK2 git branch: ${GIT_BRANCH}
- * EDK2 git commit: ${GIT_COMMIT}
- * ATF git URL: "$(cd arm-trusted-firmware && git config remote.origin.url)":$(cd arm-trusted-firmware && git config remote.origin.url)
- * ATF git branch: $(cd arm-trusted-firmware && git branch | grep -e '*' | cut -d' ' -f2)
- * ATF git commit: $(cd arm-trusted-firmware && git log -n1 --pretty=format:%H)
- * OpenPlatformPkg git URL: "$(cd linaro-edk2/OpenPlatformPkg && git config remote.origin.url)":$(cd linaro-edk2/OpenPlatformPkg && git config remote.origin.url)
- * OpenPlatformPkg git branch: $(cd linaro-edk2/OpenPlatformPkg && git branch | grep -e '*' | cut -d' ' -f2)
- * OpenPlatformPkg git commit: $(cd linaro-edk2/OpenPlatformPkg && git log -n1 --pretty=format:%H)
- EOF
-
- # Publish
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- out 96boards/hikey/linaro/uefi-openplatformpkg/${BUILD_NUMBER}
- publishers:
- - email:
- recipients: 'fathi.boudra@linaro.org haojian.zhuang@linaro.org'
diff --git a/96boards-hikey960-aosp-master.yaml b/96boards-hikey960-aosp-master.yaml
index bfc2e86827..fa980aae46 100644
--- a/96boards-hikey960-aosp-master.yaml
+++ b/96boards-hikey960-aosp-master.yaml
@@ -9,7 +9,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
parameters:
@@ -17,7 +17,7 @@
name: BUILD_CONFIG_FILENAME
default: 'hikey960-aosp-master'
disabled: false
- node: docker-bionic-aosp
+ node: docker-focal-aosp
display-name: '96boards - AOSP Master - HiKey960'
concurrent: true
triggers:
@@ -29,24 +29,28 @@
- ssh-agent-credentials:
users:
- '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ # needed to publish to snapshots
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell: |
#!/bin/bash
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
- java -version
- #change to use python3 by default
- if ! python --version|grep 3; then
- sudo rm -fv /usr/bin/python && sudo ln -s /usr/bin/python3 /usr/bin/python
- fi
-
sudo apt-get update
- sudo apt-get install -y gcc-4.9-multilib bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools pxz
- wget -q http://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u45-b14-1_amd64.deb \
- http://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u45-b14-1_amd64.deb \
- http://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u45-b14-1_amd64.deb
- sudo dpkg -i --force-all *.deb
+ # Here is for packages not listed by the source.android.com site below.
+ # But the following packages might not be really necessary,
+ # as the docker image for docker-focal-aosp labelled nodes is linaro/jenkins-amd64-ubuntu:focal
+ # which is defined here: https://git.linaro.org/infrastructure/ci-yadp-builder.git/tree/docker_templates_aosp_amd64.yml#n2
+ # And the packages listed here might be already defined there.
+ sudo apt-get install -y --allow-change-held-packages wget sudo python3 python-is-python3 openjdk-11-jdk-headless git gperf python-mako time genisoimage patch mtools
+ java -version
+
+ ## https://source.android.com/docs/setup/start/requirements#hardware-requirements
+ sudo apt-get install -y --allow-change-held-packages git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
mkdir -p ${HOME}/bin ${WORKSPACE}/build/out
curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
@@ -65,33 +69,24 @@
# Runs as ubuntu
set -xe
- rm -rf build-tools jenkins-tools build/out build/android-patchsets build-configs
- git clone --depth 1 https://git.linaro.org/infrastructure/linaro-android-build-tools.git build-tools
- git clone --depth 1 https://git.linaro.org/infrastructure/linaro-jenkins-tools.git jenkins-tools
- git clone --depth 1 http://android-git.linaro.org/git/android-build-configs.git build-configs
-
export BUILD_CONFIG_FILENAME=${BUILD_CONFIG_FILENAME:-${JOB_NAME#android-*}}
- cat << EOF > config.txt
- BUILD_CONFIG_REPO=http://android-git.linaro.org/git/android-build-configs.git
- BUILD_CONFIG_BRANCH=master
- EOF
- echo config.txt
- export CONFIG=`base64 -w 0 config.txt`
-
# Download vendor binaries for hikey.
mkdir -p build
# Delete sources before build to save space
cd build/
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* clang-src hikey-linaro/configs
- cd -
-
- build-tools/node/build us-east-1.ec2-git-mirror.linaro.org "${CONFIG}"
- cp -a /home/buildslave/srv/aosp-master/build/out/*.xml /home/buildslave/srv/aosp-master/build/out/*.json ${WORKSPACE}/
+ rm -fr android-build-configs android-patchsets
+ # to build with clean environment, and it helps make sure
+ # there will be only one pinned-manifest under out/pinned-manifest/
+ rm -fr out
+ git clone --depth 1 http://android-git.linaro.org/git/android-build-configs.git android-build-configs
+ ./android-build-configs/linaro-build.sh -c ${BUILD_CONFIG_FILENAME}
+ cp -a out/pinned-manifest/*-pinned-manifest.xml "${WORKSPACE}/pinned-manifest.xml"
+ cp -a out/target/product/hikey960/*.json ${WORKSPACE}/
- cd /home/buildslave/srv/aosp-master/build/
source build/envsetup.sh
- lunch hikey960-userdebug
+ lunch hikey960-trunk_staging-userdebug
sed -i "s/eng.\`whoami\`/${BUILD_NUMBER}/g" device/linaro/hikey/factory-images/generate-factory-images-hikey960.sh
sed -i "s/target\/product\/hikey960//g" device/linaro/hikey/factory-images/generate-factory-images-hikey960.sh
cd -
@@ -107,37 +102,10 @@
pushd /home/buildslave/srv/aosp-master/build/out/
for img in "boot.img dt.img vendor.img system.img userdata.img super.img"; do
- pxz -9 $img
+ xz -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 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/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/
+ cp -a pinned-manifest/*-pinned-manifest.xml "dist/pub/pinned-manifest.xml"
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/96boards-qrb5165-rb5-aosp-master/builders.sh b/96boards-qrb5165-rb5-aosp-master/builders.sh
new file mode 100644
index 0000000000..1e47960e9e
--- /dev/null
+++ b/96boards-qrb5165-rb5-aosp-master/builders.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# Install needed packages
+sudo apt-get update
+sudo apt-get install -y bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools python-wand rsync liblz4-tool lzop libssl-dev libdrm-intel1 python-pip
+
+wget -q \
+ http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/a/android-tools/android-tools-fsutils_4.2.2+git20130218-3ubuntu41+linaro1_amd64.deb \
+ http://old-releases.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u45-b14-1_amd64.deb \
+ http://old-releases.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u45-b14-1_amd64.deb \
+ http://old-releases.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u45-b14-1_amd64.deb
+sudo dpkg -i --force-all *.deb
+rm -f *.deb
+
+# FIXME jinja2-cli and ruamel.yaml==0.16.13 installer is broken
+# Install jinja2-cli and ruamel.yaml==0.16.13
+#pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
+
+# Set local configuration
+git config --global user.email "ci_notify@linaro.org"
+git config --global user.name "Linaro CI"
+java -version
+
+BUILD_DIR=aosp-master/build
+if [ ! -d "/home/buildslave/srv/${BUILD_DIR}" ]; then
+ sudo mkdir -p /home/buildslave/srv/${BUILD_DIR}
+ sudo chmod 777 /home/buildslave/srv/${BUILD_DIR}
+fi
+cd /home/buildslave/srv/${BUILD_DIR}
+
+# Download helper scripts (repo)
+mkdir -p ${HOME}/bin
+curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
+chmod a+x ${HOME}/bin/*
+export PATH=${HOME}/bin:${PATH}
+
+repo init -u https://android.googlesource.com/platform/manifest -b main --repo-branch=master --no-repo-verify
+repo sync -j$(nproc) -c -f
+./device/linaro/dragonboard/fetch-vendor-package.sh
+rm -rf build-info
+source build/envsetup.sh
+lunch rb5-userdebug
+make -j$(nproc)
+repo manifest -r -o out/target/product/rb5/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 ${PWD}/out/target/product/rb5/BUILD-INFO.txt
+
+# Publish parameters
+cat << EOF > ${WORKSPACE}/publish_parameters
+PUB_DEST=96boards/qrb5165-rb5/linaro/aosp-master/${BUILD_NUMBER}
+PUB_SRC=${PWD}/out/target/product/rb5/
+PUB_EXTRA_INC=^[^/]+\.(dtb|dtbo|zip)$|MLO|vmlinux|System.map
+EOF
diff --git a/96boards-reference-platform-aosp-db410c.yaml b/96boards-reference-platform-aosp-db410c.yaml
index d008bb5d17..93d698586d 100644
--- a/96boards-reference-platform-aosp-db410c.yaml
+++ b/96boards-reference-platform-aosp-db410c.yaml
@@ -9,7 +9,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
disabled: true
diff --git a/96boards-reference-uefi-staging.yaml b/96boards-reference-uefi-staging.yaml
index 245168148e..612249ce30 100644
--- a/96boards-reference-uefi-staging.yaml
+++ b/96boards-reference-uefi-staging.yaml
@@ -11,7 +11,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -47,7 +47,7 @@
type: slave
name: label
values:
- - docker-stretch-amd64
+ - docker-buster-amd64
execution-strategy:
sequential: false
wrapper:
diff --git a/android-clang-toolchain.yaml b/android-clang-toolchain.yaml
index 18891b5135..b565d739b3 100644
--- a/android-clang-toolchain.yaml
+++ b/android-clang-toolchain.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-cts.yaml b/android-cts.yaml
deleted file mode 100644
index dbc99377ff..0000000000
--- a/android-cts.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-- job:
- name: android-cts
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 365
- num-to-keep: 60
- parameters:
- - string:
- name: ANDROID_MANIFEST_URL
- default: https://android.googlesource.com/platform/manifest
- - string:
- name: MANIFEST_BRANCH
- default: android-cts-10.0_r1
- - string:
- name: LUNCH_TARGET
- default: aosp_arm64-userdebug
- - string:
- name: PATCHSETS
- default: 'cts-lkft'
- disabled: false
- node: docker-bionic-aosp
- display-name: 'Android CTS Build'
- concurrent: true
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- builders:
- !include: android-cts/builders.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-cts/builders.sh b/android-cts/builders.sh
index 1abf089e5b..82337f35b7 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-gcc-toolchain.yaml b/android-gcc-toolchain.yaml
index 9ca93dc690..f60a19f2ff 100644
--- a/android-gcc-toolchain.yaml
+++ b/android-gcc-toolchain.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-generic-build.yaml b/android-generic-build.yaml
index 5adfd512c2..e6bbc2e2a4 100644
--- a/android-generic-build.yaml
+++ b/android-generic-build.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-hikey-linaro-4.14-pmwg.yaml b/android-hikey-linaro-4.14-pmwg.yaml
index a23c2c7026..a26aee0224 100644
--- a/android-hikey-linaro-4.14-pmwg.yaml
+++ b/android-hikey-linaro-4.14-pmwg.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey-linaro-4.9-pmwg.yaml b/android-hikey-linaro-4.9-pmwg.yaml
index d22bacc818..10b755770b 100644
--- a/android-hikey-linaro-4.9-pmwg.yaml
+++ b/android-hikey-linaro-4.9-pmwg.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey-optee-master.yaml b/android-hikey-optee-master.yaml
index 3ae9a59dcd..03dd404792 100644
--- a/android-hikey-optee-master.yaml
+++ b/android-hikey-optee-master.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-hikey-optee-o-clearkey-cdmi.yaml b/android-hikey-optee-o-clearkey-cdmi.yaml
index 3a72c2d58f..870c32ec32 100644
--- a/android-hikey-optee-o-clearkey-cdmi.yaml
+++ b/android-hikey-optee-o-clearkey-cdmi.yaml
@@ -4,7 +4,7 @@
defaults: global
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey-optee-o-clearkeydrmplugin.yaml b/android-hikey-optee-o-clearkeydrmplugin.yaml
index 71059842e2..569e577dab 100644
--- a/android-hikey-optee-o-clearkeydrmplugin.yaml
+++ b/android-hikey-optee-o-clearkeydrmplugin.yaml
@@ -4,7 +4,7 @@
defaults: global
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey-optee-o-playready.yaml b/android-hikey-optee-o-playready.yaml
index c6f720d638..5030709daf 100644
--- a/android-hikey-optee-o-playready.yaml
+++ b/android-hikey-optee-o-playready.yaml
@@ -4,7 +4,7 @@
defaults: global
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey-optee-o-widevine.yaml b/android-hikey-optee-o-widevine.yaml
index 576971e502..94e3e131df 100644
--- a/android-hikey-optee-o-widevine.yaml
+++ b/android-hikey-optee-o-widevine.yaml
@@ -4,7 +4,7 @@
defaults: global
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey-optee-o.yaml b/android-hikey-optee-o.yaml
index 141bb0220a..4e851c0927 100644
--- a/android-hikey-optee-o.yaml
+++ b/android-hikey-optee-o.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-hikey-optee-p.yaml b/android-hikey-optee-p.yaml
index e05e88eaf8..ea3f3ea034 100644
--- a/android-hikey-optee-p.yaml
+++ b/android-hikey-optee-p.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-hikey960-linaro-4.14-pmwg.yaml b/android-hikey960-linaro-4.14-pmwg.yaml
index 760ecaabfc..8b1bc21997 100644
--- a/android-hikey960-linaro-4.14-pmwg.yaml
+++ b/android-hikey960-linaro-4.14-pmwg.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey960-linaro-4.9-pmwg.yaml b/android-hikey960-linaro-4.9-pmwg.yaml
index e3dd55325d..d13dab89a5 100644
--- a/android-hikey960-linaro-4.9-pmwg.yaml
+++ b/android-hikey960-linaro-4.9-pmwg.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/android-hikey960-optee-p.yaml b/android-hikey960-optee-p.yaml
index ad024aa0a3..aaa47c76d1 100644
--- a/android-hikey960-optee-p.yaml
+++ b/android-hikey960-optee-p.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-imx8m.yaml b/android-imx8m.yaml
index bd44219b31..e54509c034 100644
--- a/android-imx8m.yaml
+++ b/android-imx8m.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-lcr-reference-am65x-p-auto.yaml b/android-lcr-reference-am65x-p-auto.yaml
deleted file mode 100644
index c7d0a995d7..0000000000
--- a/android-lcr-reference-am65x-p-auto.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-- job:
- name: android-lcr-reference-am65x-p-auto
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-am65x-p-auto'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'TOBEDELETED: Reference LCR Android Pie build for AM65X Automotive'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'am65x-p-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'P-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'ti.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-am65x-p-auto'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/am65x/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-am65x-p.yaml b/android-lcr-reference-am65x-p.yaml
deleted file mode 100644
index 3da6bfa185..0000000000
--- a/android-lcr-reference-am65x-p.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-- job:
- name: android-lcr-reference-am65x-p
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-am65x-p'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'TOBEDELETED: Reference LCR Android Pie build for AM65X'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'am65x-p-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'P-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'ti.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-am65x-p'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/am65x/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey-master-auto.yaml b/android-lcr-reference-hikey-master-auto.yaml
deleted file mode 100644
index 9d1ce56265..0000000000
--- a/android-lcr-reference-hikey-master-auto.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-- job:
- name: android-lcr-reference-hikey-master-auto
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey-master-auto'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'TOBEDELETED: AOSP master build for HiKey Auto'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-hikey960-master-auto'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-auto.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey-master-auto'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey-master-premerge-ci.yaml b/android-lcr-reference-hikey-master-premerge-ci.yaml
deleted file mode 100644
index fec30e623e..0000000000
--- a/android-lcr-reference-hikey-master-premerge-ci.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-- job:
- name: android-lcr-reference-hikey-master-premerge-ci
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: BUILD_CONFIG_FILENAME
- default: lcr-reference-hikey-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey-master-premerge'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'TOBEDELETED: Premerge CI job to test patch for HiKey AOSP Master build'
- concurrent: true
- triggers:
- - gerrit:
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: '.*RunMasterPremergeHikeyTests.*'
- server-name: __ANY__
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey-master.yaml b/android-lcr-reference-hikey-master.yaml
deleted file mode 100644
index aff3f5064a..0000000000
--- a/android-lcr-reference-hikey-master.yaml
+++ /dev/null
@@ -1,96 +0,0 @@
-- job:
- name: android-lcr-reference-hikey-master
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey-master'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'TOBEDELETED: AOSP master build for HiKey'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-master-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'MASTER-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey-master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey-o.yaml b/android-lcr-reference-hikey-o.yaml
deleted file mode 100644
index 2c3a725cda..0000000000
--- a/android-lcr-reference-hikey-o.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-- job:
- name: android-lcr-reference-hikey-o
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey-o'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'Reference LCR Android O build for HiKey'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-o-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'get-hikey-blobs'
- - compare-type: 'PLAIN'
- pattern: 'O-RLCR-PATCHSET'
- - compare-type: 'PLAIN'
- pattern: 'hikey-optee-o'
- - compare-type: 'PLAIN'
- pattern: 'hikey-optee-4.9'
- - compare-type: 'PLAIN'
- pattern: 'hikey-clang-4.9'
- - compare-type: 'PLAIN'
- pattern: 'OREO-BOOTTIME-OPTIMIZATIONS-HIKEY'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey-o'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey-p-auto.yaml b/android-lcr-reference-hikey-p-auto.yaml
deleted file mode 100644
index 8b4f314202..0000000000
--- a/android-lcr-reference-hikey-p-auto.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-- job:
- name: android-lcr-reference-hikey-p-auto
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey-p-auto'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Reference LCR Android P build for HiKey Auto'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-hikey960-p-auto'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-auto.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey-p-auto'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey-p.yaml b/android-lcr-reference-hikey-p.yaml
deleted file mode 100644
index 3a514a5e17..0000000000
--- a/android-lcr-reference-hikey-p.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-- job:
- name: android-lcr-reference-hikey-p
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey-p'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Reference LCR Android P build for HiKey'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-hikey960-common-p'
- - compare-type: 'PLAIN'
- pattern: 'hikey-p-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'P-RLCR-PATCHSET'
- - compare-type: 'PLAIN'
- pattern: 'hikey-clang-4.9'
- - compare-type: 'PLAIN'
- pattern: 'hikey-clang-4.14'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey-p'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey-q.yaml b/android-lcr-reference-hikey-q.yaml
deleted file mode 100644
index be351337dc..0000000000
--- a/android-lcr-reference-hikey-q.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-- job:
- name: android-lcr-reference-hikey-q
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey-q'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Android-10 build for HiKey'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey-q'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey960-master-auto.yaml b/android-lcr-reference-hikey960-master-auto.yaml
deleted file mode 100644
index ab97e24395..0000000000
--- a/android-lcr-reference-hikey960-master-auto.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-- job:
- name: android-lcr-reference-hikey960-master-auto
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey960-master-auto'
- disabled: false
- node: docker-bionic-aosp
- display-name: 'AOSP master build for HiKey960-Auto'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-hikey960-master-auto'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey960-auto.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey960-master-auto'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey960-master-car.yaml b/android-lcr-reference-hikey960-master-car.yaml
deleted file mode 100644
index c3eaa052af..0000000000
--- a/android-lcr-reference-hikey960-master-car.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-- job:
- name: android-lcr-reference-hikey960-master-car
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey960-master-car'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'AOSP master build for HiKey960-Car'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey960-master-car'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey960-car.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey960-master-car'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey960-master.yaml b/android-lcr-reference-hikey960-master.yaml
deleted file mode 100644
index a9dc1758a4..0000000000
--- a/android-lcr-reference-hikey960-master.yaml
+++ /dev/null
@@ -1,96 +0,0 @@
-- job:
- name: android-lcr-reference-hikey960-master
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey960-master'
- disabled: false
- node: docker-bionic-aosp
- display-name: 'AOSP master build for HiKey960'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey960-master-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'MASTER-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey960-master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey960-p-auto.yaml b/android-lcr-reference-hikey960-p-auto.yaml
deleted file mode 100644
index f747461d58..0000000000
--- a/android-lcr-reference-hikey960-p-auto.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-- job:
- name: android-lcr-reference-hikey960-p-auto
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey960-p-auto'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Reference LCR Android P build for HiKey960 Auto'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-hikey960-p-auto'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey960-auto.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey960-p-auto'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey960-p.yaml b/android-lcr-reference-hikey960-p.yaml
deleted file mode 100644
index af93e1e4ba..0000000000
--- a/android-lcr-reference-hikey960-p.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-- job:
- name: android-lcr-reference-hikey960-p
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey960-p'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Reference LCR Android P build for HiKey960'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey-hikey960-common-p'
- - compare-type: 'PLAIN'
- pattern: 'hikey960-p-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'P-RLCR-PATCHSET'
- - compare-type: 'PLAIN'
- pattern: 'hikey-clang-4.9'
- - compare-type: 'PLAIN'
- pattern: 'hikey-clang-4.14'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey960-p'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-hikey960-q.yaml b/android-lcr-reference-hikey960-q.yaml
deleted file mode 100644
index a344966155..0000000000
--- a/android-lcr-reference-hikey960-q.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-- job:
- name: android-lcr-reference-hikey960-q
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-hikey960-q'
- disabled: false
- node: docker-bionic-aosp
- display-name: 'Android-10 build for HiKey960'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'hikey.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-hikey960-q'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/hikey/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-juno-o.yaml b/android-lcr-reference-juno-o.yaml
deleted file mode 100644
index d0bac8b8aa..0000000000
--- a/android-lcr-reference-juno-o.yaml
+++ /dev/null
@@ -1,105 +0,0 @@
-- scm:
- name: kernel
- scm:
- - git:
- url: git://git.linaro.org/landing-teams/working/arm/kernel-release.git
- branches:
- - origin/lsk-3.18-armlt
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: firmware
- scm:
- - git:
- url: git://git.linaro.org/arm/vexpress-firmware.git
- branches:
- - origin/juno-recovery-tarball
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- job:
- name: android-lcr-reference-juno-o
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: BUILD_CONFIG_FILENAME
- default: lcr-reference-juno-p
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Reference LCR Android O Build for Juno'
- concurrent: true
- scm:
- - kernel
- - firmware
- triggers:
- - pollscm: "H/5 * * * *"
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'O-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'arm.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'optee.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android/device/linaro/juno'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-juno-p'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- builders:
- !include: android-lcr/juno/builders.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-x15-master-auto.yaml b/android-lcr-reference-x15-master-auto.yaml
deleted file mode 100644
index 69c6f12a19..0000000000
--- a/android-lcr-reference-x15-master-auto.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-- job:
- name: android-lcr-reference-x15-master-auto
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-x15-master-auto'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'AOSP master build for X15 Auto'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15-master-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'x15-master-workarounds-lcr'
- - compare-type: 'PLAIN'
- pattern: 'MASTER-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-x15-master-auto'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/x15/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-x15-master.yaml b/android-lcr-reference-x15-master.yaml
deleted file mode 100644
index 8e6cce0cff..0000000000
--- a/android-lcr-reference-x15-master.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-- job:
- name: android-lcr-reference-x15-master
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: aosp-master
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-x15-master'
- disabled: false
- node: docker-bionic-aosp
- display-name: 'AOSP master build for X15'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15-master-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'x15-master-workarounds-lcr'
- - compare-type: 'PLAIN'
- pattern: 'MASTER-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-x15-master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/x15/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-x15-o-premerge-ci.yaml b/android-lcr-reference-x15-o-premerge-ci.yaml
deleted file mode 100644
index 04f5c84a26..0000000000
--- a/android-lcr-reference-x15-o-premerge-ci.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-- job:
- name: android-lcr-reference-x15-o-premerge-ci
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: BUILD_CONFIG_FILENAME
- default: lcr-reference-x15-o
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Premerge CI job to test patch for X15 R-LCR'
- concurrent: true
- triggers:
- - gerrit:
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: '.*RunPremergeX15Tests.*'
- server-name: __ANY__
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/x15/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-x15-o.yaml b/android-lcr-reference-x15-o.yaml
deleted file mode 100644
index c29bd13896..0000000000
--- a/android-lcr-reference-x15-o.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-- job:
- name: android-lcr-reference-x15-o
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-x15-o'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'Reference LCR Android O build for X15'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15-o-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'O-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-oreo'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-x15-o'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/x15/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-x15-p-auto.yaml b/android-lcr-reference-x15-p-auto.yaml
deleted file mode 100644
index 1d2fc69c69..0000000000
--- a/android-lcr-reference-x15-p-auto.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-- job:
- name: android-lcr-reference-x15-p-auto
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-x15-p-auto'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'TOBEDELETED: Reference LCR Android Pie build for X15 Auto'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15-p-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'P-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'ti.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-x15-p-auto'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/x15/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-x15-p.yaml b/android-lcr-reference-x15-p.yaml
deleted file mode 100644
index a00094f4e1..0000000000
--- a/android-lcr-reference-x15-p.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-- job:
- name: android-lcr-reference-x15-p
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: ART_URL
- default: https://android-qa-reports.linaro.org/api/
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-x15-p'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'TOBEDELETED: Reference LCR Android Pie build for X15'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15-p-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'P-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-p-preview'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'ti.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-x15-p'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/x15/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr-reference-x15-q.yaml b/android-lcr-reference-x15-q.yaml
deleted file mode 100644
index 6b87d5b3e5..0000000000
--- a/android-lcr-reference-x15-q.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-- job:
- name: android-lcr-reference-x15-q
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-extended-read
- - job-cancel
- - build-discarder:
- days-to-keep: 200
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_DIR
- default: r-lcr-oreo
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'lcr-reference-x15-q'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'Android-10 build for X15'
- concurrent: true
- triggers:
- - gerrit:
- server-name: __ANY__
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-patchsets'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'x15-q-workarounds'
- - compare-type: 'PLAIN'
- pattern: 'Q-RLCR-PATCHSET'
- - project-compare-type: 'PLAIN'
- project-pattern: 'device/linaro/common'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-q-preview'
- - project-compare-type: 'PLAIN'
- project-pattern: 'platform/manifest'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'linaro-master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'ti.xml'
- - compare-type: 'PLAIN'
- pattern: 'linaro.xml'
- - compare-type: 'PLAIN'
- pattern: 'update-externals.xml'
- - project-compare-type: 'PLAIN'
- project-pattern: 'android-build-configs'
- branches:
- - branch-compare-type: 'PLAIN'
- branch-pattern: 'master'
- file-paths:
- - compare-type: 'PLAIN'
- pattern: 'lcr-reference-x15-q'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- !include: android-lcr/x15/builders-v2-jinja2.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-lcr/common/builders.sh b/android-lcr/common/builders.sh
index 1567f5e34f..8eba8a6358 100755
--- a/android-lcr/common/builders.sh
+++ b/android-lcr/common/builders.sh
@@ -2,20 +2,17 @@
# Install needed packages
sudo apt-get update
-sudo apt-get install -y bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools python-wand rsync liblz4-tool lzop libssl-dev libdrm-intel1 python-pip python3-pip python-pyelftools python3-pyelftools python-crypto python3-crypto
-wget -q \
- http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/a/android-tools/android-tools-fsutils_4.2.2+git20130218-3ubuntu41+linaro1_amd64.deb \
- http://archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u45-b14-1_amd64.deb \
- http://archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u45-b14-1_amd64.deb \
- http://archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u45-b14-1_amd64.deb
-sudo dpkg -i --force-all *.deb
-rm -f *.deb
+# Here is for packages not listed by the source.android.com site below.
+# But the following packages might not be really necessary,
+# as the docker image for docker-focal-aosp labelled nodes is linaro/jenkins-amd64-ubuntu:focal
+# which is defined here: https://git.linaro.org/infrastructure/ci-yadp-builder.git/tree/docker_templates_aosp_amd64.yml#n2
+# And the packages listed here might be already defined there.
+sudo apt-get install -y --allow-change-held-packages wget sudo python3 python-is-python3 openjdk-11-jdk-headless
+java -version
-#change to use python3 by default
-if ! python --version|grep 3; then
- sudo rm -fv /usr/bin/python && sudo ln -s /usr/bin/python3 /usr/bin/python
-fi
+## https://source.android.com/docs/setup/start/requirements#hardware-requirements
+sudo apt-get install -y --allow-change-held-packages git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
# Install jinja2-cli and ruamel.yaml==0.16.13
pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13 pycryptodome pycryptodomex
diff --git a/android-lmg-vexpress-aosp-master.yaml b/android-lmg-vexpress-aosp-master.yaml
index 0a57e93870..b5a009fd74 100644
--- a/android-lmg-vexpress-aosp-master.yaml
+++ b/android-lmg-vexpress-aosp-master.yaml
@@ -9,7 +9,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
disabled: true
diff --git a/android-master-clang.yaml b/android-master-clang.yaml
index 5ecd8f6488..a88943bc9a 100644
--- a/android-master-clang.yaml
+++ b/android-master-clang.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-r-lcr-manifest.yaml b/android-r-lcr-manifest.yaml
index b74f27b473..df624261d5 100644
--- a/android-r-lcr-manifest.yaml
+++ b/android-r-lcr-manifest.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/android-rockpi-cuttlefish.yaml b/android-rockpi-cuttlefish.yaml
new file mode 100644
index 0000000000..245ea5fd6c
--- /dev/null
+++ b/android-rockpi-cuttlefish.yaml
@@ -0,0 +1,87 @@
+- job:
+ name: android-rockpi-cuttlefish
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 365
+ num-to-keep: 30
+ parameters:
+ - string:
+ name: ANDROID_MANIFEST_URL
+ default: https://android.googlesource.com/platform/manifest
+ - string:
+ name: ANDROID_MANIFEST_BRANCH
+ default: master
+ - string:
+ name: UBOOT_MANIFEST_URL
+ default: https://android.googlesource.com/kernel/manifest/
+ - string:
+ name: UBOOT_MANIFEST_BRANCH
+ default: u-boot-mainline
+ - string:
+ name: KERNEL_MANIFEST_URL
+ default: https://android.googlesource.com/kernel/manifest/
+ - string:
+ name: KERNEL_MANIFEST_BRANCH
+ default: common-android14-5.15
+ - string:
+ name: REPO_PACKAGE_URL
+ default: https://salsa.debian.org/android-tools-team/repo.git
+ - string:
+ name: LOCAL_AOSP_CUTTLEFISH_GIT_URL
+ default: https://git.linaro.org/people/paul.liu/rockpi4cuttlefish/aosp/device/google/cuttlefish.git
+ - string:
+ name: LOCAL_AOSP_CUTTLEFISH_GIT_BRANCH
+ default: paulliu-local-patch
+ - string:
+ name: LOCAL_AOSP_KERNEL_TESTS_GIT_URL
+ default: https://git.linaro.org/people/paul.liu/rockpi4cuttlefish/aosp/kernel/tests.git
+ - string:
+ name: LOCAL_AOSP_KERNEL_TESTS_GIT_BRANCH
+ default: paulliu-local-patch
+ - string:
+ name: LOCAL_KERNEL_COMMON_GIT_URL
+ default: https://git.linaro.org/people/paul.liu/rockpi4cuttlefish/kernel/common.git
+ - string:
+ name: LOCAL_KERNEL_COMMON_GIT_BRANCH
+ default: paulliu-local-patch
+ - string:
+ name: LOCAL_UBOOTMAINLINE_UBOOT_GIT_URL
+ default: https://git.linaro.org/people/paul.liu/rockpi4cuttlefish/u-boot-mainline/u-boot.git
+ - string:
+ name: LOCAL_UBOOTMAINLINE_UBOOT_GIT_BRANCH
+ default: paulliu-local-patch
+ - string:
+ name: LUNCH_TARGET
+ default: aosp_cf_x86_64_phone-userdebug
+ - bool:
+ name: USE_DEBIAN_BACKPORTS
+ default: False
+ - string:
+ name: KERNEL_DIST
+ default: source
+ description: 'source, prebuilt, androidci, androidci-mainline'
+ - string:
+ name: UBOOT_DIST
+ default: source
+ description: 'source, prebuilt, androidci'
+ disabled: false
+ node: docker-bullseye-amd64
+ display-name: 'Android RockPi Cuttlefish Build'
+ concurrent: true
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 500
+ builders:
+ !include: android-rockpi-cuttlefish/builders.yaml.inc
+ publishers:
+ !include: android-rockpi-cuttlefish/publishers.yaml.inc
diff --git a/android-rockpi-cuttlefish/builders.sh b/android-rockpi-cuttlefish/builders.sh
new file mode 100755
index 0000000000..c5c721ad79
--- /dev/null
+++ b/android-rockpi-cuttlefish/builders.sh
@@ -0,0 +1,159 @@
+#!/bin/bash
+
+# Setup environment variables for building Android cuttlefish rockpi
+export PATH=${PATH}:/sbin:/usr/sbin:${HOME}/bin
+export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
+
+# Prepare for building the image
+echo Starting at `date -Iseconds`
+if [[ -d build/aosp ]]; then
+ cd build/aosp
+elif [[ -d aosp ]]; then
+ cd aosp
+fi
+
+mkdir -p ../output/host/image
+rm -f ../output/host/image/*
+
+source build/envsetup.sh
+lunch ${LUNCH_TARGET}
+
+wget -q https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/android-lcr/generic/build-info/public-template.txt -O ../pub/BUILD-INFO.txt
+
+# Build u-boot
+if [ x"${UBOOT_DIST}" = x"source" ]; then
+ pushd ../u-boot-mainline
+ ./tools/bazel run --jobs=1 --curses=no --color=no //u-boot:rockpi4_dist
+ popd
+fi
+
+# Build kernel
+if [ x"${KERNEL_DIST}" = x"source" ]; then
+ pushd ../kernel
+ ./tools/bazel run --curses=no --color=no //common:rockpi4_dist
+ popd
+fi
+
+# Build image
+if [ x"${UBOOT_DIST}" = x"prebuilt" -a x"${KERNEL_DIST}" = x"prebuilt" ]; then
+ ./device/google/cuttlefish/tools/create_base_image_arm.sh \
+ ../output/host/image/test.img
+else
+ UBOOT_DIST_DIR="device/google/cuttlefish_prebuilts/bootloader/rockpi_aarch64"
+ KERNEL_DIST_DIR="device/google/cuttlefish_prebuilts/kernel/5.15-arm64-rockpi"
+ if [ x"${UBOOT_DIST}" = x"source" ]; then
+ UBOOT_DIST_DIR="../u-boot-mainline/out/u-boot-mainline/dist"
+ elif [ x"${UBOOT_DIST}" = x"androidci" ]; then
+ UBOOT_DIST_DIR="../u-boot-androidci"
+ fi
+
+ if [ x"${KERNEL_DIST}" = x"source" ]; then
+ KERNEL_DIST_DIR=$(echo ../kernel/out/rockpi4/dist)
+ elif [ x"${KERNEL_DIST}" = x"androidci" -o x"${KERNEL_DIST}" = x"androidci-mainline" ]; then
+ KERNEL_DIST_DIR="../kernel-androidci"
+ fi
+
+ ./device/google/cuttlefish/tools/create_base_image_arm.sh \
+ "${UBOOT_DIST_DIR}" "${KERNEL_DIST_DIR}" \
+ ../output/host/image/test.img
+fi
+
+# Sanity Check
+
+SANITYCHECKTMPDIR=$(mktemp -d)
+
+## check if image exist.
+if [[ ! -e ../output/host/image/test.img ]]; then
+ echo "Check: Error: image is not generated. Failed."
+ exit 1
+fi
+
+## check image size. Should be at least 16MB.
+imagesize=$(stat -c %s "../output/host/image/test.img")
+if [[ ${imagesize} -lt 16777216 ]]; then
+ echo "Check: Error: image size too small. Failed."
+ exit 1
+fi
+
+## check if TPL is in the image. idbloader is put on sector 64. However
+## the header is encrypted. By offset 0x800 there is TPL, we can verify it.
+## TPL will start with "RK33" as magic number.
+dd if="../output/host/image/test.img" of="${SANITYCHECKTMPDIR}/tplrk33" \
+ bs=1 skip=34816 count=4
+echo -n "RK33" > "${SANITYCHECKTMPDIR}/rk33"
+if ! cmp -s "${SANITYCHECKTMPDIR}/tplrk33" "${SANITYCHECKTMPDIR}/rk33"; then
+ echo "Check: Error: didn't found TPL"
+ exit 1
+fi
+
+## check if U-boot.itb is in place located at sector 0x4000. Since it is
+## an itb file the magic number is "d00dfeed".
+dd if="../output/host/image/test.img" of="${SANITYCHECKTMPDIR}/uboothead" \
+ bs=1 skip=8388608 count=4
+printf '\xd0\x0d\xfe\xed' > "${SANITYCHECKTMPDIR}/d00dfeed"
+if ! cmp -s "${SANITYCHECKTMPDIR}/uboothead" "${SANITYCHECKTMPDIR}/d00dfeed"; then
+ echo "Check: Error: didn't found U-boot"
+ exit 1
+fi
+
+rm -rf "${SANITYCHECKTMPDIR}"
+
+# Generate simg
+image="../output/host/image/test-e.img"
+cp -f "../output/host/image/test.img" "${image}"
+rootfs_partition=7
+disksize=$(stat -c %s ${image})
+targetsize=$((14*1024*1024*1024))
+if [ ${disksize} -lt ${targetsize} ]; then
+ truncate -s "${targetsize}" "${image}"
+ sgdisk -e ${image}
+ sgdisk --delete=${rootfs_partition} ${image}
+ sgdisk --new=${rootfs_partition}:145M:0 --typecode=${rootfs_partition}:8305 --change-name=${rootfs_partition}:rootfs --attributes=${rootfs_partition}:set:2 ${image}
+ sgdisk -e ${image}
+ rootfs_partition_start=$(partx -g -o START -s -n "${rootfs_partition}" "${image}" | xargs)
+ rootfs_partition_end=$(partx -g -o END -s -n "${rootfs_partition}" "${image}" | xargs)
+ rootfs_partition_num_sectors=$((${rootfs_partition_end} - ${rootfs_partition_start} + 1))
+ rootfs_partition_offset=$((${rootfs_partition_start} * 512))
+ rootfs_partition_size=$((${rootfs_partition_num_sectors} * 512))
+ e2fsck -fy "${image}"?offset=${rootfs_partition_offset}
+ resize2fs "${image}"?offset=${rootfs_partition_offset} ${rootfs_partition_num_sectors}s
+ truncate -s "${targetsize}" "${image}"
+ sgdisk -e ${image}
+ e2fsck -fy "${image}"?offset=${rootfs_partition_offset}
+fi
+img2simg "${image}" ../output/host/image/test.simg
+rm -f "${image}"
+
+# Publish
+xz -9e ../output/host/image/test.img
+xz -9e ../output/host/image/test.simg
+
+if [[ -d ../pub ]]; then
+ cp ../output/host/image/test.img.xz ../pub/
+ cp ../output/host/image/test.simg.xz ../pub/
+else
+ echo "Didn't publish test.img.xz because publish directory is not exist."
+fi
+
+# Delete sources after build to save space
+if [[ -z "${KEEP_SOURCE_CODE}" ]]; then
+ 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* ../output
+ rm -fr .repo
+fi
+
+cd ..
+
+# need to convert '_' to '-'
+# otherwise, aosp_arm64-userdebug will be translated to '~aosp/arm64-userdebug'
+# when upload to snapshot.linaro.org via linaro-cp.py
+# like reported here:
+# https://ci.linaro.org/job/android-cts/20/console
+lunch_target_str=$(echo ${LUNCH_TARGET}|tr '_' '-')
+# Publish parameters
+if [[ -d ${WORKSPACE} ]]; then
+cat << EOF > ${WORKSPACE}/publish_parameters
+PUB_SRC=${PWD}/pub
+PUB_DEST=/android/${JOB_NAME}/${lunch_target_str}/${BUILD_NUMBER}/${ANDROID_MANIFEST_BRANCH}
+PUB_EXTRA_INC=^[^/]+xz
+EOF
+fi
diff --git a/android-rockpi-cuttlefish/builders.yaml.inc b/android-rockpi-cuttlefish/builders.yaml.inc
new file mode 100644
index 0000000000..d2d8c78249
--- /dev/null
+++ b/android-rockpi-cuttlefish/builders.yaml.inc
@@ -0,0 +1,10 @@
+ - shell:
+ !include-raw:
+ - android-rockpi-cuttlefish/downloader.sh
+ - android-rockpi-cuttlefish/builders.sh
+ - inject:
+ properties-file: publish_parameters
+ - linaro-publish-token
+ - shell:
+ !include-raw:
+ - android/linaro-publisher.sh
diff --git a/android-rockpi-cuttlefish/downloader.sh b/android-rockpi-cuttlefish/downloader.sh
new file mode 100755
index 0000000000..80b1f25079
--- /dev/null
+++ b/android-rockpi-cuttlefish/downloader.sh
@@ -0,0 +1,211 @@
+#!/bin/bash
+
+# Install needed packages
+sudo apt-get update
+sudo apt-get install -y unattended-upgrades
+sudo unattended-upgrades --verbose
+if [ x"${USE_DEBIAN_BACKPORTS}" = x"1" -o x"${USE_DEBIAN_BACKPORTS}" = x"True" ]; then
+ echo "deb http://deb.debian.org/debian bullseye-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
+ sudo apt-get update
+ sudo unattended-upgrades --verbose
+fi
+sudo apt-get install -y curl rsync wget onionshare
+sudo apt-get install -y lz4 cpio xz-utils zstd p7zip-full
+sudo apt-get install -y gcc-aarch64-linux-gnu gcc-arm-none-eabi
+if [ x"${USE_DEBIAN_BACKPORTS}" = x"1" -o x"${USE_DEBIAN_BACKPORTS}" = x"True" ]; then
+ sudo apt-get install -y -t bullseye-backports qemu-user-static
+ sudo apt-get install -y -t bullseye-backports qemu-system-arm
+else
+ sudo apt-get install -y qemu-user-static
+ sudo apt-get install -y qemu-system-arm
+fi
+if [ x"${USE_DEBIAN_BACKPORTS}" = x"1" -o x"${USE_DEBIAN_BACKPORTS}" = x"True" ]; then
+ sudo apt-get install -y -t bullseye-backports debootstrap arch-test
+else
+ sudo apt-get install -y debootstrap arch-test
+fi
+sudo apt-get install -y procps gdisk dosfstools
+sudo apt-get install -y git-buildpackage equivs pristine-tar
+sudo apt-get install -y android-sdk-libsparse-utils
+sudo apt-get install -y bc flex bison
+sudo apt-get install -y e2tools efitools dfu-util
+sudo apt-get install -y tree sharutils device-tree-compiler
+sudo apt-get install -y libssl-dev openssl
+sudo apt-get install -y gnutls-dev
+
+# Download helper scripts (repo)
+mkdir -p ${HOME}/bin
+mkdir -p repo_build_space
+pushd repo_build_space
+gbp clone ${REPO_PACKAGE_URL}
+pushd repo
+sudo mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
+gbp buildpackage --git-ignore-new --git-builder="debuild --no-lintian --set-envvar=DEB_BUILD_OPTIONS=nocheck -i -us -uc -b"
+popd
+sudo apt-get install -y -f ./repo_*.deb
+popd
+
+# Setup git config
+git config --global user.email "ci_notify@linaro.org"
+git config --global user.name "Linaro CI"
+
+# change to the build directory to repo sync and build
+mkdir -p build
+pushd build
+
+if [ x"${UBOOT_DIST}" = x"source" ]; then
+ mkdir -p u-boot-mainline
+ pushd u-boot-mainline
+ repo init -u ${UBOOT_MANIFEST_URL} -b ${UBOOT_MANIFEST_BRANCH}
+ repo sync
+ popd
+elif [ x"${UBOOT_DIST}" = x"androidci" ]; then
+ mkdir -p u-boot-androidci
+ rm -f u-boot-androidci/*
+
+ GRIDURL="https://ci.android.com/builds/branches/aosp_u-boot-mainline/grid?"
+ URL=https://ci.android.com/builds/latest/branches/aosp_u-boot-mainline/targets/u-boot_rockpi4/view/BUILD_INFO
+
+ RURL=$(curl -Ls -o /dev/null -w %{url_effective} ${URL})
+
+ wget -O u-boot-androidci/idbloader.img \
+ -nv ${RURL%/view/BUILD_INFO}/raw/idbloader.img
+ wget -O u-boot-androidci/u-boot.itb \
+ -nv ${RURL%/view/BUILD_INFO}/raw/u-boot.itb
+fi
+
+if [ x"${KERNEL_DIST}" = x"source" ]; then
+ mkdir -p kernel
+ pushd kernel
+ repo init -u ${KERNEL_MANIFEST_URL} -b ${KERNEL_MANIFEST_BRANCH}
+ repo sync
+ popd
+elif [ x"${KERNEL_DIST}" = x"androidci" -o x"${KERNEL_DIST}" = x"androidci-mainline" ]; then
+ mkdir -p kernel-androidci
+ GRIDURL="https://ci.android.com/builds/branches/aosp_kernel-common-android14-5.15/grid?"
+ URL=https://ci.android.com/builds/latest/branches/aosp_kernel-common-android14-5.15/targets/kernel_rockpi4/view/BUILD_INFO
+
+ if [ x"${KERNEL_DIST}" = x"androidci-mainline" ]; then
+ GRIDURL="https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid?"
+ URL=https://ci.android.com/builds/latest/branches/aosp_kernel-common-android-mainline/targets/kernel_rockpi4/view/BUILD_INFO
+ fi
+
+ RURL=$(curl -Ls -o /dev/null -w %{url_effective} ${URL})
+
+ rm -f kernel-androidci/*
+
+ wget -O kernel-androidci/BUILD_INFO \
+ -nv ${RURL%/view/BUILD_INFO}/raw/BUILD_INFO
+ wget -O kernel-androidci/Image -nv ${RURL%/view/BUILD_INFO}/raw/Image
+ wget -O kernel-androidci/initramfs.img \
+ -nv ${RURL%/view/BUILD_INFO}/raw/initramfs.img
+ wget -O kernel-androidci/rk3399-rock-pi-4b.dtb \
+ -nv ${RURL%/view/BUILD_INFO}/raw/rk3399-rock-pi-4b.dtb
+ wget -O kernel-androidci/System.map \
+ -nv ${RURL%/view/BUILD_INFO}/raw/System.map
+
+ FILESSET1="modules.builtin modules.builtin.modinfo modules.load"
+ for i in ${FILESSET1}; do
+ wget -O "kernel-androidci/${i}" -nv ${RURL%/view/BUILD_INFO}/raw/"${i}"
+ done
+
+ FILESSET2="vmlinux.symvers gki_aarch64_modules"
+ for i in ${FILESSET2}; do
+ wget -O "kernel-androidci/${i}" -nv ${RURL%/view/BUILD_INFO}/raw/"${i}"
+ done
+
+ # download all the *.ko files
+ KOFILES=$(egrep "[\"].*[.]ko[\"]" ${DISTDIR}/BUILD_INFO | sed 's/["]\(.*[.]ko\)["][,]/\1/' | xargs)
+
+ for i in ${KOFILES}; do
+ wget -O "kernel-androidci/${i}" -nv ${RURL%/view/BUILD_INFO}/raw/"${i}"
+ done
+fi
+
+mkdir -p aosp
+pushd aosp
+repo init -u ${ANDROID_MANIFEST_URL} -b ${ANDROID_MANIFEST_BRANCH}
+repo sync
+popd
+
+# clean output and re-create directories
+rm -rf output/
+mkdir -p output/host/image
+mkdir -p pub
+
+# output manifest
+pushd aosp
+repo manifest -r -o ../pub/pinned-manifest.xml
+popd
+
+# apply local patches
+function is_in_remote() {
+ local repository=${1}
+ local branch=${2}
+
+ local existed_in_remote=$(git ls-remote --heads ${repository} ${branch})
+
+ if [[ -z ${existed_in_remote} ]]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+pushd aosp/device/google/cuttlefish
+head_commit=$(git rev-parse --verify HEAD)
+git remote add linarolocalpatch ${LOCAL_AOSP_CUTTLEFISH_GIT_URL}
+git remote update
+if is_in_remote linarolocalpatch ${LOCAL_AOSP_CUTTLEFISH_GIT_BRANCH}; then
+ echo "No local patches for aosp/device/google/cuttlefish"
+else
+ git checkout linarolocalpatch/${LOCAL_AOSP_CUTTLEFISH_GIT_BRANCH}
+ git rebase ${head_commit}
+fi
+popd
+
+pushd aosp/kernel/tests
+head_commit=$(git rev-parse --verify HEAD)
+git remote add linarolocalpatch ${LOCAL_AOSP_KERNEL_TESTS_GIT_URL}
+git remote update
+if is_in_remote linarolocalpatch ${LOCAL_AOSP_KERNEL_TESTS_GIT_BRANCH}; then
+ echo "No local patches for aosp/kernel/tests"
+else
+ git checkout linarolocalpatch/${LOCAL_AOSP_KERNEL_TESTS_GIT_BRANCH}
+ git rebase ${head_commit}
+fi
+popd
+
+if [ x"${KERNEL_DIST}" = x"source" ]; then
+ pushd kernel/common
+ head_commit=$(git rev-parse --verify HEAD)
+ git remote add linarolocalpatch ${LOCAL_KERNEL_COMMON_GIT_URL}
+ git remote update
+ if is_in_remote linarolocalpatch ${LOCAL_KERNEL_COMMON_GIT_BRANCH}; then
+ echo "No local patches for kernel/common"
+ else
+ git checkout linarolocalpatch/${LOCAL_KERNEL_COMMON_GIT_BRANCH}
+ git rebase ${head_commit}
+ fi
+ popd
+fi
+
+if [ x"${UBOOT_DIST}" = x"source" ]; then
+ pushd u-boot-mainline/u-boot
+ head_commit=$(git rev-parse --verify HEAD)
+ git remote add linarolocalpatch ${LOCAL_UBOOTMAINLINE_UBOOT_GIT_URL}
+ git remote update
+ if is_in_remote linarolocalpatch ${LOCAL_UBOOTMAINLINE_UBOOT_GIT_BRANCH}; then
+ echo "No local patches for u-boot-mainline/u-boot"
+ else
+ git checkout linarolocalpatch/${LOCAL_UBOOTMAINLINE_UBOOT_GIT_BRANCH}
+ git rebase ${head_commit}
+ fi
+ popd
+fi
+
+# Download extra tools for testing purpose.
+git clone https://github.com/matthuisman/gdrivedl.git
+git clone https://git.linaro.org/people/paul.liu/rockpi4cuttlefish/rockpi-buildscripts.git
+
+popd
diff --git a/android-rockpi-cuttlefish/publishers.yaml.inc b/android-rockpi-cuttlefish/publishers.yaml.inc
new file mode 100644
index 0000000000..decf6d1f01
--- /dev/null
+++ b/android-rockpi-cuttlefish/publishers.yaml.inc
@@ -0,0 +1,23 @@
+ - email-ext:
+ recipients: '${CI_MAIL_RECIPIENTS}'
+ content-type: text
+ body: |
+ Build Triggered by: ${GERRIT_CHANGE_SUBJECT}: ${GERRIT_CHANGE_URL}
+ Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
+ Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
+ Parsed warnings/errors: ${PROJECT_URL}${BUILD_NUMBER}/parsed_console
+
+ Errors:
+ ${BUILD_LOG_REGEX, regex=".*ERROR:.* ", linesBefore=0, linesAfter=0, showTruncatedLines=false}
+ - archive:
+ artifacts: '*.xml,*.json'
+ latest-only: true
+ allow-empty: true
+ - logparser:
+ parse-rules: '/var/lib/jenkins/userContent/android.parse'
+ unstable-on-warning: false
+ fail-on-error: false
+ - fingerprint:
+ files: 'build/fingerprints/*'
+ - email:
+ recipients: 'peter.griffin@linaro.org paul.liu@linaro.org'
diff --git a/android-vts.yaml b/android-vts.yaml
deleted file mode 100644
index 63af027f03..0000000000
--- a/android-vts.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-- job:
- name: android-vts
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 365
- num-to-keep: 60
- parameters:
- - string:
- name: ANDROID_MANIFEST_URL
- default: https://android.googlesource.com/platform/manifest
- - string:
- name: MANIFEST_BRANCH
- default: android-vts-10.0_r1
- - string:
- name: LUNCH_TARGET
- default: aosp_arm64-userdebug
- - string:
- name: PATCHSETS
- default: ''
- disabled: false
- node: docker-bionic-aosp
- display-name: 'Android VTS Build'
- concurrent: true
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- builders:
- !include: android-vts/builders.yaml.inc
- publishers:
- !include: android-lcr/common/publishers.yaml.inc
diff --git a/android-vts/builders.sh b/android-vts/builders.sh
index ff2672761a..f31e5ae608 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/android/linaro-publisher.sh b/android/linaro-publisher.sh
index f205d7716a..94eacf0608 100644
--- a/android/linaro-publisher.sh
+++ b/android/linaro-publisher.sh
@@ -19,7 +19,6 @@ time python3 ${HOME}/bin/linaro-cp.py \
--no-build-info \
${OPT_LINK_LATEST} \
--split-job-owner \
- --server ${PUBLISH_SERVER} \
${PUB_SRC} \
${PUB_DEST} \
--include "^[^/]+[._](img[^/]*|tar[^/]*|bin[^/]*|xml|sh|config|json)$" \
diff --git a/aosp-mesa-testing.yaml b/aosp-mesa-testing.yaml
index 6896707d71..aa065f3039 100644
--- a/aosp-mesa-testing.yaml
+++ b/aosp-mesa-testing.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/aosp-mesa-testing/builders.sh b/aosp-mesa-testing/builders.sh
index 480b615f72..e949d5f96b 100644
--- a/aosp-mesa-testing/builders.sh
+++ b/aosp-mesa-testing/builders.sh
@@ -36,7 +36,7 @@ export PATH=${HOME}/bin:${PATH}
cd .repo
rm -rf local_manifests
cd -
-repo init -u https://android.googlesource.com/platform/manifest -b master
+repo init -u https://android.googlesource.com/platform/manifest -b main
export AOSP_MASTER_BUILD=fail
repo sync -j$(nproc) -c -f
diff --git a/archive-specjbb2013-product-tarball.yaml b/archive-specjbb2013-product-tarball.yaml
deleted file mode 100644
index 3273c29f84..0000000000
--- a/archive-specjbb2013-product-tarball.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-- job:
- name: archive-specjbb2013-product-tarball
- project-type: freestyle
- defaults: global
- description: |
- * This job creates an archive of the SPECjbb2013 product.<br>
- It can be copied as a *copy artifact* by other jobs.<br>
- * <b>Note:</b> SPECjbb2013 should <b>not</b> be shared publically as there are licensing restrictions.
- properties:
- - authorization:
- linaro:
- - job-read
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 10
- artifact-num-to-keep: 5
- disabled: true
- node: build
- display-name: 'OpenJDK - Archive SPECjbb2013 product'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - SPECjbb2013-1.00.tar.gz
- relative-to: 'somewhereElse'
- builders:
- - shell: |
- #!/bin/bash
-
- set -exu
-
- rm -rf out
- mkdir out
-
- # Use copy-to-slave instead of the file under /work/openjdk-testing/
- #tar -xf /work/openjdk-testing/SPECjbb2013-1.00.tar.gz
- tar -xf SPECjbb2013-1.00.tar.gz
-
- chmod -R ug+rw SPECjbb2013-1.00
- tar -acf out/SPECjbb2013-1.00.tar.gz SPECjbb2013-1.00
- rm -rf SPECjbb2013-1.00 SPECjbb2013-1.00.tar.gz
- publishers:
- - archive:
- artifacts: 'out/SPECjbb2013-1.00.tar.gz'
diff --git a/archive-specjbb2015-product-tarball.yaml b/archive-specjbb2015-product-tarball.yaml
deleted file mode 100644
index 017a1eb6e1..0000000000
--- a/archive-specjbb2015-product-tarball.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-- job:
- name: archive-specjbb2015-product-tarball
- project-type: freestyle
- defaults: global
- description: |
- * This job creates an archive of the SPECjbb2015 product.<br>
- It can be copied as a *copy artifact* by other jobs.<br>
- * <b>Note:</b> SPECjbb2015 should <b>not</b> be shared publically as there are licensing restrictions.
- properties:
- - authorization:
- linaro:
- - job-read
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 10
- artifact-num-to-keep: 5
- disabled: true
- node: build
- display-name: 'OpenJDK - Archive SPECjbb2015 product'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - SPECjbb2015.tgz
- relative-to: 'somewhereElse'
- builders:
- - shell: |
- #!/bin/bash
-
- set -exu
-
- rm -rf out
- mkdir out
-
- # Use copy-to-slave instead of the file under /work/openjdk-testing/
- #tar -xf /work/openjdk-testing/SPECjbb2015.tgz
- tar -xf SPECjbb2015.tgz
-
- chmod -R ug+rw SPECjbb2015
- tar -acf out/SPECjbb2015.tgz SPECjbb2015
- rm -rf SPECjbb2015 SPECjbb2015.tgz
- publishers:
- - archive:
- artifacts: 'out/SPECjbb2015.tgz'
diff --git a/armlt-platforms-release.yaml b/armlt-platforms-release.yaml
index bbad286464..9dab92388b 100644
--- a/armlt-platforms-release.yaml
+++ b/armlt-platforms-release.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/armlt-platforms.yaml b/armlt-platforms.yaml
index 9d2a4b4b5d..b42971be7c 100644
--- a/armlt-platforms.yaml
+++ b/armlt-platforms.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/armnn-ci-benchmarking.yaml b/armnn-ci-benchmarking.yaml
index 31847b255a..d37d727029 100644
--- a/armnn-ci-benchmarking.yaml
+++ b/armnn-ci-benchmarking.yaml
@@ -9,7 +9,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/armnn-ci-build.yaml b/armnn-ci-build.yaml
index 7bf9659736..5762f012a1 100644
--- a/armnn-ci-build.yaml
+++ b/armnn-ci-build.yaml
@@ -11,7 +11,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/armnn32-ci-build.yaml b/armnn32-ci-build.yaml
index 33c459a47c..b0159d99e8 100644
--- a/armnn32-ci-build.yaml
+++ b/armnn32-ci-build.yaml
@@ -11,7 +11,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/art-stable-aosp-reference.yaml b/art-stable-aosp-reference.yaml
deleted file mode 100644
index efb82b60e7..0000000000
--- a/art-stable-aosp-reference.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-- job:
- name: art-stable-aosp-reference
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-extended-read
- linaro-android-builders:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- disabled: true
- display-name: 'ART - Stable - AOSP Reference'
- concurrent: true
- triggers:
- - timed: 'H H * * *'
- axes:
- - axis:
- type: slave
- name: label
- values:
- - docker-bionic-art
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- builders:
- - shell: |
- java -version
- sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
- sudo apt-get update
- sudo apt-get install -y gcc-4.9-multilib bison git gperf libxml2-utils python-mako zip time python-requests genisoimage
-
- if [ ! -d "/home/buildslave/srv/linaro-art-stable-aosp-reference" ]; then
- sudo mkdir -p /home/buildslave/srv/linaro-art-stable-aosp-reference
- sudo chmod 777 /home/buildslave/srv/linaro-art-stable-aosp-reference
- fi
-
- cd /home/buildslave/srv/linaro-art-stable-aosp-reference
-
- curl https://android-git.linaro.org/tools/repo.git/plain/repo > /tmp/repo
- chmod a+x /tmp/repo
- sudo mv /tmp/repo /usr/local/bin/repo
-
- rm -rf .repo/local_manifests
- repo init -u https://android-git.linaro.org/git/platform/manifest -b android-7.1.1_r22
- sed -i "s/clone-depth=\"1\"//g" .repo/manifest.xml
- repo sync -j16 --force-sync
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
diff --git a/art-tip-aosp-reference.yaml b/art-tip-aosp-reference.yaml
deleted file mode 100644
index 0c98229c13..0000000000
--- a/art-tip-aosp-reference.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-- job:
- name: art-tip-aosp-reference
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-extended-read
- linaro-android-builders:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- disabled: false
- display-name: 'ART - Tip - AOSP Reference'
- concurrent: true
- triggers:
- - timed: 'H H * * *'
- axes:
- - axis:
- type: slave
- name: label
- values:
- - docker-bionic-art
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- builders:
- - shell: |
- java -version
- sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
- sudo apt-get update
- sudo apt-get install -y gcc-4.9-multilib bison git gperf libxml2-utils python-mako zip time python-requests genisoimage
-
- if [ ! -d "/home/buildslave/srv/linaro-art-tip-aosp-reference" ]; then
- sudo mkdir -p /home/buildslave/srv/linaro-art-tip-aosp-reference
- sudo chmod 777 /home/buildslave/srv/linaro-art-tip-aosp-reference
- fi
-
- cd /home/buildslave/srv/linaro-art-tip-aosp-reference
-
- curl https://android-git.linaro.org/tools/repo.git/plain/repo > /tmp/repo
- chmod a+x /tmp/repo
- sudo mv /tmp/repo /usr/local/bin/repo
-
- rm -rf .repo/local_manifests
- repo init -u https://android-git.linaro.org/git/platform/manifest -b master
- sed -i "s/clone-depth=\"1\"//g" .repo/manifest.xml
- repo sync -j16 --force-sync
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
diff --git a/bigdata-bigtop-deb.yaml b/bigdata-bigtop-deb.yaml
index 909aa83a48..588b37d9eb 100644
--- a/bigdata-bigtop-deb.yaml
+++ b/bigdata-bigtop-deb.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/build-kvmtool.yaml b/build-kvmtool.yaml
index fb5d2434e0..0b9c5b9655 100644
--- a/build-kvmtool.yaml
+++ b/build-kvmtool.yaml
@@ -11,12 +11,12 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
- job-cancel
- disabled: false
+ disabled: true
node: docker-xenial
display-name: 'KVMtool CI loop'
scm:
diff --git a/build-package-clo/builder.sh b/build-package-clo/builder.sh
new file mode 100644
index 0000000000..4dc3f13989
--- /dev/null
+++ b/build-package-clo/builder.sh
@@ -0,0 +1,110 @@
+#!/bin/bash
+
+set -ex
+
+echo "source: $source"
+echo "repo: $repo"
+echo "appendversion: $appendversion"
+
+if ! sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq
+then
+ echo apt-get update error try again in a moment
+ sleep 15
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -q||true
+fi
+
+sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y -q osc
+
+# install jflog client tool, v1, used for publishing artifacts
+(mkdir -p $HOME/bin && cd $HOME/bin && curl -fL https://getcli.jfrog.io | sh)
+
+dget -q -d -u $source
+sourcename=`basename $source|sed -e 's,_.*,,'`
+echo "will send to OBS: $repo $sourcename"
+
+if [ "$backport" = "true" ]; then
+ appendversion=true
+ deltatype=backport
+fi
+
+if [ "$appendversion" = "true" ]; then
+ dpkg-source -x *.dsc work/
+ rm *.dsc
+ cd work
+ dpkg-parsechangelog
+ maint=`dpkg-parsechangelog -SMaintainer`
+ if [[ $maint != *linaro* ]]; then
+ echo "Warning not a linaro maintainer: $maint"
+ export maint="packages@lists.linaro.org"
+ fi
+
+ # Changelog update
+ change=`dpkg-parsechangelog -SChanges`
+ case $change in
+ *Initial*release*)
+ deltatype="new package"
+ ;;
+ *Backport*from*|*Rebuild*for*)
+ deltatype="backport"
+ ;;
+ *Added*patch*)
+ deltatype="patched"
+ ;;
+ *Upstream*snapshot*)
+ deltatype="snapshot"
+ ;;
+ *HACK*)
+ deltatype="hack"
+ ;;
+ *)
+ deltatype="other"
+ ;;
+ esac
+ dch --force-distribution -m -llinaro "Linaro CI build: $deltatype"
+ dpkg-buildpackage -S -d
+ cd ..
+fi
+
+dsc=`ls -tr *dsc`
+
+cat > $HOME/.oscrc <<EOF
+[general]
+apiurl = https://obs.linaro.org
+
+[https://obs.linaro.org]
+user=$OSCRC_USER
+pass=$OSCRC_PASS
+EOF
+
+# update existing package
+if osc co $repo $sourcename; then
+ rm -v $repo/$sourcename/${sourcename}_*||true
+else
+ osc co $repo
+ mkdir -p $repo/$sourcename
+ osc add $repo/$sourcename
+fi
+for file in `dcmd $dsc`;
+do
+ cp $file $repo/$sourcename
+done
+
+osc addremove $repo/$sourcename
+osc ci $repo/$sourcename -m "$BUILD_URL"
+
+# TODO: 1. take into account repo variable into PUBLISH_SERVER
+# 2. for --deb parameter, distribution/component/architecture,
+# set correct distribution
+# 3. uploaded artifacts also include several files with leading _
+# are these needed? see https://binaryartifacts.jfrog.io/ui/native/linaro-57-linaro-overlay-sid/pool/linux-5.15.0-qcomlt-arm/
+# 4. change _apiurl from https://obs.linaro.org to https://binaryartifacts.jfrog.io/ui/native/linaro-57-linaro-overlay-sid/pool/ ?
+dist=all
+component=$sourcename
+arch=`echo $source | sed -n 's@.*ARCH=\(.*\)\(,.*\)@\1@p'`
+
+${HOME}/bin/jfrog rt u \
+ --detailed-summary \
+ --deb=$dist/$component/$arch \
+ --apikey ${LT_QCOM_CLO_API_KEY} \
+ --url ${PUBLISH_SERVER} \
+ "${repo}/${component}/" "${component}/"
diff --git a/build-package-obs.yaml b/build-package-obs.yaml
index 3a1d6729f0..f049199ac2 100644
--- a/build-package-obs.yaml
+++ b/build-package-obs.yaml
@@ -8,7 +8,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/build-package/upload-deb.sh b/build-package/upload-deb.sh
new file mode 100644
index 0000000000..28b9a782b8
--- /dev/null
+++ b/build-package/upload-deb.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+set -ex
+echo "source: $source"
+echo "zip: $zip"
+echo "repo: $repo"
+incoming=/var/lib/machines/obs/srv/repos/${repo}/mini-dinstall/incoming/
+
+rm -rf tmp/
+mkdir -p tmp
+cd tmp
+if [ "$zip" == "false" ]
+then
+ dget -q -d -u $source
+ sourcename=`basename $source|sed -e 's,_.*,,'`
+ echo "will upload to repo: $repo $sourcename"
+ cp * $incoming
+else
+ wget -O artifact.zip $source
+ unzip artifact.zip
+ cp debian/output/* $incoming
+fi
+
+/usr/bin/mini-dinstall -v --batch --config=/home/buildslave/.mini-dinstall-${repo}.conf
+
diff --git a/build-rpm-obs.yaml b/build-rpm-obs.yaml
index 255f4c75a8..5a983c25d9 100644
--- a/build-rpm-obs.yaml
+++ b/build-rpm-obs.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/ci-dockerfile-build-test.yaml b/ci-dockerfile-build-test.yaml
index 08b255e948..962acd7efc 100644
--- a/ci-dockerfile-build-test.yaml
+++ b/ci-dockerfile-build-test.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -17,7 +17,7 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - "ci-docker*"
+ - "ci-docker.*"
block-level: 'NODE'
disabled: false
display-name: 'Build docker image'
@@ -32,15 +32,14 @@
name: uploadimage
wrappers:
- timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- credentials-binding:
- text:
credential-id: DOCKER_AUTH
variable: DOCKER_AUTH
builders:
+ - shell: |
+ #!/bin/bash -e
+ curl -L -o ${WORKSPACE}/config.json https://ci.linaro.org/userContent/config.json --fail
- shell:
!include-raw: ci-dockerfiles-deployment/build-image-test.sh
publishers:
diff --git a/ci-dockerfile-build.yaml b/ci-dockerfile-build.yaml
index 55421be4fa..0a0b6c975d 100644
--- a/ci-dockerfile-build.yaml
+++ b/ci-dockerfile-build.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -17,7 +17,7 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - "ci-docker*"
+ - "ci-docker.*"
block-level: 'NODE'
disabled: false
display-name: 'Build docker image'
@@ -30,15 +30,14 @@
description: 'build machine'
wrappers:
- timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- credentials-binding:
- text:
credential-id: DOCKER_AUTH
variable: DOCKER_AUTH
builders:
+ - shell: |
+ #!/bin/bash -e
+ curl -L -o ${WORKSPACE}/config.json https://ci.linaro.org/userContent/config.json --fail
- shell:
!include-raw: ci-dockerfiles-deployment/build-image.sh
publishers:
diff --git a/ci-dockerfiles-deployment.yaml b/ci-dockerfiles-deployment.yaml
index 2d8ddbd29d..aa9a5a768b 100644
--- a/ci-dockerfiles-deployment.yaml
+++ b/ci-dockerfiles-deployment.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- build-discarder:
@@ -15,7 +15,7 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - "ci-docker*"
+ - "ci-docker.*"
block-level: 'NODE'
disabled: false
node: master
@@ -57,21 +57,16 @@
sequential: false
wrappers:
- timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- credentials-binding:
- text:
credential-id: DOCKER_AUTH
variable: DOCKER_AUTH
- - ssh-agent-credentials:
- # tcwg-buildslave user id to clone dev-private-git.l.o/tcwg/llvm-config repo for *-tcwg-llvmbot-* images.
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
builders:
- shell: |
#!/bin/bash -e
+ curl -L -o ${WORKSPACE}/config.json https://ci.linaro.org/userContent/config.json --fail
+ - shell: |
+ #!/bin/bash -e
echo "#${BUILD_NUMBER}-${GERRIT_PATCHSET_REVISION:0:8}" > ${WORKSPACE}/version.txt
- build-name-setter:
name: 'version.txt'
diff --git a/ci-dockerfiles-deployment/build-image.sh b/ci-dockerfiles-deployment/build-image.sh
index ecf0a114eb..36816ccc6c 100644
--- a/ci-dockerfiles-deployment/build-image.sh
+++ b/ci-dockerfiles-deployment/build-image.sh
@@ -2,10 +2,14 @@
set -ex
+# setup file descriptor for flock to use
+exec 4<>/var/lock/ci-docker.lck
+
trap cleanup_exit INT TERM EXIT
cleanup_exit()
{
+ flock -u 4
rm -rf ${HOME}/.docker dockerfiles
}
@@ -17,6 +21,9 @@ rm -rf dockerfiles/
git clone --depth 1 https://git.linaro.org/ci/dockerfiles.git
cd dockerfiles/${image}/
+# set a lock to prevent simultaneous runs from clobbering
+# our docker buildspace
+flock -x 4
if ! ./build.sh; then
echo "=== FAIL: ${image} ==="
exit 1
@@ -27,4 +34,3 @@ if [ -r .docker-tag ]; then
docker_tag=$(cat .docker-tag)
docker push ${docker_tag}
fi
-
diff --git a/ci-dockerfiles-deployment/cleanup-update.sh b/ci-dockerfiles-deployment/cleanup-update.sh
index 67997826e2..844f4afc51 100644
--- a/ci-dockerfiles-deployment/cleanup-update.sh
+++ b/ci-dockerfiles-deployment/cleanup-update.sh
@@ -1,5 +1,34 @@
#!/bin/bash -e
+# implement locking by using a file descriptor so we
+# can run the rest of the script instead of trying flock
+# for each docker command
+exec 4<>/var/lock/ci-docker.lck
+
+RETRIES=3
+SLEEP=300
+LOCKED=1
+
+# Here we want an exclusive lock and for flock to exit immediately
+# if it can't secure the lock so we can proceed to next attempt.
+while [ $RETRIES -gt 0 ]; do
+ flock -n -x 4
+ LOCKED=$?
+ if [ $LOCKED -ne 0 ]; then
+ RETRIES=$((RETRIES-1))
+ echo "Couldn't lock /var/lock/ci-docker.lck. Retries left: $RETRIES"
+ sleep $SLEEP
+ else
+ echo "Lock on /var/lock/ci-docker.lck acquired."
+ RETRIES=0
+ fi
+done
+
+if [ $LOCKED -ne 0 ]; then
+ echo "Failed to acquire lock on /var/lock/ci-docker.lck"
+ exit $LOCKED
+fi
+
for image in $(docker images|grep tcwg|grep -v none|grep -v hours|awk '{ print $1":"$2}');
do
echo delete: $image;
@@ -18,3 +47,5 @@ done
echo cleaning up
docker system prune -f
+
+flock -u 4
diff --git a/ci-dockerfiles-monthly.yaml b/ci-dockerfiles-monthly.yaml
index 63b68e30ed..d0e8b7b7a4 100644
--- a/ci-dockerfiles-monthly.yaml
+++ b/ci-dockerfiles-monthly.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/ci-dockerfiles-sanity-check.yaml b/ci-dockerfiles-sanity-check.yaml
index 8cdb5db473..10b49aeea6 100644
--- a/ci-dockerfiles-sanity-check.yaml
+++ b/ci-dockerfiles-sanity-check.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- build-discarder:
@@ -15,7 +15,7 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - "ci-docker*"
+ - "ci-docker.*"
block-level: 'NODE'
disabled: false
node: master
@@ -57,18 +57,13 @@
sequential: false
wrappers:
- timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - ssh-agent-credentials:
- # tcwg-buildslave user id to clone dev-private-git.l.o/tcwg/llvm-config repo for *-tcwg-llvmbot-* images.
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
builders:
- shell: |
#!/bin/bash -e
echo "#${BUILD_NUMBER}-${GERRIT_PATCHSET_REVISION:0:8}" > ${WORKSPACE}/version.txt
+ - shell: |
+ #!/bin/bash -e
+ curl -L -o ${WORKSPACE}/config.json https://ci.linaro.org/userContent/config.json --fail
- build-name-setter:
name: 'version.txt'
file: true
diff --git a/ci-dockerslaves-cleanup.yaml b/ci-dockerslaves-cleanup.yaml
index 59f91221fc..563ba26141 100644
--- a/ci-dockerslaves-cleanup.yaml
+++ b/ci-dockerslaves-cleanup.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- build-discarder:
@@ -15,7 +15,7 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - "ci-docker*"
+ - "ci-docker.*"
block-level: 'NODE'
queue-scanning: 'ALL'
disabled: false
@@ -23,23 +23,15 @@
concurrent: false
display-name: 'CI docker cleanup and image update'
triggers:
- - timed : '@daily'
+ - timed : '20 20 * * *'
axes:
- axis:
type: slave
name: nodes
values:
- aarch64-09
- - aosp-x86_64-07
- - aosp-x86_64-08
- - leg-aarch64-01
- - lkft-x86_64-01
- - oe-x86_64-01
- - oe-x86_64-02
- - x86_64-07
- - x86_64-08
- - x86_64-09
- - x86_64-10
+ - aosp-x86_64-09
+ - aosp-x86_64-10
- x86_64-11
- x86_64-12
- x86_64-13
diff --git a/ci-job-configs-sanity-check.yaml b/ci-job-configs-sanity-check.yaml
index 8ccece57d8..ef2ddaa90d 100644
--- a/ci-job-configs-sanity-check.yaml
+++ b/ci-job-configs-sanity-check.yaml
@@ -65,7 +65,7 @@
export GIT_PREVIOUS_COMMIT=$(git rev-parse HEAD~1)
export GIT_COMMIT=${GERRIT_PATCHSET_REVISION}
jenkins-jobs --version
- python run-jjb.py
+ python3 run-jjb.py
publishers:
- email:
recipients: 'linaro-infrastructure-errors@lists.linaro.org'
diff --git a/ci-terraform-sanity-check.yaml b/ci-terraform-sanity-check.yaml
index bc8c47e722..6f41f578a1 100644
--- a/ci-terraform-sanity-check.yaml
+++ b/ci-terraform-sanity-check.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- build-discarder:
diff --git a/ddiaz-aosp.yaml b/ddiaz-aosp.yaml
deleted file mode 100644
index bab81ca3ec..0000000000
--- a/ddiaz-aosp.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-- job:
- name: ddiaz-aosp
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 60
- numToKeep: 60
- properties:
- - authorization:
- anonymous:
- - job-read
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- disabled: false
- node: docker-lkft-new
- display-name: 'AOSP build playground for Daniel Diaz'
- concurrent: true
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- builders:
- - shell: |
- #!/bin/bash
-
- env
- echo "Hello, world!"
- publishers:
- - email:
- recipients: 'daniel.diaz@linaro.org'
diff --git a/ddiaz-oe-lkft.yaml b/ddiaz-oe-lkft.yaml
deleted file mode 100644
index 3dccd3f09f..0000000000
--- a/ddiaz-oe-lkft.yaml
+++ /dev/null
@@ -1,258 +0,0 @@
-- job:
- name: ddiaz-oe-lkft
- 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
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_URL
- default: 'https://github.com/mrchapp/oe-rpb-manifest.git'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/sumo'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/lkft/sumo/${MACHINE}/${DISTRO}/linux-stable-rc-ddiaz/${BUILD_NUMBER}/${KERNEL_BRANCH}'
- - 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_TEAM
- default: 'staging-lkft'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '35'
- - string:
- name: SANITY_LAVA_JOB_PRIORITY
- default: '80'
- - string:
- name: TEST_SUITES
- default: 'all'
- - string:
- name: SSTATE_BRANCH
- default: 'lkft/sumo'
- - string:
- name: DESCRIBE_SUFFIX
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- filter: '!(KERNEL_BRANCH == "linux-4.4.y" && (MACHINE == "hikey" | MACHINE == "dragonboard-410c"))'
- disabled: false
- node: master
- display-name: 'ddiaz test LKFT - Linux Stable (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: KERNEL_BRANCH
- values:
- - 'linux-4.4.y'
- - 'linux-4.9.y'
- - 'linux-4.14.y'
- - 'linux-4.19.y'
- - 'linux-5.3.y'
- - 'linux-5.4.y'
- - 'mainline'
- - 'next'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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 -x
-
- # Mapping for KERNEL_BRANCH -> KERNEL_VERSION
- KERNEL_RECIPE=linux-generic-stable-rc
- case "${KERNEL_BRANCH}" in
- linux-4.4.y)
- KERNEL_VERSION=4.4
- KERNEL_REPO=https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- QA_SERVER_PROJECT=linux-stable-rc-4.4-oe
- if [ "${MACHINE}" = "hikey" ]; then
- # Not "stable", though...
- KERNEL_RECIPE=linux-hikey-lts-rc
- KERNEL_REPO=https://git.linaro.org/lkft/arm64-stable-rc.git
- QA_SERVER_PROJECT=linaro-hikey-stable-rc-4.4-oe
- fi
- ;;
- linux-4.9.y|linux-4.14.y|linux-4.19.y|linux-5.2.y|linux-5.3.y)
- MAJMIN=$(echo "${KERNEL_BRANCH}" | sed -e 's:.y::' | cut -d- -f2)
- KERNEL_VERSION="${MAJMIN}"
- KERNEL_REPO="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"
- QA_SERVER_PROJECT="linux-stable-rc-${MAJMIN}-oe"
- ;;
- mainline)
- KERNEL_VERSION=git
- KERNEL_VERSION_OVERRIDE=mainline
- KERNEL_RECIPE=linux-generic-mainline
- KERNEL_REPO=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- GIT_BRANCH=master
- QA_SERVER_PROJECT=linux-mainline-oe
- ;;
- next)
- KERNEL_VERSION=git
- KERNEL_VERSION_OVERRIDE=next
- KERNEL_RECIPE=linux-generic-next
- KERNEL_REPO=https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
- GIT_BRANCH=master
- QA_SERVER_PROJECT=linux-next-oe
- ;;
- esac
- KERNEL_VERSION_OVERRIDE=${KERNEL_VERSION_OVERRIDE:-${KERNEL_VERSION}}
- GIT_BRANCH=${GIT_BRANCH:-${KERNEL_BRANCH}}
-
- git clone --reference-if-able "${HOME}/srv/linux.git" -o origin "${KERNEL_REPO}" "${WORKSPACE}/linux"
-
- cd "${WORKSPACE}/linux"
- git remote add torvalds https://github.com/torvalds/linux.git
- git remote add linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- git fetch --multiple torvalds linux-stable
-
- git checkout "origin/${GIT_BRANCH}"
- SRCREV_kernel="$(git rev-parse HEAD)"
- MAKE_KERNELVERSION="$(make kernelversion)"
- kernel_major="$(echo ${MAKE_KERNELVERSION} | cut -d\. -f1)"
- kernel_minor="$(echo ${MAKE_KERNELVERSION} | cut -d\. -f2)"
- if echo "${MAKE_KERNELVERSION}" | grep -q "rc"; then
- kernel_minor=$((kernel_minor - 1))
- fi
- KERNEL_DESCRIBE=$(git describe --always)
-
- # 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
-
- # LKFT branches (lkft/sumo, lkft/rocko, lkft/thud, ...)
- BRANCH_PREFIX="${MANIFEST_BRANCH/lkft\//}-"
- # ddiaz' development branches (d/sumojuno, d/qemu-bis/, d/etcetera)
- BRANCH_PREFIX="${BRANCH_PREFIX/d\//}"
- (
- echo "KERNEL_VERSION=${KERNEL_VERSION}"
- echo "KERNEL_VERSION_OVERRIDE=${KERNEL_VERSION_OVERRIDE}"
- echo "KERNEL_RECIPE=${KERNEL_RECIPE}"
- echo "KERNEL_REPO=${KERNEL_REPO}"
- echo "DEVICE_TYPE=${DEVICE_TYPE}"
- echo "KERNEL_DESCRIBE=${BRANCH_PREFIX}${KERNEL_DESCRIBE}${DESCRIBE_SUFFIX}"
- echo "SRCREV_kernel=${SRCREV_kernel}"
- echo "MAKE_KERNELVERSION=${MAKE_KERNELVERSION}"
- echo "QA_SERVER_PROJECT=${QA_SERVER_PROJECT}"
- echo "QA_SERVER_TEAM=${QA_SERVER_TEAM}"
- ) > "${WORKSPACE}/preset_parameters"
- echo "#${BUILD_NUMBER}-${KERNEL_VERSION}-${SRCREV_kernel:0:8}" > "${WORKSPACE}/version.txt"
- - build-name-setter:
- name: 'version.txt'
- file: true
- - inject:
- properties-file: preset_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: 'daniel.diaz@linaro.org'
- matrix-trigger: only-configurations
- aborted: true
- subject: '[DD] ${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/ddiaz-test-5.3.yaml b/ddiaz-test-5.3.yaml
deleted file mode 100644
index 08ce7e2e7d..0000000000
--- a/ddiaz-test-5.3.yaml
+++ /dev/null
@@ -1,205 +0,0 @@
-- job:
- name: ddiaz-test-5.3
- 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
- anders.roxell@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: KERNEL_BRANCH
- default: 'linux-5.12.y'
- - string:
- name: KERNEL_VERSION
- default: '5.12'
- - 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-ddiaz-${KERNEL_VERSION}/${BUILD_NUMBER}'
- - string:
- name: LAVA_SERVER
- default: 'https://lkft.validation.linaro.org/RPC2/'
- - string:
- name: QA_SERVER
- default: 'https://staging-qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'linux-stable-rc-linux-5.12.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'
- - string:
- name: TDEFINITIONS_REVISION
- default: 'master'
- - string:
- name: SSTATE_BRANCH
- default: 'lkft/sumo'
- - string:
- name: DESCRIBE_SUFFIX
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: false
- node: master
- display-name: 'LKFT - Linux Stable RC 5.12.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: 'daniel.diaz@linaro.org'
- matrix-trigger: only-configurations
- aborted: true
- subject: '[DD] ${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/ddiaz-test.yaml b/ddiaz-test.yaml
deleted file mode 100644
index 4ba9972145..0000000000
--- a/ddiaz-test.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-- job:
- name: ddiaz-test
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-build
- - job-cancel
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- disabled: false
- node: master
- display-name: 'Test job for Daniel Diaz'
- builders:
- - shell: |
- #!/bin/bash
-
- env
- echo "Hello, world!"
- publishers:
- - email:
- recipients: 'daniel.diaz@linaro.org'
diff --git a/drue-test-1.yaml b/drue-test-1.yaml
index a29f9cf37e..570889cd5f 100644
--- a/drue-test-1.yaml
+++ b/drue-test-1.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
dan.rue@linaro.org:
diff --git a/drue-test-2.yaml b/drue-test-2.yaml
index 6f85ee60bf..ee5e4968dc 100644
--- a/drue-test-2.yaml
+++ b/drue-test-2.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
dan.rue@linaro.org:
diff --git a/erp-firmware.yaml b/erp-firmware.yaml
deleted file mode 100644
index 73de22397d..0000000000
--- a/erp-firmware.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-- job:
- name: erp-firmware
- project-type: freestyle
- defaults: global
- 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:
- - string:
- name: FIRMWARE_VER
- default: '17.10-rc1'
- description: 'target firmware version'
- disabled: false
- node: docker-buster-arm64-ldcg
- display-name: 'Reference Platform - Enterprise firmware'
- scm:
- - git:
- url: https://git.linaro.org/uefi/rpf.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- wipe-workspace: false
- wrappers:
- - timestamps
- builders:
- - shell: |
- #!/bin/bash
-
- set -e
-
- sudo apt-get -q=2 update
- sudo apt-get -q=2 install -y --no-install-recommends acpica-tools gcc-arm-linux-gnueabihf libssl-dev uuid-dev nasm python3-distutils
-
- ./build.sh -D FIRMWARE_VER=${FIRMWARE_VER} -D FIRMWARE_VENDOR=Linaro
- - linaro-publish-token
- - shell: |
- #!/bin/bash
-
- # Publish
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- out reference-platform/enterprise/firmware/${BUILD_NUMBER}
- publishers:
- - email:
- recipients: 'leif.lindholm@linaro.org marcin.juszkiewicz@linaro.org'
diff --git a/erp-test-automation-matrix.yaml b/erp-test-automation-matrix.yaml
index 4656a0aa47..15b4516488 100644
--- a/erp-test-automation-matrix.yaml
+++ b/erp-test-automation-matrix.yaml
@@ -8,7 +8,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/fai-test.yaml b/fai-test.yaml
deleted file mode 100644
index 06b1fc74d5..0000000000
--- a/fai-test.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-- job:
- name: fai-test
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro:
- - job-build
- - job-cancel
- parameters:
- - string:
- name: FAI_CLASS
- default: 'BUSTER,DEBIAN,LINARO,QCOM,DEVELOPER,DB410C,RAW'
- - string:
- name: REPO_URL
- default: 'https://git.linaro.org/ci/fai.git'
- - string:
- name: ROOTFS_SIZE
- default: '3G'
- - string:
- name: BRANCH
- default: 'master'
- - string:
- name: GERRIT_CHANGE
- - label:
- name: buildslave
- default: 'docker-stretch-arm64'
- disabled: false
- node: master
- display-name: 'Linaro FAI'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}'
- builders:
- - shell:
- !include-raw: fai/builders.sh
diff --git a/infrastructure-ansible-playbook.yaml b/infrastructure-ansible-playbook.yaml
index 5cb5bea3c7..167c463501 100644
--- a/infrastructure-ansible-playbook.yaml
+++ b/infrastructure-ansible-playbook.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
disabled: false
diff --git a/infrastructure-linaro-license-protection.yaml b/infrastructure-linaro-license-protection.yaml
index e015c0f99f..51c1e6a0ae 100644
--- a/infrastructure-linaro-license-protection.yaml
+++ b/infrastructure-linaro-license-protection.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
disabled: false
diff --git a/infrastructure-patchwork-tools.yaml b/infrastructure-patchwork-tools.yaml
index f2ca0e52fe..1cf5310985 100644
--- a/infrastructure-patchwork-tools.yaml
+++ b/infrastructure-patchwork-tools.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
disabled: false
diff --git a/jdk-build-specjbb2015-jdk11.yaml b/jdk-build-specjbb2015-jdk11.yaml
index b29ec46878..7fc81454d9 100644
--- a/jdk-build-specjbb2015-jdk11.yaml
+++ b/jdk-build-specjbb2015-jdk11.yaml
@@ -10,7 +10,7 @@
adds some dependencies to the maven job building SPECjbb2015.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk11-jcstress-test-persist-results.yaml b/jdk11-jcstress-test-persist-results.yaml
index 974eecbd31..989a88ccf0 100644
--- a/jdk11-jcstress-test-persist-results.yaml
+++ b/jdk11-jcstress-test-persist-results.yaml
@@ -8,7 +8,7 @@
* /work/openjdk-testing/jcstress-results
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk11-jcstress-test.yaml b/jdk11-jcstress-test.yaml
index 5722a9c7b1..17d8ed9287 100644
--- a/jdk11-jcstress-test.yaml
+++ b/jdk11-jcstress-test.yaml
@@ -8,7 +8,7 @@
This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk11-jtreg-test-persist-results.yaml b/jdk11-jtreg-test-persist-results.yaml
index ea7993ba97..2a531f7fdd 100644
--- a/jdk11-jtreg-test-persist-results.yaml
+++ b/jdk11-jtreg-test-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes the results to $HOME/srv/openjdk11u/openjdk-jtreg-nightly-tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk11-jtreg-test.yaml b/jdk11-jtreg-test.yaml
index d76a7bfd1e..440f2cae03 100644
--- a/jdk11-jtreg-test.yaml
+++ b/jdk11-jtreg-test.yaml
@@ -6,7 +6,7 @@
* Runs the jtreg tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-read
diff --git a/jdk11-specjbb2015-benchmark-persist-results.yaml b/jdk11-specjbb2015-benchmark-persist-results.yaml
index 97aa0c3f31..ba1e4786b3 100644
--- a/jdk11-specjbb2015-benchmark-persist-results.yaml
+++ b/jdk11-specjbb2015-benchmark-persist-results.yaml
@@ -8,7 +8,7 @@
* If the client axis is enabled the heap size for the VM will need to be adjusted using -Xmxm
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk11-specjbb2015-benchmark.yaml b/jdk11-specjbb2015-benchmark.yaml
index afc67014ef..510d9991dd 100644
--- a/jdk11-specjbb2015-benchmark.yaml
+++ b/jdk11-specjbb2015-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the specjbb2015 benchmark in composite mode (i.e., single VM, single node).
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk11-terasort-benchmark-persist-results.yaml b/jdk11-terasort-benchmark-persist-results.yaml
index 93565e2099..76caf2216b 100644
--- a/jdk11-terasort-benchmark-persist-results.yaml
+++ b/jdk11-terasort-benchmark-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes results to /work/openjdk-testing/hadoop-terasort-benchmark-results.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk11-terasort-benchmark.yaml b/jdk11-terasort-benchmark.yaml
index 0640d5aa4e..745fe2fb9c 100644
--- a/jdk11-terasort-benchmark.yaml
+++ b/jdk11-terasort-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the terasort benchmark.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk12-jcstress-test-persist-results.yaml b/jdk12-jcstress-test-persist-results.yaml
index 3efdcf854e..38b5d68a02 100644
--- a/jdk12-jcstress-test-persist-results.yaml
+++ b/jdk12-jcstress-test-persist-results.yaml
@@ -8,7 +8,7 @@
* /work/openjdk-testing/jcstress-results
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk12-jcstress-test.yaml b/jdk12-jcstress-test.yaml
index 4dd2c55a19..679461fd3c 100644
--- a/jdk12-jcstress-test.yaml
+++ b/jdk12-jcstress-test.yaml
@@ -8,7 +8,7 @@
This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk12-jtreg-test-persist-results.yaml b/jdk12-jtreg-test-persist-results.yaml
index 1af1c77138..de32737f02 100644
--- a/jdk12-jtreg-test-persist-results.yaml
+++ b/jdk12-jtreg-test-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes the results to $HOME/srv/openjdk12/openjdk-jtreg-nightly-tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk12-jtreg-test.yaml b/jdk12-jtreg-test.yaml
index 6eedb6d3ea..19ca325cde 100644
--- a/jdk12-jtreg-test.yaml
+++ b/jdk12-jtreg-test.yaml
@@ -6,7 +6,7 @@
* Runs the jtreg tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-read
diff --git a/jdk12-specjbb2015-benchmark-persist-results.yaml b/jdk12-specjbb2015-benchmark-persist-results.yaml
index e5231b9a7b..232101d071 100644
--- a/jdk12-specjbb2015-benchmark-persist-results.yaml
+++ b/jdk12-specjbb2015-benchmark-persist-results.yaml
@@ -8,7 +8,7 @@
* If the client axis is enabled the heap size for the VM will need to be adjusted using -Xmxm
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk12-specjbb2015-benchmark.yaml b/jdk12-specjbb2015-benchmark.yaml
index 38e1ed51ab..2ac1a0ceb8 100644
--- a/jdk12-specjbb2015-benchmark.yaml
+++ b/jdk12-specjbb2015-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the specjbb2015 benchmark in composite mode (i.e., single VM, single node).
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk12-terasort-benchmark-persist-results.yaml b/jdk12-terasort-benchmark-persist-results.yaml
index 4530ed3d9c..17820b959e 100644
--- a/jdk12-terasort-benchmark-persist-results.yaml
+++ b/jdk12-terasort-benchmark-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes results to /work/openjdk-testing/hadoop-terasort-benchmark-results.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk12-terasort-benchmark.yaml b/jdk12-terasort-benchmark.yaml
index 5c4190e11e..7f0440c050 100644
--- a/jdk12-terasort-benchmark.yaml
+++ b/jdk12-terasort-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the terasort benchmark.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk13-jcstress-test-persist-results.yaml b/jdk13-jcstress-test-persist-results.yaml
index 70a7de8426..7b9bcf8e6f 100644
--- a/jdk13-jcstress-test-persist-results.yaml
+++ b/jdk13-jcstress-test-persist-results.yaml
@@ -8,7 +8,7 @@
* /work/openjdk-testing/jcstress-results
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk13-jcstress-test.yaml b/jdk13-jcstress-test.yaml
index 8d4ebde342..4dee3ae15b 100644
--- a/jdk13-jcstress-test.yaml
+++ b/jdk13-jcstress-test.yaml
@@ -8,7 +8,7 @@
This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk13-jtreg-test-persist-results.yaml b/jdk13-jtreg-test-persist-results.yaml
index f8509c72c5..b6f14e9159 100644
--- a/jdk13-jtreg-test-persist-results.yaml
+++ b/jdk13-jtreg-test-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes the results to $HOME/srv/openjdk13/openjdk-jtreg-nightly-tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk13-jtreg-test.yaml b/jdk13-jtreg-test.yaml
index 4bed643f6c..317dbfde5e 100644
--- a/jdk13-jtreg-test.yaml
+++ b/jdk13-jtreg-test.yaml
@@ -6,7 +6,7 @@
* Runs the jtreg tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-read
diff --git a/jdk13-specjbb2015-benchmark-persist-results.yaml b/jdk13-specjbb2015-benchmark-persist-results.yaml
index edfe9701e2..113d173c88 100644
--- a/jdk13-specjbb2015-benchmark-persist-results.yaml
+++ b/jdk13-specjbb2015-benchmark-persist-results.yaml
@@ -8,7 +8,7 @@
* If the client axis is enabled the heap size for the VM will need to be adjusted using -Xmxm
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk13-specjbb2015-benchmark.yaml b/jdk13-specjbb2015-benchmark.yaml
index 6f4865300f..74962aa821 100644
--- a/jdk13-specjbb2015-benchmark.yaml
+++ b/jdk13-specjbb2015-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the specjbb2015 benchmark in composite mode (i.e., single VM, single node).
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk13-terasort-benchmark-persist-results.yaml b/jdk13-terasort-benchmark-persist-results.yaml
index a12c96e92a..b20eee815d 100644
--- a/jdk13-terasort-benchmark-persist-results.yaml
+++ b/jdk13-terasort-benchmark-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes results to /work/openjdk-testing/hadoop-terasort-benchmark-results.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk13-terasort-benchmark.yaml b/jdk13-terasort-benchmark.yaml
index d973173af5..84b61dea62 100644
--- a/jdk13-terasort-benchmark.yaml
+++ b/jdk13-terasort-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the terasort benchmark.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk14-jcstress-test-persist-results.yaml b/jdk14-jcstress-test-persist-results.yaml
index 70ee3286a3..5e8b6989a6 100644
--- a/jdk14-jcstress-test-persist-results.yaml
+++ b/jdk14-jcstress-test-persist-results.yaml
@@ -8,7 +8,7 @@
* /work/openjdk-testing/jcstress-results
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk14-jcstress-test.yaml b/jdk14-jcstress-test.yaml
index 027cf0bbfa..d0a69e8642 100644
--- a/jdk14-jcstress-test.yaml
+++ b/jdk14-jcstress-test.yaml
@@ -8,7 +8,7 @@
This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk14-jtreg-test-persist-results.yaml b/jdk14-jtreg-test-persist-results.yaml
index 799a2fb6ab..53723a0510 100644
--- a/jdk14-jtreg-test-persist-results.yaml
+++ b/jdk14-jtreg-test-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes the results to $HOME/srv/openjdk14/openjdk-jtreg-nightly-tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk14-jtreg-test.yaml b/jdk14-jtreg-test.yaml
index d9a1033cbc..ff69ac23d2 100644
--- a/jdk14-jtreg-test.yaml
+++ b/jdk14-jtreg-test.yaml
@@ -6,7 +6,7 @@
* Runs the jtreg tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-read
diff --git a/jdk14-specjbb2015-benchmark-persist-results.yaml b/jdk14-specjbb2015-benchmark-persist-results.yaml
index d417a15635..b60c4561d6 100644
--- a/jdk14-specjbb2015-benchmark-persist-results.yaml
+++ b/jdk14-specjbb2015-benchmark-persist-results.yaml
@@ -8,7 +8,7 @@
* If the client axis is enabled the heap size for the VM will need to be adjusted using -Xmxm
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk14-specjbb2015-benchmark.yaml b/jdk14-specjbb2015-benchmark.yaml
index befe6a5cc3..1fec00e871 100644
--- a/jdk14-specjbb2015-benchmark.yaml
+++ b/jdk14-specjbb2015-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the specjbb2015 benchmark in composite mode (i.e., single VM, single node).
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk14-terasort-benchmark-persist-results.yaml b/jdk14-terasort-benchmark-persist-results.yaml
index 1c4d4b295a..9ea78630e1 100644
--- a/jdk14-terasort-benchmark-persist-results.yaml
+++ b/jdk14-terasort-benchmark-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes results to /work/openjdk-testing/hadoop-terasort-benchmark-results.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk14-terasort-benchmark.yaml b/jdk14-terasort-benchmark.yaml
index 3b70caf932..10b1dc440f 100644
--- a/jdk14-terasort-benchmark.yaml
+++ b/jdk14-terasort-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the terasort benchmark.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk7u-update-src-tree.yaml b/jdk7u-update-src-tree.yaml
index c948c64611..ce656e19bc 100644
--- a/jdk7u-update-src-tree.yaml
+++ b/jdk7u-update-src-tree.yaml
@@ -61,7 +61,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
disabled: true
diff --git a/jdk8-jcstress-test-persist-results.yaml b/jdk8-jcstress-test-persist-results.yaml
index a5dbae68b6..ff9045ee47 100644
--- a/jdk8-jcstress-test-persist-results.yaml
+++ b/jdk8-jcstress-test-persist-results.yaml
@@ -8,7 +8,7 @@
* /work/openjdk-testing/jcstress-results
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk8-jcstress-test.yaml b/jdk8-jcstress-test.yaml
index d050bcf4d9..06a27b21fd 100644
--- a/jdk8-jcstress-test.yaml
+++ b/jdk8-jcstress-test.yaml
@@ -8,7 +8,7 @@
This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk8-jtreg-test-persist-results.yaml b/jdk8-jtreg-test-persist-results.yaml
index f4d7977cea..92f8ac72b6 100644
--- a/jdk8-jtreg-test-persist-results.yaml
+++ b/jdk8-jtreg-test-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes the results to $HOME/srv/openjdk8u/openjdk-jtreg-nightly-tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdk8-jtreg-test.yaml b/jdk8-jtreg-test.yaml
index 5943612636..82813a5a57 100644
--- a/jdk8-jtreg-test.yaml
+++ b/jdk8-jtreg-test.yaml
@@ -6,7 +6,7 @@
* Runs the jtreg tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-read
diff --git a/jdk8-specjbb2015-benchmark-persist-results.yaml b/jdk8-specjbb2015-benchmark-persist-results.yaml
index a1f50d0937..da67cfb8cb 100644
--- a/jdk8-specjbb2015-benchmark-persist-results.yaml
+++ b/jdk8-specjbb2015-benchmark-persist-results.yaml
@@ -8,7 +8,7 @@
* If the client axis is enabled the heap size for the VM will need to be adjusted using -Xmxm
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk8-specjbb2015-benchmark.yaml b/jdk8-specjbb2015-benchmark.yaml
index 23c3937cdb..5d01118680 100644
--- a/jdk8-specjbb2015-benchmark.yaml
+++ b/jdk8-specjbb2015-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the specjbb2015 benchmark in composite mode (i.e., single VM, single node).
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk8-terasort-benchmark-persist-results.yaml b/jdk8-terasort-benchmark-persist-results.yaml
index 72304a0a3e..048e6b4ffc 100644
--- a/jdk8-terasort-benchmark-persist-results.yaml
+++ b/jdk8-terasort-benchmark-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes results to /work/openjdk-testing/hadoop-terasort-benchmark-results.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdk8-terasort-benchmark.yaml b/jdk8-terasort-benchmark.yaml
index abba7e120a..1fd3008a8a 100644
--- a/jdk8-terasort-benchmark.yaml
+++ b/jdk8-terasort-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the terasort benchmark.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdkX-jcstress-test-persist-results.yaml b/jdkX-jcstress-test-persist-results.yaml
index b476c32da4..94a8898b5a 100644
--- a/jdkX-jcstress-test-persist-results.yaml
+++ b/jdkX-jcstress-test-persist-results.yaml
@@ -8,7 +8,7 @@
* /work/openjdk-testing/jcstress-results
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdkX-jcstress-test.yaml b/jdkX-jcstress-test.yaml
index 42c1899a4c..a617de643a 100644
--- a/jdkX-jcstress-test.yaml
+++ b/jdkX-jcstress-test.yaml
@@ -8,7 +8,7 @@
This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdkX-jtreg-test-persist-results.yaml b/jdkX-jtreg-test-persist-results.yaml
index 73fca30e40..f591d26d82 100644
--- a/jdkX-jtreg-test-persist-results.yaml
+++ b/jdkX-jtreg-test-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes the results to $HOME/srv/openjdkX/openjdk-jtreg-nightly-tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdkX-jtreg-test.yaml b/jdkX-jtreg-test.yaml
index eb73c8ef23..dd3e282363 100644
--- a/jdkX-jtreg-test.yaml
+++ b/jdkX-jtreg-test.yaml
@@ -6,7 +6,7 @@
* Runs the jtreg tests.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-read
diff --git a/jdkX-specjbb2015-benchmark-persist-results.yaml b/jdkX-specjbb2015-benchmark-persist-results.yaml
index 58296a0b0a..74f6fe18c8 100644
--- a/jdkX-specjbb2015-benchmark-persist-results.yaml
+++ b/jdkX-specjbb2015-benchmark-persist-results.yaml
@@ -8,7 +8,7 @@
* If the client axis is enabled the heap size for the VM will need to be adjusted using -Xmxm
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdkX-specjbb2015-benchmark.yaml b/jdkX-specjbb2015-benchmark.yaml
index b0b7041e51..12a37ffb05 100644
--- a/jdkX-specjbb2015-benchmark.yaml
+++ b/jdkX-specjbb2015-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the specjbb2015 benchmark in composite mode (i.e., single VM, single node).
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-build
diff --git a/jdkX-terasort-benchmark-persist-results.yaml b/jdkX-terasort-benchmark-persist-results.yaml
index 71a2b0f6fe..f26bd97586 100644
--- a/jdkX-terasort-benchmark-persist-results.yaml
+++ b/jdkX-terasort-benchmark-persist-results.yaml
@@ -6,7 +6,7 @@
* Writes results to /work/openjdk-testing/hadoop-terasort-benchmark-results.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/jdkX-terasort-benchmark.yaml b/jdkX-terasort-benchmark.yaml
index eee562755c..4e473ffa94 100644
--- a/jdkX-terasort-benchmark.yaml
+++ b/jdkX-terasort-benchmark.yaml
@@ -6,7 +6,7 @@
* Runs the terasort benchmark.
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
openjdk-members:
- job-extended-read
diff --git a/kernel-testing-configs/templates/generic.yaml b/kernel-testing-configs/templates/generic.yaml
deleted file mode 100644
index ce210b45ae..0000000000
--- a/kernel-testing-configs/templates/generic.yaml
+++ /dev/null
@@ -1,199 +0,0 @@
-- job:
- name: openembedded-lkft-developer-ci-${DEVELOPER_JOB_NAME}
- 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: KERNEL_BRANCH
- default: '${KERNEL_BRANCH}'
- - string:
- name: KERNEL_VERSION
- default: ''
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic'
- - string:
- name: KERNEL_REPO
- default: '${KERNEL_REPO}'
- - 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/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${DEVELOPER_JOB_NAME}/${BUILD_NUMBER}'
- - string:
- name: LAVA_SERVER
- default: 'https://lkft.validation.linaro.org/RPC2/'
- - string:
- name: QA_SERVER
- default: 'https://staging-qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: '${QA_SERVER_PROJECT}'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '75'
- - string:
- name: SANITY_LAVA_JOB_PRIORITY
- default: '80'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/default-in-kernel/'
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: false
- node: master
- display-name: 'Develepor CI setup for ${DEVELOPER_JOB_NAME} (OpenEmbedded/rocko)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=defconfig
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=i386_defconfig
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=x86_64_defconfig
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=defconfig
- ;;
- am57xx-evm)
- DEVICE_TYPE=x15
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=multi_v7_defconfig
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=defconfig
- ;;
- esac
-
- # Convert Git repo to Bitbake's Git URI format
- kernel_repo=$(echo ${KERNEL_REPO} | sed -e 's#\(ssh://\|https\?://\)#git://#')
- # Determine Git connection protocol to use
- kernel_protocol=$(echo ${KERNEL_REPO} | grep -o '.*://' | sed -e 's#://##')
-
- pwd
- cat << EOF > ${WORKSPACE}/custom-kernel-info.inc.tmp
- KERNEL_COMMIT = "${SRCREV_kernel}"
- KERNEL_REPO = "${KERNEL_REPO/http*:/git:}"
- KERNEL_PROTOCOL = "${kernel_protocol}"
- KERNEL_CONFIG_aarch64 = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_arm = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_x86-64 = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_x86 = "${KERNEL_CONFIG}"
- EOF
- cat ${WORKSPACE}/custom-kernel-info.inc.tmp
-
- echo "DEVICE_TYPE=${DEVICE_TYPE}" > device_type_parameters
- echo "KERNEL_CONFIG=${KERNEL_CONFIG}" >> 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
- - email-ext:
- recipients: '${EMAIL_ADDRESS}'
- 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/lava-dispatcher-daily-docker.yaml b/lava-dispatcher-daily-docker.yaml
deleted file mode 100644
index c64706e506..0000000000
--- a/lava-dispatcher-daily-docker.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-- job:
- name: lava-dispatcher-daily-docker
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: REPOSITORY
- default: 'staging'
- disabled: true
- node: build-amd64
- display-name: 'LAVA Dispatcher Docker images based on staging-repo'
- scm:
- - git:
- url: https://git.linaro.org/ci/dockerfiles.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: true
- triggers:
- - pollurl:
- cron: '@daily'
- urls:
- - url: 'http://images.validation.linaro.org/staging-repo/services-trace.txt'
- check-content:
- - simple: true
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: lava-dispatcher-docker/builders.sh
- publishers:
- - email:
- recipients: 'senthil.kumaran@linaro.org riku.voipio@linaro.org fathi.boudra@linaro.org'
diff --git a/lava-dispatcher-docker.yaml b/lava-dispatcher-docker.yaml
deleted file mode 100644
index e01e7a24e5..0000000000
--- a/lava-dispatcher-docker.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-- job:
- name: lava-dispatcher-docker
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: REPOSITORY
- default: 'production'
- disabled: true
- node: build-amd64
- display-name: 'LAVA Dispatcher Production Docker images'
- scm:
- - git:
- url: https://git.linaro.org/ci/dockerfiles.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: true
- triggers:
- - pollurl:
- cron: '@daily'
- urls:
- - url: 'http://images.validation.linaro.org/production-repo/services-trace.txt'
- check-content:
- - simple: true
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: lava-dispatcher-docker/builders.sh
- publishers:
- - email:
- recipients: 'senthil.kumaran@linaro.org riku.voipio@linaro.org fathi.boudra@linaro.org'
diff --git a/ldcg-bigdata-apache-arrow.yaml b/ldcg-bigdata-apache-arrow.yaml
deleted file mode 100644
index db754c7e0f..0000000000
--- a/ldcg-bigdata-apache-arrow.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-- job:
- name: ldcg-bigdata-apache-arrow
- 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: 30
- num-to-keep: 30
- disabled: false
- node: leg-aarch64
- concurrent: false
- display-name: 'LDCG BigData Apache Arrow'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: ldcg-bigdata-apache-arrow/build.sh
- - inject:
- properties-file: publish_parameters
- - linaro-publish-token
- - shell:
- !include-raw: llp/publisher.sh
- publishers:
- - email:
- recipients: 'fathi.boudra@linaro.org marcin.juszkiewicz@linaro.org ganesh.raju@linaro.org'
diff --git a/ldcg-bigdata-apache-arrow/build.sh b/ldcg-bigdata-apache-arrow/build.sh
index 87a144f2cb..6b8465466e 100644
--- a/ldcg-bigdata-apache-arrow/build.sh
+++ b/ldcg-bigdata-apache-arrow/build.sh
@@ -21,7 +21,7 @@ cd arrow/dev/tasks/linux-packages/
# change ownership of resulting packages to buildslave user so we can remove
# them without sudo use. "apt/build.sh" is called in a container as root user
-echo "chown 11517:1001 -R /host/repositories" >> apt/build.sh
+echo "chown $(id -u buildslave):$(id -g buildslave) -R /host/repositories" >> apt/build.sh
rake version:update
APT_TARGETS=debian-buster rake apt:build
diff --git a/ldcg-bigdata-apache-drill.yaml b/ldcg-bigdata-apache-drill.yaml
index bc3546e88a..8bf19de810 100644
--- a/ldcg-bigdata-apache-drill.yaml
+++ b/ldcg-bigdata-apache-drill.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -15,15 +15,18 @@
- build-discarder:
days-to-keep: 30
num-to-keep: 30
- disabled: false
+ disabled: true
node: docker-stretch-arm64-ldcg
display-name: 'LDCG BigData Apache Drill'
wrappers:
- timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: ldcg-bigdata-apache-drill/build.sh
- - linaro-publish-token
- shell: |
#!/bin/bash
@@ -31,7 +34,6 @@
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
--link-latest \
out reference-platform/components/bigdata/apache-drill/${BUILD_NUMBER}
diff --git a/ldcg-container-pytorch.yaml b/ldcg-container-pytorch.yaml
index 5ce3d80c20..2013d17f15 100644
--- a/ldcg-container-pytorch.yaml
+++ b/ldcg-container-pytorch.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -14,7 +14,7 @@
- build-discarder:
days-to-keep: 7
num-to-keep: 7
- disabled: false
+ disabled: true
node: leg-aarch64
concurrent: false
display-name: 'LDCG Pytorch containers'
diff --git a/ldcg-container-tensorflow.yaml b/ldcg-container-tensorflow.yaml
deleted file mode 100644
index 2290e8cab0..0000000000
--- a/ldcg-container-tensorflow.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-- job:
- name: ldcg-container-tensorflow
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 7
- num-to-keep: 7
- disabled: false
- node: leg-aarch64
- concurrent: false
- display-name: 'LDCG tensorflow containers'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: ldcg-hpc-tensorflow/build-containers.sh
- publishers:
- - email:
- recipients: 'paul.isaacs@linaro.org marcin.juszkiewicz@linaro.org'
diff --git a/ldcg-onednn-benchmarks.yaml b/ldcg-onednn-benchmarks.yaml
new file mode 100644
index 0000000000..18afa9c1ae
--- /dev/null
+++ b/ldcg-onednn-benchmarks.yaml
@@ -0,0 +1,62 @@
+- job:
+ name: ldcg-onednn-benchmarks
+ display-name: 'OneDNN - CI Benchmark'
+ project-type: freestyle
+ defaults: global
+ description: |
+ Updates source and builds OneDNN and ACL frequently for benchmark testing.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 90
+ num-to-keep: 90
+ - github:
+ url: https://github.com/oneapi-src/oneDNN.git
+ disabled: false
+ node: d05bench
+ concurent: false
+ wrappers:
+ - timestamps
+ - credentials-binding:
+ - text:
+ credential-id: QA_REPORTS_TOKEN
+ variable: QA_REPORTS_TOKEN
+ builders:
+ - shell:
+ !include-raw: ldcg-onednn-benchmarks/build-onednn-acl.sh
+ - shell:
+ !include-raw: ldcg-onednn-benchmarks/test-onednn.sh
+ - shell: |
+ #!/bin/bash -ex
+
+ if [ ! -d "${WORKSPACE}" ]; then
+ set -x
+ WORKSPACE=$(pwd)
+ else
+ set -ex
+ fi
+
+ if [ -f "${WORKSPACE}"/format-tests.sh ]; then
+ rm -r "${WORKSPACE}"/format-tests.sh
+ fi
+
+ wget https://git.linaro.org/ci/job/configs.git/plain/ldcg-onednn-benchmarks/format-tests.sh
+
+ sh format-tests.sh
+
+ curl \
+ --header "Auth-Token: $QA_REPORTS_TOKEN" \
+ --form tests=@"${WORKSPACE}"/oneDNN-results/final_full-oneDNN-results.json \
+ https://qa-reports.linaro.org/api/submit/ldcg/onednn/"${BUILD_NUMBER}"/d05
+
+ publisher:
+ - email:
+ recipients: 'theodore.grey@linaro.org andrew.goodbody@linaro.org'
diff --git a/ldcg-onednn-benchmarks/build-onednn-acl.sh b/ldcg-onednn-benchmarks/build-onednn-acl.sh
new file mode 100644
index 0000000000..149f51b2e3
--- /dev/null
+++ b/ldcg-onednn-benchmarks/build-onednn-acl.sh
@@ -0,0 +1,32 @@
+#!/bin/bash -ex
+
+if [ ! -d "${WORKSPACE}" ]; then
+ set -x
+ WORKSPACE=$(pwd)
+else
+ set -ex
+fi
+
+if [ -d "${WORKSPACE}"/ComputeLibrary ]; then
+ rm -rf "${WORKSPACE}"/ComputeLibrary
+fi
+
+if [ -d "${WORKSPACE}"/oneDNN ]; then
+ rm -rf "${WORKSPACE}"/oneDNN
+fi
+
+git clone https://github.com/ARM-software/ComputeLibrary.git
+git clone https://github.com/oneapi-src/oneDNN.git
+
+export PATH=/usr/local/bin:$PATH
+
+#build ACL
+cd ${WORKSPACE}/ComputeLibrary
+scons Werror=0 -j$(nproc) debug=0 neon=1 opencl=0 os=linux arch=arm64-v8a build=native install_dir=${WORKSPACE}/ComputeLibrary/acl
+
+#build oneDNN with acl support
+cd ${WORKSPACE}/oneDNN
+cmake -DDNL_AARCH64_USE_ACL=ON -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DCMAKE_C_COMPILER=/usr/local/bin/gcc
+make -j$(nproc)
+
+export ACL_ROOT_DIR=${WORKSPACE}/ComputeLibrary/acl
diff --git a/ldcg-onednn-benchmarks/convert-onednn-test-to-result.py b/ldcg-onednn-benchmarks/convert-onednn-test-to-result.py
new file mode 100644
index 0000000000..e7d4ec88cf
--- /dev/null
+++ b/ldcg-onednn-benchmarks/convert-onednn-test-to-result.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import sys
+
+testname = sys.argv[1] #takes testname as input
+workspace = sys.argv[2] #takes WORKSPACE root dir as input
+
+
+#opens the textfile corresponding to the testname from the tmp directory and saves it to pippo
+with open(workspace + "/oneDNN-results/" + testname + "-output.txt", 'r') as handle:
+ pippo = handle.readlines()
+
+#reads through each line of the testname and checks for PASS/FAIL results proving that the test has been completed correctly. If they exist then it adds them to a res_{testname}.txt file in SQUAD format.
+with open(workspace + "/oneDNN-results/res_" + testname + "-output.txt", 'w+') as whandle:
+ TestSuccess = False
+ TestFailed = False
+ for i in range(0,len(pippo)-2):
+ line = pippo[i]
+ line = line[2:]
+ if 'FAILED' in pippo[i]:
+ TestSuccess = True
+ TestFailed = True
+ break
+ elif 'PASSED' in pippo[i]:
+ if TestSuccess == False:
+ TestSuccess = True
+
+ #if no PASS/FAIL results only writes "{testname} : fail" to the result.
+ if TestSuccess == False or TestFailed == True:
+ whandle.write("\"" + testname + "\"" + ": " + "\"" + "fail" + "\"")
+ elif TestSuccess == True:
+ whandle.write("\"" + testname + "\"" + ": " + "\"" + "pass" + "\"")
diff --git a/ldcg-onednn-benchmarks/format-for-json.py b/ldcg-onednn-benchmarks/format-for-json.py
new file mode 100644
index 0000000000..6720efbed0
--- /dev/null
+++ b/ldcg-onednn-benchmarks/format-for-json.py
@@ -0,0 +1,17 @@
+#!/usr/bin/env python3
+
+import sys
+
+resultsfile = sys.argv[1]
+workspace = sys.argv[2]
+
+with open(workspace + '/' + resultsfile, 'r') as handle:
+ pippo = handle.readlines()
+
+with open(workspace + "/final_" + resultsfile, 'w+') as whandle:
+ for i in range(0, len(pippo)):
+ line = pippo[i]
+ if i != 0 and i != (len(pippo)-2) and i != len(pippo)-1:
+ whandle.write(line[:len(line)-1] + ',' + '\n')
+ else:
+ whandle.write(line)
diff --git a/ldcg-onednn-benchmarks/format-tests.sh b/ldcg-onednn-benchmarks/format-tests.sh
new file mode 100644
index 0000000000..8f79feed0b
--- /dev/null
+++ b/ldcg-onednn-benchmarks/format-tests.sh
@@ -0,0 +1,92 @@
+#!/bin/bash -ex
+
+if [ ! -d "${WORKSPACE}" ]; then
+ set -x
+ WORKSPACE=$(pwd)
+else
+ set -ex
+fi
+
+if [ -f "${WORKSPACE}"/convert-onednn-test-to-result.py ]; then
+ rm -r "${WORKSPACE}"/convert-onednn-test-to-result.py
+fi
+
+if [ -f "${WORKSPACE}"/format-for-json.py ]; then
+ rm -r "${WORKSPACE}"/format-for-json.py
+fi
+
+wget https://git.linaro.org/ci/job/configs.git/plain/ldcg-onednn-benchmarks/convert-onednn-test-to-result.py
+wget https://git.linaro.org/ci/job/configs.git/plain/ldcg-onednn-benchmarks/format-for-json.py
+
+python3 convert-onednn-test-to-result.py binary "${WORKSPACE}"
+#python3 convert-onednn-test-to-result.py brgemm "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py bnorm "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py concat "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py conv "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py deconv "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py eltwise "${WORKSPACE}"
+#python3 convert-onednn-test-to-result.py graph "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py eltwise "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py ip "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py lnorm "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py lrn "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py matmul "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py pool "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py prelu "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py reduction "${WORKSPACE}"
+#python3 convert-onednn-test-to-result.py reorder "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py resampling "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py rnn "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py shuffle "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py softmax "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py sum "${WORKSPACE}"
+python3 convert-onednn-test-to-result.py zeropad "${WORKSPACE}"
+
+echo { >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_binary-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+#cat "${WORKSPACE}"/oneDNN-results/res_brgemm-output.txt >> oneDNN-results/full-oneDNN-results.json
+#echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_bnorm-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_concat-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_conv-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_deconv-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_eltwise-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+#cat "${WORKSPACE}"/oneDNN-results/res_graph-output.txt >> oneDNN-results/full-oneDNN-results.json
+#echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_ip-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_lnorm-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_lrn-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_matmul-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_pool-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_prelu-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_reduction-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+#cat "${WORKSPACE}"/oneDNN-results/res_reorder-output.txt >> oneDNN-results/full-oneDNN-results.json
+#echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_resampling-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_rnn-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_shuffle-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_softmax-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_sum-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+cat "${WORKSPACE}"/oneDNN-results/res_zeropad-output.txt >> oneDNN-results/full-oneDNN-results.json
+echo >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+echo } >> "${WORKSPACE}"/oneDNN-results/full-oneDNN-results.json
+
+python3 "${WORKSPACE}"/format-for-json.py full-oneDNN-results.json "${WORKSPACE}"/oneDNN-results
diff --git a/ldcg-onednn-benchmarks/test-onednn.sh b/ldcg-onednn-benchmarks/test-onednn.sh
new file mode 100644
index 0000000000..016a8bad74
--- /dev/null
+++ b/ldcg-onednn-benchmarks/test-onednn.sh
@@ -0,0 +1,40 @@
+#!/bin/bash -ex
+
+if [ ! -d "${WORKSPACE}" ]; then
+ set -x
+ WORKSPACE=$(pwd)
+else
+ set -ex
+fi
+
+
+if [ -d "${WORKSPACE}"/oneDNN-results ]; then
+ rm -r "${WORKSPACE}"/oneDNN-results
+fi
+
+mkdir "${WORKSPACE}"/oneDNN-results
+
+cd "${WORKSPACE}"/oneDNN/tests/benchdnn
+
+./benchdnn --binary --batch=inputs/binary/shapes_ci | tee "${WORKSPACE}"/oneDNN-results/binary-output.txt
+#./benchdnn --brgemm --batch=inputs/brgemm/shapes_2d | tee "${WORKSPACE}"/oneDNN-results/brgemm-output.txt
+./benchdnn --bnorm --batch=inputs/bnorm/shapes_resnet_50 | tee "${WORKSPACE}"/oneDNN-results/bnorm-output.txt
+./benchdnn --concat --batch=inputs/concat/test_concat_all | tee "${WORKSPACE}"/oneDNN-results/concat-output.txt
+./benchdnn --conv --cfg=f32 --dir=FWD_B --batch=inputs/conv/set_conv_all | tee "${WORKSPACE}"/oneDNN-results/conv-output.txt
+./benchdnn --deconv --cfg=f32 --dir=FWD_B --batch=inputs/conv/set_conv_all | tee "${WORKSPACE}"/oneDNN-results/deconv-output.txt
+./benchdnn --eltwise --batch=inputs/eltwise/shapes_ci | tee "${WORKSPACE}"/oneDNN-results/eltwise-output.txt
+#./benchdnn --mode=P --graph --case=./tests/benchdnn/inputs/graph/pattern/f32/conv_post_ops_fusion.json | tee "${WORKSPACE}"/oneDNN-results/graph-output.txt
+./benchdnn --ip --batch=inputs/ip/shapes_ci | tee "${WORKSPACE}"/oneDNN-results/ip-output.txt
+./benchdnn --lnorm --batch=shapes_ci | tee "${WORKSPACE}"/oneDNN-results/lnorm-output.txt
+./benchdnn --lrn --batch=inputs/lrn/shapes_ci | tee "${WORKSPACE}"/oneDNN-results/lrn-output.txt
+./benchdnn --matmul --batch=inputs/matmul/shapes_2d | tee "${WORKSPACE}"/oneDNN-results/matmul-output.txt
+./benchdnn --pool --batch=inputs/pool/shapes_2d | tee "${WORKSPACE}"/oneDNN-results/pool-output.txt
+./benchdnn --prelu --batch=inputs/prelu/shapes_ci | tee "${WORKSPACE}"/oneDNN-results/prelu-output.txt
+./benchdnn --reduction --batch=inputs/reduction/shapes_ci | tee "${WORKSPACE}"/oneDNN-results/reduction-output.txt
+#./benchdnn --reorder --batch=inputs/reorder/test_reorder_all | tee "${WORKSPACE}"/oneDNN-results/reorder-output.txt
+./benchdnn --resampling --batch=inputs/resampling/shapes_2d | tee "${WORKSPACE}"/oneDNN-results/resampling-output.txt
+./benchdnn --rnn --batch=inputs/rnn/shapes_training | tee "${WORKSPACE}"/oneDNN-results/rnn-output.txt
+./benchdnn --shuffle --batch=inputs/shuffle/test_shuffle_all | tee "${WORKSPACE}"/oneDNN-results/shuffle-output.txt
+./benchdnn --softmax --batch=shapes_ci | tee "${WORKSPACE}"/oneDNN-results/softmax-output.txt
+./benchdnn --sum --batch=inputs/sum/test_sum_all | tee "${WORKSPACE}"/oneDNN-results/sum-output.txt
+./benchdnn --zeropad --batch=inputs/zeropad/test_zeropad_ci | tee "${WORKSPACE}"/oneDNN-results/zeropad-output.txt
diff --git a/ldcg-python-cache.yaml b/ldcg-python-cache.yaml
index e17056d86e..4801778f0a 100644
--- a/ldcg-python-cache.yaml
+++ b/ldcg-python-cache.yaml
@@ -14,7 +14,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/ldcg-python-manylinux-cache.yaml b/ldcg-python-manylinux-cache.yaml
index f60808f1bd..49ff24482a 100644
--- a/ldcg-python-manylinux-cache.yaml
+++ b/ldcg-python-manylinux-cache.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -34,10 +34,13 @@
display-name: 'Build some Python package wheels'
wrappers:
- timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: ldcg-python-manylinux-cache/build.sh
- - linaro-publish-token
- shell:
!include-raw: ldcg-python-manylinux-cache/publishers.sh
publishers:
diff --git a/ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh b/ldcg-python-manylinux-cache/build-manylinux2014-wheels.sh
index c3b696f57f..e22c112ef1 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-cache/build.sh b/ldcg-python-manylinux-cache/build.sh
index 1699369f6f..a400662574 100644
--- a/ldcg-python-manylinux-cache/build.sh
+++ b/ldcg-python-manylinux-cache/build.sh
@@ -16,7 +16,7 @@ echo "EXTRA_PYTHON_PACKAGES=\"${EXTRA_PYTHON_PACKAGES}\"" >> vars.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
+docker run --rm -u root -v $PWD:/tmp/workspace quay.io/pypa/manylinux2014_aarch64 /tmp/workspace/build-manylinux2014-wheels.sh
# sort out wheel files for publishing
diff --git a/ldcg-python-manylinux-cache/publishers.sh b/ldcg-python-manylinux-cache/publishers.sh
index 300f6bdd51..f7665dbd1a 100644
--- a/ldcg-python-manylinux-cache/publishers.sh
+++ b/ldcg-python-manylinux-cache/publishers.sh
@@ -11,7 +11,6 @@ ls -alR $COPY_FROM
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
$COPY_FROM \
$PUBLISH_TO
diff --git a/ldcg-python-manylinux-tensorflow-io.yaml b/ldcg-python-manylinux-tensorflow-io.yaml
new file mode 100644
index 0000000000..86befd38a2
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow-io.yaml
@@ -0,0 +1,48 @@
+- job:
+ name: ldcg-python-manylinux-tensorflow-io
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 7
+ num-to-keep: 7
+ parameters:
+ - bool:
+ name: build0
+ default: false
+ description: 'Build 0.32 release'
+ - bool:
+ name: buildgit
+ default: false
+ description: 'Build git HEAD'
+ - bool:
+ name: auditwheels
+ default: true
+ description: 'Run auditwheel on built wheels'
+ disabled: false
+ node: ldcg-aarch64-02
+ concurrent: false
+ display-name: 'Tensorflow IO Python package (manylinux2014)'
+ wrappers:
+ - timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
+ builders:
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/build-tfio.sh
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/publishers.sh
+ publishers:
+ - email:
+ recipients: 'marcin.juszkiewicz@linaro.org andrew.goodbody@linaro.org yong.tang@hotmail.com'
diff --git a/ldcg-python-manylinux-tensorflow-nightly.yaml b/ldcg-python-manylinux-tensorflow-nightly.yaml
index 0caa456185..f47a5f6eda 100644
--- a/ldcg-python-manylinux-tensorflow-nightly.yaml
+++ b/ldcg-python-manylinux-tensorflow-nightly.yaml
@@ -9,7 +9,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -19,21 +19,32 @@
num-to-keep: 7
parameters:
- bool:
+ name: useclang
+ default: false
+ description: 'Use clang to build instead of gcc'
+ - bool:
name: buildgit
default: true
description: 'Build git HEAD'
+ - bool:
+ name: buildonednn
+ default: false
+ description: 'Build with oneDNN/ACL'
disabled: false
- node: leg-aarch64
+ node: ldcg-aarch64-02
concurrent: false
display-name: 'Tensorflow Python package (manylinux2014 nightly)'
wrappers:
- timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
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'
+ recipients: 'marcin.juszkiewicz@linaro.org andrew.goodbody@linaro.org ldcg-ai-ml@op-lists.linaro.org'
diff --git a/ldcg-python-manylinux-tensorflow-onednn-nightly.yaml b/ldcg-python-manylinux-tensorflow-onednn-nightly.yaml
new file mode 100644
index 0000000000..b6b0d08b52
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow-onednn-nightly.yaml
@@ -0,0 +1,54 @@
+- job:
+ name: ldcg-python-manylinux-tensorflow-onednn-nightly
+ project-type: freestyle
+ defaults: global
+ triggers:
+ - timed: '10 0 * * *'
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 7
+ num-to-keep: 7
+ parameters:
+ - bool:
+ name: useclang
+ default: true
+ description: 'Use clang to build instead of gcc'
+ - bool:
+ name: buildgit
+ default: true
+ description: 'Build git HEAD'
+ - bool:
+ name: buildonednn
+ default: true
+ description: 'Build with oneDNN/ACL'
+ - bool:
+ name: buildonednnopt
+ default: true
+ description: 'Set TF_ENABLE_ONEDNN_OPT=1'
+ disabled: false
+ node: ldcg-aarch64-02
+ concurrent: false
+ display-name: 'Tensorflow oneDNN Python package (manylinux2014 nightly)'
+ wrappers:
+ - timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
+ builders:
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/build.sh
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/publishers.sh
+ publishers:
+ - email:
+ recipients: 'marcin.juszkiewicz@linaro.org andrew.goodbody@linaro.org ldcg-ai-ml@op-lists.linaro.org'
diff --git a/ldcg-python-manylinux-tensorflow-text.yaml b/ldcg-python-manylinux-tensorflow-text.yaml
new file mode 100644
index 0000000000..93e5cd6f85
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow-text.yaml
@@ -0,0 +1,48 @@
+- job:
+ name: ldcg-python-manylinux-tensorflow-text
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 7
+ num-to-keep: 7
+ parameters:
+ - bool:
+ name: build0
+ default: false
+ description: 'Build 2.13 release'
+ - bool:
+ name: buildgit
+ default: false
+ description: 'Build git HEAD'
+ - bool:
+ name: auditwheels
+ default: true
+ description: 'Run auditwheel on built wheels'
+ disabled: false
+ node: ldcg-aarch64-02
+ concurrent: false
+ display-name: 'Tensorflow Text Python package (manylinux2014)'
+ wrappers:
+ - timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
+ builders:
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/build-tf-text.sh
+ - shell:
+ !include-raw: ldcg-python-manylinux-tensorflow/publishers.sh
+ publishers:
+ - email:
+ recipients: 'marcin.juszkiewicz@linaro.org andrew.goodbody@linaro.org'
diff --git a/ldcg-python-manylinux-tensorflow.yaml b/ldcg-python-manylinux-tensorflow.yaml
index 45dd415174..8a7d480302 100644
--- a/ldcg-python-manylinux-tensorflow.yaml
+++ b/ldcg-python-manylinux-tensorflow.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -17,33 +17,64 @@
num-to-keep: 7
parameters:
- bool:
+ name: useclang
+ default: false
+ description: 'Use clang to build instead of gcc'
+ - bool:
name: buildgit
default: false
description: 'Build git HEAD'
- bool:
- name: build25
+ name: buildonednn
+ default: false
+ description: 'Build with oneDNN/ACL'
+ - bool:
+ name: buildonednnopt
+ default: false
+ description: 'Set TF_ENABLE_ONEDNN_OPT=1'
+ - bool:
+ name: prebuild
+ default: false
+ description: 'Pre-build a release before it is tagged using commit hash'
+ - string:
+ name: prebuild_hash
+ default: ''
+ description: 'Commit hash to be used for pre-build of release'
+ - bool:
+ name: build216
+ default: false
+ description: 'Build 2.16.x version'
+ - bool:
+ name: build215
+ default: false
+ description: 'Build 2.15.x version'
+ - bool:
+ name: build214
default: false
- description: 'Build 2.5.x version'
+ description: 'Build 2.14.x version'
- bool:
- name: build24
+ name: build213
default: false
- description: 'Build 2.4.x version'
+ description: 'Build 2.13.x version'
- bool:
- name: build115
+ name: build212
default: false
- description: 'Build 1.15.x version'
+ description: 'Build 2.12.x version'
disabled: false
- node: leg-aarch64
+ node: ldcg-aarch64-02
concurrent: false
display-name: 'Tensorflow Python package (manylinux2014)'
wrappers:
- timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
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'
+ recipients: 'marcin.juszkiewicz@linaro.org andrew.goodbody@linaro.org'
diff --git a/ldcg-python-manylinux-tensorflow/Dockerfile b/ldcg-python-manylinux-tensorflow/Dockerfile
new file mode 100644
index 0000000000..d2803e2137
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/Dockerfile
@@ -0,0 +1,13 @@
+ARG tag_prefix=latest
+FROM linaro/tensorflow-arm64-build:${tag_prefix}-multipython
+
+ARG py_major_minor_version='3.10'
+
+ENV TF_PYTHON_VERSION=${py_major_minor_version}
+ENV PYTHON_BIN_PATH=/usr/bin/python${TF_PYTHON_VERSION}
+
+RUN ln -s ${PYTHON_BIN_PATH} /usr/local/bin/python && \
+ ln -s ${PYTHON_BIN_PATH} /usr/local/bin/python3
+
+COPY upper-constraints.txt /
+RUN ${PYTHON_BIN_PATH} -m pip install -c /upper-constraints.txt -r /upper-constraints.txt
diff --git a/ldcg-python-manylinux-tensorflow/ansible/.config/ansible-lint.yml b/ldcg-python-manylinux-tensorflow/ansible/.config/ansible-lint.yml
new file mode 100644
index 0000000000..fcbba6f5e6
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/.config/ansible-lint.yml
@@ -0,0 +1,5 @@
+---
+
+skip_list:
+ - name[template]
+ - yaml[line-length]
diff --git a/ldcg-python-manylinux-tensorflow/ansible/ansible.cfg b/ldcg-python-manylinux-tensorflow/ansible/ansible.cfg
index 8428801027..28cbb08b00 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/ansible.cfg
+++ b/ldcg-python-manylinux-tensorflow/ansible/ansible.cfg
@@ -8,7 +8,7 @@ stdout_callback = yaml
bin_ansible_callbacks = True
# profile tasks
-callback_whitelist = profile_tasks
+callbacks_enabled = profile_tasks
roles_path = roles:/etc/ansible/roles
retry_files_enabled = False
diff --git a/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-dual-abi.yml b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-dual-abi.yml
new file mode 100644
index 0000000000..8a21ee7c80
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-dual-abi.yml
@@ -0,0 +1,36 @@
+---
+- name: Build TensorFlow in Dual ABI container
+ hosts: localhost
+ vars_files:
+ ../vars/vars.yml
+
+ tasks:
+ - name: Cleanup after previous build
+ ansible.builtin.file:
+ path: "{{ build_dir }}/{{ item }}"
+ state: absent
+ loop:
+ - disk-cache
+ - wheels
+ - ml_wheels
+ - tensorflow
+
+ - name: Create cache dirs
+ ansible.builtin.file:
+ path: "{{ build_dir }}/{{ item }}"
+ state: directory
+ mode: 0777
+ loop:
+ - disk-cache
+ - bazel-cache
+ - wheels
+ - ml_wheels
+
+ - name: Go through each TensorFlow version
+ ansible.builtin.include_role:
+ name: tensorflow
+ tasks_from: loop.yml
+ loop: "{{ versions | dict2items }}"
+ loop_control:
+ loop_var: tf_ver
+ when: tf_ver.key in to_be_built
diff --git a/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-io.yml b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-io.yml
new file mode 100644
index 0000000000..5ae976f54d
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-io.yml
@@ -0,0 +1,47 @@
+---
+- name: Build TensorFlow IO
+ hosts: localhost
+ vars_files:
+ ../vars/vars-tfio.yml
+
+ tasks:
+ - name: Create output wheels directory
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}"
+ state: directory
+ mode: 0755
+
+ - name: Go through each TensorFlow IO version
+ ansible.builtin.include_role:
+ name: tensorflow_io
+ tasks_from: manylinux-build.yml
+ loop: "{{ tfio_versions | dict2items }}"
+ loop_control:
+ loop_var: tfio_ver
+ when: tfio_ver.key in to_be_built
+
+ - name: Prepare wheels for publishing # noqa no-changed-when
+ ansible.builtin.shell:
+ cmd: |
+ set -xe
+ for pkg in *.whl
+ do
+ pkgdir=$(echo `basename $pkg`|cut -d'-' -f1 | tr '[:upper:]_' '[:lower:]-')
+ mkdir -p "{{ wheels_dir }}/$pkgdir"
+ mv $pkg "{{ wheels_dir }}/$pkgdir"
+ done
+ chdir: "{{ wheels_dir }}"
+ executable: "/bin/bash"
+
+ - name: Copy wheels for cache upload
+ ansible.builtin.copy:
+ src: "{{ wheels_dir }}"
+ dest: "{{ build_dir }}/cache_upload"
+ mode: 0644
+
+ - name: Prepare wheels for cache
+ ansible.builtin.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/playbooks/build-tf-text-dual-abi.yml b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-text-dual-abi.yml
new file mode 100644
index 0000000000..03296d8645
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf-text-dual-abi.yml
@@ -0,0 +1,45 @@
+---
+- name: Build TensorFlow Text in Dual ABI container
+ hosts: localhost
+ vars_files:
+ ../vars/vars-tf-text.yml
+
+ tasks:
+ - name: Remove previous build wheels
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}"
+ force: true
+ state: absent
+
+ - name: Create output wheels directory
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}"
+ state: directory
+ mode: 0755
+
+ - name: Go through each TensorFlow Text version
+ ansible.builtin.include_role:
+ name: tensorflow_text
+ tasks_from: manylinux-build.yml
+ loop: "{{ tf_text_versions | dict2items }}"
+ loop_control:
+ loop_var: tf_text_ver
+ when: tf_text_ver.key in to_be_built
+
+ - name: Remove file not needed to be published
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}/upper-constraints.txt"
+ state: absent
+
+ - name: Prepare wheels for publishing # noqa no-changed-when
+ ansible.builtin.shell:
+ cmd: |
+ set -xe
+ for pkg in *.whl
+ do
+ pkgdir=$(echo `basename $pkg`|cut -d'-' -f1 | tr '[:upper:]_' '[:lower:]-')
+ mkdir -p "{{ wheels_dir }}/$pkgdir"
+ mv $pkg "{{ wheels_dir }}/$pkgdir"
+ done
+ chdir: "{{ wheels_dir }}"
+ executable: "/bin/bash"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml
deleted file mode 100644
index b99372b0bf..0000000000
--- a/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tf.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-- hosts: localhost
- vars_files:
- ../vars/vars.yml
-
- tasks:
- - name: initialize job
- include_role:
- name: ldcg-manylinux-tensorflow
- tasks_from: init.yml
-
- - name: go through each TensorFlow version
- include_role:
- name: tensorflow
- tasks_from: loop.yml
- loop: "{{ versions | dict2items }}"
- loop_control:
- loop_var: tf_ver
- when: tf_ver.key in to_be_built
-
- - name: do publishing stuff
- include_role:
- name: ldcg-manylinux-tensorflow
- tasks_from: publish.yml
diff --git a/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tfio-dual-abi.yml b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tfio-dual-abi.yml
new file mode 100644
index 0000000000..8267cc5cb4
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/playbooks/build-tfio-dual-abi.yml
@@ -0,0 +1,49 @@
+---
+- name: Build TensorFlow IO in Dual ABI container
+ hosts: localhost
+ vars_files:
+ ../vars/vars-tfio.yml
+
+ tasks:
+ - name: Set dual abi variable
+ ansible.builtin.set_fact:
+ dual_abi: true
+
+ - name: Remove previous build wheels
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}"
+ force: true
+ state: absent
+
+ - name: Create output wheels directory
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}"
+ state: directory
+ mode: 0755
+
+ - name: Go through each TensorFlow IO version
+ ansible.builtin.include_role:
+ name: tensorflow_io
+ tasks_from: manylinux-build.yml
+ loop: "{{ tfio_versions | dict2items }}"
+ loop_control:
+ loop_var: tfio_ver
+ when: tfio_ver.key in to_be_built
+
+ - name: Remove file not needed to be published
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}/upper-constraints.txt"
+ state: absent
+
+ - name: Prepare wheels for publishing # noqa no-changed-when
+ ansible.builtin.shell:
+ cmd: |
+ set -xe
+ for pkg in *.whl
+ do
+ pkgdir=$(echo `basename $pkg`|cut -d'-' -f1 | tr '[:upper:]_' '[:lower:]-')
+ mkdir -p "{{ wheels_dir }}/$pkgdir"
+ mv $pkg "{{ wheels_dir }}/$pkgdir"
+ done
+ chdir: "{{ wheels_dir }}"
+ executable: "/bin/bash"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/build.yml
index 18e82cf4dd..b9bd8514b1 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/build.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/build.yml
@@ -1,34 +1,37 @@
-- name: fetch bazel {{ bazel_version }} source
- get_url:
+---
+- name: Fetch bazel {{ bazel_version }} source
+ ansible.builtin.get_url:
url: "https://github.com/bazelbuild/bazel/releases/download/{{ bazel_version }}/bazel-{{ bazel_version }}-dist.zip"
dest: "{{ build_dir }}"
mode: 0600
-- name: create directory to build bazel {{ bazel_version }}
- file:
+- name: Create directory to build bazel {{ bazel_version }}
+ ansible.builtin.file:
path: "{{ build_dir }}/bazel-{{ bazel_version }}/"
state: directory
mode: 0700
-- name: unpack bazel {{ bazel_version }} source
- unarchive:
+- name: Unpack bazel {{ bazel_version }} source
+ ansible.builtin.unarchive:
src: "{{ build_dir }}/bazel-{{ bazel_version }}-dist.zip"
dest: "{{ build_dir }}/bazel-{{ bazel_version }}"
remote_src: true
creates: "{{ build_dir }}/bazel-{{ bazel_version }}/compile.sh"
-- name: build bazel {{ bazel_version }}
- shell:
+- name: Build bazel {{ bazel_version }}
+ ansible.builtin.shell:
cmd: |
set -xe
- BAZEL_LINKLIBS=-l%:libstdc++.a EXTRA_BAZEL_ARGS='--host_javabase=@local_jdk//:jdk' ./compile.sh
+ export BAZEL_LINKLIBS=-lstdc++
+ export BAZEL_LINKOPTS=
+ EXTRA_BAZEL_ARGS='--host_javabase=@local_jdk//:jdk' ./compile.sh
chdir: "{{ build_dir }}/bazel-{{ bazel_version }}/"
creates: "{{ build_dir }}/bazel-{{ bazel_version }}/output/bazel"
executable: /bin/bash
-- name: install bazel {{ bazel_version }}
+- name: Install bazel {{ bazel_version }}
become: true
- copy:
+ ansible.builtin.copy:
src: "{{ build_dir }}/bazel-{{ bazel_version }}/output/bazel"
dest: /usr/local/bin/bazel
mode: 0755
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/deps.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/deps.yml
index 1d19b9a878..b159c6424a 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/deps.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/deps.yml
@@ -1,6 +1,7 @@
-- name: install bazel build requirements
+---
+- name: Install bazel build requirements
become: true
- package:
+ ansible.builtin.package:
name:
- cmake
- gcc-c++
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/fetch-binary.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/fetch-binary.yml
index e7f9b0368e..389712d4fb 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/fetch-binary.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/fetch-binary.yml
@@ -1,7 +1,12 @@
-- name: fetch Bazel {{ bazel_version }} binary from Github
+---
+- name: Determine architecture for bazelisk download
+ ansible.builtin.set_fact:
+ build_arch: "{{ 'amd64' if ansible_architecture == 'x86_64' else 'arm64' }}"
+
+- name: Fetch Bazelisk {{ bazelisk_version }} binary from Github
become: true
- get_url:
- url: "https://github.com/bazelbuild/bazel/releases/download/{{ bazel_version }}/bazel-{{ bazel_version }}-linux-arm64"
+ ansible.builtin.get_url:
+ url: "https://github.com/bazelbuild/bazelisk/releases/download/{{ bazelisk_version }}/bazelisk-linux-{{ build_arch }}"
dest: /usr/local/bin/bazel
mode: 0755
force: true
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/main.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/main.yml
index 4fba13446a..1119451083 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/main.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/main.yml
@@ -1,12 +1,14 @@
-- include: deps.yml
+---
+- name: Handle dependencies
+ ansible.builtin.include_tasks:
+ file: deps.yml
-- include: build.yml
- when: bazel_version < "3.5.0"
+- name: Build Bazel
+ ansible.builtin.include_tasks:
+ file: build.yml
+ when: bazel_version != "bazelisk"
-- include: fetch-binary.yml
- when: bazel_version >= "3.5.0"
-
-#- name: clean bazel cache
-# file:
-# path: ~/.cache/bazel
-# state: absent
+- name: Fetch Bazel binary
+ ansible.builtin.include_tasks:
+ file: fetch-binary.yml
+ when: bazel_version == "bazelisk"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/stop.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/stop.yml
index c45fe31ab8..9c9f4795c9 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/stop.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/bazel/tasks/stop.yml
@@ -1,4 +1,4 @@
-- name: stop bazel server # noqa no-changed-when
- command:
+---
+- name: Stop bazel server # noqa no-changed-when
+ ansible.builtin.command:
cmd: bazel shutdown
- chdir: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/"
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
deleted file mode 100644
index 797dfd447b..0000000000
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/init.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-- 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
deleted file mode 100644
index 2e78c920a0..0000000000
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg-manylinux-tensorflow/tasks/publish.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-- 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: 0600
-
-- 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/ldcg_manylinux_tensorflow/tasks/init.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg_manylinux_tensorflow/tasks/init.yml
new file mode 100644
index 0000000000..c1003f77bd
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg_manylinux_tensorflow/tasks/init.yml
@@ -0,0 +1,24 @@
+---
+- name: Install TensorFlow build dependencies
+ ansible.builtin.include_role:
+ name: tensorflow
+ tasks_from: deps.yml
+
+- name: Install build dependencies for Python wheels
+ ansible.builtin.include_role:
+ name: python
+ tasks_from: deps.yml
+
+- name: Create buildslave user inside container
+ ansible.builtin.user:
+ name: buildslave
+ uid: 1001
+ create_home: false
+
+- name: Create directory to build wheels
+ ansible.builtin.file:
+ path: "{{ wheels_dir }}"
+ state: directory
+ owner: buildslave
+ group: buildslave
+ 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 0000000000..1931391f8a
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/ldcg_manylinux_tensorflow/tasks/publish.yml
@@ -0,0 +1,28 @@
+---
+- name: Run repair on wheels
+ ansible.builtin.include_role:
+ name: linaro
+ tasks_from: auditwheel-repair.yml
+
+- name: Prepare wheels for publishing
+ ansible.builtin.include_role:
+ name: linaro
+ tasks_from: publish-wheels.yml
+
+- name: Prepare wheels for cache upload
+ when: tensorflow_version != 'git' and not prebuild_release
+ block:
+ - name: Copy wheels for cache upload
+ ansible.builtin.copy:
+ src: "{{ wheels_dir }}"
+ dest: "{{ build_dir }}/cache_upload"
+ owner: "buildslave"
+ group: "buildslave"
+ mode: 0644
+
+ - name: Prepare wheels for cache
+ ansible.builtin.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/linaro/tasks/auditwheel-repair.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/auditwheel-repair.yml
index def8e2ec54..ddae2eaa9f 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/auditwheel-repair.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/auditwheel-repair.yml
@@ -1,29 +1,16 @@
-- name: run auditwheel repair on wheels
- shell:
- cmd: "auditwheel repair {{ item }}"
+---
+- name: Run auditwheel repair on wheels # noqa no-changed-when
+ ansible.builtin.command:
+ cmd: "auditwheel repair -w {{ wheels_dir }} {{ item }}"
chdir: "{{ wheels_dir }}"
with_fileglob:
- - "{{ wheels_dir }}/tensorflow_cpu*.whl"
+ - "{{ wheels_dir }}/tensorflow*.whl"
- "{{ wheels_dir }}/h5py-3.2*.whl"
-- name: copy manylinux wheels into wheels
- copy:
- src: "{{ item }}"
- dest: "{{ wheels_dir }}"
- mode: 0666
- remote_src: true
- with_fileglob:
- - "{{ wheels_dir }}/wheelhouse/*.whl"
-
-- name: drop non-manylinux wheels
- file:
+- name: Drop non-manylinux wheels
+ ansible.builtin.file:
path: "{{ item }}"
state: absent
with_fileglob:
- - "{{ wheels_dir }}/tensorflow_cpu*linux_aarch64.whl"
+ - "{{ wheels_dir }}/tensorflow*linux_aarch64.whl"
- "{{ wheels_dir }}/h5py-3.2*linux_aarch64.whl"
-
-- name: drop wheelhouse dir
- file:
- path: "{{ wheels_dir }}/wheelhouse/"
- state: absent
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels-cache.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels-cache.yml
index 7f51b2d9d5..aee7f80f91 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels-cache.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels-cache.yml
@@ -1,9 +1,8 @@
-- name: prepare wheels for publishing # noqa no-changed-when
- shell:
+---
+- name: Prepare wheels for publishing in our cache # noqa no-changed-when
+ ansible.builtin.shell:
cmd: |
set -xe
- # we do not want tensorflow in wheel cache - it has own space
- rm -rf tensorflow*
for pkg in */*.whl
do
# do we have this package on server already?
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels.yml
index 92c74832e1..ffc818d198 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/linaro/tasks/publish-wheels.yml
@@ -1,5 +1,6 @@
-- name: prepare wheels for publishing # noqa no-changed-when
- shell:
+---
+- name: Prepare wheels for publishing # noqa no-changed-when
+ ansible.builtin.shell:
cmd: |
set -xe
for pkg in *.whl
@@ -8,5 +9,6 @@
mkdir -p "{{ wheels_dir }}/$pkgdir"
mv $pkg "{{ wheels_dir }}/$pkgdir"
done
+ chown -R buildslave:buildslave *
chdir: "{{ wheels_dir }}"
executable: "/bin/bash"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/deps.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/deps.yml
index 05a22fd48f..3a73bc8e75 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/deps.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/deps.yml
@@ -1,19 +1,20 @@
-- name: enable EPEL
+---
+- name: Enable EPEL
become: true
- package:
+ ansible.builtin.package:
name:
- epel-release
-- name: install h5py build requirements
+- name: Install h5py build requirements
become: true
- package:
+ ansible.builtin.package:
name:
- hdf5-devel
state: present
-- name: install numpy build requirements
+- name: Install numpy build requirements
become: true
- package:
+ ansible.builtin.package:
name:
- gcc-gfortran
- openblas-devel
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 0de728534c..819885cb2d 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/virtualenv.yml
@@ -1,9 +1,21 @@
-- name: set virtualenv path
- set_fact:
+---
+- name: Set virtualenv path
+ ansible.builtin.set_fact:
virtualenv_path: "{{ build_dir }}/venv-{{ py_ver }}"
-- name: create {{ py_ver }} virtualenv
- pip:
+- name: Create virtualenv directory
+ ansible.builtin.file:
+ path: "{{ virtualenv_path }}"
+ state: directory
+ owner: buildslave
+ group: buildslave
+ mode: 0755
+
+- name: Create Python {{ py_ver }} virtualenv
+ become: true
+ become_user: "buildslave"
+ become_method: su
+ ansible.builtin.pip:
virtualenv: "{{ virtualenv_path }}"
virtualenv_command: "/opt/python/{{ py_ver }}/bin/python3 -mvenv"
extra_args: "--extra-index-url {{ pip_extra_index_url }} -c '{{ wheels_dir }}/upper-constraints.txt'"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/wheel.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/wheel.yml
index d1a7bce40e..7210c984e2 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/wheel.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/python/tasks/wheel.yml
@@ -1,8 +1,13 @@
-- name: build wheels of Python package {{ wheel_name }} # noqa no-changed-when
- shell:
+---
+- name: Build wheels of Python package {{ wheel_name }} # noqa no-changed-when
+ become: true
+ become_user: "buildslave"
+ become_method: su
+ ansible.builtin.shell:
cmd: |
source {{ virtualenv_path }}/bin/activate
pip3 wheel -w '{{ wheels_dir }}' \
+ --no-binary h5py \
--extra-index-url {{ pip_extra_index_url }} \
-c "{{ wheels_dir }}/upper-constraints.txt" \
"{{ wheel_name }}"
@@ -11,8 +16,8 @@
NPY_NUM_BUILD_JOBS: "{{ ansible_processor_vcpus }}"
GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS: "{{ ansible_processor_vcpus }}"
-- name: get list of wheel files matching {{ wheel_name }}
- find:
+- name: Get list of wheel files matching {{ wheel_name }}
+ ansible.builtin.find:
path: "{{ wheels_dir }}"
patterns:
- "{{ wheel_name | regex_replace('.=.*', '') }}*py3*.whl"
@@ -20,12 +25,15 @@
file_type: file
register: wheel_files
-- name: get filename of latest {{ wheel_name }} wheel
- set_fact:
+- name: Get filename of latest {{ wheel_name }} wheel
+ ansible.builtin.set_fact:
wheel_file: "{{ wheel_files.files | sort(attribute='mtime') | last }}"
-- name: install {{ wheel_file.path | basename }} Python package
- pip:
+- name: Install {{ wheel_file.path | basename }} Python package
+ become: true
+ become_user: "buildslave"
+ become_method: su
+ ansible.builtin.pip:
name: "{{ wheel_file.path }}"
virtualenv: "{{ virtualenv_path }}"
virtualenv_python: "/opt/python/{{ py_ver }}/bin/python3"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow
deleted file mode 100644
index d7f41e2ef4..0000000000
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/expect
-spawn "./configure"
-expect {
- "*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 XLA JIT support*" {send "n\r";exp_continue}
- "*Do you wish to build TensorFlow with OpenCL SYCL support*" {send "n\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}
- "*Do you wish to download a fresh release of clang*" {send "n\r";exp_continue}
- "*Do you wish to build TensorFlow with MPI support*" {send "n\r";exp_continue}
- "*Please specify optimization flags to use during compilation when bazel option*" {send "\r";exp_continue}
- "*Would you like to interactively configure*" {send "n\r";exp_continue}
-}
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
deleted file mode 100644
index ecb0d64d0b..0000000000
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/configure_tensorflow-git
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/expect
-spawn "./configure"
-expect {
- "*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}
- "*Do you wish to download a fresh release of clang*" {send "n\r";exp_continue}
- "*Please specify optimization flags to use during compilation when bazel option*" {send "\r";exp_continue}
- "*Would you like to interactively configure*" {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
deleted file mode 100644
index 2ab6bd59d6..0000000000
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/files/upper-constraints.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-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.
-
-absl-py ~= 0.10
-astor >= 0.6.0
-astunparse ~= 1.6.3
-flatbuffers ~= 1.12.0
-google_pasta ~= 0.2
-keras_applications >= 1.0.8
-keras_preprocessing ~= 1.1.2
-opt_einsum ~= 3.3.0
-protobuf >= 3.9.2
-six ~= 1.15.0
-termcolor ~= 1.1.0
-typing_extensions ~= 3.7.4
-wheel ~= 0.35
-wrapt ~= 1.12.1
-
-# tensorboard and tensorflow-estimator dependencies are not listed
-# they are fetched on installation
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/deps.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/deps.yml
index d2885250ba..0e619aa58a 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/deps.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/deps.yml
@@ -1,7 +1,7 @@
-- name: install tensorflow build requirements
+---
+- name: Install TensorFlow build requirements
become: true
- yum:
+ ansible.builtin.package:
name:
- - expect
- git
- patch
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 8c93955b3c..6ea0e8bf76 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,74 @@
-- block:
- - name: fetch tensorflow {{ tensorflow_version }} source
- get_url:
+---
+- name: Fetch TensorFlow source archive
+ when: tensorflow_version != 'git' and not prebuild_release
+ block:
+ - name: Fetch TensorFlow{{ variant_name }} {{ tensorflow_version }} source
+ ansible.builtin.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:
+ - name: Unpack TensorFlow{{ variant_name }} {{ tensorflow_version }} source
+ ansible.builtin.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: 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: Rename source dir for oneDNN build
+ ansible.builtin.command: "mv {{ build_dir }}/tensorflow-{{ tensorflow_version }} {{ tensorflow_build_dir }}"
+ args:
+ creates: "{{ tensorflow_build_dir }}"
+ removes: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}"
+ when: onednn_build
- - name: copy configure script
- copy:
- src: "files/configure_tensorflow-git"
- dest: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/configure_tensorflow"
- mode: 0400
+- name: Fetch TensorFlow{{ variant_name }} from git
when: tensorflow_version == 'git'
+ ansible.builtin.git:
+ repo: "https://github.com/tensorflow/tensorflow.git" # noqa latest[git]
+ dest: "{{ tensorflow_build_dir }}/"
+ depth: 1
+ recursive: true
+ force: true
+
+- name: Fetch TensorFlow{{ variant_name }} from git at commit {{ prebuild_hash }}
+ when: prebuild_release
+ ansible.builtin.git:
+ repo: "https://github.com/tensorflow/tensorflow.git"
+ dest: "{{ tensorflow_build_dir }}/"
+ version: "{{ prebuild_hash }}"
+ depth: 1
+ recursive: true
+ force: true
+
+- name: Prepare TensorFlow source from git
+ when: tensorflow_version == 'git' or prebuild_release
+ block:
+ - name: Set world write access to source
+ ansible.builtin.file:
+ path: "{{ tensorflow_build_dir }}/"
+ state: directory
+ mode: 0777
+
+ - name: Get oneline version of git log for this checkout # noqa no-changed-when
+ ansible.builtin.command:
+ cmd: "git log --pretty=oneline -1"
+ chdir: "{{ tensorflow_build_dir }}/"
+ register: git_log
+
+ - name: Show git log
+ ansible.builtin.debug:
+ var: git_log.stdout
+
+ - name: Record git commit hash to variable
+ ansible.builtin.set_fact:
+ git_commit: "{{ git_log.stdout | regex_search('^[0-9a-f]+') }}"
+
+ - name: Save git commit hash to file
+ ansible.builtin.template:
+ src: "git_commit_hash.j2"
+ dest: "{{ wheels_dir }}/git_commit_hash"
+ owner: buildslave
+ group: buildslave
+ mode: 0444
+ force: true
+
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 fe55266356..e9ba473675 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/loop.yml
@@ -1,21 +1,30 @@
-- name: set TensorFlow version
- set_fact:
+---
+- name: Set TensorFlow and other package versions
+ ansible.builtin.set_fact:
tensorflow_version: "{{ tf_ver.value.tensorflow_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:
- name: bazel
- vars:
bazel_version: "{{ tf_ver.value.bazel_version }}"
+ onednn_ut_exclude: '{{ "-" + tf_ver.value.onednn_ut_exclude | join(" -") if onednn_enable_opt and tf_ver.value.onednn_ut_exclude else "" }}'
+ clang_ut_exclude: '{{ "-" + tf_ver.value.unit_tests_clang_exclude | join(" -") if clang_build and tf_ver.value.unit_tests_clang_exclude else "" }}'
+ gcc_ut_exclude: '{{ "-" + tf_ver.value.unit_tests_gcc_exclude | join(" -") if not clang_build and tf_ver.value.unit_tests_gcc_exclude else "" }}'
+ image_prefix: "{{ tf_ver.value.image_prefix }}"
+
+- name: Set build dir for TensorFlow{{ variant_name }} {{ tensorflow_version }}
+ ansible.builtin.set_fact:
+ tensorflow_build_dir: "{{ build_dir }}/tensorflow{{ variant_name }}-{{ tensorflow_version }}"
+
+- name: Remove TensorFlow{{ variant_name }} {{ tensorflow_version }} sources from previous build
+ ansible.builtin.file:
+ path: "{{ tensorflow_build_dir }}/"
+ state: absent
+
+- name: Fetch TensorFlow
+ ansible.builtin.include_tasks:
+ file: fetch.yml
-- name: go through each Python version
- include_role:
- name: tensorflow
- tasks_from: manylinux-build.yml
+- name: Build TensorFlow for each Python version (dual abi)
+ ansible.builtin.include_role:
+ name: tensorflow_in_container
+ tasks_from: dual-abi-build.yml
loop: "{{ tf_ver.value.python_versions }}"
loop_control:
loop_var: py_ver
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
deleted file mode 100644
index e03d2a4fae..0000000000
--- a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/manylinux-build.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-- name: copy upper constraints
- template:
- src: "files/upper-constraints.txt"
- dest: "{{ wheels_dir }}/upper-constraints.txt"
- mode: 0400
- force: true
-
-- name: create {{ py_ver }} virtualenv
- include_role:
- name: python
- tasks_from: virtualenv.yml
-
-- name: build and install wheels of binary Python packages
- include_role:
- name: python
- tasks_from: wheel.yml
- loop:
- - grpcio
- - "numpy{{ numpy_version }}"
- - "h5py{{ h5py_version }}"
- - Keras_Applications
- - Keras_Preprocessing
- loop_control:
- loop_var: wheel_name
-
-- name: remove TensorFlow {{ tensorflow_version }} sources from previous build
- file:
- path: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/"
- state: absent
-
-- include: fetch.yml
-
-- name: build TensorFlow {{ tensorflow_version }} for {{ py_ver }} # noqa no-changed-when
- shell:
- cmd: |
- set -xe
- source {{ virtualenv_path }}/bin/activate
- expect configure_tensorflow
- bazel clean --expunge
- export BAZEL_LINKLIBS=-l%:libstdc++.a
- bazel build --config=noaws --config=nogcp --config=nonccl \
- //tensorflow/tools/pip_package:build_pip_package --verbose_failures
- mkdir tensorflow-pkg
- bazel-bin/tensorflow/tools/pip_package/build_pip_package --cpu ./tensorflow-pkg
- chdir: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/"
- executable: /bin/bash
-
-- name: stop bazel server
- include_role:
- name: bazel
- tasks_from: stop.yml
-
-- name: get list of wheel files
- find:
- path: "{{ build_dir }}/tensorflow-{{ tensorflow_version }}/tensorflow-pkg/"
- patterns: "tensorflow_*.whl"
- file_type: file
- register: wheel_files
-
-- name: get filename of latest wheel
- set_fact:
- wheel_file: "{{ wheel_files.files | sort(attribute='mtime') | last }}"
-
-- name: install Python package
- pip:
- name: "{{ wheel_file.path }}"
- virtualenv: "{{ virtualenv_path }}"
- virtualenv_python: "/opt/python/{{ py_ver }}/bin/python3"
- extra_args: "--extra-index-url {{ pip_extra_index_url }} -c '{{ wheels_dir }}/upper-constraints.txt'"
-
-- name: copy resulting wheel
- copy:
- src: "{{ wheel_file.path }}"
- dest: "{{ wheels_dir }}"
- mode: 0666
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/patch_tree.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/patch_tree.yml
new file mode 100644
index 0000000000..74cbaefc7a
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/tasks/patch_tree.yml
@@ -0,0 +1,13 @@
+---
+- name: Create linklibs shell script
+ ansible.builtin.template:
+ src: linklibs.sh.j2
+ dest: "{{ tensorflow_build_dir }}/linklibs.sh"
+ mode: 0600
+
+- name: Use nightly package requirements
+ ansible.builtin.lineinfile:
+ path: "{{ tensorflow_build_dir }}/tensorflow/tools/pip_package/setup.py"
+ regexp: '^ return nightly'
+ line: ' return nightly'
+ when: tensorflow_version == 'git'
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/README_ut.md.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/README_ut.md.j2
new file mode 100644
index 0000000000..290f7f5564
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/README_ut.md.j2
@@ -0,0 +1,16 @@
+The below filter tags were used to build and select unit tests
+```
+{{ tf_ver.value.unit_tests_filter_flags }}
+```
+
+The following unit test section(s) were run on this release
+```
+\\tensorflow\...
+```
+
+The following unit tests and sections were excluded from being run. This may
+have been due to build issues, or are a known failure.
+```
+{{ tf_ver.value.unit_tests_exclude | join("\n") }}
+{{ tf_ver.value.onednn_ut_exclude | join("\n") if onednn_enable_opt else "" }}
+```
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/git_commit_hash.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/git_commit_hash.j2
new file mode 100644
index 0000000000..b33e4a65fc
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/git_commit_hash.j2
@@ -0,0 +1 @@
+{{ git_commit }}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/linklibs.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/linklibs.sh.j2
new file mode 100644
index 0000000000..6d54b8a9a7
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/linklibs.sh.j2
@@ -0,0 +1 @@
+{{ (tensorflow_version < "2.8.0") | ternary('export BAZEL_LINKLIBS=-lstdc++\nexport BAZEL_LINKOPTS=', '') }}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/python_bin_path b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/python_bin_path
new file mode 100644
index 0000000000..05cdc27d98
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/python_bin_path
@@ -0,0 +1 @@
+export PYTHON_BIN_PATH="{{ virtualenv_path }}/bin/python3"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/tf_configure.bazelrc b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/tf_configure.bazelrc
new file mode 100644
index 0000000000..a81fcdf702
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow/templates/tf_configure.bazelrc
@@ -0,0 +1,10 @@
+build --action_env PYTHON_BIN_PATH="{{ virtualenv_path }}/bin/python3"
+build --action_env PYTHON_LIB_PATH="{{ virtualenv_sp.stdout }}"
+build --python_path="{{ virtualenv_path }}/bin/python3"
+build:opt --copt=-Wno-sign-compare
+build:opt --host_copt=-Wno-sign-compare
+test --test_size_filters=small,medium
+test:v1 --test_tag_filters=-benchmark-test,-no_oss,-gpu,-oss_serial
+test:v1 --build_tag_filters=-benchmark-test,-no_oss,-gpu
+test:v2 --test_tag_filters=-benchmark-test,-no_oss,-gpu,-oss_serial,-v1only
+test:v2 --build_tag_filters=-benchmark-test,-no_oss,-gpu,-v1only
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/tasks/dual-abi-build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/tasks/dual-abi-build.yml
new file mode 100644
index 0000000000..9aa1c12669
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/tasks/dual-abi-build.yml
@@ -0,0 +1,236 @@
+---
+- name: Reset checkout to clean state # noqa command-instead-of-module
+ ansible.builtin.shell:
+ cmd: "git clean -dfx; git reset --hard"
+ chdir: "{{ tensorflow_build_dir }}/"
+ when: tensorflow_version == 'git'
+
+- name: (Python {{ py_ver }}) fetch TensorFlow source archive
+ when: tensorflow_version != 'git'
+ block:
+ - name: Remove TensorFlow{{ variant_name }} {{ tensorflow_version }} sources from previous build
+ ansible.builtin.file:
+ path: "{{ tensorflow_build_dir }}/"
+ state: absent
+
+ - name: Fetch TensorFlow
+ ansible.builtin.include_role:
+ name: tensorflow
+ tasks_from: fetch.yml
+
+- name: (Python {{ py_ver }}) patch TensorFlow tree
+ ansible.builtin.include_role:
+ name: tensorflow
+ tasks_from: patch_tree.yml
+
+- name: (Python {{ py_ver }}) copy upper constraints for hermetic builds
+ local_action:
+ module: ansible.builtin.template
+ src: "hermetic-upper-constraints.txt"
+ dest: "{{ build_dir }}/configs/ldcg-python-manylinux-tensorflow/upper-constraints.txt"
+ mode: 0644 # needs to be readable in container as well
+ force: true
+
+- name: (Python {{ py_ver }}) build Python versioned container
+ community.docker.docker_image:
+ name: "multipython-py{{ py_ver }}-{{ image_prefix }}"
+ build:
+ path: "{{ build_dir }}/configs/ldcg-python-manylinux-tensorflow/"
+ args:
+ tag_prefix: "{{ image_prefix }}"
+ py_major_minor_version: "{{ py_ver }}"
+ source: build
+ force_source: true
+
+- name: (Python {{ py_ver }}) start build container
+ community.docker.docker_container:
+ name: "tf-py{{ py_ver }}"
+ image: "multipython-py{{ py_ver }}-{{ image_prefix }}"
+ state: started
+ restart: true
+ volumes:
+ - "{{ tensorflow_build_dir }}:/tf/tensorflow"
+ - "{{ build_dir }}/wheels:/tf/pkg"
+ - "{{ build_dir }}/disk-cache:/tf/cache"
+ - "{{ build_dir }}/bazel-cache:/tf/bazel-cache"
+ detach: true
+ user: buildslave
+ working_dir: "/tf/tensorflow"
+ network_mode: host
+ command: "sleep infinity"
+ timeout: 6000
+
+- name: (Python {{ py_ver }}) create buildslave bazel cache dir
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: |
+ install -d -m0777 .cache/bazel/_bazel_buildslave
+ chdir: "/home/buildslave/"
+
+- name: (Python {{ py_ver }}) create link for bazel cache
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/bazel-cache bazel/_bazel_buildslave/cache
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) create link for bazelisk cache
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/bazel-cache bazelisk
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) create link for pip cache
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/cache pip
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) collect list of installed Python packages for build
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: "/usr/local/bin/python3 -m pip list -v"
+ chdir: "/tf/tensorflow"
+ register: pip_list_output
+
+- name: Show list of installed Python packages for build
+ ansible.builtin.debug:
+ var: pip_list_output.stdout
+
+- name: (Python {{ py_ver }}) build TensorFlow{{ variant_name }} {{ tensorflow_version }}
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: >
+ bazel --bazelrc=/usertools/{{ bazelrc_file }} build
+ --config=sigbuild_local_cache
+ {{ "--config=mkl_aarch64_threadpool" if onednn_build }}
+ {{ "--test_env=TF_ENABLE_ONEDNN_OPTS=1" if onednn_enable_opt }}
+ {{ "--repo_env=WHEEL_NAME=tensorflow_aarch64" if not tf_ver.value.old_pip_package }}
+ -- //tensorflow/tools/pip_package:{{ "build_pip_package" if tf_ver.value.old_pip_package else "wheel" }}
+ chdir: "/tf/tensorflow"
+
+- name: (Python {{ py_ver }}) build Python package
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: |
+ ./bazel-bin/tensorflow/tools/pip_package/build_pip_package \
+ --project_name tensorflow_aarch64 /tf/pkg
+ chdir: "/tf/tensorflow"
+ when: tf_ver.value.old_pip_package
+
+- name: (Python {{ py_ver }}) Copy built wheel
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: |
+ find ./bazel-bin/tensorflow/tools/pip_package -iname '*.whl' -exec cp '{}' /tf/pkg ';'
+ chdir: "/tf/tensorflow"
+ when: not tf_ver.value.old_pip_package
+
+- name: (Python {{ py_ver }}) Run TensorFlow testsuite
+ when: tf_ver.value.run_unit_tests
+ block:
+ - name: (Python {{ py_ver }}) cleanup Bazel install directory
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: "rm -rf bazel/_bazel_buildslave/install"
+ chdir: "/home/buildslave/.cache/"
+
+ - name: (Python {{ py_ver }}) create script to run tests
+ ansible.builtin.template:
+ src: "run-tests.sh.j2"
+ dest: "{{ tensorflow_build_dir }}/run-tests.sh"
+ mode: 0755
+ force: true
+
+ - name: (Python {{ py_ver }}) run TensorFlow{{ variant_name }} {{ tensorflow_version }} tests
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: "bash run-tests.sh"
+ chdir: "/tf/tensorflow"
+ register: test_output
+ ignore_errors: true
+
+ - name: (Python {{ py_ver }}) collect list of installed Python packages
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: "/usr/local/bin/python3 -m pip list -v"
+ chdir: "/tf/tensorflow"
+ register: pip_output
+
+ - name: (Python {{ py_ver }}) save list of installed Python packages
+ ansible.builtin.template:
+ src: "pip-stdout.j2"
+ dest: "{{ wheels_dir }}/log-pip-py{{ py_ver }}.txt"
+ mode: 0444
+
+ - name: (Python {{ py_ver }}) save tests output to file
+ ansible.builtin.template:
+ src: "log-stdout.j2"
+ dest: "{{ wheels_dir }}/log-tests-py{{ py_ver }}.txt"
+ mode: 0444
+
+ - name: (Python {{ py_ver }}) save tests stderr output to file
+ ansible.builtin.template:
+ src: "log-stderr.j2"
+ dest: "{{ wheels_dir }}/log-tests-py{{ py_ver }}-stderr.txt"
+ mode: 0444
+
+ - name: (Python {{ py_ver }}) Extract number of tests run
+ ansible.builtin.set_fact:
+ ut_tests_line: "{{ test_output.stdout | regex_search('^Executed [0-9]+ out of [0-9]+ tests: [0-9]+ tests pass.*', multiline=True) }}"
+
+ - name: (Python {{ py_ver }}) Show number of tests run
+ ansible.builtin.debug:
+ var: ut_tests_line
+
+ - name: (Python {{ py_ver }}) Extract failed tests
+ ansible.builtin.set_fact:
+ tests_failed: "{{ test_output.stderr | regex_findall('FAILED: .*', multiline=True) }}"
+ # log-tests-py3.8-stderr.txt:FAILED: //tensorflow/tools/api/tests:api_compatibility_test (Summary)
+ tests_flaky: "{{ test_output.stdout | regex_findall('.*FLAKY.*', multiline=True) }}"
+ # log-tests-py3.9.txt://tensorflow/python/data/experimental/kernel_tests/service:worker_tags_test FLAKY, failed in 2 out of 34 in 900.3s
+
+ - name: (Python {{ py_ver }}) Show which tests are flaky
+ ansible.builtin.debug:
+ var: tests_flaky
+
+ - name: (Python {{ py_ver }}) Show which tests failed
+ ansible.builtin.debug:
+ var: tests_failed
+
+- name: (Python {{ py_ver }}) Convert wheel to manylinux2014 compatible one
+ community.docker.docker_container_exec:
+ container: "tf-py{{ py_ver }}"
+ command: "/usertools/rename_and_verify_wheels.sh"
+ chdir: "/tf/tensorflow"
+
+- name: (Python {{ py_ver }}) Get list of wheel files
+ ansible.builtin.find:
+ path: "{{ wheels_dir }}"
+ patterns: "tensorflow*.whl"
+ file_type: file
+ register: wheel_files
+
+- name: (Python {{ py_ver }}) Get filename of latest wheel
+ ansible.builtin.set_fact:
+ wheel_file: "{{ wheel_files.files | sort(attribute='mtime') | last }}"
+
+- name: (Python {{ py_ver }}) move manylinux2014 wheel outside
+ ansible.builtin.copy:
+ src: "{{ wheel_file.path }}"
+ dest: "{{ build_dir }}/ml_wheels/"
+ mode: 0444
+
+- name: (Python {{ py_ver }}) Remove manylinux2014 wheel
+ ansible.builtin.file:
+ path: "{{ wheel_file.path }}"
+ state: absent
+
+- name: (Python {{ py_ver }}) stop build container
+ community.docker.docker_container:
+ name: "tf-py{{ py_ver }}"
+ image: "linaro/tensorflow-arm64-build:latest-python{{ py_ver }}"
+ state: absent
+ timeout: 6000
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/hermetic-upper-constraints.txt b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/hermetic-upper-constraints.txt
new file mode 100644
index 0000000000..c77866ab73
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/hermetic-upper-constraints.txt
@@ -0,0 +1,3 @@
+Cython>=0.29
+pip>=21
+
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stderr.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stderr.j2
new file mode 100644
index 0000000000..413d124911
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stderr.j2
@@ -0,0 +1 @@
+{{ test_output.stderr }}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stdout.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stdout.j2
new file mode 100644
index 0000000000..a945d00e0f
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/log-stdout.j2
@@ -0,0 +1 @@
+{{ test_output.stdout }}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/pip-stdout.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/pip-stdout.j2
new file mode 100644
index 0000000000..376563f28e
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/pip-stdout.j2
@@ -0,0 +1 @@
+{{ pip_output.stdout }}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/run-tests.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/run-tests.sh.j2
new file mode 100644
index 0000000000..1d04ff326b
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_in_container/templates/run-tests.sh.j2
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+source tensorflow/tools/ci_build/build_scripts/DEFAULT_TEST_TARGETS.sh
+
+start-stop-daemon -b -n portserver.py -a /usr/local/bin/python3 -S -- /usr/local/bin/portserver.py
+
+bazel --bazelrc=/usertools/{{ bazelrc_file }} test \
+ --config=sigbuild_local_cache \
+ {% if onednn_build %} --config=mkl_aarch64_threadpool {% endif %} \
+ {% if onednn_enable_opt %} --test_env=TF_ENABLE_ONEDNN_OPTS=1 {% endif %} \
+ --test_env=PORTSERVER_ADDRESS=@unittest-portserver \
+ --cache_test_results=no \
+ --test_timeout=500,900,3000,-1 \
+ --config=pycpp_filters \
+ --build_tests_only \
+ -- ${DEFAULT_BAZEL_TARGETS} \
+ -{{ tf_ver.value.unit_tests_exclude | join(" -") }} \
+ {{ onednn_ut_exclude }} \
+ {{ clang_ut_exclude }} \
+ {{ gcc_ut_exclude }}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/files/upper-constraints.txt b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/files/upper-constraints.txt
new file mode 100644
index 0000000000..43f2bd8dd1
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/files/upper-constraints.txt
@@ -0,0 +1,2 @@
+pip>=21
+wheel ~= 0.35
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/build_wheel.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/build_wheel.yml
new file mode 100644
index 0000000000..d971b54e43
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/build_wheel.yml
@@ -0,0 +1,9 @@
+---
+- name: Build TensorFlow IO wheels for Python {{ python_version }} # noqa no-changed-when
+ ansible.builtin.shell:
+ cmd: |
+ /opt/python/{{ python_version }}/bin/python setup.py --data bazel-bin -q bdist_wheel
+ rm -rf build
+ /opt/python/{{ python_version }}/bin/python setup.py --data bazel-bin -q bdist_wheel --project tensorflow-io-gcs-filesystem
+ chdir: "{{ build_dir }}/io-{{ tensorflow_io_version }}/"
+ executable: /bin/bash
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/fetch.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/fetch.yml
new file mode 100644
index 0000000000..6447aea8b7
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/fetch.yml
@@ -0,0 +1,32 @@
+---
+- name: Fetch and unpack TensorFlow IO source archive
+ when: tensorflow_io_version != 'git'
+ block:
+ - name: Fetch TensorFlow IO {{ tensorflow_io_version }} source
+ ansible.builtin.get_url:
+ url: "https://github.com/tensorflow/io/archive/refs/tags/v{{ tensorflow_io_version }}.tar.gz"
+ dest: "{{ build_dir }}/io-{{ tensorflow_io_version }}.tar.gz"
+ mode: 0600
+
+ - name: Unpack TensorFlow IO {{ tensorflow_io_version }} source
+ ansible.builtin.unarchive:
+ src: "{{ build_dir }}/io-{{ tensorflow_io_version }}.tar.gz"
+ dest: "{{ build_dir }}/"
+ remote_src: true
+
+- name: Fetch TensorFlow IO from git
+ ansible.builtin.git:
+ repo: "https://github.com/tensorflow/io.git" # noqa latest[git]
+ dest: "{{ build_dir }}/io-{{ tensorflow_io_version }}/"
+ depth: 1
+ recursive: true
+ force: true
+ version: "{{ tensorflow_io_git_version }}"
+ when: tensorflow_io_version == 'git'
+
+ # https://github.com/tensorflow/io/issues/1510
+- name: Make libwebp buildable with gcc 10
+ ansible.builtin.lineinfile:
+ regexp: "^.*WEBP_EXTERN.*$"
+ state: absent
+ path: "{{ build_dir }}/io-{{ tensorflow_io_version }}/third_party/libwebp.BUILD"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/gcc4-abi-build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/gcc4-abi-build.yml
new file mode 100644
index 0000000000..a75123544c
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/gcc4-abi-build.yml
@@ -0,0 +1,63 @@
+---
+- name: Build Bazel
+ ansible.builtin.include_role:
+ name: bazel
+ vars:
+ bazel_version: "{{ tfio_ver.value.bazel_version }}"
+
+- name: Create {{ py_ver }} virtualenv
+ ansible.builtin.include_role:
+ name: python
+ tasks_from: virtualenv.yml
+
+- name: Install TensorFlow {{ tensorflow_version }}
+ ansible.builtin.pip:
+ name: "tensorflow_aarch64=={{ tensorflow_version }}"
+ virtualenv: "{{ virtualenv_path }}"
+ virtualenv_python: "/opt/python/{{ py_ver }}/bin/python3"
+ extra_args: "--extra-index-url {{ pip_extra_index_url }}"
+
+- name: Build TensorFlow IO {{ tensorflow_io_version }} for {{ py_ver }} # noqa no-changed-when
+ ansible.builtin.shell:
+ cmd: |
+ set -xe
+ source {{ virtualenv_path }}/bin/activate
+
+ python3 tools/build/configure.py
+ export BAZEL_OPTIMIZATION="-j {{ ansible_processor_vcpus }}"
+ bazel build ${BAZEL_OPTIMIZATION} -- //tensorflow_io/... //tensorflow_io_gcs_filesystem/...
+
+ mkdir -p build
+ cp -r bazel-bin/tensorflow_io build/tensorflow_io
+ cp -r bazel-bin/tensorflow_io_gcs_filesystem build/tensorflow_io_gcs_filesystem
+ chdir: "{{ build_dir }}/io-{{ tensorflow_io_version }}/"
+ executable: /bin/bash
+
+- name: Stop bazel server
+ ansible.builtin.include_role:
+ name: bazel
+ tasks_from: stop.yml
+
+- name: Go through each Python version
+ ansible.builtin.include_role:
+ name: tensorflow_io
+ tasks_from: build_wheel.yml
+ loop: "{{ tfio_ver.value.python_versions }}"
+ loop_control:
+ loop_var: python_version
+
+- name: Audit TensorFlow IO wheels
+ ansible.builtin.shell:
+ cmd: |
+ for wheel in dist/*.whl
+ do
+ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:{{ virtualenv_path }}/lib/python3.8/site-packages/tensorflow ./tools/build/auditwheel repair -w "{{ wheels_dir }}" "$wheel"
+ done
+ chdir: "{{ build_dir }}/io-{{ tensorflow_io_version }}/"
+ executable: /bin/bash
+ when: run_audit
+
+- name: Copy un-audited wheels into place
+ ansible.builtin.shell:
+ cmd: "cp {{ build_dir }}/io-{{ tensorflow_io_version }}/dist/tensorflow*.whl {{ wheels_dir }}"
+ when: not run_audit
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/manylinux-build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/manylinux-build.yml
new file mode 100644
index 0000000000..023487e727
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io/tasks/manylinux-build.yml
@@ -0,0 +1,42 @@
+---
+- name: Set version variables
+ ansible.builtin.set_fact:
+ tensorflow_io_version: "{{ tfio_ver.value.tensorflow_io_version }}"
+ tensorflow_version: "{{ tfio_ver.value.tensorflow_version }}"
+ image_prefix: "{{ tfio_ver.value.image_prefix }}"
+
+- name: Set git version variables
+ ansible.builtin.set_fact:
+ tensorflow_io_git_version: "{{ tfio_ver.value.tensorflow_io_git_version }}"
+ when: tensorflow_io_version == 'git'
+
+- name: Remove TensorFlow IO {{ tensorflow_io_version }} sources from previous build
+ ansible.builtin.file:
+ path: "{{ build_dir }}/io-{{ tensorflow_io_version }}/"
+ state: absent
+
+- name: Fetch and unpack TensorFlow IO source archive
+ ansible.builtin.include_tasks:
+ file: fetch.yml
+
+- name: Copy upper constraints
+ ansible.builtin.template:
+ src: "files/upper-constraints.txt"
+ dest: "{{ wheels_dir }}/upper-constraints.txt"
+ mode: 0644
+ force: true
+
+- name: Set py_ver to version needed for binary build - {{ tfio_ver.value.build_py_ver }}
+ ansible.builtin.set_fact:
+ py_ver: "{{ tfio_ver.value.build_py_ver }}"
+
+- name: Run TensorFlow IO build in manylinux2014 container
+ ansible.builtin.include_tasks:
+ file: gcc4-abi-build.yml
+ when: not dual_abi
+
+- name: Build TensorFlow IO in Dual ABI enabled container
+ ansible.builtin.include_role:
+ name: tensorflow_io_in_container
+ tasks_from: dual-abi-build.yml
+ when: dual_abi
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/build_wheel.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/build_wheel.yml
new file mode 100644
index 0000000000..f30649facd
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/build_wheel.yml
@@ -0,0 +1,13 @@
+---
+- name: Create wheel build script from template
+ ansible.builtin.template:
+ src: "build_tfio_wheels.sh.j2"
+ dest: "{{ build_dir }}/scripts/build_tfio_wheels.sh"
+ mode: "755"
+ force: true
+
+- name: Build TensorFlow IO wheels for Python {{ python_version }} # noqa no-changed-when
+ community.docker.docker_container_exec:
+ container: "tfio-multipython"
+ command: /bin/bash -c /tmp/workspace/scripts/build_tfio_wheels.sh
+ chdir: "/tmp/workspace"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/dual-abi-build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/dual-abi-build.yml
new file mode 100644
index 0000000000..162b05b239
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/dual-abi-build.yml
@@ -0,0 +1,93 @@
+---
+- name: Create build scripts directory
+ ansible.builtin.file:
+ path: "{{ build_dir }}/scripts"
+ state: directory
+ mode: "755"
+
+- name: Create build scripts from templates
+ ansible.builtin.template:
+ src: "{{ item.name }}"
+ dest: "{{ build_dir }}/scripts/{{ item.target }}"
+ mode: "755"
+ force: true
+ loop:
+ - { name: 'build_tfio_binaries.sh.j2', target: 'build_tfio_binaries.sh' }
+ - { name: 'audit_tfio_wheels.sh.j2', target: 'audit_tfio_wheels.sh' }
+
+- name: Start TensorFlow IO build container
+ community.docker.docker_container:
+ name: "tfio-multipython"
+ image: "linaro/tensorflow-arm64-build:{{ image_prefix }}-multipython"
+ pull: true
+ state: started
+ restart: true
+ volumes:
+ - "{{ build_dir }}:/tmp/workspace"
+ detach: true
+ user: buildslave
+ working_dir: "/tmp/workspace"
+ network_mode: host
+ command: "sleep infinity"
+ timeout: 600
+
+- name: Create initial build venv
+ ansible.builtin.include_tasks:
+ file: virtualenv.yml
+
+- name: Build TensorFlow IO {{ tensorflow_io_version }} for {{ py_ver }} # noqa no-changed-when
+ community.docker.docker_container_exec:
+ container: "tfio-multipython"
+ command: /bin/bash -c /tmp/workspace/scripts/build_tfio_binaries.sh
+ chdir: "/tmp/workspace"
+
+- name: Go through each Python version
+ ansible.builtin.include_tasks:
+ file: build_wheel.yml
+ loop: "{{ tfio_ver.value.python_versions }}"
+ loop_control:
+ loop_var: python_version
+
+- name: Copy un-audited wheels into place
+ community.docker.docker_container_exec:
+ container: "tfio-multipython"
+ command: bash -c "cp /tmp/workspace/io-{{ tensorflow_io_version }}/dist/tensorflow*.whl /tmp/workspace/wheels/"
+ when: not run_audit
+
+- name: Stop build container
+ community.docker.docker_container:
+ name: "tfio-multipython"
+ image: "linaro/tensorflow-arm64-build:{{ image_prefix }}-multipython"
+ state: absent
+ timeout: 600
+
+- name: Audit TensorFlow IO wheels in manylinux2014_aarch64 container
+ when: run_audit
+ block:
+ - name: Start TensorFlow IO manylinux2014 audit container
+ community.docker.docker_container:
+ name: "tfio-audit"
+ image: "quay.io/pypa/manylinux2014_aarch64"
+ pull: true
+ state: started
+ restart: true
+ volumes:
+ - "{{ build_dir }}:/tmp/workspace"
+ detach: true
+ working_dir: "/tmp/workspace"
+ network_mode: host
+ command: "sleep infinity"
+ timeout: 600
+
+ - name: Audit TensorFlow IO wheels
+ community.docker.docker_container_exec:
+ container: "tfio-audit"
+ command: /bin/bash -c /tmp/workspace/scripts/audit_tfio_wheels.sh
+ chdir: "/tmp/workspace/io-{{ tensorflow_io_version }}"
+
+ - name: Stop audit container
+ community.docker.docker_container:
+ name: "tfio-audit"
+ image: "quay.io/pypa/manylinux2014_aarch64"
+ state: absent
+ timeout: 600
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/virtualenv.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/virtualenv.yml
new file mode 100644
index 0000000000..9e5d58312e
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/virtualenv.yml
@@ -0,0 +1,20 @@
+---
+- name: Create virtualenv scripts from templates
+ ansible.builtin.template:
+ src: "{{ item.name }}"
+ dest: "{{ build_dir }}/scripts/{{ item.target }}"
+ mode: "755"
+ force: true
+ loop:
+ - { name: 'init_venv.sh.j2', target: 'init_venv.sh' }
+ - { name: 'install_venv.sh.j2', target: 'install_venv.sh' }
+
+- name: Create python-{{ py_ver }} venv
+ community.docker.docker_container_exec:
+ container: "tfio-multipython"
+ command: /bin/bash -c /tmp/workspace/scripts/init_venv.sh
+
+- name: Populate python-{{ py_ver }} venv
+ community.docker.docker_container_exec:
+ container: "tfio-multipython"
+ command: /bin/bash -c /tmp/workspace/scripts/install_venv.sh
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/audit_tfio_wheels.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/audit_tfio_wheels.sh.j2
new file mode 100644
index 0000000000..466078817e
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/audit_tfio_wheels.sh.j2
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+for wheel in dist/*.whl
+do
+ ./tools/build/auditwheel repair -w ../wheels $wheel
+done
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_binaries.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_binaries.sh.j2
new file mode 100644
index 0000000000..bdc441c209
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_binaries.sh.j2
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+set -xe
+source ./venv-{{ py_ver }}/bin/activate
+python3 -m pip install --extra-index-url {{ pip_extra_index_url }} \
+ tensorflow_aarch64=={{ tensorflow_version }}
+cd /tmp/workspace/io-{{ tensorflow_io_version }}
+python3 tools/build/configure.py
+bazel build -j {{ ansible_processor_vcpus }} \
+ --crosstool_top=//third_party/toolchains/gcc10_manylinux2014_aarch64:toolchain \
+ -- //tensorflow_io/... //tensorflow_io_gcs_filesystem/...
+#mkdir -p build
+#cp -r bazel-bin/tensorflow_io build/tensorflow_io
+#cp -r bazel-bin/tensorflow_io_gcs_filesystem build/tensorflow_io_gcs_filesystem
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_wheels.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_wheels.sh.j2
new file mode 100644
index 0000000000..44b5ee0b89
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/build_tfio_wheels.sh.j2
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+set -xe
+cd /tmp/workspace/io-{{ tensorflow_io_version }}
+/usr/bin/python{{ python_version }} setup.py --data bazel-bin -q bdist_wheel
+rm -rf build
+/usr/bin/python{{ python_version }} setup.py --data bazel-bin -q bdist_wheel --project tensorflow-io-gcs-filesystem
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/init_venv.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/init_venv.sh.j2
new file mode 100644
index 0000000000..fdf7804b9a
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/init_venv.sh.j2
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+/usr/bin/python{{ py_ver }} -m venv venv-{{ py_ver }}
+source venv-{{ py_ver }}/bin/activate
+python3 -m pip install --upgrade pip setuptools
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/install_venv.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/install_venv.sh.j2
new file mode 100644
index 0000000000..c5b6671887
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/templates/install_venv.sh.j2
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+echo Will install needed PyPi packages
+source venv-{{ py_ver }}/bin/activate
+python3 -m pip install pkgconfig Cython wheel
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/files/upper-constraints.txt b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/files/upper-constraints.txt
new file mode 100644
index 0000000000..43f2bd8dd1
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/files/upper-constraints.txt
@@ -0,0 +1,2 @@
+pip>=21
+wheel ~= 0.35
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/build_wheel.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/build_wheel.yml
new file mode 100644
index 0000000000..e667fc42fa
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/build_wheel.yml
@@ -0,0 +1,17 @@
+---
+- name: Create virtualenv for Python {{ python_version }}
+ ansible.builtin.include_tasks:
+ file: virtualenv.yml
+
+- name: Create wheel build script from template
+ ansible.builtin.template:
+ src: "build_tf_text_wheels.sh.j2"
+ dest: "{{ build_dir }}/scripts/build_tf_text_wheels.sh"
+ mode: "755"
+ force: true
+
+- name: Build TensorFlow Text wheels for Python {{ python_version }} # noqa no-changed-when
+ community.docker.docker_container_exec:
+ container: "tf-text-multipython"
+ command: /bin/bash -c /tmp/workspace/scripts/build_tf_text_wheels.sh
+ chdir: "/tmp/workspace"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/dual-abi-build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/dual-abi-build.yml
new file mode 100644
index 0000000000..97a6c71e27
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/dual-abi-build.yml
@@ -0,0 +1,74 @@
+---
+- name: Create build scripts directory
+ ansible.builtin.file:
+ path: "{{ build_dir }}/scripts"
+ state: directory
+ mode: "755"
+
+- name: Create build scripts from templates
+ ansible.builtin.template:
+ src: "audit_tf_text_wheels.sh.j2"
+ dest: "{{ build_dir }}/scripts/audit_tf_text_wheels.sh"
+ mode: "755"
+ force: true
+
+- name: Start TensorFlow Text build container
+ community.docker.docker_container:
+ name: "tf-text-multipython"
+ image: "linaro/tensorflow-arm64-build:{{ image_prefix }}-multipython"
+ pull: true
+ state: started
+ restart: true
+ volumes:
+ - "{{ build_dir }}:/tmp/workspace"
+ detach: true
+ user: buildslave
+ working_dir: "/tmp/workspace"
+ network_mode: host
+ command: "sleep infinity"
+ timeout: 600
+
+- name: Go through each Python version
+ ansible.builtin.include_tasks:
+ file: build_wheel.yml
+ loop: "{{ tf_text_ver.value.python_versions }}"
+ loop_control:
+ loop_var: python_version
+
+- name: Stop build container
+ community.docker.docker_container:
+ name: "tf-text-multipython"
+ image: "linaro/tensorflow-arm64-build:{{ image_prefix }}-multipython"
+ state: absent
+ timeout: 600
+
+- name: Audit TensorFlow Text wheels in manylinux2014_aarch64 container
+ when: run_audit
+ block:
+ - name: Start TensorFlow IO manylinux2014 audit container
+ community.docker.docker_container:
+ name: "tf-text-audit"
+ image: "quay.io/pypa/manylinux2014_aarch64"
+ pull: true
+ state: started
+ restart: true
+ volumes:
+ - "{{ build_dir }}:/tmp/workspace"
+ detach: true
+ working_dir: "/tmp/workspace"
+ network_mode: host
+ command: "sleep infinity"
+ timeout: 600
+
+ - name: Audit TensorFlow Text wheels
+ community.docker.docker_container_exec:
+ container: "tf-text-audit"
+ command: /bin/bash -c /tmp/workspace/scripts/audit_tf_text_wheels.sh
+ chdir: "/tmp/workspace/text-{{ tensorflow_text_version }}"
+
+ - name: Stop audit container
+ community.docker.docker_container:
+ name: "tf-text-audit"
+ image: "quay.io/pypa/manylinux2014_aarch64"
+ state: absent
+ timeout: 600
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/fetch.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/fetch.yml
new file mode 100644
index 0000000000..5eb36969ca
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/fetch.yml
@@ -0,0 +1,32 @@
+---
+- name: Fetch and unpack TensorFlow Text source archive
+ when: tensorflow_text_version != 'git'
+ block:
+ - name: Fetch TensorFlow Text {{ tensorflow_text_version }} source
+ ansible.builtin.get_url:
+ url: "https://github.com/tensorflow/text/archive/refs/tags/v{{ tensorflow_text_version }}.tar.gz"
+ dest: "{{ build_dir }}/text-{{ tensorflow_text_version }}.tar.gz"
+ mode: 0600
+
+ - name: Unpack TensorFlow Text {{ tensorflow_text_version }} source
+ ansible.builtin.unarchive:
+ src: "{{ build_dir }}/text-{{ tensorflow_text_version }}.tar.gz"
+ dest: "{{ build_dir }}/"
+ remote_src: true
+
+- name: Fetch TensorFlow Text from git
+ ansible.builtin.git:
+ repo: "https://github.com/tensorflow/text.git" # noqa latest[git]
+ dest: "{{ build_dir }}/text-{{ tensorflow_text_version }}/"
+ depth: 1
+ recursive: true
+ force: true
+ version: "{{ tensorflow_text_git_version }}"
+ when: tensorflow_text_version == 'git'
+
+- name: Patch the source to work
+ ansible.builtin.lineinfile:
+ path: "{{ build_dir }}/text-{{ tensorflow_text_version }}/oss_scripts/prepare_tf_dep.sh"
+ regexp: '^(.*)(Browse the repository)(.*)$'
+ line: '\1permalink\3'
+ backrefs: true
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/manylinux-build.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/manylinux-build.yml
new file mode 100644
index 0000000000..46968aca2b
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/manylinux-build.yml
@@ -0,0 +1,31 @@
+---
+- name: Set version variables
+ ansible.builtin.set_fact:
+ tensorflow_text_version: "{{ tf_text_ver.value.tensorflow_text_version }}"
+ tensorflow_version: "{{ tf_text_ver.value.tensorflow_version }}"
+ image_prefix: "{{ tf_text_ver.value.image_prefix }}"
+
+- name: Set git version variables
+ ansible.builtin.set_fact:
+ tensorflow_text_git_version: "{{ tf_text_ver.value.tensorflow_text_git_version }}"
+ when: tensorflow_text_version == 'git'
+
+- name: Remove TensorFlow Text {{ tensorflow_text_version }} sources from previous build
+ ansible.builtin.file:
+ path: "{{ build_dir }}/text-{{ tensorflow_text_version }}/"
+ state: absent
+
+- name: Fetch and unpack TensorFlow Text source archive
+ ansible.builtin.include_tasks:
+ file: fetch.yml
+
+- name: Copy upper constraints
+ ansible.builtin.template:
+ src: "files/upper-constraints.txt"
+ dest: "{{ wheels_dir }}/upper-constraints.txt"
+ mode: 0644
+ force: true
+
+- name: Build TensorFlow Text in Dual ABI enabled container
+ ansible.builtin.include_tasks:
+ file: dual-abi-build.yml
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/virtualenv.yml b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/virtualenv.yml
new file mode 100644
index 0000000000..443f01dc41
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/tasks/virtualenv.yml
@@ -0,0 +1,20 @@
+---
+- name: Create virtualenv scripts from templates
+ ansible.builtin.template:
+ src: "{{ item.name }}"
+ dest: "{{ build_dir }}/scripts/{{ item.target }}"
+ mode: "755"
+ force: true
+ loop:
+ - { name: 'init_venv.sh.j2', target: 'init_venv.sh' }
+ - { name: 'install_venv.sh.j2', target: 'install_venv.sh' }
+
+- name: Create python-{{ python_version }} venv
+ community.docker.docker_container_exec:
+ container: "tf-text-multipython"
+ command: /bin/bash -c /tmp/workspace/scripts/init_venv.sh
+
+- name: Populate python-{{ python_version }} venv
+ community.docker.docker_container_exec:
+ container: "tf-text-multipython"
+ command: /bin/bash -c /tmp/workspace/scripts/install_venv.sh
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/audit_tf_text_wheels.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/audit_tf_text_wheels.sh.j2
new file mode 100644
index 0000000000..79f3c50ae5
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/audit_tf_text_wheels.sh.j2
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -e
+
+TF_SHARED_LIBRARY_NAME=$(grep -r TF_SHARED_LIBRARY_NAME .bazelrc | awk -F= '{print$2}')
+
+POLICY_JSON=$(find / -name manylinux-policy.json)
+
+sed -i "s/libresolv.so.2\"/libresolv.so.2\", $TF_SHARED_LIBRARY_NAME/g" $POLICY_JSON
+
+for wheel in dist/*linux_aarch64.whl
+do
+ auditwheel repair -w ../wheels $wheel
+done
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/build_tf_text_wheels.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/build_tf_text_wheels.sh.j2
new file mode 100644
index 0000000000..5e05f986ec
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/build_tf_text_wheels.sh.j2
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -xe
+cd /tmp/workspace/text-{{ tensorflow_text_version }}
+source /tmp/workspace/venv-{{ python_version }}/bin/activate
+./oss_scripts/configure.sh
+./oss_scripts/prepare_tf_dep.sh
+bazel build --enable_runfiles --crosstool_top="@ml2014_aarch64_config_aarch64//crosstool:toolchain" oss_scripts/pip_package:build_pip_package
+mkdir -p dist
+bazel-bin/oss_scripts/pip_package/build_pip_package dist
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/init_venv.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/init_venv.sh.j2
new file mode 100644
index 0000000000..f1e304fbc3
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/init_venv.sh.j2
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+/usr/bin/python{{ python_version }} -m venv venv-{{ python_version }}
+source venv-{{ python_version }}/bin/activate
+python3 -m pip install --upgrade pip setuptools
diff --git a/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/install_venv.sh.j2 b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/install_venv.sh.j2
new file mode 100644
index 0000000000..3cd56976eb
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_text/templates/install_venv.sh.j2
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+echo Will install needed PyPi packages
+source venv-{{ python_version }}/bin/activate
+python3 -m pip install wheel
+python3 -m pip install {% if tensorflow_text_version != 'git' %} tensorflow=={{ tensorflow_version }} {% else %} tf-nightly {% endif %}
diff --git a/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tf-text.yml b/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tf-text.yml
new file mode 100644
index 0000000000..79902c952f
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tf-text.yml
@@ -0,0 +1,31 @@
+---
+pip_extra_index_url: "https://snapshots.linaro.org/ldcg/python-cache/"
+build_dir: "/tmp/workspace"
+wheels_dir: "/tmp/workspace/wheels/"
+run_audit: true
+bazelisk_version: "v1.12.0"
+tf_text_versions:
+ "2.16":
+ tensorflow_text_version: "2.16.1"
+ tensorflow_version: "2.16.*"
+ bazel_version: "bazelisk"
+ image_prefix: "2.16"
+ python_versions:
+ - "3.9"
+ - "3.10"
+ - "3.11"
+ - "3.12"
+ "git":
+ tensorflow_text_version: "git"
+ tensorflow_text_git_version: "HEAD" # can be set to tags like "v0.24.0" or git commit id
+ tensorflow_version: "2.16.1"
+ bazel_version: "bazelisk"
+ image_prefix: "latest"
+ python_versions:
+ - "3.9"
+ - "3.10"
+ - "3.11"
+ - "3.12"
+to_be_built:
+# - "2.16"
+# - "git"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tfio.yml b/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tfio.yml
new file mode 100644
index 0000000000..e57255cd79
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tfio.yml
@@ -0,0 +1,33 @@
+---
+pip_extra_index_url: "https://snapshots.linaro.org/ldcg/python-cache/"
+build_dir: "/tmp/workspace"
+wheels_dir: "/tmp/workspace/wheels/"
+run_audit: true
+bazelisk_version: "v1.12.0"
+tfio_versions:
+ "0.37":
+ tensorflow_io_version: "0.37.0"
+ tensorflow_version: "2.16.*"
+ bazel_version: "bazelisk"
+ build_py_ver: "3.9"
+ image_prefix: "2.16"
+ python_versions:
+ - "3.9"
+ - "3.10"
+ - "3.11"
+ - "3.12"
+ "git":
+ tensorflow_io_version: "git"
+ tensorflow_io_git_version: "HEAD" # can be set to tags like "v0.24.0" or git commit id
+ tensorflow_version: "2.16.1"
+ bazel_version: "bazelisk"
+ build_py_ver: "3.9"
+ image_prefix: "2.16"
+ python_versions:
+ - "3.9"
+ - "3.10"
+ - "3.11"
+ - "3.12"
+to_be_built:
+# - "0.36"
+# - "git"
diff --git a/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml b/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
index bf2a190969..769c33ec37 100644
--- a/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+++ b/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
@@ -2,53 +2,90 @@
pip_extra_index_url: "https://snapshots.linaro.org/ldcg/python-cache/"
build_dir: "/tmp/workspace"
wheels_dir: "/tmp/workspace/wheels/"
+clang_build: false
+onednn_build: false
+onednn_enable_opt: false
+prebuild_release: false
+prebuild_hash: ""
+bazelrc_file: "{{ 'aarch64_clang.bazelrc' if clang_build else 'aarch64.bazelrc' }}"
+extra_options: "{{ '--config=mkl_aarch64_threadpool' if onednn_build else '' }}"
+extra_test_options: "{{ '--test_env=TF_ENABLE_ONEDNN_OPTS=0' if onednn_build else '' }}"
+variant_name: "{{ '-oneDNN-ACL' if onednn_build else '' }}"
+bazelisk_version: "v1.12.0"
versions:
- "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"
+ "2.16":
+ tensorflow_version: "2.16.1"
+ bazel_version: "bazelisk"
+ old_pip_package: true
+ image_prefix: "2.16"
+ run_unit_tests: true
+ run_serial_unit_tests: true
+ onednn_ut_exclude: ""
+ unit_tests_exclude:
+ - "//tensorflow/lite/..."
+ unit_tests_gcc_exclude:
+ - "//tensorflow/compiler/mlir/lite/debug:debug_test"
+ - "//tensorflow/compiler/mlir/quantization/tensorflow/debugging:mlir_dump_test"
+ unit_tests_clang_exclude:
+ - "//tensorflow/core/kernels/image:resize_bicubic_op_test"
+ serial_unit_tests_exclude: ""
+ unit_tests_filter_flags: "NOT_USED"
python_versions:
- - cp36-cp36m
- - cp37-cp37m
- - cp38-cp38
- - cp39-cp39
- "2.4":
- tensorflow_version: "2.4.1"
- bazel_version: "3.5.0"
- gast_version: "==0.3.3"
- grpcio_version: "~=1.32.0"
- h5py_version: "~=2.10"
- numpy_version: "~=1.19.2"
+ - "3.9"
+ - "3.10"
+ - "3.11"
+ - "3.12"
+ "2.15":
+ tensorflow_version: "2.15.1"
+ bazel_version: "bazelisk"
+ old_pip_package: true
+ image_prefix: "2.15"
+ run_unit_tests: true
+ run_serial_unit_tests: true
+ onednn_ut_exclude:
+ - "//tensorflow/core/grappler/optimizers:auto_mixed_precision_test"
+ - "//tensorflow/core/grappler/optimizers:remapper_test"
+ unit_tests_exclude:
+ - "//tensorflow/lite/..."
+ - "//tensorflow/tools/api/tests:api_compatibility_test"
+ unit_tests_gcc_exclude:
+ - "//tensorflow/compiler/mlir/lite/debug:debug_test"
+ unit_tests_clang_exclude:
+ - "//tensorflow/compiler/mlir/lite/quantization/lite:quantize_model_test"
+ - "//tensorflow/compiler/mlir/lite/quantization/lite:quantize_weights_test"
+ - "//tensorflow/compiler/mlir/lite/sparsity:sparsify_model_test"
+ - "//tensorflow/core/kernels/image:resize_bicubic_op_test"
+ serial_unit_tests_exclude: ""
+ unit_tests_filter_flags: "NOT_USED"
python_versions:
- - cp36-cp36m
- - cp37-cp37m
- - cp38-cp38
- - cp39-cp39
- "1.15":
- tensorflow_version: "1.15.5"
- bazel_version: "0.29.1"
- 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
+ - "3.9"
+ - "3.10"
+ - "3.11"
"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"
+ bazel_version: "bazelisk"
+ old_pip_package: false
+ image_prefix: "latest"
+ run_unit_tests: true
+ run_serial_unit_tests: true
+ onednn_ut_exclude: ""
+ unit_tests_exclude:
+ - "//tensorflow/lite/..."
+ unit_tests_gcc_exclude: ""
+ unit_tests_clang_exclude:
+ - "//tensorflow/core/kernels/image:resize_bicubic_op_test"
+ serial_unit_tests_exclude: ""
+ unit_tests_filter_flags: "NOT_USED"
python_versions:
- - cp36-cp36m
- - cp37-cp37m
- - cp38-cp38
- - cp39-cp39
+ - "3.9"
+ - "3.10"
+ - "3.11"
+ - "3.12"
to_be_built:
-# - "2.5"
-# - "1.15"
+# - "2.12"
+# - "2.13"
+# - "2.14"
+# - "2.15"
+# - "git"
+
+# Python versions are from tensorflow-git/tensorflow/tools/pip_package/setup.py file
diff --git a/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh b/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh
index 025455c793..2c85328bae 100644
--- a/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh
+++ b/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh
@@ -3,13 +3,14 @@
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
+# remove tensorflow source, wheels and venvs from previous jobs
# we do it here as they are root:root
-rm -rf wheel* *.whl cache*
+rm -rf wheels *.whl cache* venv-* tensorflow-* || true
cd configs/ldcg-python-manylinux-tensorflow/ansible
diff --git a/ldcg-python-manylinux-tensorflow/build-tf-text.sh b/ldcg-python-manylinux-tensorflow/build-tf-text.sh
new file mode 100644
index 0000000000..83d644a51e
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/build-tf-text.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+set -xe
+
+cd $WORKSPACE
+
+rm -rf *.sh configs
+
+git clone --depth 1 https://git.linaro.org/ci/job/configs.git
+
+if [ "$build0" = "true" ]; then
+ echo ' - "2.16"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tf-text.yml
+fi
+if [ "$buildgit" = "true" ]; then
+ echo ' - "git"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tf-text.yml
+fi
+if [ "$auditwheels" = "false" ]; then
+ sed -i -e '/run_audit/s/true/false/' configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tf-text.yml
+fi
+
+ansible-galaxy collection install community.docker
+
+cd configs/ldcg-python-manylinux-tensorflow/ansible/
+sed -i -e"s+/tmp/workspace+${WORKSPACE}+g" vars/vars-tf-text.yml
+
+ansible-playbook playbooks/build-tf-text-dual-abi.yml
diff --git a/ldcg-python-manylinux-tensorflow/build-tfio-manylinux2014-wheels.sh b/ldcg-python-manylinux-tensorflow/build-tfio-manylinux2014-wheels.sh
new file mode 100644
index 0000000000..d85ae43c0d
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/build-tfio-manylinux2014-wheels.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+set -xe
+
+# Ansible is noarch so we can just grab it from x86-64 repo
+yum install -y centos-release-ansible-29
+yum install -y ansible
+
+cd /tmp/workspace
+
+# remove wheels and venvs from previous jobs
+# we do it here as they are root:root
+rm -rf wheels *.whl cache* venv-*
+
+cd configs/ldcg-python-manylinux-tensorflow/ansible
+
+ansible-playbook playbooks/build-tf-io.yml
diff --git a/ldcg-python-manylinux-tensorflow/build-tfio.sh b/ldcg-python-manylinux-tensorflow/build-tfio.sh
new file mode 100644
index 0000000000..ae6c31b69c
--- /dev/null
+++ b/ldcg-python-manylinux-tensorflow/build-tfio.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+set -xe
+
+cd $WORKSPACE
+
+rm -rf *.sh configs
+
+git clone --depth 1 https://git.linaro.org/ci/job/configs.git
+
+if [ "$build0" = "true" ]; then
+ echo ' - "0.37"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tfio.yml
+fi
+if [ "$buildgit" = "true" ]; then
+ echo ' - "git"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tfio.yml
+fi
+if [ "$auditwheels" = "false" ]; then
+ sed -i -e '/run_audit/s/true/false/' configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars-tfio.yml
+fi
+
+ansible-galaxy collection install community.docker
+
+cd configs/ldcg-python-manylinux-tensorflow/ansible/
+sed -i -e"s+/tmp/workspace+${WORKSPACE}+g" vars/vars-tfio.yml
+
+ansible-playbook playbooks/build-tfio-dual-abi.yml
diff --git a/ldcg-python-manylinux-tensorflow/build.sh b/ldcg-python-manylinux-tensorflow/build.sh
index f504459e8d..4e88a086d6 100644
--- a/ldcg-python-manylinux-tensorflow/build.sh
+++ b/ldcg-python-manylinux-tensorflow/build.sh
@@ -4,26 +4,58 @@ set -xe
cd $WORKSPACE
-rm -rf *.sh configs
+rm -rf *.sh configs wheels cache_upload
-git clone --depth 1 https://git.linaro.org/ci/job/configs.git
+mkdir wheels cache_upload
-cp configs/ldcg-python-manylinux-tensorflow/build-manylinux2014-wheels.sh .
+git clone --depth 1 https://git.linaro.org/ci/job/configs.git
-# 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
+cd configs; git log --pretty=oneline -1; cd ..
-if [ "$build115" = "true" ]; then
- echo ' - "1.15"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+if [ "$build212" = "true" ]; then
+ echo ' - "2.12"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$build213" = "true" ]; then
+ echo ' - "2.13"' >> configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$build214" = "true" ]; then
+ echo ' - "2.14"' >> 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
+if [ "$build215" = "true" ]; then
+ echo ' - "2.15"' >> 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
+if [ "$build216" = "true" ]; then
+ echo ' - "2.16"' >> 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
+if [ "$buildonednn" = "true" ]; then
+ sed -i -e '/onednn_build/s/false/true/' configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$buildonednnopt" = "true" ]; then
+ sed -i -e '/onednn_enable_opt/s/false/true/' -e '/extra_test_options/s/0/1/' configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$prebuild" = "true" ]; then
+ sed -i -e '/prebuild_release/s/false/true/' configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+ sed -i -e "/prebuild_hash/s/\"\"/\"${prebuild_hash}\"/" configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+if [ "$useclang" = "true" ]; then
+ sed -i -e '/clang_build/s/false/true/' configs/ldcg-python-manylinux-tensorflow/ansible/vars/vars.yml
+fi
+
+ansible-galaxy collection install community.docker
+
+cd configs/ldcg-python-manylinux-tensorflow/ansible/
+sed -i -e"s+/tmp/workspace+${WORKSPACE}+g" vars/vars.yml
+
+ansible-playbook playbooks/build-tf-dual-abi.yml
+
+# To be in sync with upstream we keep wheels outside of wheels/ while we
+# loop on Python versions. Now let move them back so publishing script
+# would not require changes.
+cd $WORKSPACE
+mv ml_wheels/tensorflow_aarch64-*.whl wheels/
-docker run -u root -v $PWD:/tmp/workspace quay.io/pypa/manylinux2014_aarch64 /tmp/workspace/build-manylinux2014-wheels.sh
+# drop files we do not want/need to publish
+rm wheels/audit.txt wheels/profile.json.gz
diff --git a/ldcg-python-manylinux-tensorflow/publishers.sh b/ldcg-python-manylinux-tensorflow/publishers.sh
index fbfdfb07e5..ae19b34add 100644
--- a/ldcg-python-manylinux-tensorflow/publishers.sh
+++ b/ldcg-python-manylinux-tensorflow/publishers.sh
@@ -7,31 +7,56 @@ PUBLISH_TO=ldcg/python-cache/
set -ex
-ls -alR $COPY_FROM
-
# Publish wheel files
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
-time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- $COPY_FROM \
- $PUBLISH_TO || true
+# Cache upload is not required for nightly build
+if [ -e $COPY_FROM ]
+then
-echo "Python wheels: https://snapshots.linaro.org/${PUBLISH_TO}"
+ ls -alR $COPY_FROM
-# Now is time to upload tensorflow
+ time python3 ${HOME}/bin/linaro-cp.py \
+ $COPY_FROM \
+ $PUBLISH_TO || true
-if [ `echo $JOB_NAME | cut -d'/' -f1` == 'ldcg-python-manylinux-tensorflow-nightly' ]; then
- OUTPUT_PATH="ldcg/python/tensorflow-manylinux-nightly/$(date -u +%Y%m%d)-${BUILD_NUMBER}/"
-else
- OUTPUT_PATH="ldcg/python/tensorflow-manylinux/${BUILD_NUMBER}/"
+ echo "Python wheels cached: https://snapshots.linaro.org/${PUBLISH_TO}"
fi
+# Now is time to upload tensorflow
+
+SHORT_JOB_NAME=$(echo $JOB_NAME | cut -d'/' -f1)
+
+case $SHORT_JOB_NAME in
+
+ "ldcg-python-manylinux-tensorflow-nightly")
+ OUTPUT_PATH="ldcg/python/tensorflow-manylinux-nightly/$(date -u +%Y%m%d)-${BUILD_NUMBER}/"
+ ;;
+
+ "ldcg-python-manylinux-tensorflow-onednn-nightly")
+ OUTPUT_PATH="ldcg/python/tensorflow-onednn-manylinux-nightly/$(date -u +%Y%m%d)-${BUILD_NUMBER}/"
+ ;;
+
+ "ldcg-python-manylinux-tensorflow")
+ OUTPUT_PATH="ldcg/python/tensorflow-manylinux/${BUILD_NUMBER}/"
+ ;;
+
+ "ldcg-python-manylinux-tensorflow-io")
+ OUTPUT_PATH="ldcg/python/tensorflow-io-manylinux/${BUILD_NUMBER}/"
+ ;;
+
+ "ldcg-python-manylinux-tensorflow-text")
+ OUTPUT_PATH="ldcg/python/tensorflow-text-manylinux/${BUILD_NUMBER}/"
+ ;;
+
+esac
+
+ls -alR ${WORKSPACE}/wheels
+
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
--link-latest \
- /${WORKSPACE}/wheels \
+ ${WORKSPACE}/wheels \
$OUTPUT_PATH || true
echo "Python wheels: https://snapshots.linaro.org/$OUTPUT_PATH"
diff --git a/ldcg-python-openxla.yaml b/ldcg-python-openxla.yaml
new file mode 100644
index 0000000000..db79d7766f
--- /dev/null
+++ b/ldcg-python-openxla.yaml
@@ -0,0 +1,40 @@
+- job:
+ name: ldcg-python-openxla
+ project-type: freestyle
+ defaults: global
+ triggers:
+ - timed: '0 6 * * *'
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 7
+ num-to-keep: 7
+ parameters:
+ - bool:
+ name: useclang
+ default: true
+ description: 'Use clang to build instead of gcc'
+ - bool:
+ name: buildgit
+ default: true
+ description: 'Build git HEAD'
+ disabled: false
+ node: ldcg-aarch64-02
+ concurrent: false
+ display-name: 'OpenXLA unit tests'
+ wrappers:
+ - timestamps
+ builders:
+ - shell:
+ !include-raw: ldcg-python-openxla/build.sh
+ publishers:
+ - email:
+ recipients: 'marcin.juszkiewicz@linaro.org andrew.goodbody@linaro.org'
diff --git a/ldcg-python-openxla/Dockerfile b/ldcg-python-openxla/Dockerfile
new file mode 100644
index 0000000000..f821258e09
--- /dev/null
+++ b/ldcg-python-openxla/Dockerfile
@@ -0,0 +1,15 @@
+ARG tag_prefix=latest
+FROM linaro/tensorflow-arm64-build:${tag_prefix}-multipython
+
+ARG py_major_minor_version='3.10'
+
+ENV PYTHON_BIN_PATH=/usr/bin/python${py_major_minor_version}
+
+RUN ln -s ${PYTHON_BIN_PATH} /usr/local/bin/python && \
+ ln -s ${PYTHON_BIN_PATH} /usr/local/bin/python3
+
+COPY upper-constraints.txt /
+RUN ${PYTHON_BIN_PATH} -m pip install -c /upper-constraints.txt -r /upper-constraints.txt
+
+RUN mkdir -p /tf/xla
+RUN chown buildslave:buildslave /tf/xla
diff --git a/ldcg-python-tensorflow/tensorflow/ansible.cfg b/ldcg-python-openxla/ansible/ansible.cfg
index df3e172850..28cbb08b00 100644
--- a/ldcg-python-tensorflow/tensorflow/ansible.cfg
+++ b/ldcg-python-openxla/ansible/ansible.cfg
@@ -1,5 +1,5 @@
[defaults]
-interpreter_python: /usr/bin/python3
+interpreter_python: auto
# Use the YAML callback plugin.
stdout_callback = yaml
@@ -8,4 +8,7 @@ stdout_callback = yaml
bin_ansible_callbacks = True
# profile tasks
-callback_whitelist = profile_tasks
+callbacks_enabled = profile_tasks
+
+roles_path = roles:/etc/ansible/roles
+retry_files_enabled = False
diff --git a/ldcg-python-openxla/ansible/playbooks/test-openxla.yml b/ldcg-python-openxla/ansible/playbooks/test-openxla.yml
new file mode 100644
index 0000000000..a3c61b70e5
--- /dev/null
+++ b/ldcg-python-openxla/ansible/playbooks/test-openxla.yml
@@ -0,0 +1,30 @@
+---
+- name: Run unit tests on OpenXLA
+ hosts: localhost
+ vars_files:
+ ../vars/vars.yml
+
+ tasks:
+ - name: Cleanup after previous build
+ ansible.builtin.file:
+ path: "{{ build_dir }}/{{ item }}"
+ state: absent
+ loop:
+ - xla
+
+ - name: Create cache dirs
+ ansible.builtin.file:
+ path: "{{ build_dir }}/{{ item }}"
+ state: directory
+ mode: 0777
+ loop:
+ - bazel-cache
+
+ - name: Go through each OpenXLA version
+ ansible.builtin.include_role:
+ name: xla
+ tasks_from: loop.yml
+ loop: "{{ versions | dict2items }}"
+ loop_control:
+ loop_var: xla_ver
+ when: xla_ver.key in to_be_built
diff --git a/ldcg-python-openxla/ansible/roles/xla/tasks/fetch.yml b/ldcg-python-openxla/ansible/roles/xla/tasks/fetch.yml
new file mode 100644
index 0000000000..f9042a86af
--- /dev/null
+++ b/ldcg-python-openxla/ansible/roles/xla/tasks/fetch.yml
@@ -0,0 +1,28 @@
+---
+- name: Fetch OpenXLA from git
+ when: openxla_version == 'git'
+ ansible.builtin.git:
+ repo: "https://github.com/openxla/xla.git" # noqa latest[git]
+ dest: "{{ xla_build_dir }}/"
+ depth: 1
+ recursive: true
+ force: true
+
+- name: Prepare OpenXLA source from git
+ when: openxla_version == 'git'
+ block:
+ - name: Set world write access to source
+ ansible.builtin.file:
+ path: "{{ xla_build_dir }}/"
+ state: directory
+ mode: 0777
+
+ - name: Get oneline version of git log for this checkout # noqa no-changed-when
+ ansible.builtin.command:
+ cmd: "git log --pretty=oneline -1"
+ chdir: "{{ xla_build_dir }}/"
+ register: git_log
+
+ - name: Show git log
+ ansible.builtin.debug:
+ var: git_log.stdout
diff --git a/ldcg-python-openxla/ansible/roles/xla/tasks/loop.yml b/ldcg-python-openxla/ansible/roles/xla/tasks/loop.yml
new file mode 100644
index 0000000000..b4ea6a60af
--- /dev/null
+++ b/ldcg-python-openxla/ansible/roles/xla/tasks/loop.yml
@@ -0,0 +1,28 @@
+---
+- name: Set xla and other package versions
+ ansible.builtin.set_fact:
+ openxla_version: "{{ xla_ver.value.openxla_version }}"
+ numpy_version: "{{ xla_ver.value.numpy_version }}"
+ protobuf_version: "{{ xla_ver.value.protobuf_version }}"
+ bazel_version: "{{ xla_ver.value.bazel_version }}"
+ image_prefix: "{{ xla_ver.value.image_prefix }}"
+
+- name: Set build dir for OpenXLA {{ openxla_version }}
+ ansible.builtin.set_fact:
+ xla_build_dir: "{{ build_dir }}/xla-{{ openxla_version }}"
+
+- name: Remove OpenXLA {{ openxla_version }} sources from previous build
+ ansible.builtin.file:
+ path: "{{ xla_build_dir }}/"
+ state: absent
+
+- name: Fetch OpenXLA
+ ansible.builtin.include_tasks:
+ file: fetch.yml
+
+- name: Build OpenXLA for each Python version
+ ansible.builtin.include_tasks:
+ file: test.yml
+ loop: "{{ xla_ver.value.python_versions }}"
+ loop_control:
+ loop_var: py_ver
diff --git a/ldcg-python-openxla/ansible/roles/xla/tasks/test.yml b/ldcg-python-openxla/ansible/roles/xla/tasks/test.yml
new file mode 100644
index 0000000000..43bc86ccef
--- /dev/null
+++ b/ldcg-python-openxla/ansible/roles/xla/tasks/test.yml
@@ -0,0 +1,138 @@
+---
+- name: Reset checkout to clean state # noqa command-instead-of-module
+ ansible.builtin.shell:
+ cmd: "git clean -dfx; git reset --hard"
+ chdir: "{{ xla_build_dir }}/"
+ when: openxla_version == 'git'
+
+- name: Configure default OpenXLA settings
+ ansible.builtin.template:
+ src: "tf_configure.bazelrc"
+ dest: "{{ xla_build_dir }}/.tf_configure.bazelrc"
+ mode: 0400
+ force: true
+
+- name: (Python {{ py_ver }}) copy upper constraints
+ local_action:
+ module: ansible.builtin.template
+ src: "upper-constraints.txt"
+ dest: "{{ build_dir }}/configs/ldcg-python-openxla/upper-constraints.txt"
+ mode: 0644 # needs to be readable in container as well
+ force: true
+
+- name: (Python {{ py_ver }}) build Python versioned container
+ community.docker.docker_image:
+ name: "xla-multipython-py{{ py_ver }}-{{ image_prefix }}"
+ build:
+ path: "{{ build_dir }}/configs/ldcg-python-openxla/"
+ args:
+ tag_prefix: "{{ image_prefix }}"
+ py_major_minor_version: "{{ py_ver }}"
+ source: build
+ force_source: true
+
+- name: (Python {{ py_ver }}) start build container
+ community.docker.docker_container:
+ name: "xla-py{{ py_ver }}"
+ image: "xla-multipython-py{{ py_ver }}-{{ image_prefix }}"
+ state: started
+ restart: true
+ volumes:
+ - "{{ xla_build_dir }}:/tf/xla"
+ - "{{ build_dir }}/bazel-cache:/tf/bazel-cache"
+ detach: true
+ user: buildslave
+ working_dir: "/tf/xla"
+ network_mode: host
+ etc_hosts:
+ ldcg-aarch64-02: 172.17.0.1
+ command: "sleep infinity"
+ timeout: 6000
+
+- name: (Python {{ py_ver }}) create buildslave bazel cache dir
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ install -d -m0777 .cache/bazel/_bazel_buildslave
+ chdir: "/home/buildslave/"
+
+- name: (Python {{ py_ver }}) create link for bazel cache
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/bazel-cache bazel/_bazel_buildslave/cache
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) create link for bazelisk cache
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/bazel-cache bazelisk
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) create link for pip cache
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/cache pip
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) collect list of installed Python packages for build
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: "/usr/local/bin/python3 -m pip list -v"
+ chdir: "/tf/xla"
+ register: pip_list_output
+
+- name: Show list of installed Python packages for build
+ ansible.builtin.debug:
+ var: pip_list_output.stdout
+
+- name: (Python {{ py_ver }}) build OpenXLA {{ openxla_version }}
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: "bazel build -- //xla/..."
+ chdir: "/tf/xla"
+
+- name: (Python {{ py_ver }}) create script to run tests
+ ansible.builtin.template:
+ src: "run-tests.sh.j2"
+ dest: "{{ xla_build_dir }}/run-tests.sh"
+ mode: 0755
+ force: true
+
+- name: (Python {{ py_ver }}) run OpenXLA {{ openxla_version }} tests
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: "bash run-tests.sh"
+ chdir: "/tf/xla"
+ register: test_output
+ ignore_errors: true
+
+- name: (Python {{ py_ver }}) Extract number of tests run
+ ansible.builtin.set_fact:
+ ut_tests_line: "{{ test_output.stdout | regex_search('^Executed [0-9]+ out of [0-9]+ tests: [0-9]+ tests pass.*', multiline=True) }}"
+
+- name: (Python {{ py_ver }}) Show number of tests run
+ ansible.builtin.debug:
+ var: ut_tests_line
+
+- name: (Python {{ py_ver }}) Extract failed tests
+ ansible.builtin.set_fact:
+ tests_failed: "{{ test_output.stderr | regex_findall('FAIL: .*', multiline=True) }}"
+ tests_flaky: "{{ test_output.stdout | regex_findall('.*FLAKY.*', multiline=True) }}"
+
+- name: (Python {{ py_ver }}) Show which tests are flaky
+ ansible.builtin.debug:
+ var: tests_flaky
+
+- name: (Python {{ py_ver }}) Show which tests failed
+ ansible.builtin.debug:
+ var: tests_failed
+
+- name: (Python {{ py_ver }}) stop build container
+ community.docker.docker_container:
+ name: "xla-py{{ py_ver }}"
+ image: "xla-multipython-py{{ py_ver }}-{{ image_prefix }}"
+ state: absent
+ timeout: 6000
diff --git a/ldcg-python-openxla/ansible/roles/xla/templates/run-tests.sh.j2 b/ldcg-python-openxla/ansible/roles/xla/templates/run-tests.sh.j2
new file mode 100644
index 0000000000..4441d56750
--- /dev/null
+++ b/ldcg-python-openxla/ansible/roles/xla/templates/run-tests.sh.j2
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+bazel test \
+ --cache_test_results=no \
+ --test_timeout=-1,-1,2000,-1 \
+ --build_tests_only \
+ --verbose_failures=true --test_output=errors \
+ --test_tag_filters={{ xla_ver.value.unit_tests_filter_flags }} \
+ --build_tag_filters={{ xla_ver.value.unit_tests_filter_flags }} \
+ --spawn_strategy=sandboxed \
+ -- //xla/...
diff --git a/ldcg-python-openxla/ansible/roles/xla/templates/tf_configure.bazelrc b/ldcg-python-openxla/ansible/roles/xla/templates/tf_configure.bazelrc
new file mode 100644
index 0000000000..d585bfa300
--- /dev/null
+++ b/ldcg-python-openxla/ansible/roles/xla/templates/tf_configure.bazelrc
@@ -0,0 +1,12 @@
+build --config=nonccl
+{% if clang_build %}
+build --crosstool_top="@ml2014_clang_aarch64_config_aarch64//crosstool:toolchain"
+build --linkopt="-fuse-ld=lld"
+build --copt=-Wno-gnu-offsetof-extensions
+{% else %}
+build --crosstool_top="@ml2014_aarch64_config_aarch64//crosstool:toolchain"
+{% endif %}
+build:opt --copt=-Wno-sign-compare
+build:opt --host_copt=-Wno-sign-compare
+test --test_size_filters=small,medium
+build --build_tag_filters=-benchmark-test,-no_oss,-oss_excluded,-gpu
diff --git a/ldcg-python-openxla/ansible/roles/xla/templates/upper-constraints.txt b/ldcg-python-openxla/ansible/roles/xla/templates/upper-constraints.txt
new file mode 100644
index 0000000000..02f12e926a
--- /dev/null
+++ b/ldcg-python-openxla/ansible/roles/xla/templates/upper-constraints.txt
@@ -0,0 +1,7 @@
+Cython>=0.29
+pip>=21
+
+numpy {{ numpy_version }}
+protobuf {{ protobuf_version }}
+
+lit >= 16.0.5.post0; python_version >= '3.11'
diff --git a/ldcg-python-openxla/ansible/vars/vars.yml b/ldcg-python-openxla/ansible/vars/vars.yml
new file mode 100644
index 0000000000..b5ae1f3781
--- /dev/null
+++ b/ldcg-python-openxla/ansible/vars/vars.yml
@@ -0,0 +1,19 @@
+---
+pip_extra_index_url: "https://snapshots.linaro.org/ldcg/python-cache/"
+build_dir: "/tmp/workspace"
+clang_build: false
+bazelisk_version: "v1.12.0"
+versions:
+ "git":
+ openxla_version: "git"
+ bazel_version: "bazelisk"
+ numpy_version: "~=1.23.5"
+ protobuf_version: ">=3.20.3,<5.0.0dev,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5"
+ image_prefix: "latest"
+ unit_tests_filter_flags: "-no_aarch64,-benchmark-test,-no_oss,-oss_excluded,-gpu"
+ python_versions:
+ - "3.9"
+ - "3.10"
+ - "3.11"
+to_be_built:
+# - "git"
diff --git a/ldcg-python-openxla/build.sh b/ldcg-python-openxla/build.sh
new file mode 100644
index 0000000000..8f2c1cb36a
--- /dev/null
+++ b/ldcg-python-openxla/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+set -xe
+
+cd $WORKSPACE
+
+rm -rf *.sh configs
+
+git clone --depth 1 https://git.linaro.org/ci/job/configs.git
+
+cd configs; git log --pretty=oneline -1; cd ..
+
+if [ "$buildgit" = "true" ]; then
+ echo ' - "git"' >> configs/ldcg-python-openxla/ansible/vars/vars.yml
+fi
+if [ "$useclang" = "true" ]; then
+ sed -i -e '/clang_build/s/false/true/' configs/ldcg-python-openxla/ansible/vars/vars.yml
+fi
+
+ansible-galaxy collection install community.docker
+
+cd configs/ldcg-python-openxla/ansible/
+sed -i -e"s+/tmp/workspace+${WORKSPACE}+g" vars/vars.yml
+
+ansible-playbook playbooks/test-openxla.yml
diff --git a/ldcg-python-pytorch-vision.yaml b/ldcg-python-pytorch-vision.yaml
index d63a066d88..be64c09fc8 100644
--- a/ldcg-python-pytorch-vision.yaml
+++ b/ldcg-python-pytorch-vision.yaml
@@ -14,7 +14,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -26,10 +26,13 @@
display-name: 'Pytorch Python package'
wrappers:
- timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: ldcg-python-pytorch-vision/build.sh
- - linaro-publish-token
- shell:
!include-raw: ldcg-python-pytorch-vision/publishers.sh
publishers:
diff --git a/ldcg-python-pytorch-vision/publishers.sh b/ldcg-python-pytorch-vision/publishers.sh
index 018f92bfa4..21700555fd 100644
--- a/ldcg-python-pytorch-vision/publishers.sh
+++ b/ldcg-python-pytorch-vision/publishers.sh
@@ -15,7 +15,6 @@ ls -alR /home/buildslave/wheels
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
--link-latest \
/home/buildslave/wheels \
ldcg/python/pytorch/${BUILD_NUMBER}
diff --git a/ldcg-python-tensorflow-nightly.yaml b/ldcg-python-tensorflow-nightly.yaml
deleted file mode 100644
index ecf3bb1865..0000000000
--- a/ldcg-python-tensorflow-nightly.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-- job:
- name: ldcg-python-tensorflow-nightly
- project-type: matrix
- defaults: global
- triggers:
- - timed: '@daily'
- axes:
- - axis:
- type: slave
- name: nodes
- values:
- - docker-centos8-arm64-ldcg
- - docker-buster-arm64-ldcg
- execution-strategy:
- sequential: true
- 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
- disabled: false
- display-name: 'Tensorflow Python package (nightly build)'
- wrappers:
- - timestamps
- builders:
- - shell:
- !include-raw: ldcg-python-tensorflow/build.sh
- - linaro-publish-token
- - shell:
- !include-raw: ldcg-python-tensorflow/publishers.sh
- publishers:
- - email:
- recipients: 'paul.isaacs@linaro.org marcin.juszkiewicz@linaro.org'
diff --git a/ldcg-python-tensorflow.yaml b/ldcg-python-tensorflow.yaml
deleted file mode 100644
index d743a7ba09..0000000000
--- a/ldcg-python-tensorflow.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-- job:
- name: ldcg-python-tensorflow
- project-type: matrix
- defaults: global
- axes:
- - axis:
- type: slave
- name: nodes
- values:
- - docker-centos8-arm64-ldcg
- - docker-buster-arm64-ldcg
- execution-strategy:
- sequential: true
- 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
- disabled: false
- display-name: 'Tensorflow Python package'
- wrappers:
- - timestamps
- builders:
- - shell:
- !include-raw: ldcg-python-tensorflow/build.sh
- - linaro-publish-token
- - shell:
- !include-raw: ldcg-python-tensorflow/publishers.sh
- publishers:
- - email:
- recipients: 'paul.isaacs@linaro.org marcin.juszkiewicz@linaro.org'
diff --git a/ldcg-python-tensorflow/Dockerfile-centos b/ldcg-python-tensorflow/Dockerfile-centos
deleted file mode 100644
index 72e6aaf99c..0000000000
--- a/ldcg-python-tensorflow/Dockerfile-centos
+++ /dev/null
@@ -1,12 +0,0 @@
-FROM linaro/jenkins-arm64-centos:8
-
-RUN sudo dnf -y distrosync; \
- sudo dnf -y install centos-release-ansible-29; \
- sudo dnf -y install ansible git
-
-COPY tensorflow/ /home/buildslave/ansible
-
-RUN cd /home/buildslave/ansible/; \
- sudo -u buildslave ansible-playbook -i inventory playbooks/run.yml
-
-CMD ["bash"]
diff --git a/ldcg-python-tensorflow/Dockerfile-debian b/ldcg-python-tensorflow/Dockerfile-debian
deleted file mode 100644
index 7cb2774139..0000000000
--- a/ldcg-python-tensorflow/Dockerfile-debian
+++ /dev/null
@@ -1,14 +0,0 @@
-FROM linaro/jenkins-arm64-debian:buster
-
-RUN echo "deb http://deb.debian.org/debian/ buster-backports main" | sudo tee /etc/apt/sources.list.d/backports.list; \
- apt update; \
- apt purge python python2* -y; \
- apt upgrade -y; \
- apt install -y ansible/buster-backports git
-
-COPY tensorflow/ /home/buildslave/ansible
-
-RUN cd /home/buildslave/ansible/; \
- sudo -u buildslave ansible-playbook -i inventory playbooks/run.yml
-
-CMD ["bash"]
diff --git a/ldcg-python-tensorflow/build-containers.sh b/ldcg-python-tensorflow/build-containers.sh
deleted file mode 100644
index 4066af1dbf..0000000000
--- a/ldcg-python-tensorflow/build-containers.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-set -xe
-
-trap cleanup_exit INT TERM EXIT
-
-cleanup_exit()
-{
- rm -rf ${HOME}/.docker
-}
-
-mkdir -p ${HOME}/.docker
-sed -e "s|\${DOCKER_AUTH}|${DOCKER_AUTH}|" < ${WORKSPACE}/config.json > ${HOME}/.docker/config.json
-chmod 0600 ${HOME}/.docker/config.json
-
-rm -rf ${WORKSPACE}/*
-
-git clone --depth 1 https://git.linaro.org/ci/job/configs.git
-
-cd configs/ldcg-hpc-tensorflow/
-
-docker build -f Dockerfile-debian --pull --label linaro/debian-tensorflow:${BUILD_NUMBER} .
-docker build -f Dockerfile-centos --pull --label linaro/centos-tensorflow:${BUILD_NUMBER} .
-
-docker push linaro/debian-tensorflow:${BUILD_NUMBER}
-docker push linaro/centos-tensorflow:${BUILD_NUMBER}
diff --git a/ldcg-python-tensorflow/build.sh b/ldcg-python-tensorflow/build.sh
deleted file mode 100644
index d9966ed5f5..0000000000
--- a/ldcg-python-tensorflow/build.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-set -xe
-
-rm -rf ${WORKSPACE}/*
-
-if [ -e /etc/debian_version ]; then
- echo "deb http://deb.debian.org/debian/ buster-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
- sudo apt update
- sudo apt upgrade -y
- sudo apt install -y ansible/buster-backports
-else
- sudo dnf -y distrosync
- sudo dnf -y install centos-release-ansible-29
- sudo dnf -y install ansible git python36
-fi
-
-git clone --depth 1 https://git.linaro.org/ci/job/configs.git
-
-cd configs/ldcg-python-tensorflow/tensorflow
-
-# 00:01:34.515 + '[' ldcg-python-tensorflow-nightly/nodes=docker-buster-arm64-leg == ldcg-python-tensorflow-nightly ']'
-
-if [ `echo $JOB_NAME | cut -d'/' -f1` == 'ldcg-python-tensorflow-nightly' ]; then
- ansible-playbook -i inventory playbooks/run-git.yml
-else
- ansible-playbook -i inventory playbooks/run.yml
-fi
diff --git a/ldcg-python-tensorflow/publishers.sh b/ldcg-python-tensorflow/publishers.sh
deleted file mode 100644
index 6bc73573fd..0000000000
--- a/ldcg-python-tensorflow/publishers.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-if [ `echo $JOB_NAME | cut -d'/' -f1` == 'ldcg-python-tensorflow-nightly' ]; then
- OUTPUT_PATH="ldcg/python/tensorflow-nightly/$(date -u +%Y%m%d)-${BUILD_NUMBER}/"
-else
- OUTPUT_PATH="ldcg/python/tensorflow/${BUILD_NUMBER}/"
-fi
-
-if [ -e /etc/centos-release ]; then
- sudo dnf install -y python3-requests wget
- # NOTE(hrw): just in case as we had urllib3 issue with six
- sudo dnf reinstall -y python3-six python3-urllib3
-fi
-
-# Publish wheel files
-test -d ${HOME}/bin || mkdir ${HOME}/bin
-wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
-time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- /home/buildslave/wheels \
- $OUTPUT_PATH || true
-
-set +x
-
-echo "Python wheels: https://snapshots.linaro.org/$OUTPUT_PATH"
diff --git a/ldcg-python-tensorflow/tensorflow/LICENSE b/ldcg-python-tensorflow/tensorflow/LICENSE
deleted file mode 100644
index d26934317c..0000000000
--- a/ldcg-python-tensorflow/tensorflow/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 Marcin Juszkiewicz
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/ldcg-python-tensorflow/tensorflow/README.md b/ldcg-python-tensorflow/tensorflow/README.md
deleted file mode 100644
index 97fb05b9a9..0000000000
--- a/ldcg-python-tensorflow/tensorflow/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# HPCAI-466
-
-Set of Ansible tasks to build Tensorflow under CentOS 8. Tested on AArch64.
diff --git a/ldcg-python-tensorflow/tensorflow/inventory b/ldcg-python-tensorflow/tensorflow/inventory
deleted file mode 100644
index 4f3deaacad..0000000000
--- a/ldcg-python-tensorflow/tensorflow/inventory
+++ /dev/null
@@ -1,3 +0,0 @@
-[all]
-localhost ansible_connection=local
-
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/build_bazel.yml b/ldcg-python-tensorflow/tensorflow/playbooks/build_bazel.yml
deleted file mode 100644
index abfcda277a..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/build_bazel.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-- name: install bazel build requirements (CentOS)
- become: yes
- dnf:
- name:
- - cmake
- - gcc-c++
- - java-11-openjdk-devel
- - python3
- - unzip
- - which
- - zip
- state: present
- when: ansible_os_family == 'RedHat'
-
-- name: install bazel build requirements (Debian)
- become: yes
- apt:
- name:
- - cmake
- - g++
- - openjdk-11-jdk-headless
- - python3
- - unzip
- - zip
- state: present
- when: ansible_os_family == 'Debian'
-
-- name: fetch bazel {{ bazel_version }} source
- get_url:
- url: "https://github.com/bazelbuild/bazel/releases/download/{{ bazel_version }}/bazel-{{ bazel_version }}-dist.zip"
- dest: "{{ build_dir.path }}"
- mode: 0600
-
-- name: create directory to build bazel {{ bazel_version }}
- file:
- path: "{{ build_dir.path }}/bazel-{{ bazel_version }}/"
- state: directory
-
-- name: unpack bazel {{ bazel_version }} source
- unarchive:
- src: "{{ build_dir.path }}/bazel-{{ bazel_version }}-dist.zip"
- dest: "{{ build_dir.path }}/bazel-{{ bazel_version }}"
- remote_src: yes
- creates: "{{ build_dir.path }}/bazel-{{ bazel_version }}/compile.sh"
-
-- name: create /usr/bin/python symlink
- become: yes
- file:
- src: /usr/bin/python3
- dest: /usr/bin/python
- state: link
-
-- name: build bazel {{ bazel_version }}
- shell:
- cmd: |
- set -xe
- EXTRA_BAZEL_ARGS='--host_javabase=@local_jdk//:jdk' ./compile.sh
- chdir: "{{ build_dir.path }}/bazel-{{ bazel_version }}/"
- creates: "{{ build_dir.path }}/bazel-{{ bazel_version }}/output/bazel"
- executable: /bin/bash
-
-- name: install bazel {{ bazel_version }}
- become: yes
- copy:
- src: "{{ build_dir.path }}/bazel-{{ bazel_version }}/output/bazel"
- dest: /usr/local/bin/bazel
- mode: 0755
- force: yes
- remote_src: yes
-
-- name: clean bazel cache
- file:
- path: ~/.cache/bazel
- state: absent
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/build_python.yml b/ldcg-python-tensorflow/tensorflow/playbooks/build_python.yml
deleted file mode 100644
index fc5d778815..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/build_python.yml
+++ /dev/null
@@ -1,112 +0,0 @@
-- block:
- - name: enable EPEL
- become: yes
- dnf:
- name:
- - epel-release
-
- - name: install h5py build requirements
- become: yes
- dnf:
- name:
- - hdf5-devel
- enablerepo: powertools
- state: present
-
- - name: provide xlocale.h (symlink to locale.h)
- become: yes
- file:
- src: /usr/include/locale.h
- dest: /usr/include/xlocale.h
- state: link
-
- - name: install numpy build requirements
- become: yes
- dnf:
- name:
- - gcc-gfortran
- - openblas-devel
- - lapack-devel
- - python3-devel
- enablerepo: powertools
- state: present
-
- - name: install required Python packages
- become: yes
- dnf:
- name:
- - python3-pip
- - python3-setuptools
- - python3-virtualenv
- - python3-wheel
- - python3-zipp
- when: ansible_os_family == 'RedHat'
-
-- block:
- - name: install h5py build requirements
- become: yes
- apt:
- name:
- - libhdf5-dev
- - pkg-config
- state: present
-
- - name: install numpy build requirements
- become: yes
- apt:
- name:
- - gfortran
- - libblas-dev
- - liblapack-dev
- - python3-dev
- state: present
-
- - name: install required Python packages
- become: yes
- apt:
- name:
- - python3-pip
- - python3-setuptools
- - python3-venv
- - python3-wheel
- - python3-zipp
- when: ansible_os_family == 'Debian'
-
-- name: upgrade pip
- become: yes
- pip:
- name:
- - pip
- state: latest
-
-- name: install Cython
- become: yes
- pip:
- name:
- - "Cython>=0.29"
-
-- name: create directory to build wheels
- file:
- path: "{{ wheels_dir }}"
- state: directory
-
-- name: copy upper constraints
- template:
- src: "files/upper-constraints.txt"
- dest: "{{ wheels_dir }}/upper-constraints.txt"
- mode: 0400
- force: yes
-
-- name: build and install wheels of binary Python packages
- include_tasks: build_python_wheel.yml
- loop:
- - grpcio
- - "numpy{{ numpy_version }}"
- - "h5py{{ h5py_version }}"
- - Keras_Preprocessing
- - Keras_Applications
-
-- name: remove upper constraints
- file:
- path: "{{ wheels_dir }}/upper-constraints.txt"
- state: absent
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/build_python_wheel.yml b/ldcg-python-tensorflow/tensorflow/playbooks/build_python_wheel.yml
deleted file mode 100644
index 4b5278f762..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/build_python_wheel.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-- name: build wheels of binary Python package {{ item }} # noqa 301
- shell:
- cmd: |
- pip3 wheel -w '{{ wheels_dir }}' \
- --extra-index-url {{ pip_extra_index_url }} \
- -c "{{ wheels_dir }}/upper-constraints.txt" \
- "{{ item }}"
- executable: /bin/bash
- environment:
- NPY_NUM_BUILD_JOBS: "{{ ansible_processor_vcpus }}"
- GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS: "{{ ansible_processor_vcpus }}"
-
-- name: get list of wheel files matchin {{ item }}
- find:
- path: "{{ wheels_dir }}"
- patterns: "{{ item | regex_replace('.=.*', '') }}*.whl"
- file_type: file
- register: wheel_files
-
-- name: get filename of latest {{ item }} wheel
- set_fact:
- wheel_file: "{{ wheel_files.files | sort(attribute='mtime') | last }}"
-
-- name: install {{ item }} Python package
- become: yes
- pip:
- name: "{{ wheel_file.path }}"
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/build_tensorflow.yml b/ldcg-python-tensorflow/tensorflow/playbooks/build_tensorflow.yml
deleted file mode 100644
index 6bb7936b90..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/build_tensorflow.yml
+++ /dev/null
@@ -1,91 +0,0 @@
-- name: install tensorflow build requirements (CentOS)
- become: yes
- dnf:
- name:
- - expect
- - git
- - patch
- - python3-virtualenv
- - python3-wheel
- when: ansible_os_family == 'RedHat'
-
-- name: install tensorflow build requirements (Debian)
- become: yes
- apt:
- name:
- - expect
- - git
- - patch
- - python3-virtualenv
- - python3-wheel
- when: ansible_os_family == 'Debian'
-
-- name: include Python tasks
- include_tasks: build_python.yml
-
-- block:
- - name: fetch tensorflow {{ tensorflow_version }} source
- get_url:
- url: "https://github.com/tensorflow/tensorflow/archive/v{{ tensorflow_version }}.tar.gz"
- dest: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}.tar.gz"
- mode: 0600
-
- - name: unpack tensorflow {{ tensorflow_version }} source
- unarchive:
- src: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}.tar.gz"
- dest: "{{ build_dir.path }}/"
- remote_src: yes
-
- - name: copy configure script
- copy:
- src: "files/configure_tensorflow"
- dest: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}/configure_tensorflow"
- mode: 0400
-
- when: tensorflow_version != 'git'
-
-- block:
- - name: fetch tensorflow from git
- git:
- repo: "https://github.com/tensorflow/tensorflow.git" # noqa 401
- dest: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}/"
- depth: 1
- recursive: yes
- force: yes
-
- - name: copy configure script
- copy:
- src: "files/configure_tensorflow-git"
- dest: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}/configure_tensorflow"
- mode: 0400
- when: tensorflow_version == 'git'
-
-- name: build tensorflow {{ tensorflow_version }}
- shell:
- cmd: |
- set -xe
- expect configure_tensorflow
- bazel clean --expunge
- bazel build --config=noaws --config=nogcp --config=nonccl //tensorflow/tools/pip_package:build_pip_package --verbose_failures
- mkdir tensorflow-pkg
- bazel-bin/tensorflow/tools/pip_package/build_pip_package --cpu ./tensorflow-pkg
- chdir: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}/"
- creates: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}/tensorflow-pkg/"
- executable: /bin/bash
-
-- name: stop bazel server # noqa 301
- command:
- cmd: bazel shutdown
- chdir: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}/"
-
-- name: get name of built wheel file
- find:
- path: "{{ build_dir.path }}/tensorflow-{{ tensorflow_version }}/tensorflow-pkg/"
- patterns: "tensorflow_*.whl"
- file_type: file
- register: wheel_file
-
-- name: install tensorflow {{ tensorflow_version }}
- become: yes
- pip:
- name: "{{ wheel_file.files | map(attribute='path') | list }}"
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/clean.yml b/ldcg-python-tensorflow/tensorflow/playbooks/clean.yml
deleted file mode 100644
index 96369fc73f..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/clean.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-- hosts: all
- vars_files:
- ../vars/vars.yml
- tasks:
- - name: remove build workspace
- file:
- path: "{{ build_dir.path }}"
- state: absent
-
- - name: uninstall build requirements
- become: yes
- dnf:
- name:
- - binutils
- - cmake
- - epel-release
- - expect
- - gcc
- - gcc-c++
- - gcc-gfortran
- - git
- - hdf5-devel
- - java-11-openjdk-devel
- - libaec-devel # dependency of hdf5-devel
- - lapack-devel
- - openblas-devel
- - python3
- - python3-devel
- - python3-pip
- - python3-virtualenv
- - python3-wheel
- - unzip
- - zip
- state:
- absent
-
- - name: remove /usr/bin/python symlink
- become: yes
- file:
- path: /usr/bin/python
- state: absent
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/files/check-tf.py b/ldcg-python-tensorflow/tensorflow/playbooks/files/check-tf.py
deleted file mode 100644
index 4bcd1c75a2..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/files/check-tf.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import tensorflow as tf
-
-tf.compat.v1.enable_eager_execution()
-
-mnist = tf.keras.datasets.mnist
-
-(x_train, y_train), (x_test, y_test) = mnist.load_data()
-x_train, x_test = x_train / 255.0, x_test / 255.0
-
-model = tf.keras.models.Sequential([
- tf.keras.layers.Flatten(input_shape=(28, 28)),
- tf.keras.layers.Dense(128, activation='relu'),
- tf.keras.layers.Dropout(0.2),
- tf.keras.layers.Dense(10)
-])
-
-predictions = model(x_train[:1]).numpy()
-
-tf.nn.softmax(predictions).numpy()
-
-loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
-loss_fn(y_train[:1], predictions).numpy()
-
-model.compile(optimizer='adam',
- loss=loss_fn,
- metrics=['accuracy'])
-
-model.fit(x_train, y_train, epochs=5)
-model.evaluate(x_test, y_test, verbose=2)
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow b/ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow
deleted file mode 100644
index 42ced5873b..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/expect
-spawn "./configure"
-expect {
- "*Please specify the location of python*" {send "/usr/bin/python3\r";exp_continue}
- "*Please input the desired Python library path to use*" {send "\r";exp_continue}
- "*Do you wish to build TensorFlow with XLA JIT support*" {send "n\r";exp_continue}
- "*Do you wish to build TensorFlow with OpenCL SYCL support*" {send "n\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}
- "*Do you wish to download a fresh release of clang*" {send "n\r";exp_continue}
- "*Do you wish to build TensorFlow with MPI support*" {send "n\r";exp_continue}
- "*Please specify optimization flags to use during compilation when bazel option*" {send "\r";exp_continue}
- "*Would you like to interactively configure*" {send "n\r";exp_continue}
-}
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow-git b/ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow-git
deleted file mode 100644
index 06f1084409..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/files/configure_tensorflow-git
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/expect
-spawn "./configure"
-expect {
- "*Please specify the location of python*" {send "/usr/bin/python3\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}
- "*Do you wish to download a fresh release of clang*" {send "n\r";exp_continue}
- "*Please specify optimization flags to use during compilation when bazel option*" {send "\r";exp_continue}
- "*Would you like to interactively configure*" {send "n\r";exp_continue}
-}
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/files/upper-constraints.txt b/ldcg-python-tensorflow/tensorflow/playbooks/files/upper-constraints.txt
deleted file mode 100644
index 204493f6e7..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/files/upper-constraints.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Cython>=0.29
-grpcio~=1.34.0
-Keras-Applications>=1.0
-Keras-Preprocessing>=1.1
-protobuf>=3.13
-zipp>=3.1
-numpy{{ numpy_version }}
-h5py{{ h5py_version }}
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/run-git.yml b/ldcg-python-tensorflow/tensorflow/playbooks/run-git.yml
deleted file mode 100644
index 36992dcd62..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/run-git.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-- hosts: all
- vars_files:
- ../vars/vars.yml
- tasks:
- - name: create build workspace
- tempfile:
- state: directory
- register: build_dir
-
- - name: include Bazel tasks
- include_tasks: build_bazel.yml
- vars:
- bazel_version: "3.7.2"
-
- - name: include Tensorflow tasks
- include_tasks: build_tensorflow.yml
- vars:
- tensorflow_version: "git"
- numpy_version: "~=1.19.2"
- h5py_version: "~=3.1.0"
-
- - name: set snapshots.linaro.org url
- set_fact:
- snapshots_linaro_url: "https://snapshots.linaro.org/ldcg/python/tensorflow-nightly/{{ lookup('pipe', 'date +\"%Y%m%d\"') }}-{{ lookup('env', 'BUILD_NUMBER') }}/"
-
- - name: prepare wheels for publishing # noqa 302
- shell:
- cmd: |
- set -xe
- for pkg in *.whl "{{ build_dir.path }}/tensorflow-*/tensorflow-pkg/*.whl"
- do
- pkgdir=$(echo `basename $pkg`|cut -d'-' -f1 | tr '[:upper:]' '[:lower:]')
- mkdir -p "{{ wheels_dir }}/$pkgdir"
- mv $pkg "{{ wheels_dir }}/$pkgdir"
-
- # do we have this package on server already?
- status=$(curl --head --silent {{ snapshots_linaro_url }}/${pkgdir}/${pkg} | head -n 1)
- if $(echo $status | grep -q 404); then
- echo "uploading $pkgdir/$pkg"
- else
- rm -rf "{{ wheels_dir }}/$pkgdir/$pkg"
- fi
- done
- chdir: "{{ wheels_dir }}"
- creates: "{{ wheels_dir }}/numpy/"
- executable: "/bin/bash"
-
- - name: remove build workspace
- file:
- path: "{{ build_dir.path }}"
- state: absent
- when: build_dir.path is defined
diff --git a/ldcg-python-tensorflow/tensorflow/playbooks/run.yml b/ldcg-python-tensorflow/tensorflow/playbooks/run.yml
deleted file mode 100644
index c0fee03adc..0000000000
--- a/ldcg-python-tensorflow/tensorflow/playbooks/run.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-- hosts: all
- vars_files:
- ../vars/vars.yml
- tasks:
- - name: create build workspace
- tempfile:
- state: directory
- register: build_dir
-
- - name: include Bazel tasks
- include_tasks: build_bazel.yml
- vars:
- bazel_version: "0.29.1"
-
- - name: include Tensorflow tasks
- include_tasks: build_tensorflow.yml
- vars:
- tensorflow_version: "1.15.5"
- numpy_version: "~=1.18.0"
- h5py_version: "==2.10"
-
- - name: include Bazel tasks
- include_tasks: build_bazel.yml
- vars:
- bazel_version: "3.1.0"
-
- - name: include Tensorflow tasks
- include_tasks: build_tensorflow.yml
- vars:
- tensorflow_version: "2.4.1"
- numpy_version: "~=1.19.2"
- h5py_version: ">=2.10"
-
- - name: set snapshots.linaro.org url
- set_fact:
- snapshots_linaro_url: "https://snapshots.linaro.org/ldcg/python/tensorflow/{{ lookup('env', 'BUILD_NUMBER') }}/"
-
- - name: prepare wheels for publishing # noqa 301
- shell:
- cmd: |
- set -xe
- for pkg in *.whl "{{ build_dir.path }}/tensorflow-*/tensorflow-pkg/*.whl"
- do
- pkgdir=$(echo `basename $pkg`|cut -d'-' -f1 | tr '[:upper:]' '[:lower:]')
- mkdir -p "{{ wheels_dir }}/$pkgdir"
- mv $pkg "{{ wheels_dir }}/$pkgdir"
-
- # do we have this package on server already?
- status=$(curl --head --silent {{ snapshots_linaro_url }}/${pkgdir}/${pkg} | head -n 1)
- if $(echo $status | grep -q 404); then
- echo "uploading $pkgdir/$pkg"
- else
- rm -rf "{{ wheels_dir }}/$pkgdir/$pkg"
- fi
- done
- chdir: "{{ wheels_dir }}"
- creates: "{{ wheels_dir }}/numpy/"
- executable: "/bin/bash"
-
- - name: remove build workspace
- file:
- path: "{{ build_dir.path }}"
- state: absent
- when: build_dir.path is defined
diff --git a/ldcg-python-tensorflow/tensorflow/vars/vars.yml b/ldcg-python-tensorflow/tensorflow/vars/vars.yml
deleted file mode 100644
index 36c4a2313c..0000000000
--- a/ldcg-python-tensorflow/tensorflow/vars/vars.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-pip_extra_index_url: "https://snapshots.linaro.org/ldcg/python-cache/"
-wheels_dir: "/home/buildslave/wheels"
diff --git a/ldcg-sbsa-acs.yaml b/ldcg-sbsa-acs.yaml
index ec3c684d35..7385d85e6c 100644
--- a/ldcg-sbsa-acs.yaml
+++ b/ldcg-sbsa-acs.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -21,16 +21,19 @@
default: '120'
description: 'timeout for single qemu run'
disabled: false
- node: docker-buster-arm64-ldcg
- display-name: 'SBSA QEMU firmware test - just SBSA ACS'
+ node: docker-bookworm-arm64-ldcg
+ display-name: 'SBSA QEMU firmware test - (S)BSA ACS'
wrappers:
- timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: ldcg-sbsa-firmware/build-sbsa-acs.sh
- - linaro-publish-token
- shell:
!include-raw: ldcg-sbsa-firmware/publishers.sh
publishers:
- email:
- recipients: 'shashi.mallela@linaro.org tanmay.jagdale@linaro.org marcin.juszkiewicz@linaro.org asa-dev@op-lists.linaro.org'
+ recipients: 'shashi.mallela@linaro.org marcin.juszkiewicz@linaro.org asa-dev@op-lists.linaro.org'
diff --git a/ldcg-sbsa-firmware.yaml b/ldcg-sbsa-firmware.yaml
index 5feb8bc343..5836eca472 100644
--- a/ldcg-sbsa-firmware.yaml
+++ b/ldcg-sbsa-firmware.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -17,6 +17,10 @@
num-to-keep: 7
parameters:
- string:
+ name: SYSTEMREADY_SR_ACS_VER
+ default: 'v23.09_2.0.0'
+ description: 'version of Arm SystemReady ACS'
+ - string:
name: QEMU_TIMEOUT
default: '40m'
description: 'timeout for single qemu run'
@@ -25,16 +29,19 @@
default: 6
description: 'how many times QEMU should be run'
disabled: false
- node: docker-buster-arm64-ldcg
- display-name: 'SBSA QEMU firmware test'
+ node: docker-bookworm-arm64-ldcg
+ display-name: 'Arm SystemReady SR ACS on QEMU/SBSA Reference Platform'
wrappers:
- timestamps
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: ldcg-sbsa-firmware/build.sh
- - linaro-publish-token
- shell:
!include-raw: ldcg-sbsa-firmware/publishers.sh
publishers:
- email:
- recipients: 'shashi.mallela@linaro.org tanmay.jagdale@linaro.org marcin.juszkiewicz@linaro.org asa-dev@op-lists.linaro.org'
+ recipients: 'marcin.juszkiewicz@linaro.org asa-dev@op-lists.linaro.org'
diff --git a/ldcg-sbsa-firmware/build-sbsa-acs.sh b/ldcg-sbsa-firmware/build-sbsa-acs.sh
index 029023eb9d..1a43e14a36 100644
--- a/ldcg-sbsa-firmware/build-sbsa-acs.sh
+++ b/ldcg-sbsa-firmware/build-sbsa-acs.sh
@@ -2,12 +2,39 @@
set -ex
+rm -rf ${WORKSPACE}/*
+mkdir -p ${WORKSPACE}/logs/
+
+if [ -z $QEMU_TIMEOUT ]; then
+ QEMU_TIMEOUT=30s
+fi
+
+QEMU_COMMAND="./qemu/build/qemu-system-aarch64 \
+ -machine sbsa-ref \
+ -cpu max \
+ -drive if=pflash,file=SBSA_FLASH0.fd,format=raw \
+ -drive if=pflash,file=SBSA_FLASH1.fd,format=raw \
+ -drive file=fat:rw:$PWD/virtual-disk/,format=raw \
+ -serial mon:stdio \
+ -device virtio-rng-pci \
+ -device qemu-xhci \
+ -no-reboot \
+ -nographic
+"
+# more complex PCI Express structure once we get ITS support in QEMU
+# -device pcie-root-port,id=root_port1,chassis=1,slot=1 \
+# -device nvme,serial=deadbeef,drive=nvme,bus=root_port1 \
+# -device pcie-root-port,id=root_port2,chassis=1,slot=2 \
+# -device qemu-xhci,id=usb,bus=root_port2 \
+# -device pcie-root-port,id=root_port3,chassis=1,slot=3 \
+# -device e1000e,bus=root_port3 \
+
build_qemu()
{
# Build QEMU - only AArch64 target
cd qemu
- ./configure --target-list=aarch64-softmmu
+ ./configure --target-list=aarch64-softmmu --disable-werror
make -j$(nproc)
cd -
}
@@ -16,6 +43,7 @@ build_edk2()
{
# Build EDK2 and truncate results to expected 256M
+ export PYTHON_COMMAND=/usr/bin/python3
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms:$WORKSPACE/edk2-non-osi:$WORKSPACE/edk2-libc
make -C edk2/BaseTools
@@ -54,56 +82,81 @@ build_sbsa_acs()
source edk2/ShellPkg/Application/sbsa-acs/tools/scripts/avsbuild.sh
}
-rm -rf ${WORKSPACE}/*
+build_bsa_acs()
+{
-# install build dependencies for QEMU and EDK2
-sudo apt update
-sudo apt -y --no-install-recommends install build-essential pkg-config python3 \
- libpixman-1-dev libglib2.0-dev \
- dosfstools ninja-build python
+ cd edk2
+ patch -p0 < ../configs/ldcg-sbsa-firmware/enable-bsa-acs.patch
-fetch_code
+ cd ShellPkg/Application
+ git clone --depth 1 https://github.com/ARM-software/bsa-acs.git
-build_qemu
-build_edk2
-build_sbsa_acs
+ cd $WORKSPACE
+ export GCC49_AARCH64_PREFIX=$GCC5_AARCH64_PREFIX
+ source edk2/ShellPkg/Application/bsa-acs/tools/scripts/acsbuild.sh
+}
-mkdir -p ${WORKSPACE}/logs/
+install_deps()
+{
+ # install build dependencies for QEMU and EDK2
+ sudo apt update
+ sudo apt -y --no-install-recommends install build-essential pkg-config python3 \
+ libpixman-1-dev libglib2.0-dev wget \
+ ninja-build iasl gcc-aarch64-linux-gnu
+}
-# Create 16MB hdd with one ESP partition
+prepare_virtual_disk()
+{
+ mkdir -p virtual-disk/efi/boot
+ cp Build/SbsaQemu/RELEASE_GCC5/AARCH64/Shell.efi virtual-disk/efi/boot/bootaa64.efi
+ cp Build/Shell/DEBUG_GCC49/AARCH64/Sbsa.efi virtual-disk/
+ cp Build/Shell/DEBUG_GCC49/AARCH64/Bsa.efi virtual-disk/
+}
-truncate -s 16M sda.raw
-echo 'label:gpt' | /sbin/sfdisk sda.raw
-echo ',,U;' |/sbin/sfdisk sda.raw
+run_sbsa_acs()
+{
+ for sbsa_level in 3 4 5 6 7
+ do
+ echo "fs0:\Sbsa.efi -p 1 -l ${sbsa_level}" > virtual-disk/startup.nsh
+
+ # we start qemu in 'exit on reboot' mode so we quit on shutdown
+ echo "reset -c" >>virtual-disk/startup.nsh
+
+ timeout --foreground ${QEMU_TIMEOUT} ${QEMU_COMMAND} | tee logs/sbsa-acs-level${sbsa_level}.log
+ done
+}
-# Create disk and populate it with needed software
+run_bsa_acs()
+{
+ echo "fs0:\bsa.efi -sbsa" > virtual-disk/startup.nsh
-mkdir -p efi/boot
-cp Build/SbsaQemu/RELEASE_GCC5/AARCH64/Shell.efi efi/boot/bootaa64.efi
+ # we start qemu in 'exit on reboot' mode so we quit on shutdown
+ echo "reset -c" >>virtual-disk/startup.nsh
-echo "drive c:" >~/.mtoolsrc
-echo " file=\"${WORKSPACE}/sda.raw\" offset=1048576" >>~/.mtoolsrc
+ timeout --foreground ${QEMU_TIMEOUT} ${QEMU_COMMAND} | tee logs/bsa-acs.log
+}
-mformat c:
-mcopy -s efi ./Build/Shell/DEBUG_GCC49/AARCH64/Sbsa.efi c:
+run_acpiview()
+{
+ echo "acpiview" > virtual-disk/startup.nsh
-for sbsa_level in 3 4 5 6
-do
- echo "fs0:\Sbsa.efi -l ${sbsa_level}" > startup.nsh
+ # we start qemu in 'exit on reboot' mode so we quit on shutdown
+ echo "reset -c" >>virtual-disk/startup.nsh
- if [ "$sbsa_level" != "3" ]; then
- mdel c:startup.nsh
- fi
- mcopy startup.nsh c:
+ timeout --foreground ${QEMU_TIMEOUT} ${QEMU_COMMAND} | tee logs/acpiview.log
+}
-# run SBSA ACS in QEMU
- timeout --foreground ${QEMU_TIMEOUT} ./qemu/build/qemu-system-aarch64 \
- -machine sbsa-ref \
- -cpu cortex-a72 \
- -drive if=pflash,file=SBSA_FLASH0.fd,format=raw \
- -drive if=pflash,file=SBSA_FLASH1.fd,format=raw \
- -drive if=ide,file=sda.raw,format=raw \
- -serial mon:stdio \
- -nographic | tee logs/sbsa-acs-level${sbsa_level}.log
-done
+install_deps
+fetch_code
+
+build_qemu
+build_edk2
+build_sbsa_acs
+build_bsa_acs
+
+prepare_virtual_disk
+
+run_sbsa_acs
+run_bsa_acs
+run_acpiview
diff --git a/ldcg-sbsa-firmware/build.sh b/ldcg-sbsa-firmware/build.sh
index 114b402eb3..2304c6c3e6 100644
--- a/ldcg-sbsa-firmware/build.sh
+++ b/ldcg-sbsa-firmware/build.sh
@@ -1,6 +1,12 @@
#!/bin/bash
-SBSA_ENTERPRISE_ACS_VER="v20.10_REL3.0"
+if [ -z $SYSTEMREADY_SR_ACS_VER ]; then
+ SYSTEMREADY_SR_ACS_VER="v23.09_2.0.0"
+fi
+
+if [ -z $QEMU_TIMEOUT ]; then
+ QEMU_TIMEOUT=10m
+fi
set -ex
@@ -21,10 +27,10 @@ build_edk2()
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms:$WORKSPACE/edk2-non-osi
make -C edk2/BaseTools
- export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
+ export GCC_AARCH64_PREFIX=aarch64-linux-gnu-
source edk2/edksetup.sh
- build -b RELEASE -a AARCH64 -t GCC5 -p edk2-platforms/Platform/Qemu/SbsaQemu/SbsaQemu.dsc -n 0
+ build -b RELEASE -a AARCH64 -t GCC -p edk2-platforms/Platform/Qemu/SbsaQemu/SbsaQemu.dsc -n 0
# copy resulting firmware and resize to 256MB images
@@ -41,31 +47,30 @@ fetch_code()
}
-fetch_enterprise_acs()
+fetch_acs()
{
- # Fetch SBSA Enterprise Architecture Compliance Suite
-
- git clone https://github.com/ARM-software/arm-enterprise-acs.git -b release
- cd arm-enterprise-acs/prebuilt_images/${SBSA_ENTERPRISE_ACS_VER}
- git lfs pull
- cd -
+ # Fetch Arm SystemReady ACS for SR
+ wget https://github.com/ARM-software/arm-systemready/raw/main/SR/prebuilt_images/${SYSTEMREADY_SR_ACS_VER}/sr_acs_live_image.img.xz
+ xz -T0 -d sr_acs_live_image.img.xz
}
+cd ${WORKSPACE}
rm -rf ${WORKSPACE}/*
# install build dependencies for QEMU and EDK2
sudo apt update
sudo apt -y --no-install-recommends install build-essential pkg-config python3 \
- libpixman-1-dev libglib2.0-dev dosfstools git-lfs mtools ninja-build
+ libpixman-1-dev libglib2.0-dev dosfstools git-lfs mtools ninja-build \
+ gcc-aarch64-linux-gnu iasl wget xz-utils python-is-python3 ripgrep
fetch_code
-fetch_enterprise_acs
+fetch_acs
build_qemu
build_edk2
-# run SBSA Enterprise ACS in QEMU - in 10 minutes timeouts as there is a test which shutdowns
+# run Arm SystemReady SR ACS in QEMU - in 10 minutes timeouts as there is a test which shutdowns
set +e # do not exit on error
@@ -75,18 +80,23 @@ do
timeout --foreground ${QEMU_TIMEOUT} \
./qemu/build/aarch64-softmmu/qemu-system-aarch64 \
-machine sbsa-ref \
- -cpu cortex-a72 \
+ -m 2048 \
-drive if=pflash,file=SBSA_FLASH0.fd,format=raw \
-drive if=pflash,file=SBSA_FLASH1.fd,format=raw \
- -drive if=ide,format=raw,file=arm-enterprise-acs/prebuilt_images/${SBSA_ENTERPRISE_ACS_VER}/luv-live-image-gpt.img \
+ -drive if=ide,format=raw,file=sr_acs_live_image.img \
-nographic \
+ -device usb-kbd \
+ -watchdog-action none \
-serial mon:stdio
done
# Grab ACS logs
echo "drive c:" >~/.mtoolsrc
-echo " file=\"$(realpath arm-enterprise-acs/prebuilt_images/${SBSA_ENTERPRISE_ACS_VER}/luv-live-image-gpt.img)\" offset=1048576" >>~/.mtoolsrc
+echo " file=\"$(realpath sr_acs_live_image.img)\" offset=1048576" >>~/.mtoolsrc
mkdir -p logs
mcopy -s -v c:/ logs/
+
+# show failures (using ripgrep as it deals with UTF-16)
+rg FAIL logs/
diff --git a/ldcg-sbsa-firmware/enable-bsa-acs.patch b/ldcg-sbsa-firmware/enable-bsa-acs.patch
new file mode 100644
index 0000000000..34a63a2100
--- /dev/null
+++ b/ldcg-sbsa-firmware/enable-bsa-acs.patch
@@ -0,0 +1,20 @@
+--- ShellPkg/ShellPkg.dsc
++++ ShellPkg/ShellPkg.dsc
+@@ -29,6 +29,8 @@
+ DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLibOptionalDevicePathProtocol.inf
+ SbsaValLib|ShellPkg/Application/sbsa-acs/val/SbsaValLib.inf
+ SbsaPalLib|ShellPkg/Application/sbsa-acs/platform/pal_uefi/SbsaPalLib.inf
++ BsaValLib|ShellPkg/Application/bsa-acs/val/BsaValLib.inf
++ BsaPalLib|ShellPkg/Application/bsa-acs/platform/pal_uefi_acpi/BsaPalLib.inf
+ !if $(TARGET) == RELEASE
+ DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+ !else
+@@ -107,6 +109,8 @@
+
+ ShellPkg/Application/sbsa-acs/uefi_app/SbsaAvs.inf
+
++ ShellPkg/Application/bsa-acs/uefi_app/BsaAcs.inf
++
+ ShellPkg/Application/Shell/Shell.inf {
+ <PcdsFixedAtBuild>
+ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
diff --git a/ldcg-sbsa-firmware/publishers.sh b/ldcg-sbsa-firmware/publishers.sh
index f51d6f7746..dd0d9e6e3a 100644
--- a/ldcg-sbsa-firmware/publishers.sh
+++ b/ldcg-sbsa-firmware/publishers.sh
@@ -16,7 +16,6 @@ fi
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
--link-latest \
${WORKSPACE}/logs \
${PUBLISH_PATH}/${BUILD_NUMBER}
diff --git a/ldcg-tensorflow-asv-benchmarks.yaml b/ldcg-tensorflow-asv-benchmarks.yaml
new file mode 100644
index 0000000000..7ab2ea2ba2
--- /dev/null
+++ b/ldcg-tensorflow-asv-benchmarks.yaml
@@ -0,0 +1,33 @@
+- job:
+ name: ldcg-tensorflow-asv-benchmarks
+ project-type: freestyle
+ defaults: global
+ description: |
+ Runs various Tensorflow benchmarks and documents them with asv.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 90
+ num-to-keep: 90
+ - github:
+ url: https://github.com/tensorflow/tensorflow
+ disabled: false
+ node: d05bench
+ concurent: false
+ display-name: 'Tensorflow aarch64 - CI Build: MLPerf Benchmark'
+ wrappers:
+ - timestamps
+ builders:
+ - shell:
+ !include-raw: ldcg-tensorflow-asv-benchmarks/ldcg-tensorflow-asv-benchmark.sh
+ publisher:
+ - email:
+ recipients: 'theodore.grey@linaro.org'
diff --git a/ldcg-tensorflow-asv-benchmarks/ldcg-tensorflow-asv-benchmark.sh b/ldcg-tensorflow-asv-benchmarks/ldcg-tensorflow-asv-benchmark.sh
new file mode 100644
index 0000000000..ccdb8d6008
--- /dev/null
+++ b/ldcg-tensorflow-asv-benchmarks/ldcg-tensorflow-asv-benchmark.sh
@@ -0,0 +1,63 @@
+#!/bin/bash -ex
+
+if [ ! -d "${WORKSPACE}" ]; then
+ set -x
+ WORKSPACE=$(pwd)
+fi
+
+if [ ! -d "${WORKSPACE}"/python3.10-venv ]; then
+ wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz
+ tar -xf Python-3.10.0.tar.xz
+ cd "${WORKSPACE}"/Python-3.10.0
+ ./configure
+ make -j$(nproc)
+ ./python -m venv "${WORKSPACE}"/python3.10-venv
+ cd "${WORKSPACE}"
+ source "${WORKSPACE}"/python3.10-venv/bin/activate
+ python -m pip install pytest virtualenv filelock six pip setuptools wheel matplotlib cython
+else
+ source "${WORKSPACE}"/python3.10-venv/bin/activate
+fi
+
+
+if [ ! -d "${WORKSPACE}"/asv-test ]; then
+ git clone https://github.com/TheodoreRTG/asv-test.git
+ cd "${WORKSPACE}"/asv-test
+ git checkout tmp1
+fi
+
+if [ ! -d /mnt/datasets ]; then
+ mkdir /mnt/datasets
+ mount -t nfs 10.40.96.10:/mnt/nvme /mnt/datasets
+fi
+
+if [ ! -d "${WORKSPACE}"/asv-test/inference/loadgen ]; then
+ cd "${WORKSPACE}"/asv-test
+ git submodule update --init --recursive
+ cd inference
+ git checkout r1.1
+ cd loadgen
+ python setup.py bdist_wheel
+ cd ../vision/classification_and_detection/
+ python setup.py bdist_wheel
+ cd "${WORKSPACE}"
+fi
+
+if [ -d "${WORKSPACE}"/asv-test/builds ]; then
+ rm -r "${WORKSPACE}"/asv-test/builds
+fi
+
+if [ -f "${WORKSPACE}"/asv-test/commit_list ]; then
+ rm -r "${WORKSPACE}"/asv-test/commit_list
+fi
+
+if [ -f "${WORKSPACE}"/asv-test/asv_commit_list ]; then
+ rm -r "${WORKSPACE}"/asv-test/asv_commit_list
+fi
+
+cd ${WORKSPACE}/asv-test
+sh gen_commit_list.sh
+sh get_commit_list.sh
+sh gen_asv_commit_list_file.sh
+asv run HASHFILE:asv_commit_list
+asv publish --html-dir tensorflow-manylinux-nightly-asv-bench
diff --git a/ldcg-update-images.yaml b/ldcg-update-images.yaml
new file mode 100644
index 0000000000..e6a5137896
--- /dev/null
+++ b/ldcg-update-images.yaml
@@ -0,0 +1,30 @@
+- job:
+ name: ldcg-update-images
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 1
+ num-to-keep: 1
+ disabled: false
+ node: ldcg-aarch64-02
+ concurrent: false
+ display-name: 'LDCG update images'
+ triggers:
+ - timed: '@weekly'
+ wrappers:
+ - timestamps
+ builders:
+ - shell:
+ !include-raw: ldcg-update-images/build.sh
+ publishers:
+ - email:
+ recipients: 'marcin.juszkiewicz@linaro.org'
diff --git a/ldcg-update-images/build.sh b/ldcg-update-images/build.sh
new file mode 100644
index 0000000000..da7f611130
--- /dev/null
+++ b/ldcg-update-images/build.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+docker pull linaro/tensorflow-arm64-build:latest-multipython
+docker pull quay.io/pypa/manylinux2014_aarch64:latest
+docker pull debian:bullseye
diff --git a/ledge-cloud-image-fedora.yaml b/ledge-cloud-image-fedora.yaml
index 2bf2e9752c..1171db639a 100644
--- a/ledge-cloud-image-fedora.yaml
+++ b/ledge-cloud-image-fedora.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/ledge-oe-premerge-ci.yaml b/ledge-oe-premerge-ci.yaml
deleted file mode 100644
index 79740c17a3..0000000000
--- a/ledge-oe-premerge-ci.yaml
+++ /dev/null
@@ -1,147 +0,0 @@
-- job:
- name: ledge-oe-premerge-ci
- 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
- - github:
- url: https://github.com/Linaro/meta-ledge
- parameters:
- - string:
- name: IMAGES
- default: 'ledge-gateway ledge-iot ledge-gateway-lava ledge-iot-lava'
- - string:
- name: MANIFEST_BRANCH
- default: 'master'
- - string:
- name: PUB_DEST
- default: 'components/ledge/oe/pemerge-ci/${MACHINE}/${BUILD_NUMBER}/${DISTRO}'
- - string:
- name: LAVA_SERVER
- default: 'ledge.validation.linaro.org/RPC2/'
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'ledge'
- - string:
- name: QA_SERVER_TEAM
- default: 'ledge'
- - string:
- name: AUTH_GROUPS
- default: 'linaro'
- - string:
- name: BB_CLEANALL_PKGS
- default: ''
- disabled: false
- node: master
- display-name: 'Pre merge CI for LEDGE OE build'
- scm:
- - git:
- url: https://github.com/Linaro/meta-ledge
- refspec: +refs/pull/*:refs/remotes/origin/pr/*
- name: origin
- branches:
- - ${sha1}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- triggers:
- - github-pull-request:
- github-hooks: true
- permit-all: true
- white-list-target-branches:
- - 'hardknott'
- - 'dunfell'
- auth-id: 'GITHUB_TOKEN'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'ledge-qemux86-64'
- - 'ledge-multi-armv7'
- - 'ledge-multi-armv8'
- - 'ledge-ti-am572x'
- - 'ledge-synquacer'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 400
- - 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
- ledge-ti-am572x)
- DEVICE_TYPE=x15-bl_uefi
- ;;
- ledge-qemux86-64)
- DEVICE_TYPE=qemux86_64uefi
- ;;
- ledge-qemuarm)
- DEVICE_TYPE=qemuarmuefi
- ;;
- ledge-qemuarm64)
- DEVICE_TYPE=qemuarm64uefi
- ;;
- ledge-synquacer)
- DEVICE_TYPE=synquacer
- ;;
- ledge-stm32mp157c-dk2)
- DEVICE_TYPE=stm32mp157c-dk2
- ;;
- *)
- echo "Skip DEVICE_TYPE for ${MACHINE}"
- ;;
- esac
-
- echo "DEVICE_TYPE=${DEVICE_TYPE}" > device_type_parameters
- - inject:
- properties-file: device_type_parameters
- - shell:
- !include-raw: ledge/oe/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw: rpb-openembedded/publishers.sh
- - shell:
- !include-raw: ledge/oe/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'maxim.uvarov@linaro.org ilias.apalodimas@linaro.org christophe.priouzeau@linaro.org'
diff --git a/ledge-oe.yaml b/ledge-ts.yaml
index 91ed876f07..0cad93b23b 100644
--- a/ledge-oe.yaml
+++ b/ledge-ts.yaml
@@ -1,5 +1,5 @@
- job:
- name: ledge-oe
+ name: ledge-ts
project-type: matrix
defaults: global
properties:
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -18,14 +18,14 @@
num-to-keep: 10
parameters:
- string:
- name: IMAGES
- default: 'ledge-gateway ledge-iot ledge-gateway-lava ledge-iot-lava'
+ name: GIT_URL
+ default: 'https://git.codelinaro.org/linaro/dependable-boot/meta-ts.git'
- string:
- name: MANIFEST_BRANCH
+ name: GIT_BRANCH
default: 'master'
- string:
name: PUB_DEST
- default: 'components/ledge/oe/${MACHINE}/${BUILD_NUMBER}/${DISTRO}'
+ default: 'components/ledge/ts/${BUILD_NUMBER}/${MACHINE}/'
- string:
name: LAVA_SERVER
default: 'ledge.validation.linaro.org/RPC2/'
@@ -46,17 +46,19 @@
default: ''
disabled: false
node: master
- display-name: 'LEDGE OE build'
+ display-name: 'Trusted Substrate build'
axes:
- axis:
type: user-defined
name: MACHINE
values:
- - 'ledge-ti-am572x'
- - 'ledge-qemux86-64'
- - 'ledge-synquacer'
- - 'ledge-multi-armv7'
- - 'ledge-multi-armv8'
+ - 'qemuarm64-secureboot'
+ - 'synquacer'
+ - 'stm32mp157c-dk2'
+ - 'stm32mp157c-ev1'
+ - 'rpi4'
+ - 'rockpi4b'
+ - 'zynqmp-starter'
- axis:
type: user-defined
name: DISTRO
@@ -95,7 +97,7 @@
ledge-qemuarm)
DEVICE_TYPE=qemuarmuefi
;;
- ledge-qemuarm64)
+ qemuarm64-secureboot)
DEVICE_TYPE=qemuarm64uefi
;;
ledge-synquacer)
@@ -113,18 +115,18 @@
- inject:
properties-file: device_type_parameters
- shell:
- !include-raw: ledge/oe/builders.sh
+ !include-raw: ledge/ts/builders.sh
- inject:
properties-file: post_build_lava_parameters
- linaro-publish-token
- shell:
!include-raw: rpb-openembedded/publishers.sh
- shell:
- !include-raw: ledge/oe/submit_for_testing.sh
+ !include-raw: ledge/ts/submit_for_testing.sh
publishers:
- groovy-postbuild:
script:
!include-raw:
- openembedded-lkft/postbuild.groovy
- email:
- recipients: 'maxim.uvarov@linaro.org ilias.apalodimas@linaro.org christophe.priouzeau@linaro.org'
+ recipients: 'maxim.uvarov@linaro.org ilias.apalodimas@linaro.org'
diff --git a/ledge-oe-release.yaml b/ledge-u-boot.yaml
index 439310321f..de88cac6be 100644
--- a/ledge-oe-release.yaml
+++ b/ledge-u-boot.yaml
@@ -1,5 +1,5 @@
- job:
- name: ledge-oe-release
+ name: ledge-u-boot
project-type: matrix
defaults: global
properties:
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -18,14 +18,8 @@
num-to-keep: 10
parameters:
- string:
- name: IMAGES
- default: 'ledge-gateway ledge-iot ledge-gateway-lava ledge-iot-lava'
- - string:
- name: MANIFEST_BRANCH
- default: 'ledge-rp-0.2'
- - string:
name: PUB_DEST
- default: 'components/ledge/oe/${MANIFEST_BRANCH}/${MACHINE}/${BUILD_NUMBER}/'
+ default: 'components/ledge/uboot/${BUILD_NUMBER}'
- string:
name: LAVA_SERVER
default: 'ledge.validation.linaro.org/RPC2/'
@@ -44,22 +38,15 @@
- string:
name: BB_CLEANALL_PKGS
default: ''
- - string:
- name: RELEASE
- default: '1'
disabled: false
node: master
- display-name: 'LEDGE OE Release build'
+ display-name: 'LEDGE U-Boot SystemReady-IR tests'
axes:
- axis:
type: user-defined
name: MACHINE
values:
- - 'ledge-ti-am572x'
- - 'ledge-qemux86-64'
- - 'ledge-synquacer'
- - 'ledge-multi-armv7'
- - 'ledge-multi-armv8'
+ - 'qemu-arm64'
- axis:
type: user-defined
name: DISTRO
@@ -74,7 +61,7 @@
sequential: false
wrappers:
- timeout:
- timeout: 800
+ timeout: 400
- timestamps
- ssh-agent-credentials:
users:
@@ -83,51 +70,28 @@
- text:
credential-id: QA_REPORTS_TOKEN
variable: QA_REPORTS_TOKEN
+ - text:
+ credential-id: ARTIFACTORIAL_TOKEN
+ variable: ARTIFACTORIAL_TOKEN
builders:
- shell: |
- #!/bin/bash
-
- # Mapping for MACHINE -> DEVICE_TYPE
- case "${MACHINE}" in
- ledge-ti-am572x)
- DEVICE_TYPE=x15-bl_uefi
- ;;
- ledge-qemux86-64)
- DEVICE_TYPE=qemux86_64uefi
- ;;
- ledge-qemuarm)
- DEVICE_TYPE=qemuarmuefi
- ;;
- ledge-qemuarm64)
- DEVICE_TYPE=qemuarm64uefi
- ;;
- ledge-synquacer)
- DEVICE_TYPE=synquacer
- ;;
- ledge-stm32mp157c-dk2)
- DEVICE_TYPE=stm32mp157c-dk2
- ;;
- *)
- echo "Skip DEVICE_TYPE for ${MACHINE}"
- ;;
- esac
-
+ DEVICE_TYPE=${MACHINE}
echo "DEVICE_TYPE=${DEVICE_TYPE}" > device_type_parameters
- inject:
properties-file: device_type_parameters
- shell:
- !include-raw: ledge/oe/builders.sh
+ !include-raw: ledge/u-boot/builders.sh
- inject:
properties-file: post_build_lava_parameters
- linaro-publish-token
- shell:
!include-raw: rpb-openembedded/publishers.sh
- shell:
- !include-raw: ledge/oe/submit_for_testing.sh
+ !include-raw: ledge/u-boot/submit_for_testing.sh
publishers:
- groovy-postbuild:
script:
!include-raw:
- openembedded-lkft/postbuild.groovy
- email:
- recipients: 'maxim.uvarov@linaro.org ilias.apalodimas@linaro.org christophe.priouzeau@linaro.org'
+ recipients: 'maxim.uvarov@linaro.org ilias.apalodimas@linaro.org'
diff --git a/ledge/oe/builders.sh b/ledge/oe/builders.sh
index 75ac0f9a94..5af56d00be 100755
--- a/ledge/oe/builders.sh
+++ b/ledge/oe/builders.sh
@@ -66,7 +66,7 @@ echo "MANIFEST_COMMIT=${MANIFEST_COMMIT}" > ${WORKSPACE}/submit_for_testing_para
# record changes since last build, if available
BASE_URL=http://snapshots.linaro.org
-if wget -q ${BASE_URL}${PUB_DEST/\/${BUILD_NUMBER}\//\/latest\/}/pinned-manifest.xml -O pinned-manifest-latest.xml; then
+if wget -q ${BASE_URL}/${PUB_DEST/\/${BUILD_NUMBER}\//\/latest\/}/pinned-manifest.xml -O pinned-manifest-latest.xml; then
repo diffmanifests ${PWD}/pinned-manifest-latest.xml ${PWD}/pinned-manifest.xml > manifest-changes.txt
else
echo "latest build published does not have pinned-manifest.xml, skipping diff report"
@@ -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
@@ -174,18 +158,6 @@ build_ledgerp_docs
mv /srv/oe/{source,pinned}-manifest.xml ${UPLOAD_DIR}
cat ${UPLOAD_DIR}/pinned-manifest.xml
-for rootfs in $(find ${UPLOAD_DIR} -type f -name *.rootfs.wic); do
- case "${MACHINE}" in
- ledge-stm32mp157c-dk2)
- mv ${rootfs} ${rootfs}.bin
- pigz -9 ${rootfs}.bin
- ;;
- *)
- pigz -9 ${rootfs}
- ;;
- esac
-done
-
for cert in $(find ${UPLOAD_DIR} -type f -name ledge-kernel-uefi-certs*.wic); do
pigz -9 ${cert}
done
@@ -246,81 +218,10 @@ FIRMWARE=$(find ${UPLOAD_DIR} -type f -name firmware.uefi.uboot.bin -printf "%f\
FIRMWARE_EDK2=$(find ${UPLOAD_DIR} -type f -name firmware.uefi.edk2.bin -printf "%f\n");
FIRMWARE_EDK2_VARS=$(find ${UPLOAD_DIR} -type f -name LEDGE_*VARS.bin -printf "%f\n");
-case "${MACHINE}" in
- ledge-am57xx-evm)
- # QEMU arm 32bit needs the zImage file, not the uImage file.
- # KERNEL_IMG is not used for the real hardware itself.
- KERNEL_IMG=$(find ${UPLOAD_DIR} -type f -name "zImage-*${MACHINE}*.bin" -printf "%f\n")
- ;;
- ledge-synquacer)
- INITRD_URL="http://images.validation.linaro.org/synquacer/hc/initrd.img"
- # We don't upload kernel images anymore, override this for synquacer since
- # we can't install and boot the whole image.
- KERNEL_IMG='Image-for-debian'
- ;;
- juno)
- DTB_IMG=$(find ${UPLOAD_DIR} -type f -name "*Image-*${MACHINE}*.dtb" -printf "%f\n")
- ;;
-esac
-
-# Prepare images for LAVA
-case "${ORIG_MACHINE}" in
- ledge-multi-armv7)
- rm -rf ${UPLOAD_DIR}/lava-images/
- mkdir -p ${UPLOAD_DIR}/lava-images/
- for i in ${IMAGES}; do
- mkdir -p ${UPLOAD_DIR}/lava-images/${i}/
-
- cp ${UPLOAD_DIR}/ledge-qemuarm/${i}-ledge-qemuarm-*.rootfs.ext4 ${UPLOAD_DIR}/lava-images/${i}/
- cp ${UPLOAD_DIR}/ledge-qemuarm/${i}-ledge-qemuarm-*.bootfs.vfat ${UPLOAD_DIR}/lava-images/${i}/
- cp ${UPLOAD_DIR}/ledge-qemuarm/FlashLayout_sdcard_*${i}-ledge-qemuarm.tsv ${UPLOAD_DIR}/lava-images/${i}/
-
- cp ${UPLOAD_DIR}/ledge-qemuarm/*.stm32 ${UPLOAD_DIR}/lava-images/${i}/
- cp -r ${UPLOAD_DIR}/ledge-stm32mp157c-dk2/* ${UPLOAD_DIR}/lava-images/${i}/
-
- cd ${UPLOAD_DIR}/lava-images/${i}
-
- sed -i 's/rootfs.wic.bin/rootfs.ext4/' FlashLayout_sdcard_*${i}*.tsv
- cp FlashLayout_sdcard_*${i}*.tsv ${UPLOAD_DIR}/lava-images/ledge-stm32mp157c-dk2-$i.tsv
-
- #Create final tar
- tar -czvf ${UPLOAD_DIR}/lava-images/ledge-stm32mp157c-dk2-$i.tar.gz .
- #Cleanup
- rm -rf ${UPLOAD_DIR}/lava-images/${i}
- done
- STM32_FLASH_IMAGE_URL="lava-images/ledge-stm32mp157c-dk2-ledge-iot-lava.tar.gz"
- STM32_FLASH_IMAGE_LAYOUT="lava-images/ledge-stm32mp157c-dk2-ledge-iot-lava.tsv"
-
- mkdir -p ${UPLOAD_DIR}/lava-images/debian
- cd ${UPLOAD_DIR}/lava-images/debian
- mv ${UPLOAD_DIR}/ledge-qemuarm/*-ledge-qemuarm-*.bootfs.vfat.gz ${UPLOAD_DIR}/lava-images/debian/
- mv ${UPLOAD_DIR}/ledge-qemuarm/zImage-for-debian ${UPLOAD_DIR}/lava-images/debian/
-
- rm -rf ${UPLOAD_DIR}/ledge-qemuarm/*.stm32
- rm -rf ${UPLOAD_DIR}/ledge-qemuarm/*.tsv
- ;;
- *)
- ;;
-esac
-
# Clean up not needed build artifacts
-CLEAN="Image-ledge* modules-*-mainline* \
- *.env *.conf *.json *.wks \
- dtb \
- kernel-devicetrees.tgz \
- *.txt \
- *.vfat *.ext4 \
- fip.bin \
- ledge-initramfs* \
- *.manifest \
- u-boot-basic-*-r0.bin u-boot-ledge-initial-env-ledge-qemuarm-basic-* \
- ledge-*.bootfs.vfat.gz \
- *.tsv.template \
- "
-for c in ${CLEAN}; do
- find ${UPLOAD_DIR} -name $c -exec rm -rf '{}' '+'
-done
+find ${UPLOAD_DIR} -not -name '*.wic.gz' -type f -exec rm -rf {} \;
find ${UPLOAD_DIR} -type l -delete
+find ${UPLOAD_DIR} -type d -empty -delete || true
case "${ORIG_MACHINE}" in
ledge-multi-armv7)
diff --git a/ledge/oe/lava-job-definitions/ledge-qemuarm64/template-boot.yaml b/ledge/oe/lava-job-definitions/ledge-qemuarm64/template-boot.yaml
new file mode 100644
index 0000000000..aa58df837f
--- /dev/null
+++ b/ledge/oe/lava-job-definitions/ledge-qemuarm64/template-boot.yaml
@@ -0,0 +1,83 @@
+device_type: qemu
+job_name: ledge qemu aarch64 ${BUILD_NUMBER}
+timeouts:
+ job:
+ minutes: 120
+ action:
+ minutes: 120
+ connection:
+ minutes: 3
+priority: 25
+visibility: public
+context:
+ arch: aarch64
+ machine: virt,secure=on
+ cpu: cortex-a57
+ guestfs_interface: virtio
+ netdevice: user
+actions:
+- deploy:
+ namespace: target
+ timeout:
+ minutes: 15
+ to: tmpfs
+ images:
+ 1rootfs:
+ image_arg: -drive id=disk1,file={1rootfs},if=none,format=raw -device virtio-blk-device,drive=disk1 -nographic -device i6300esb,id=watchdog0 -m 2048 -smp 4
+ url: ${SYSTEM_URL}
+ compression: gz
+ apply-overlay: true
+ sparse: false
+ 3bios:
+ image_arg: -drive if=pflash,unit=0,readonly=off,file={3bios},format=raw
+ url: http://snapshots.linaro.org/components/ledge/ts/latest/qemuarm64-secureboot/flash.bin
+ os: oe
+# boot to uboot
+- boot:
+ namespace: target
+ timeout:
+ minutes: 4
+ method: qemu
+ media: tmpfs
+ docker:
+ image: linaro/ci-amd64-ledge:stable
+ binary: /usr/bin/qemu-system-aarch64
+ expect_shell: false
+ auto_login:
+ login_prompt: 'Hit any key to stop autoboot'
+ username: " "
+ parameters:
+ kernel-start-message: "Booting Trusted Firmware"
+ prompts:
+ - '=>'
+ boot_finished:
+ - '=>'
+# configure to boot the image
+- test:
+ namespace: target
+ timeout:
+ minutes: 20
+ interactive:
+ - name: basic-cmds
+ prompts: ['=> ', 'Booting:']
+ script:
+ - command:
+ - command: "virtio scan"
+ - command: "ls virtio 0 && ls virtio 1"
+ - command: "efidebug boot add -b 1 BootLedge virtio 0:1 efi/boot/bootaa64.efi -i virtio 0:1 ledge-initramfs.rootfs.cpio.gz -s 'console=ttyAMA0,115200 console=tty0 root=UUID=6091b3a4-ce08-3020-93a6-f755a22ef03b rootwait panic=60'"
+ - command: "efidebug boot order 1"
+ - command: "bootefi bootmgr"
+# wait for boot to userspace
+- boot:
+ namespace: target
+ timeout:
+ minutes: 40
+ method: minimal
+ reset: false
+ prompts:
+ - 'ledge-qemuarm64:'
+ auto_login:
+ login_prompt: 'login:'
+ username: "ledge"
+ password_prompt: 'Password:'
+ password: "ledge"
diff --git a/ledge/oe/submit_for_testing.sh b/ledge/oe/submit_for_testing.sh
index 6cb89adcee..9ea892521e 100644
--- a/ledge/oe/submit_for_testing.sh
+++ b/ledge/oe/submit_for_testing.sh
@@ -1,30 +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
-
[ -z "${KSELFTEST_PATH}" ] && export KSELFTEST_PATH="/opt/kselftests/mainline/"
[ -z "${LAVA_JOB_PRIORITY}" ] && export LAVA_JOB_PRIORITY="25"
[ -z "${SANITY_LAVA_JOB_PRIORITY}" ] && export SANITY_LAVA_JOB_PRIORITY="30"
@@ -41,41 +19,16 @@ export RESIZE_ROOTFS=${RESIZE_ROOTFS:-}
rm -rf configs
git clone --depth 1 http://git.linaro.org/ci/job/configs.git
-if [ -n "${DEBIAN}" ]; then
- sed -i 's/job_name:.*RPB OE/job_name: LEDGE RPB Debian ${MACHINE}/' configs/rpb-openembedded/lava-job-definitions/*/template-boot.yaml
-fi
-
-if [ -z "${DEVICE_TYPE}" ]; then
- if [ "${MACHINE}" = "ledge-multi-armv7" ]; then
- #DEVICE_TYPE="qemuarmuefi stm32mp157c-dk2 x15-bl_uefi"
- DEVICE_TYPE="qemuarmuefi qemuarm_atf_fip stm32mp157c-dk2"
- elif [ "${MACHINE}" = "ledge-multi-armv8" ]; then
- DEVICE_TYPE="qemuarm64uefi synquacer qemuarm64_atf_fip"
- fi
+if [ "${MACHINE}" = "ledge-multi-armv7" ]; then
+ DTYPES=""
+elif [ "${MACHINE}" = "ledge-multi-armv8" ]; then
+ DTYPES="ledge-qemuarm64"
fi
-function oe_urls {
- if [ "${MACHINE}" = "ledge-multi-armv7" ]; then
- if [ "${DEVICE_TYPE}" = "x15-bl_uefi"; then
- export SYSTEM_URL=`echo ${SYSTEM_URL} | sed "s/ledge-qemuarm/ledge-ti-am572x/"`
- fi
- export FIRMWARE_URL=`echo ${SYSTEM_URL} | sed -e "s|ledge-qemuarm.*|ledge-qemuarm/firmware.uefi.uboot.bin|"`
- export CERTS_URL=`echo ${SYSTEM_URL} | sed -e "s|ledge-qemuarm.*|ledge-qemuarm/ledge-kernel-uefi-certs.ext4.img|"`
- elif [ "${MACHINE}" = "ledge-multi-armv8" ]; then
- export FIRMWARE_URL=`echo ${SYSTEM_URL} | sed -e "s|ledge-qemuarm64.*|ledge-qemuarm64/firmware.uefi.uboot.bin|"`
- export CERTS_URL=`echo ${SYSTEM_URL} | sed -e "s|ledge-qemuarm64.*|ledge-qemuarm64/ledge-kernel-uefi-certs.ext4.img|"`
- fi
-}
-
-DTYPES="${DEVICE_TYPE}"
-
for DEVICE_TYPE in ${DTYPES}; do
export DEVICE_TYPE
- if [ -z "${DEBIAN}" ]; then
- 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} \
@@ -83,6 +36,6 @@ for DEVICE_TYPE in ${DTYPES}; do
--qa-server-team ${QA_SERVER_TEAM} \
--qa-server-project ${QA_SERVER_PROJECT} \
--git-commit ${MANIFEST_COMMIT} \
- --template-path configs/rpb-openembedded/lava-job-definitions \
+ --template-path configs/ledge/oe/lava-job-definitions \
--template-names template-boot.yaml
done
diff --git a/ledge/ts/builders.sh b/ledge/ts/builders.sh
new file mode 100755
index 0000000000..9ad955edb9
--- /dev/null
+++ b/ledge/ts/builders.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+echo "Trusted Substrate Build for: ${MACHINE}"
+
+set -e
+
+sudo mkdir -p /srv/oe
+sudo chown buildslave:buildslave /srv/oe
+cd /srv/oe
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ echo "Running cleanup_exit..."
+}
+
+set -ex
+
+# Store the home repository
+if [ -z "${WORKSPACE}" ]; then
+ # Local build
+ export WORKSPACE=${PWD}
+fi
+
+git clone ${GIT_URL} -b ${GIT_BRANCH}
+cd meta-ts
+
+# link to shared downloads on persistent disk
+# our builds config is expecting downloads and sstate-cache, here.
+mkdir -p build/downloads ${HOME}/srv/oe/sstate-cache-${GIT_BRANCH}
+mkdir -p build/sstate-cache
+ln -s ${HOME}/srv/oe/downloads build/downloads
+ln -s ${HOME}/srv/oe/sstate-cache-${GIT_BRANCH} sstate-cache
+rm -rf build/conf build/tmp
+
+GIT_COMMIT=`git rev-parse HEAD`
+
+kas build ci/${MACHINE}.yml
+
+DEPLOY_DIR_IMAGE="`pwd`/build/tmp/deploy/images/${MACHINE}"
+UPLOAD_DIR_IMAGE="`pwd`/build/tmp/deploy/images/${MACHINE}-upload"
+mkdir -p ${UPLOAD_DIR_IMAGE}
+
+case ${MACHINE} in
+ qemuarm64-secureboot)
+ DEPLOY_DIR_IMAGE="`pwd`/build/tmp/deploy/images/ts${MACHINE}"
+ find ${DEPLOY_DIR_IMAGE} -name flash.bin -type l -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ ;;
+ zynqmp-starter)
+ find ${DEPLOY_DIR_IMAGE} -name ImageA.bin -type f -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ find ${DEPLOY_DIR_IMAGE} -name ImageB.bin -type f -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ ;;
+ synquacer)
+ find ${DEPLOY_DIR_IMAGE} -name scp_romramfw_release.bin -type f -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ find ${DEPLOY_DIR_IMAGE} -name u-boot.bin -type l -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ find ${DEPLOY_DIR_IMAGE} -name fip_all_arm_tf_optee.bin -type f -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ find ${DEPLOY_DIR_IMAGE} -name tee-pager_v2.bin -type f -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ ;;
+ stm32mp157c-dk2)
+ find ${DEPLOY_DIR_IMAGE} -name ts-firmware-${MACHINE}.wic.gz -type l -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ pushd ${UPLOAD_DIR_IMAGE}
+ wget http://releases.linaro.org/components/ledge/rp-0.3/ledge-multi-armv7/ledge-qemuarm/ledge-iot-lava-ledge-qemuarm-20211202164307.rootfs.wic.gz
+ cp ts-firmware-${MACHINE}.wic.gz sdcard.bin.gz
+ gunzip ledge-iot-lava-ledge-qemuarm-*.rootfs.wic.gz sdcard.bin.gz
+ wget http://git-us.linaro.org/ci/job/configs.git/plain/ledge/ts/scripts/ts-merge-images.sh
+ rootfsimg=`ls ledge-iot-lava-ledge-qemuarm-*.rootfs.wic`
+ sudo sh -x ./ts-merge-images.sh sdcard.bin ${rootfsimg}
+ gzip sdcard.bin
+ rm -rf ${rootfsimg} ts-merge-images.sh
+ popd
+ URL_STM_SDIMAGE="http://snapshots.linaro.org/${PUB_DEST}/sdcard.bin.gz"
+ ;;
+ *)
+ find ${DEPLOY_DIR_IMAGE} -name ts-firmware-${MACHINE}.wic.gz -type l -exec cp -rvfL --remove-destination {} ${UPLOAD_DIR_IMAGE} \;
+ ;;
+esac
+
+# Note: the main job script allows to override the default value for
+# BASE_URL and PUB_DEST, typically used for OE RPB builds
+cat << EOF > ${WORKSPACE}/post_build_lava_parameters
+DEPLOY_DIR_IMAGE=${UPLOAD_DIR_IMAGE}
+URL_STM_FLASHER="http://git-us.linaro.org/ci/job/configs.git/plain/ledge/ts/scripts/stm32.tar.gz"
+URL_STM_TSV="http://git-us.linaro.org/ci/job/configs.git/plain/ledge/ts/scripts/stm32mp157c-sdcard.tsv"
+URL_STM_SDIMAGE=${URL_STM_SDIMAGE}
+BUILD_NUMBER=${BUILD_NUMBER}
+MACHINE=${MACHINE}
+GIT_URL=${GIT_URL}
+GIT_BRANCH=${GIT_BRANCH}
+GIT_COMMIT=${GIT_COMMIT}
+PUB_DEST=${PUB_DEST}
+EOF
diff --git a/ledge/ts/lava-job-definitions/stm32mp157c-dk2/template-boot.yaml b/ledge/ts/lava-job-definitions/stm32mp157c-dk2/template-boot.yaml
new file mode 100644
index 0000000000..c113cbc499
--- /dev/null
+++ b/ledge/ts/lava-job-definitions/stm32mp157c-dk2/template-boot.yaml
@@ -0,0 +1,64 @@
+device_type: stm32mp157c-dk2
+job_name: TS stm32mp157c-dk2 build ${BUILD_NUMBER}
+timeouts:
+ job:
+ minutes: 60
+ action:
+ minutes: 5
+ connection:
+ minutes: 5
+priority: medium
+visibility: public
+context:
+ test_character_delay: 30
+actions:
+- deploy:
+ timeout:
+ minutes: 60
+ to: flasher
+ images:
+ tarball:
+ url: ${URL_STM_FLASHER}
+ layout:
+ url: ${URL_STM_TSV}
+ sdcard:
+ url: ${URL_STM_SDIMAGE}
+ compression: gz
+ os: oe
+
+- boot:
+ timeout:
+ minutes: 15
+ method: u-boot
+ auto_login:
+ login_prompt: 'ledge-qemuarm login:'
+ username: ''
+ prompt:
+ - "=>"
+ commands:
+ - ls mmc 0:4 /
+ - ls mmc 0:5 /
+ - efidebug boot add -b 1 BootLedge mmc 0:4 efi/boot/bootarm.efi -i
+ mmc 0:4 ledge-initramfs.rootfs.cpio.gz -s 'console=ttySTM0,115200 root=UUID=6091b3a4-ce08-3020-93a6-f755a22ef03b rootwait panic=10'
+ - efidebug boot order 1
+ - echo "Starting kernel"; bootefi bootmgr
+
+- boot:
+ timeout:
+ minutes: 15
+ method: minimal
+ reset: false
+ prompts:
+ - 'ledge-qemuarm:'
+ auto_login:
+ login_prompt: 'login:'
+ username: "ledge"
+ password_prompt: 'Password:'
+ password: "ledge"
+
+metadata:
+ machine: ${MACHINE}
+ git: ${GIT_URL}
+ git branch: ${GIT_BRANCH}
+ manifest commit: ${GIT_COMMIT}
+ build url: ${PUB_DEST}
diff --git a/ledge/ts/scripts/stm32.tar.gz b/ledge/ts/scripts/stm32.tar.gz
new file mode 100644
index 0000000000..4c4b4b2694
--- /dev/null
+++ b/ledge/ts/scripts/stm32.tar.gz
Binary files differ
diff --git a/ledge/ts/scripts/stm32mp157c-sdcard.tsv b/ledge/ts/scripts/stm32mp157c-sdcard.tsv
new file mode 100644
index 0000000000..e96dac7b9a
--- /dev/null
+++ b/ledge/ts/scripts/stm32mp157c-sdcard.tsv
@@ -0,0 +1,4 @@
+#Opt Id Name Type IP Offset Binary
+- 0x01 fsbl1-boot Binary none 0x0 tf-a-stm32mp157c-dk2-flasher.stm32
+- 0x03 ssbl-boot Binary none 0x0 u-boot-stm32mp157c-dk2-flasher.stm32
+P 0x10 sdcard RawImage mmc0 0x00000000 ../sdcard/sdcard.bin
diff --git a/ledge/ts/scripts/ts-merge-images-esp.sh b/ledge/ts/scripts/ts-merge-images-esp.sh
new file mode 100644
index 0000000000..446741a3e9
--- /dev/null
+++ b/ledge/ts/scripts/ts-merge-images-esp.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+firmware_image=$1
+os_image=$2
+
+set -e
+
+export LANG=C
+
+[ "$#" -ne 2 ] && echo "$0 <firmware .wic> <rootfs .wic>" && exit 1
+
+# src esp size
+src_start=`fdisk -l ${os_image} | grep wic1 | awk '{print $2}'` # in sectors
+src_end=`fdisk -l ${os_image} | grep wic1 | awk '{print $3}'` # in sectors
+src_size=$((src_end - src_start + 1)) # in sectors
+
+truncate $firmware_image --size +$((src_size * 512))
+#fix image after resize with sgdisk + fdisk
+sgdisk -e $firmware_image
+fdisk $firmware_image <<EOF
+w
+EOF
+fdisk -l ${firmware_image}
+
+# Create new ESP partition with SRC size and EFI type
+fdisk $firmware_image <<EOF
+n
+
+
++$((src_size - 1))
+t
+
+1
+w
+EOF
+fdisk -l $firmware_image
+
+esp_dest_start=`fdisk -l ${firmware_image} | tail -n 1 | awk '{print $2}'`
+
+dd conv=notrunc \
+ bs=512 \
+ count=${src_size} \
+ skip=${src_start} \
+ seek=${esp_dest_start} \
+ if=${os_image} \
+ of=${firmware_image} \
+ status=progress
diff --git a/ledge/ts/scripts/ts-merge-images.sh b/ledge/ts/scripts/ts-merge-images.sh
new file mode 100644
index 0000000000..f985f1a40b
--- /dev/null
+++ b/ledge/ts/scripts/ts-merge-images.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+firmware_image=$1
+os_image=$2
+
+set -e
+
+export LANG=C
+
+[ "$#" -ne 2 ] && echo "$0 <firmware .wic> <rootfs .wic>" && exit 1
+
+# src esp size
+src_start=`fdisk -l ${os_image} | grep wic1 | awk '{print $2}'` # in sectors
+src_end=`fdisk -l ${os_image} | grep wic1 | awk '{print $3}'` # in sectors
+src_size=$((src_end - src_start + 1)) # in sectors
+
+# rootfs size
+rootfs_start=`fdisk -l ${os_image} | grep wic2 | awk '{print $2}'` # in sectors
+rootfs_end=`fdisk -l ${os_image} | grep wic2 | awk '{print $3}'` # in sectors
+rootfs_size=$((rootfs_end - rootfs_start + 1)) # in sectors
+
+extra_size=$(((src_size + rootfs_size) * 512 + 10*1024*1024)) # 10MB extra at the end
+
+truncate $firmware_image --size +${extra_size}
+#fix image after resize with sgdisk + fdisk
+sgdisk -e $firmware_image
+fdisk $firmware_image <<EOF
+w
+EOF
+
+# Create new ESP and rootfs partitions
+fdisk $firmware_image <<EOF
+n
+
+
++$((src_size - 1))
+t
+
+1
+n
+
+
++$((rootfs_size - 1))
+t
+
+20
+w
+EOF
+fdisk -l $firmware_image
+
+esp_dest_start=`fdisk -l ${firmware_image} | tail -n 2 | head -n 1 | awk '{print $2}'`
+
+dd conv=notrunc \
+ bs=512 \
+ count=${src_size} \
+ skip=${src_start} \
+ seek=${esp_dest_start} \
+ if=${os_image} \
+ of=${firmware_image} \
+ status=progress
+
+
+rootfs_dest_start=`fdisk -l ${firmware_image} | tail -n 1 | awk '{print $2}'`
+dd conv=notrunc \
+ bs=512 \
+ count=${rootfs_size} \
+ skip=${rootfs_start} \
+ seek=${rootfs_dest_start} \
+ if=${os_image} \
+ of=${firmware_image} \
+ status=progress
diff --git a/ledge/ts/submit_for_testing.sh b/ledge/ts/submit_for_testing.sh
new file mode 100644
index 0000000000..1d92dc98f0
--- /dev/null
+++ b/ledge/ts/submit_for_testing.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+case $MACHINE in
+ stm32mp157c-dk2)
+ echo "running test for ${MACHINE}"
+ ;;
+ *)
+ echo "skiping test for ${MACHINE}"
+ exit 0
+ ;;
+esac
+
+sudo locale-gen en_US.UTF-8 && sudo update-locale LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+
+[ -z "${KSELFTEST_PATH}" ] && export KSELFTEST_PATH="/opt/kselftests/mainline/"
+[ -z "${LAVA_JOB_PRIORITY}" ] && export LAVA_JOB_PRIORITY="25"
+[ -z "${SANITY_LAVA_JOB_PRIORITY}" ] && export SANITY_LAVA_JOB_PRIORITY="30"
+[ -z "${SKIP_LAVA}" ] || unset DEVICE_TYPE
+[ -z "${QA_SERVER_TEAM}" ] && export QA_SERVER_TEAM=rpb
+[ -z "${TOOLCHAIN}" ] && export TOOLCHAIN="unknown"
+[ -z "${TDEFINITIONS_REVISION}" ] && export TDEFINITIONS_REVISION="kselftest-5.1"
+[ -z "${MANIFEST_COMMIT}" ] && export MANIFEST_COMMIT="HEAD"
+[ -z "${MANIFEST_BRANCH}" ] && export MANIFEST_BRANCH="unknown"
+
+
+rm -rf configs
+git clone --depth 1 http://git.linaro.org/ci/job/configs.git
+
+
+python3 configs/openembedded-lkft/submit_for_testing.py \
+ --device-type ${MACHINE} \
+ --build-number ${BUILD_NUMBER} \
+ --lava-server ${LAVA_SERVER} \
+ --qa-server ${QA_SERVER} \
+ --qa-server-team ${QA_SERVER_TEAM} \
+ --qa-server-project ${QA_SERVER_PROJECT} \
+ --git-commit ${MANIFEST_COMMIT} \
+ --template-path configs/ledge/ts/lava-job-definitions \
+ --template-names template-boot.yaml
diff --git a/ledge/u-boot/builders.sh b/ledge/u-boot/builders.sh
new file mode 100755
index 0000000000..d91e2ab667
--- /dev/null
+++ b/ledge/u-boot/builders.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+echo "LEDGE build for machine ${MACHINE} distro ${DISTRO}"
+ORIG_MACHINE="${MACHINE}"
+
+set -e
+
+# workaround EDK2 is confused by the long path used during the build
+# and truncate files name expected by VfrCompile
+sudo mkdir -p /srv/oe
+sudo chown buildslave:buildslave /srv/oe
+cd /srv/oe
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ echo "Running cleanup_exit..."
+}
+
+set -ex
+
+# Store the home repository
+if [ -z "${WORKSPACE}" ]; then
+ # Local build
+ export WORKSPACE=${PWD}
+fi
+
+# Install toolchain
+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="gcc-aarch64-linux-gnu"
+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
+
+
+#Build
+git clone https://github.com/u-boot/u-boot.git
+cd u-boot
+make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- qemu_arm64_defconfig
+make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-
+
+export UPLOAD_DIR="`pwd`/../uboot-build"
+mkdir -p ${UPLOAD_DIR}
+cp u-boot.bin ${UPLOAD_DIR}/u-boot.aarch64.bin
+
+BASE_URL=http://snapshots.linaro.org
+
+#Trigger LAVA job
+cat > ${UPLOAD_DIR}/build_config.json <<EOF
+{
+ "branch" : "master",
+ "build_location" : "${BASE_URL}/${PUB_DEST}"
+}
+EOF
+
+cat << EOF > ${WORKSPACE}/post_build_lava_parameters
+DEPLOY_DIR_IMAGE=${UPLOAD_DIR}
+UBOOT="${BASE_URL}/${PUB_DEST}/u-boot.aarch64.bin"
+EOF
+
+cat ${WORKSPACE}/post_build_lava_parameters
diff --git a/ledge/u-boot/lava-job-definitions/qemu-arm64/template-boot.yaml b/ledge/u-boot/lava-job-definitions/qemu-arm64/template-boot.yaml
new file mode 100644
index 0000000000..843b9740fd
--- /dev/null
+++ b/ledge/u-boot/lava-job-definitions/qemu-arm64/template-boot.yaml
@@ -0,0 +1,60 @@
+job_name: SR-IR QEMU on x86_64
+timeouts:
+ job:
+ minutes: 300
+ action:
+ minutes: 300
+ connection:
+ minutes: 20
+visibility: public
+priority: medium
+device_type: x86
+actions:
+- deploy:
+ role:
+ - target
+ timeout:
+ minutes: 10
+ to: tftp
+ kernel:
+ url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-focal-lts/vmlinuz
+ nfsrootfs:
+ url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-focal-lts/binary.tar.xz
+ prefix: media/
+ compression: xz
+ ramdisk:
+ url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-focal-lts/initrd.img
+ os: debian
+- boot:
+ role:
+ - target
+ timeout:
+ minutes: 45
+ method: ipxe
+ commands: nfs
+ parameters:
+ shutdown-message: 'reboot: Restarting system'
+ auto_login:
+ login_prompt: 'login:'
+ username: linaro
+ password_prompt: 'Password:'
+ password: linaro
+ login_commands:
+ - sudo su -
+ prompts:
+ - root@(.*)
+ - linaro@(.*)
+- test:
+ role:
+ - target
+ timeout:
+ minutes: 300
+ definitions:
+ - repository: https://git.linaro.org/ledge/lava-test-definitions.git
+ from: git
+ path: execs/ubuntu-build-essential.yaml
+ name: deps
+ - repository: https://git.linaro.org/ledge/lava-test-definitions.git
+ from: git
+ path: execs/sr-ir.yaml
+ name: sr-ir
diff --git a/ledge/u-boot/submit_for_testing.sh b/ledge/u-boot/submit_for_testing.sh
new file mode 100644
index 0000000000..a5c781c5f8
--- /dev/null
+++ b/ledge/u-boot/submit_for_testing.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+sudo locale-gen en_US.UTF-8 && sudo update-locale LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+
+[ -z "${KSELFTEST_PATH}" ] && export KSELFTEST_PATH="/opt/kselftests/mainline/"
+[ -z "${LAVA_JOB_PRIORITY}" ] && export LAVA_JOB_PRIORITY="25"
+[ -z "${SANITY_LAVA_JOB_PRIORITY}" ] && export SANITY_LAVA_JOB_PRIORITY="30"
+[ -z "${SKIP_LAVA}" ] || unset DEVICE_TYPE
+[ -z "${QA_SERVER_TEAM}" ] && export QA_SERVER_TEAM=rpb
+[ -z "${TOOLCHAIN}" ] && export TOOLCHAIN="unknown"
+[ -z "${TDEFINITIONS_REVISION}" ] && export TDEFINITIONS_REVISION="kselftest-5.1"
+[ -z "${MANIFEST_COMMIT}" ] && export MANIFEST_COMMIT="HEAD"
+[ -z "${MANIFEST_BRANCH}" ] && export MANIFEST_BRANCH="unknown"
+
+rm -rf configs
+git clone --depth 1 http://git.linaro.org/ci/job/configs.git
+
+DTYPES="${DEVICE_TYPE}"
+
+for DEVICE_TYPE in ${DTYPES}; do
+ export DEVICE_TYPE
+
+ python3 configs/openembedded-lkft/submit_for_testing.py \
+ --device-type ${DEVICE_TYPE} \
+ --build-number ${BUILD_NUMBER} \
+ --lava-server ${LAVA_SERVER} \
+ --qa-server ${QA_SERVER} \
+ --qa-server-team ${QA_SERVER_TEAM} \
+ --qa-server-project ${QA_SERVER_PROJECT} \
+ --git-commit ${MANIFEST_COMMIT} \
+ --template-path configs/ledge/u-boot/lava-job-definitions \
+ --template-names template-boot.yaml
+done
diff --git a/leg-96boards-developerbox-edk2.yaml b/leg-96boards-developerbox-edk2.yaml
index 95f7eac80e..369e49f178 100644
--- a/leg-96boards-developerbox-edk2.yaml
+++ b/leg-96boards-developerbox-edk2.yaml
@@ -11,14 +11,14 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
- job-cancel
- disabled: false
+ disabled: true
node: docker-stretch-arm64
- display-name: 'Linaro EDK II - Socionext Developerbox System Firmware'
+ display-name: 'DISABLED - Linaro EDK II - Socionext Developerbox System Firmware'
scm:
- git:
url: git://git.linaro.org/leg/noupstream/edk2-platforms.git
diff --git a/leg-kolla-push-images.yaml b/leg-kolla-push-images.yaml
deleted file mode 100644
index 889388eb34..0000000000
--- a/leg-kolla-push-images.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-- job:
- name: leg-kolla-push-images
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - file:
- name: push.parameters
- description: "tag of images to push"
- disabled: false
- node: leg-aarch64
- concurrent: false
- display-name: 'LEG Kolla images publish'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: leg-kolla-push-images/build.sh
- - trigger-builds:
- - project:
- - 'leg-kolla-remove-images'
- property-file: "remove.parameters"
- publishers:
- - email:
- recipients: 'marcin.juszkiewicz@linaro.org riku.voipio@linaro.org fathi.boudra@linaro.org ldcg-team@linaro.org'
diff --git a/leg-kolla-remove-images.yaml b/leg-kolla-remove-images.yaml
index 7541d49eb4..63a4ce7bc3 100644
--- a/leg-kolla-remove-images.yaml
+++ b/leg-kolla-remove-images.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -18,7 +18,7 @@
- file:
name: remove.parameters
description: "tag of images to remove"
- disabled: false
+ disabled: true
node: leg-aarch64
concurrent: false
display-name: 'LEG Kolla images local removal'
diff --git a/leg-kolla-rocky-ldc.yaml b/leg-kolla-rocky-ldc.yaml
index 313d9111c1..6a44be354a 100644
--- a/leg-kolla-rocky-ldc.yaml
+++ b/leg-kolla-rocky-ldc.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/leg-kolla-stein-ldc.yaml b/leg-kolla-stein-ldc.yaml
index 0f8983af33..552340a6a8 100644
--- a/leg-kolla-stein-ldc.yaml
+++ b/leg-kolla-stein-ldc.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/leg-kolla-train-ldc.yaml b/leg-kolla-train-ldc.yaml
index eb3453c210..74bf1d7d33 100644
--- a/leg-kolla-train-ldc.yaml
+++ b/leg-kolla-train-ldc.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -35,7 +35,7 @@
name: RETRIES_OPT
default: '3'
description: 'number of retries (default: 3)'
- disabled: false
+ disabled: true
node: leg-aarch64
concurrent: false
display-name: 'LEG Kolla images build (train images for Linaro Developer Cloud)'
diff --git a/leg-kolla-ussuri-ldc.yaml b/leg-kolla-ussuri-ldc.yaml
index 0f89b62b21..f31f76dfcb 100644
--- a/leg-kolla-ussuri-ldc.yaml
+++ b/leg-kolla-ussuri-ldc.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -36,7 +36,7 @@
name: RETRIES_OPT
default: '3'
description: 'number of retries (default: 3)'
- disabled: false
+ disabled: true
node: leg-aarch64
concurrent: false
display-name: 'LEG Kolla images build (ussuri images for Linaro Developer Cloud)'
diff --git a/leg-kolla.yaml b/leg-kolla.yaml
index df5184d18e..e9658d543e 100644
--- a/leg-kolla.yaml
+++ b/leg-kolla.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -27,7 +27,7 @@
name: RETRIES_OPT
default: '3'
description: 'number of retries (default: 3)'
- disabled: false
+ disabled: true
node: leg-aarch64
concurrent: false
display-name: 'LEG Kolla images build'
diff --git a/leg-sdi-remove-tags.yaml b/leg-sdi-remove-tags.yaml
deleted file mode 100644
index da0267ae62..0000000000
--- a/leg-sdi-remove-tags.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-- job:
- name: leg-sdi-remove-tags
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: TAGNAME
- default: ''
- description: 'tag to be removed from images'
- disabled: false
- node: leg-aarch64
- concurrent: false
- display-name: 'LEG SDI docker tag remover'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: leg-sdi-remove-tags/build.sh
- publishers:
- - email:
- recipients: 'marcin.juszkiewicz@linaro.org riku.voipio@linaro.org fathi.boudra@linaro.org sdi-team@linaro.org'
diff --git a/leg-virt-tiancore-edk2-upstream/lava-job-definitions/kvm-aarch64/template.json b/leg-virt-tiancore-edk2-upstream/lava-job-definitions/kvm-aarch64/template.json
deleted file mode 100644
index d93da9f5d4..0000000000
--- a/leg-virt-tiancore-edk2-upstream/lava-job-definitions/kvm-aarch64/template.json
+++ /dev/null
@@ -1,142 +0,0 @@
-{
- "timeout": 900,
- "job_name": "${BUILD_URL}",
- "logging_level": "INFO",
- "vm_group": {
- "host": {
- "device_type": "mustang",
- "role": "host"
- },
- "auto_start_vms": false,
- "vms": [{
- "device_type": "kvm-aarch64",
- "role": "guest-nonsecure"
- },{
- "device_type": "kvm-aarch64",
- "role": "guest-secure"
- },{
- "device_type": "kvm-aarch64",
- "role": "guest-grub-secure"
- },{
- "device_type": "kvm-aarch32",
- "role": "guest-nonsecure-arm32"
- }]
- },
- "actions": [
- {
- "command": "deploy_linaro_kernel",
- "parameters": {
- "dtb": "http://people.linaro.org/~ard.biesheuvel/lava-uefi/stable-v4.0.4/apm-mustang.dtb",
- "kernel": "http://people.linaro.org/~ard.biesheuvel/lava-uefi/stable-v4.0.4/Image",
- "overlays": ["http://people.linaro.org/~ard.biesheuvel/lava-uefi/stable-v4.0.4/modules.tar.xz"],
- "nfsrootfs": "http://releases.linaro.org/15.03/ubuntu/utopic-images/nano-arm64/linaro-utopic-nano-20150309-90.tar.gz",
- "target_type": "ubuntu",
- "role": "host"
- }
- },
- {
- "command": "deploy_linaro_kernel",
- "parameters": {
- "kernel": "http://snapshots.linaro.org/kernel-hwpack/linux-mainline/defconfig/${KERNEL_BUILD_NUM}/Image",
- "ramdisk": "http://storage.kernelci.org/images/rootfs/buildroot/arm64/rootfs.cpio.gz",
- "firmware": "${QEMU_EFI_URL}/QEMU-AARCH64/RELEASE_GCC49/QEMU_EFI.img.gz",
- "role": "guest-nonsecure"
- }
- },
- {
- "command": "deploy_linaro_kernel",
- "parameters": {
- "kernel": "http://people.linaro.org/~ard.biesheuvel/lava-uefi/secureboot/Image",
- "ramdisk": "http://storage.kernelci.org/images/rootfs/buildroot/arm64/rootfs.cpio.gz",
- "qemu_pflash": ["${QEMU_EFI_URL}/QEMU-AARCH64/RELEASE_GCC49/QEMU_EFI.img.gz", "http://people.linaro.org/~ard.biesheuvel/lava-uefi/secureboot/vars.bin.gz"],
- "role": "guest-secure"
- }
- },
- {
- "command": "deploy_linaro_kernel",
- "parameters": {
- "kernel": "http://people.linaro.org/~ard.biesheuvel/lava-uefi/secureboot/grubaa64.efi",
- "rootfs": "http://people.linaro.org/~ard.biesheuvel/lava-uefi/secureboot/vexpress64-openembedded_minimal-armv8.img.gz",
- "qemu_pflash": ["${QEMU_EFI_URL}/QEMU-AARCH64/RELEASE_GCC49/QEMU_EFI.img.gz", "http://people.linaro.org/~ard.biesheuvel/lava-uefi/secureboot/grub-vars.bin.gz"],
- "role": "guest-grub-secure"
- }
- },
- {
- "command": "deploy_linaro_kernel",
- "parameters": {
- "kernel": "http://people.linaro.org/~ard.biesheuvel/lava-uefi/arm32-efi/zImage",
- "ramdisk": "http://storage.kernelci.org/images/rootfs/buildroot/armel/rootfs.cpio.gz",
- "firmware": "${QEMU_EFI_URL}/QEMU-ARM/RELEASE_GCC49/QEMU_EFI.img.gz",
- "role": "guest-nonsecure-arm32"
- }
- },
- {
- "command": "lava_test_shell",
- "parameters": {
- "testdef_repos": [
- {
- "url": "https://git.linaro.org/ci/uefi.git/blob_plain/HEAD:/lava/kvm-install-qemu-host.yaml"
- }],
- "timeout": 1800,
- "role": "host"
- }
- },
- {
- "command": "lava_test_shell",
- "parameters": {
- "testdef_repos": [
- {
- "url": "https://git.linaro.org/ci/uefi.git/blob_plain/HEAD:/lava/kvm-host.yaml"
- }],
- "role": "host"
- }
- },
- {
- "command": "lava_command_run",
- "parameters": {
- "commands": [
- "dmesg|grep 'rtc-efi rtc-efi: setting system clock to'"
- ],
- "timeout": 300,
- "role": "guest-nonsecure"
- }
- },
- {
- "command": "lava_command_run",
- "parameters": {
- "commands": [
- "dmesg|grep 'rtc-efi rtc-efi: setting system clock to'"
- ],
- "timeout": 300,
- "role": "guest-secure"
- }
- },
- {
- "command": "lava_command_run",
- "parameters": {
- "commands": [
- "dmesg|grep 'rtc-efi rtc-efi: setting system clock to'"
- ],
- "timeout": 300,
- "role": "guest-nonsecure-arm32"
- }
- },
- {
- "command": "lava_command_run",
- "parameters": {
- "commands": [
- "grep BOOT_IMAGE /proc/cmdline"
- ],
- "timeout": 300,
- "role": "guest-grub-secure"
- }
- },
- {
- "command": "submit_results",
- "parameters": {
- "server": "http://${LAVA_SERVER}",
- "stream": "${BUNDLE_STREAM_NAME}"
- }
- }
- ]
-}
diff --git a/leg-virt-tiancore-edk2-upstream/lava-job-definitions/mustang/template.json b/leg-virt-tiancore-edk2-upstream/lava-job-definitions/mustang/template.json
deleted file mode 100644
index 4d95db5667..0000000000
--- a/leg-virt-tiancore-edk2-upstream/lava-job-definitions/mustang/template.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "actions": [
- {
- "command": "deploy_linaro_kernel",
- "parameters": {
- "dtb": "https://snapshots.linaro.org/ubuntu/images/xen/mustang/${KERNEL_BUILD_NUM}/apm-mustang.dtb",
- "kernel": "http://people.linaro.org/~ard.biesheuvel/uXen-arm64",
- "nfsrootfs": "https://snapshots.linaro.org/ubuntu/images/xen/mustang/${KERNEL_BUILD_NUM}/xenlava-mustang.tar.xz",
- "ramdisk": "https://snapshots.linaro.org/ubuntu/images/xen/mustang/${KERNEL_BUILD_NUM}/Image-xen-mustang",
- "target_type": "ubuntu"
- },
- "metadata": {
- "testplan" : "xen",
- "rootfs.type": "server",
- "hwpack.type" : "xen-mustang",
- "ubuntu.distribution": "ubuntu",
- "ubuntu.name": "mustang"
- }
- },
- {
- "command": "boot_linaro_image",
- "parameters": {
- "boot_cmds": [
- "setenv autoload no",
- "setenv xen_addr_r 0x4000080000",
- "setenv kernel_addr_r 0x4002000000",
- "setenv kernel_addr_load 0x4001ffffC0",
- "setenv fdt_addr_r '{DTB_ADDR}'",
- "setenv xen_load 'tftp ${xen_addr_r} {KERNEL}'",
- "setenv xen_dtb 'tftp ${fdt_addr_r} {DTB} ;fdt addr ${fdt_addr_r};fdt resize;'",
- "setenv xen_dom0 'tftp ${kernel_addr_load} {RAMDISK}'",
- "setenv xen_run 'run xen_dom0 xen_load;fdt print /chosen;run xen_boot'",
- "setenv xen_boot 'setenv bootargs ${bootargs_xen};bootm ${xen_addr_r} - ${fdt_addr_r}'",
- "setenv bootargs_xen 'conswitch=x dom0_mem=1G dom0_max_vcpus=1 console=dtuart dtuart=/soc/serial@1c020000'",
- "setenv dom0_bootargs 'console=hvc0,115200 debug maxcpus=8 swiotlb=4096 root=/dev/nfs rw nfsroot={SERVER_IP}:{NFSROOTFS},tcp,hard,intr ip=dhcp'",
- "dhcp",
- "setenv serverip {SERVER_IP}",
- "run xen_dtb",
- "fdt addr $fdt_addr_r",
- "fdt resize",
- "fdt set /chosen '#address-cells' <2>",
- "fdt set /chosen '#size-cells' <1>",
- "fdt mknode /chosen module@0",
- "fdt set /chosen/module@0 compatible xen,linux-zimage xen,multiboot-module",
- "fdt set /chosen/module@0 reg <0x40 0x4002000000 0x00a00000>",
- "fdt set /chosen/module@0 bootargs \\\"${dom0_bootargs}\\\"",
- "run xen_run"
- ]
- }
- },
- {
- "command": "lava_test_shell",
- "parameters": {
- "testdef_repos": [{
- "git-repo": "git://git.linaro.org/ci/uefi.git",
- "parameters": {
- "EDK2_BIN": "${XEN_EFI_URL}"
- },
- "testdef": "lava/xentest.yaml"
- }],
- "timeout": 9600
- }
- },
- {
- "command": "submit_results",
- "parameters": {
- "server": "http://${LAVA_SERVER}",
- "stream": "${BUNDLE_STREAM_NAME}"
- }
- }
-
- ],
- "device_type": "mustang",
- "job_name": "${BUILD_URL}",
- "log_level": "INFO",
- "timeout": 30000
-} \ No newline at end of file
diff --git a/leg-virt-tianocore-edk2-upstream.yaml b/leg-virt-tianocore-edk2-upstream.yaml
index 6eed431732..24c841ec39 100644
--- a/leg-virt-tianocore-edk2-upstream.yaml
+++ b/leg-virt-tianocore-edk2-upstream.yaml
@@ -11,20 +11,13 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
- job-cancel
- parameters:
- - string:
- name: BUNDLE_STREAM_NAME
- default: '/private/team/linaro/leg-edk2/'
- - string:
- name: LAVA_SERVER
- default: 'validation.linaro.org/RPC2/'
disabled: false
- node: docker-buster-amd64
+ node: ldcg-aarch64-02
display-name: 'Linaro EDK II - UEFI Continuous Integration (upstream)'
scm:
- git:
@@ -44,152 +37,16 @@
- timestamps
- build-name:
name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
+ - shell:
+ !include-raw: leg-virt-tianocore-edk2-upstream/build.sh
- linaro-publish-token
- - shell: |
- #!/bin/bash
-
- set -ex
-
- trap cleanup_exit INT TERM EXIT
-
- cleanup_exit()
- {
- cd ${WORKSPACE}
- rm -rf out edk2/Build
- }
-
- # use the GCC 4.[89] toolchains that are already available on the build host
- export GCC48_AARCH64_PREFIX=${HOME}/srv/toolchain/arm64-tc-14.04/bin/aarch64-linux-gnu-
- export GCC48_ARM_PREFIX=${HOME}/srv/toolchain/arm-tc-14.04/bin/arm-linux-gnueabihf-
- export GCC49_AARCH64_PREFIX=${HOME}/srv/toolchain/arm64-tc-14.09/bin/aarch64-linux-gnu-
- export GCC49_ARM_PREFIX=${HOME}/srv/toolchain/arm-tc-14.09/bin/arm-linux-gnueabihf-
-
- # use Buster's default cross toolchains for GCC5 and CLANG3x (binutils)
- export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
- export GCC5_ARM_PREFIX=arm-linux-gnueabihf-
-
- export CLANG35_AARCH64_PREFIX=aarch64-linux-gnu-
- export CLANG35_ARM_PREFIX=arm-linux-gnueabi-
- export CLANG35_BIN=/usr/lib/llvm-6.0/bin/
-
- export CLANG38_AARCH64_PREFIX=aarch64-linux-gnu-
- export CLANG38_ARM_PREFIX=arm-linux-gnueabi-
-
- sudo dpkg --add-architecture i386
- sudo apt-get update
- sudo apt-get install -y --no-install-recommends python-requests zip libstdc++6:i386 zlib1g:i386 \
- gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf nasm llvm binutils-arm-linux-gnueabi \
- clang llvm-dev clang-6.0 llvm-6.0-dev python3-distutils
-
- export OUTDIR=${WORKSPACE}/out
-
- (
- unset WORKSPACE
-
- NUM_THREADS=$((`getconf _NPROCESSORS_ONLN` + 1))
-
- cd edk2
- git submodule update --init
-
- # Initialise the build environment
- git clean -dxf BaseTools/
- make -C BaseTools -j $NUM_THREADS
-
- source edksetup.sh --reconfig
-
- cd ${WORKSPACE}
-
- for type in DEBUG RELEASE NOOPT
- do
- for arch in AARCH64 ARM
- do
- for tc in GCC5 CLANG38 CLANG35
- do
- for pkg in Arm ArmPlatform Embedded
- do
- build -s -a ${arch} -t ${tc} -b ${type} -n $NUM_THREADS -p ${pkg}Pkg/${pkg}Pkg.dsc
- done
-
- mkdir -p ${OUTDIR}/QEMU-${arch}/${type}_${tc}
- build -s -a ${arch} -t ${tc} -b ${type} -n $NUM_THREADS -p ArmVirtPkg/ArmVirtQemu.dsc -D SECURE_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D HTTP_BOOT_ENABLE
- cp Build/ArmVirtQemu-${arch}/${type}_${tc}/FV/QEMU_EFI.fd ${OUTDIR}/QEMU-${arch}/${type}_${tc}
-
- mkdir -p ${OUTDIR}/QEMU-KERNEL-${arch}/${type}_${tc}
- build -s -a ${arch} -t ${tc} -b ${type} -n $NUM_THREADS -p ArmVirtPkg/ArmVirtQemuKernel.dsc -D SECURE_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D HTTP_BOOT_ENABLE
- cp Build/ArmVirtQemuKernel-${arch}/${type}_${tc}/FV/QEMU_EFI.fd ${OUTDIR}/QEMU-KERNEL-${arch}/${type}_${tc}
-
- mkdir -p ${OUTDIR}/XEN-${arch}/${type}_${tc}
- build -s -a ${arch} -t ${tc} -b ${type} -n $NUM_THREADS -p ArmVirtPkg/ArmVirtXen.dsc
- cp Build/ArmVirtXen-${arch}/${type}_${tc}/FV/XEN_EFI.fd ${OUTDIR}/XEN-${arch}/${type}_${tc}
- done
- done
-
- build -s -t GCC5 -b ${type} -n $NUM_THREADS -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
- build -s -t GCC5 -b ${type} -n $NUM_THREADS -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
- build -s -t GCC5 -b ${type} -n $NUM_THREADS -a X64 -p OvmfPkg/OvmfPkgX64.dsc -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
- done
- )
-
- find out -name '*QEMU_EFI.fd' -exec bash -c 'in=${1}; out=${in%fd}img; cat $in /dev/zero | dd iflag=fullblock bs=1M count=64 of=$out; gzip -9 $out' _ {} \;
-
- # Publish
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --api_version 3 \
- --link-latest \
- out components/kernel/${JOB_NAME}/${BUILD_NUMBER}
-# Disable v1 job submissions. LAVA 2017.10 release **disables ALL V1 test job submissions**
-# https://lists.linaro.org/pipermail/lava-announce/2017-October/000039.html
-# - shell: |
-# KERNEL_BUILD_NUM=$(wget -q --no-check-certificate -O - https://ci.linaro.org/job/linux-xen/hwpack=mustang,label=docker-vivid-amd64/lastSuccessfulBuild/buildNumber)
-# DEVICE_TYPE=mustang
-# XEN_EFI_URL=https://snapshots.linaro.org/components/kernel/${JOB_NAME}/${BUILD_NUMBER}/XEN-AARCH64/RELEASE_GCC49/XEN_EFI.fd
-# TEMPLATE=https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/leg-virt-tiancore-edk2-upstream/lava-job-definitions/${DEVICE_TYPE}/template.json
-#
-# wget -O - -q --no-check-certificate $TEMPLATE | \
-# sed -e "s|\${BUILD_URL}|${BUILD_URL}|" \
-# -e "s|\${BUNDLE_STREAM_NAME}|${BUNDLE_STREAM_NAME}|" \
-# -e "s|\${XEN_EFI_URL}|${XEN_EFI_URL}|" \
-# -e "s|\${LAVA_SERVER}|${LAVA_SERVER}|" \
-# -e "s|\${KERNEL_BUILD_NUM}|${KERNEL_BUILD_NUM}|" \
-# > custom_lava_job_definition_xen_aarch64_uefi.json
-#
-# cat << EOF > post_build_lava_parameters_xen_aarch64_uefi
-# DEVICE_TYPE=${DEVICE_TYPE}
-# BUNDLE_STREAM_NAME=${BUNDLE_STREAM_NAME}
-# CUSTOM_JSON_URL=${JOB_URL}ws/custom_lava_job_definition_xen_aarch64_uefi.json
-# LAVA_SERVER=${LAVA_SERVER}
-# EOF
-# - trigger-builds:
-# - project: 'post-build-lava'
-# property-file: post_build_lava_parameters_xen_aarch64_uefi
-# block: true
-# - shell: |
-# KERNEL_BUILD_NUM=$(wget -q --no-check-certificate -O - https://ci.linaro.org/job/linux-mainline/ARCH=arm64,defconfig=defconfig,label=linaro-kernel-ci/lastSuccessfulBuild/buildNumber)
-# DEVICE_TYPE=kvm-aarch64
-# QEMU_EFI_URL=https://snapshots.linaro.org/components/kernel/${JOB_NAME}/${BUILD_NUMBER}
-# TEMPLATE=https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/leg-virt-tiancore-edk2-upstream/lava-job-definitions/${DEVICE_TYPE}/template.json
-#
-# wget -O - -q --no-check-certificate $TEMPLATE | \
-# sed -e "s|\${BUILD_URL}|${BUILD_URL}|" \
-# -e "s|\${BUNDLE_STREAM_NAME}|${BUNDLE_STREAM_NAME}|" \
-# -e "s|\${QEMU_EFI_URL}|${QEMU_EFI_URL}|" \
-# -e "s|\${LAVA_SERVER}|${LAVA_SERVER}|" \
-# -e "s|\${KERNEL_BUILD_NUM}|${KERNEL_BUILD_NUM}|" \
-# > custom_lava_job_definition_qemu_aarch64_uefi.json
-#
-# cat << EOF > post_build_lava_parameters_qemu_aarch64_uefi
-# DEVICE_TYPE=${DEVICE_TYPE}
-# BUNDLE_STREAM_NAME=${BUNDLE_STREAM_NAME}
-# CUSTOM_JSON_URL=${JOB_URL}ws/custom_lava_job_definition_qemu_aarch64_uefi.json
-# LAVA_SERVER=${LAVA_SERVER}
-# EOF
-# - trigger-builds:
-# - project: 'post-build-lava'
-# property-file: post_build_lava_parameters_qemu_aarch64_uefi
-# block: true
+ - shell:
+ !include-raw: leg-virt-tianocore-edk2-upstream/publish.sh
publishers:
- email:
- recipients: 'ardb@kernel.org leif@nuviainc.com eugene@nuviainc.com'
+ recipients: 'ardb@kernel.org quic_llindhol@quicinc.com marcin.juszkiewicz@linaro.org'
diff --git a/leg-virt-tianocore-edk2-upstream/build-in-docker.sh b/leg-virt-tianocore-edk2-upstream/build-in-docker.sh
new file mode 100644
index 0000000000..bfaadc5a71
--- /dev/null
+++ b/leg-virt-tianocore-edk2-upstream/build-in-docker.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+set -ex
+
+# use Debian's default cross toolchains for GCC5 (binutils)
+export GCC_AARCH64_PREFIX=aarch64-linux-gnu-
+export GCC_ARM_PREFIX=arm-linux-gnueabihf-
+
+sudo apt-get update
+sudo apt-get install -y --no-install-recommends zip build-essential \
+ g++-aarch64-linux-gnu g++-arm-linux-gnueabihf \
+ nasm llvm clang llvm-dev lld \
+ uuid-dev iasl git ca-certificates \
+ python3-distutils python-is-python3
+
+export OUTDIR=/tmp/shared/out
+
+rm -rf ${OUTDIR}/*
+
+cd /tmp
+
+(
+ unset WORKSPACE
+
+ NUM_THREADS=$((`getconf _NPROCESSORS_ONLN` + 1))
+
+ git clone --depth 1 https://github.com/tianocore/edk2.git
+ cd edk2
+ git submodule update --init
+
+ # Initialise the build environment
+ git clean -dxf BaseTools/
+ make -C BaseTools -j $NUM_THREADS
+
+ source edksetup.sh --reconfig
+
+ for build_type in DEBUG RELEASE NOOPT
+ do
+ for arch in AARCH64 ARM
+ do
+ for tc in GCC CLANGDWARF
+ do
+ for pkg in Arm ArmPlatform Embedded
+ do
+ build -s -a ${arch} -t ${tc} -b ${build_type} -n $NUM_THREADS -p ${pkg}Pkg/${pkg}Pkg.dsc
+ done
+
+ install -d -m 0777 ${OUTDIR}/QEMU-${arch}/${build_type}_${tc}
+ build -s -a ${arch} -t ${tc} -b ${build_type} -n $NUM_THREADS -p ArmVirtPkg/ArmVirtQemu.dsc -D SECURE_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D HTTP_BOOT_ENABLE
+ cp Build/ArmVirtQemu-${arch}/${build_type}_${tc}/FV/QEMU_EFI.fd ${OUTDIR}/QEMU-${arch}/${build_type}_${tc}
+
+ install -d -m 0777 ${OUTDIR}/QEMU-KERNEL-${arch}/${build_type}_${tc}
+ build -s -a ${arch} -t ${tc} -b ${build_type} -n $NUM_THREADS -p ArmVirtPkg/ArmVirtQemuKernel.dsc -D SECURE_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D HTTP_BOOT_ENABLE
+ cp Build/ArmVirtQemuKernel-${arch}/${build_type}_${tc}/FV/QEMU_EFI.fd ${OUTDIR}/QEMU-KERNEL-${arch}/${build_type}_${tc}
+
+ install -d -m 0777 ${OUTDIR}/XEN-${arch}/${build_type}_${tc}
+ build -s -a ${arch} -t ${tc} -b ${build_type} -n $NUM_THREADS -p ArmVirtPkg/ArmVirtXen.dsc
+ cp Build/ArmVirtXen-${arch}/${build_type}_${tc}/FV/XEN_EFI.fd ${OUTDIR}/XEN-${arch}/${build_type}_${tc}
+ done
+ done
+ done
+)
+
+# we expand firmware images to 64MB and set permissions to be able to remove them from normal account
+find $OUTDIR -name '*QEMU_EFI.fd' -exec bash -c 'in=${1}; out=${in%fd}img; cat $in /dev/zero | dd iflag=fullblock bs=1M count=64 of=$out; gzip -9 $out; chmod 666 ${1} ${out}*' _ {} \;
diff --git a/leg-virt-tianocore-edk2-upstream/build.sh b/leg-virt-tianocore-edk2-upstream/build.sh
new file mode 100644
index 0000000000..a47826880b
--- /dev/null
+++ b/leg-virt-tianocore-edk2-upstream/build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -ex
+
+trap cleanup_exit EXIT INT TERM ERR
+
+cleanup_exit()
+{
+ if [ -z $DRUN_ID ]; then
+ docker kill $DRUN_ID
+ fi
+}
+
+docker pull linaro/jenkins-arm64-debian:bookworm
+
+cd $WORKSPACE
+
+mkdir -p out
+
+rm build-in-docker.sh*
+
+wget https://git.linaro.org/ci/job/configs.git/plain/leg-virt-tianocore-edk2-upstream/build-in-docker.sh
+
+DRUN_ID=`docker run --rm -d -v $PWD:/tmp/shared linaro/jenkins-arm64-debian:bookworm sleep infinity`
+
+docker exec $DRUN_ID apt-get update
+docker exec $DRUN_ID apt-get install -y sudo
+docker exec $DRUN_ID bash /tmp/shared/build-in-docker.sh
+
+docker kill $DRUN_ID
diff --git a/leg-virt-tianocore-edk2-upstream/publish.sh b/leg-virt-tianocore-edk2-upstream/publish.sh
new file mode 100644
index 0000000000..85f7b9960e
--- /dev/null
+++ b/leg-virt-tianocore-edk2-upstream/publish.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+test -d ${HOME}/bin || mkdir ${HOME}/bin
+
+wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
+
+time python3 ${HOME}/bin/linaro-cp.py \
+ --link-latest \
+ $WORKSPACE/out/ \
+ components/kernel/${JOB_NAME}/${BUILD_NUMBER}
diff --git a/lhg-oe-build.yaml b/lhg-oe-build.yaml
index 16e2bdbba9..cb7a5b3711 100644
--- a/lhg-oe-build.yaml
+++ b/lhg-oe-build.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lhg-oe-rocko.yaml b/lhg-oe-rocko.yaml
index 81b8f6ad45..17efc3b4ce 100644
--- a/lhg-oe-rocko.yaml
+++ b/lhg-oe-rocko.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lhg-oe-thud.yaml b/lhg-oe-thud.yaml
index c0321d8949..9e89653136 100644
--- a/lhg-oe-thud.yaml
+++ b/lhg-oe-thud.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lhg-oe-wpe-master.yaml b/lhg-oe-wpe-master.yaml
index cc5d223bf3..cbd854815b 100644
--- a/lhg-oe-wpe-master.yaml
+++ b/lhg-oe-wpe-master.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lhg-oe-wpe-morty.yaml b/lhg-oe-wpe-morty.yaml
index ac64816950..6ba73076f5 100644
--- a/lhg-oe-wpe-morty.yaml
+++ b/lhg-oe-wpe-morty.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lhg-openembedded-playready-morty.yaml b/lhg-openembedded-playready-morty.yaml
index a2c76ff48f..9e999df8ba 100644
--- a/lhg-openembedded-playready-morty.yaml
+++ b/lhg-openembedded-playready-morty.yaml
@@ -4,7 +4,7 @@
defaults: global
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
playready-confidential-access:
- job-read
diff --git a/lhg-openembedded-playready-rocko.yaml b/lhg-openembedded-playready-rocko.yaml
index 99a8a325f8..395224ce6a 100644
--- a/lhg-openembedded-playready-rocko.yaml
+++ b/lhg-openembedded-playready-rocko.yaml
@@ -4,7 +4,7 @@
defaults: global
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
playready-confidential-access:
- job-read
diff --git a/linaro-art-build-metrics.yaml b/linaro-art-build-metrics.yaml
deleted file mode 100644
index fe357b9fc9..0000000000
--- a/linaro-art-build-metrics.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-- job:
- name: linaro-art-build-metrics
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-build
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- disabled: false
- node: docker-bionic-art
- display-name: 'ART: Build Metrics'
- concurrent: true
- wrappers:
- - timestamps
- - timeout:
- timeout: 200
- - credentials-binding:
- - text:
- credential-id: ART_METRICS_TOKEN
- variable: ART_METRICS_TOKEN
- builders:
- - shell: |
- #!/bin/bash
- rm -rf art-build-tests android
- #set -xe
-
- git clone git://git.linaro.org/people/vishal.bhoj/art-build-tests.sh.git art-build-tests
- cd art-build-tests/job-metrics/
- sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
- sudo apt-get update
- sudo apt-get install -y xml-twig-tools bc
- . ./metrics.sh ${ART_METRICS_TOKEN}
- cat results.txt
- publishers:
- - email-ext:
- recipients: 'linaro-art@linaro.org'
- content-type: text
- subject: 'Build Time statistics for ART CI Jobs'
- body: |
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
- ${BUILD_LOG_REGEX, regex=".*Build Time.*", linesBefore=0, linesAfter=0, showTruncatedLines=false}
- always: true
diff --git a/linaro-art-julien-sandbox.yaml b/linaro-art-julien-sandbox.yaml
deleted file mode 100644
index b5001aa8d1..0000000000
--- a/linaro-art-julien-sandbox.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-- job:
- name: linaro-art-julien-sandbox
- project-type: freestyle
- defaults: global
- description: >
- This job is for Julien to update NUC device
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- julien.duraj@linaro.org:
- - job-build
- - job-configure
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- disabled: false
- node: docker-utopic-art-test
- display-name: 'Tip: Benchmarks Baseline (Intel Nuc)'
- concurrent: false
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell: |
- #!/bin/bash -xe
-
- # Build scripts
- 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}/jenkins
- # Get the ip address of the nuc to connect to adb over network
- source /home/buildslave/srv/nexus-config
- export ANDROID_SERIAL=${NUC}
- ./setup_host.sh
- ./setup_android.sh
-
-
- publishers:
- - archive:
- artifacts: '*.txt, *.xml, *.json'
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/global.groovy
diff --git a/linaro-art-scripts-presubmit.yaml b/linaro-art-scripts-presubmit.yaml
deleted file mode 100644
index 278f8ec658..0000000000
--- a/linaro-art-scripts-presubmit.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- job:
- name: linaro-art-scripts-presubmit
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- disabled: false
- node: docker-xenial-aosp
- display-name: 'Scripts: Presubmit Test'
- concurrent: true
- triggers:
- - gerrit:
- server-name: android-review.linaro.org
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - patchset-created-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/art-build-scripts'
- branches:
- - branch-pattern: 'master'
- silent: false
- silent-start: true
- wrappers:
- - timestamps
- - timeout:
- timeout: 10
- builders:
- - shell: |
- #!/bin/bash -xe
-
- ART_BUILD_SCRIPTS_DIR="${WORKSPACE}/art-build-scripts"
-
- if [[ -e "${ART_BUILD_SCRIPTS_DIR}/.git" ]]; then
- cd "${ART_BUILD_SCRIPTS_DIR}"
- # We want to keep the gitignored shellcheck binary, so no -x flag
- git clean -fd
- git reset --hard
- else
- # Make sure the target dir does not exist, so the clone won't fail
- rm -rf "${ART_BUILD_SCRIPTS_DIR}"
- git clone "https://android-git.linaro.org/git/linaro-art/art-build-scripts.git" \
- "${ART_BUILD_SCRIPTS_DIR}"
- cd "${ART_BUILD_SCRIPTS_DIR}"
- fi
-
- if ! { git fetch "http://${GERRIT_HOST}/${GERRIT_PROJECT}" "${GERRIT_REFSPEC}" &&
- git checkout FETCH_HEAD; }; then
- git reset --hard
- echo "Error: *** Applying patch with git fetch && git checkout FAILED"
- exit 1
- fi
-
- perl ${ART_BUILD_SCRIPTS_DIR}/jenkins/test_launcher.pl \
- ${ART_BUILD_SCRIPTS_DIR}/presubmit.sh
- publishers:
- - email:
- recipients: 'vishal.bhoj@linaro.org daniel.diaz@linaro.org julien.duraj@linaro.org'
diff --git a/linaro-art-test.yaml b/linaro-art-test.yaml
deleted file mode 100644
index d59a0cfeb7..0000000000
--- a/linaro-art-test.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-- job:
- name: linaro-art-test
- project-type: freestyle
- defaults: global
- description: test job
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- - job-configure
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- julien.duraj@linaro.org:
- - job-build
- - job-configure
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ADB_VERSION
- default: 'adb-tip'
- disabled: false
- node: docker-bionic-art
- display-name: 'Tip: Target Test'
- concurrent: true
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/art.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell: |
- #!/bin/bash -xe
-
- # Build scripts
- ssh-add -l
- ssh git@dev-private-git.linaro.org help
- git clone ssh://git@dev-private-git.linaro.org/linaro-art/platform/manifest.git
diff --git a/linaro-art-testing-presubmit-test.yaml b/linaro-art-testing-presubmit-test.yaml
deleted file mode 100644
index c236ff7b8d..0000000000
--- a/linaro-art-testing-presubmit-test.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-- job:
- name: linaro-art-testing-presubmit-test
- project-type: freestyle
- defaults: global
- description: >
- Runs the
- <a href="https://android-git.linaro.org/linaro/art-testing.git/tree/test/test.py">Art Testing Presubmit Tests</a>.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- disabled: false
- node: docker-xenial-amd64
- display-name: 'Benchmarks: Presubmit Test'
- concurrent: true
- triggers:
- - gerrit:
- server-name: android-review.linaro.org
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - patchset-created-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro/art-testing'
- branches:
- - branch-pattern: 'master'
- silent: false
- silent-start: true
- wrappers:
- - timestamps
- - timeout:
- timeout: 60
- builders:
- - shell: |
- #!/bin/bash -xe
-
- export PATH="${HOME}/bin:${PATH}"
-
- 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}/
- ./jenkins/setup_host.sh
- ./jenkins/presubmit_art_testing.sh
- publishers:
- - email:
- recipients: 'daniel.diaz@linaro.org'
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/global.groovy
diff --git a/linaro-art-tip-build-ARTBuild.yaml b/linaro-art-tip-build-ARTBuild.yaml
deleted file mode 100644
index 6707243dc9..0000000000
--- a/linaro-art-tip-build-ARTBuild.yaml
+++ /dev/null
@@ -1,130 +0,0 @@
-- scm:
- name: art
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/art.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: bionic
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/bionic.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: build
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/build.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: vixl
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/external/vixl.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- job:
- name: linaro-art-tip-build-ARTBuild
- project-type: freestyle
- defaults: global
- description: >
- Builds arm and arm64 dependencies to run the art-tests on a target device.
- The compressed archives are published on the Linaro publish server.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_CONFIG_REPO
- default: 'git://android-git.linaro.org/android-build-configs.git'
- - string:
- name: BUILD_CONFIG_BRANCH
- default: 'master'
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip-short'
- - string:
- name: ART_BUILD_SCRIPTS_REFSPEC
- description: |-
- Git refspec to get ART build scripts from.
- To use a gerrit patch specify this to the appropriate patch
- ref and the ART_BUILD_SCRIPTS_REF to FETCH_HEAD.
- Example - refs/changes/81/20281/23
- default: '+refs/heads/*:refs/remotes/origin/*'
- - string:
- name: ART_BUILD_SCRIPTS_REF
- description: |-
- Git branch to get pipeline scripts from.
- To use a gerrit patch specify ART_BUILD_SCRIPTS_REFSPEC to the appropriate patch
- ref and this to FETCH_HEAD.
- Example - master or FETCH_HEAD
- default: 'master'
- # TODO: once patch above merged, change the default to below
- #default: 'master'
- disabled: true
- node: docker-bionic-art
- display-name: 'Tip: build ART & deps'
- concurrent: true
- scm:
- - art
- - bionic
- - build
- - vixl
- triggers:
- - pollscm: 'H 3 * * *'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- - linaro-publish-token
- - shell:
- !include-raw:
- - linaro-art/build/builders.sh
- publishers:
- - archive:
- artifacts: '*.txt, *.xml, *.json'
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/global.groovy
diff --git a/linaro-art-tip-build-ARTHostTest.yaml b/linaro-art-tip-build-ARTHostTest.yaml
deleted file mode 100644
index cff41e2a80..0000000000
--- a/linaro-art-tip-build-ARTHostTest.yaml
+++ /dev/null
@@ -1,155 +0,0 @@
-- job:
- name: linaro-art-tip-build-ARTHostTest
- project-type: freestyle
- defaults: global
- description: >
- Runs the
- <a href="https://android-git.linaro.org/linaro-art/art-build-scripts.git/tree/tests/test_art_host.sh">Host Tests</a>
- on the tip.<br>
- This build can be triggered by adding the comment "IncludeAllTests"
- in your Gerrit patch.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_CONFIG_REPO
- default: 'git://android-git.linaro.org/android-build-configs.git'
- - string:
- name: BUILD_CONFIG_BRANCH
- default: 'master'
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip-short'
- - bool:
- name: CLEAN_BUILD
- default: false
- disabled: false
- node: docker-bionic-art
- display-name: 'Tip: Host Test'
- concurrent: true
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/art.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- - gerrit:
- server-name: 'dev-private-review.linaro.org'
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeAllTests.*'
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeHostTests.*'
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/art'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/art-build-scripts'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/build'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/external/vixl'
- branches:
- - branch-pattern: 'master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell: |
- 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"
- echo "CI_MAIL_RECIPIENTS=${CI_MAIL_RECIPIENTS}" > env_var_parameters
- - inject:
- properties-file: env_var_parameters
- - shell: |
- #!/bin/bash -xe
-
- # Build scripts
- export LC_ALL=C.UTF-8
- 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}/jenkins
- ./setup_host.sh
- ./setup_android.sh
-
- 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:
- - email-ext:
- recipients: '${CI_MAIL_RECIPIENTS}'
- content-type: text
- body: |
- Build Triggered by: ${GERRIT_CHANGE_SUBJECT}: ${GERRIT_CHANGE_URL}
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
- Parsed warnings/errors: ${PROJECT_URL}${BUILD_NUMBER}/parsed_console
-
- Errors:
- ${BUILD_LOG_REGEX, regex=".*ERROR:.* ", linesBefore=0, linesAfter=0, showTruncatedLines=false}
- - archive:
- artifacts: '*.txt, *.xml'
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/tests.groovy
- - linaro-art/global.groovy
- - plot:
- - title: 'Sync Time'
- group: 'Time Measurements'
- yaxis: 'Seconds'
- style: line
- series:
- - file: time_repo.txt
- format: properties
- - title: 'Test Time'
- group: 'Time Measurements'
- yaxis: 'Seconds'
- style: line
- series:
- - file: time_test.txt
- format: properties
diff --git a/linaro-art-tip-build-ARTSimulatorTest.yaml b/linaro-art-tip-build-ARTSimulatorTest.yaml
deleted file mode 100644
index a2d47181ee..0000000000
--- a/linaro-art-tip-build-ARTSimulatorTest.yaml
+++ /dev/null
@@ -1,148 +0,0 @@
-- job:
- name: linaro-art-tip-build-ARTSimulatorTest
- project-type: freestyle
- defaults: global
- description: >
- Runs the ART (VIXL) simulator tests on the tip.<br>
- This build can be triggered by adding the comment "IncludeAllTests" in your Gerrit patch.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: BUILD_CONFIG_REPO
- default: 'git://android-git.linaro.org/android-build-configs.git'
- - string:
- name: BUILD_CONFIG_BRANCH
- default: 'master'
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip-short'
- disabled: false
- node: docker-bionic-art
- display-name: 'Tip: Simulator Test'
- concurrent: true
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/art.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- - gerrit:
- server-name: 'dev-private-review.linaro.org'
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeAllTests.*'
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeHostTests.*'
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/art'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/art-build-scripts'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/build'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/external/vixl'
- branches:
- - branch-pattern: 'master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell: |
- 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"
- echo "CI_MAIL_RECIPIENTS=${CI_MAIL_RECIPIENTS}" > env_var_parameters
- - inject:
- properties-file: env_var_parameters
- - shell: |
- #!/bin/bash -xe
-
- # Build scripts
- export LC_ALL=C.UTF-8
- export PATH="${HOME}/bin:${PATH}"
- 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}/jenkins
- ./setup_host.sh
- ./setup_android.sh
-
- cd ${ANDROID_BUILD_DIR}
- perl scripts/jenkins/test_launcher.pl \
- scripts/tests/test_art_simulator.sh
- publishers:
- - email-ext:
- recipients: '${CI_MAIL_RECIPIENTS}'
- content-type: text
- body: |
- Build Triggered by: ${GERRIT_CHANGE_SUBJECT}: ${GERRIT_CHANGE_URL}
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
- Parsed warnings/errors: ${PROJECT_URL}${BUILD_NUMBER}/parsed_console
-
- Errors:
- ${BUILD_LOG_REGEX, regex=".*ERROR:.* ", linesBefore=0, linesAfter=0, showTruncatedLines=false}
- - archive:
- artifacts: '*.txt, *.xml'
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/tests.groovy
- - linaro-art/global.groovy
- - plot:
- - title: 'Sync Time'
- group: 'Time Measurements'
- yaxis: 'Seconds'
- style: line
- series:
- - file: time_repo.txt
- format: properties
- - title: 'Test Time'
- group: 'Time Measurements'
- yaxis: 'Seconds'
- style: line
- series:
- - file: time_test.txt
- format: properties
diff --git a/linaro-art-tip-build-ARTTargetTest.yaml b/linaro-art-tip-build-ARTTargetTest.yaml
deleted file mode 100644
index c873bfcab0..0000000000
--- a/linaro-art-tip-build-ARTTargetTest.yaml
+++ /dev/null
@@ -1,146 +0,0 @@
-- job:
- name: linaro-art-tip-build-ARTTargetTest
- project-type: freestyle
- defaults: global
- description: >
- Runs the
- <a href="https://android-git.linaro.org/linaro-art/art-build-scripts.git/tree/tests/test_art_target.sh">Target Tests</a>
- on a device via adb using android root.<br>
- The build slave in the cloud is
- able to reach the physical device using port forwarding via SSH.<br>
- This job is for the tip.<br>
- This build can be triggered by adding the comment "IncludeAllTests" or "IncludeTargetTests"
- in your Gerrit patch.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ADB_VERSION
- default: 'adb-tip'
- - string:
- name: BUILD_CONFIG_REPO
- default: 'git://android-git.linaro.org/android-build-configs.git'
- - string:
- name: BUILD_CONFIG_BRANCH
- default: 'master'
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip-short'
- - string:
- name: SCRIPT_OPTIONS
- default: '--default'
- disabled: false
- node: docker-bionic-art
- display-name: 'Tip: Target Test'
- concurrent: true
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/art.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- - gerrit:
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeAllTests.*'
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeTargetTests.*'
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/build'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/art-build-scripts'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/art'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/external/vixl'
- branches:
- - branch-pattern: 'master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell: |
- 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"
- echo "CI_MAIL_RECIPIENTS=${CI_MAIL_RECIPIENTS}" > env_var_parameters
- - inject:
- properties-file: env_var_parameters
- - shell: |
- #!/bin/bash -xe
-
- # Build scripts
- export LC_ALL=C.UTF-8
- 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}/jenkins
- # Port forwarding magic to have access to Nexus devices
- source /home/buildslave/srv/nexus-config
- export ANDROID_SERIAL=${TARGET_TEST_DEVICE}
- ./setup_adb.sh
- ./setup_host.sh
- ./setup_android.sh
-
- cd ${ANDROID_BUILD_DIR}
- perl scripts/jenkins/test_launcher.pl \
- scripts/tests/test_art_target.sh ${SCRIPT_OPTIONS}
- publishers:
- - email-ext:
- recipients: '${CI_MAIL_RECIPIENTS}'
- content-type: text
- body: |
- Build Triggered by: ${GERRIT_CHANGE_SUBJECT}: ${GERRIT_CHANGE_URL}
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
- Parsed warnings/errors: ${PROJECT_URL}${BUILD_NUMBER}/parsed_console
-
- Errors:
- ${BUILD_LOG_REGEX, regex=".*ERROR:.* ", linesBefore=0, linesAfter=0, showTruncatedLines=false}
- - archive:
- artifacts: '*.txt, *.xml'
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/tests.groovy
- - linaro-art/global.groovy
diff --git a/linaro-art-tip-build-ARTVixlTest.yaml b/linaro-art-tip-build-ARTVixlTest.yaml
index 4d5470bddf..73057184fd 100644
--- a/linaro-art-tip-build-ARTVixlTest.yaml
+++ b/linaro-art-tip-build-ARTVixlTest.yaml
@@ -35,7 +35,7 @@
- string:
name: BUILD_CONFIG_FILENAME
default: 'linaro-art-tip-short'
- disabled: false
+ disabled: true
node: docker-bionic-art
display-name: 'Tip: VIXL Test'
concurrent: true
diff --git a/linaro-art-tip-build-MicroBenchmarks-Baseline-intel.yaml b/linaro-art-tip-build-MicroBenchmarks-Baseline-intel.yaml
deleted file mode 100644
index 4f17acddc7..0000000000
--- a/linaro-art-tip-build-MicroBenchmarks-Baseline-intel.yaml
+++ /dev/null
@@ -1,139 +0,0 @@
-- scm:
- name: art
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/art.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: bionic
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/bionic.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: build
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/build.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- job:
- name: linaro-art-tip-build-MicroBenchmarks-Baseline-intel
- project-type: freestyle
- defaults: global
- description: >
- Runs the
- <a href="https://android-git.linaro.org/linaro-art/art-build-scripts.git/tree/benchmarks/benchmarks_run_target.sh">Microbenchmarks Test script</a>
- on the tip.<br>
- The script is run on the intel platform (i5 NUC)<br>
- This job is for baseline builds only.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ADB_VERSION
- default: 'adb-tip'
- - string:
- name: BUILD_CONFIG_REPO
- default: 'git://android-git.linaro.org/android-build-configs.git'
- - string:
- name: BUILD_CONFIG_BRANCH
- default: 'master'
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip-x86'
- disabled: false
- node: docker-utopic-art-lab
- display-name: 'Tip: Benchmarks Baseline (Intel Nuc)'
- concurrent: false
- scm:
- - art
- - bionic
- - build
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell: |
- #!/bin/bash -xe
-
- # remove old incompatible adb installation
- sudo apt-get -y remove android-tools-adb
-
- # Build scripts
- 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}/jenkins
- # Get the ip address of the nuc to connect to adb over network
- source /home/buildslave/srv/nexus-config
- export ANDROID_SERIAL=${NUC}
- ./setup_host.sh
- ./setup_android.sh
-
- cd ${ANDROID_BUILD_DIR}
- alias python=python3
- perl scripts/jenkins/test_launcher.pl \
- scripts/benchmarks/benchmarks_run_target.sh --linux --x86 --sudo --ip-address ${ANDROID_SERIAL}
- export ANDROID_SERIAL=${VOYOv1}
- perl scripts/jenkins/test_launcher.pl \
- scripts/benchmarks/benchmarks_run_target.sh --linux --x86 --ip-address ${ANDROID_SERIAL}
-
- # create parameters for post-build-reports
- cat << EOF > ${WORKSPACE}/post_build_reports_parameters
- SOURCE_PROJECT_NAME=${JOB_NAME}
- SOURCE_BUILD_NUMBER=${BUILD_NUMBER}
- SOURCE_BUILD_ID=${BUILD_NUMBER}
- SOURCE_BUILD_URL=${BUILD_URL}
- ART_URL=https://art-reports.linaro.org/api/
- SOURCE_BRANCH_NAME=master
- QA_REPORTS_URL=https://qa-reports.linaro.org
- EOF
-
- publishers:
- - archive:
- artifacts: '*.txt, *.xml, *.json'
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/global.groovy
diff --git a/linaro-art-tip-build-MicroBenchmarks-Baseline.yaml b/linaro-art-tip-build-MicroBenchmarks-Baseline.yaml
deleted file mode 100644
index 78335aee73..0000000000
--- a/linaro-art-tip-build-MicroBenchmarks-Baseline.yaml
+++ /dev/null
@@ -1,119 +0,0 @@
-- scm:
- name: art
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/art.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: bionic
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/bionic.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: build
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/build.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- scm:
- name: vixl
- scm:
- - git:
- url: ssh://git@dev-private-git.linaro.org/linaro-art/platform/external/vixl.git
- branches:
- - origin/master
- credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
-- job:
- name: linaro-art-tip-build-MicroBenchmarks-Baseline
- project-type: freestyle
- defaults: global
- description: >
- Runs the
- <a href="https://android-git.linaro.org/linaro-art/art-build-scripts.git/tree/benchmarks/benchmarks_run_target.sh">Microbenchmarks Test script</a>
- on the tip.<br>
- The script runs for Nexus5x, Pixel2, and Pixel3
- This job is for baseline builds only.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ADB_VERSION
- default: 'adb-tip'
- - string:
- name: BUILD_CONFIG_REPO
- default: 'git://android-git.linaro.org/android-build-configs.git'
- - string:
- name: BUILD_CONFIG_BRANCH
- default: 'master'
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip-short'
- disabled: false
- node: docker-bionic-art
- display-name: 'Tip: Benchmarks Baseline (Nexus 5X and Pixel 2/3)'
- concurrent: true
- scm:
- - art
- - bionic
- - build
- - vixl
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- !include: linaro-art/microbenchmarks/baseline-builders.yaml.inc
- publishers:
- - archive:
- artifacts: '*.txt, *.xml, *.json'
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/global.groovy
diff --git a/linaro-art-tip-build-MicroBenchmarks.yaml b/linaro-art-tip-build-MicroBenchmarks.yaml
deleted file mode 100644
index 024e43145c..0000000000
--- a/linaro-art-tip-build-MicroBenchmarks.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-- job:
- name: linaro-art-tip-build-MicroBenchmarks
- project-type: freestyle
- defaults: global
- description: >
- Runs the
- <a href="https://android-git.linaro.org/linaro-art/art-build-scripts.git/tree/benchmarks/benchmarks_run_target.sh">Microbenchmarks Test script </a>
- on the tip.<br>
- This runs on the Pixel 3 only.
- This build is part of the builds that are triggered using the "IncludeAllTests" comment in a Gerrit patch.<br>
- This build can also be triggered in isolation with the "IncludeBenchmarks" comment.
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro-android-builders:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-art:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 60
- parameters:
- - string:
- name: ADB_VERSION
- default: 'adb-tip'
- - string:
- name: BUILD_CONFIG_REPO
- default: 'git://android-git.linaro.org/android-build-configs.git'
- - string:
- name: BUILD_CONFIG_BRANCH
- default: 'master'
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'linaro-art-tip-short'
- disabled: false
- node: docker-bionic-art
- display-name: 'Tip: Benchmarks (Pixel 3)'
- concurrent: true
- triggers:
- - gerrit:
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeAllTests.*'
- - comment-added-contains-event:
- comment-contains-value: '.*IncludeBenchmarks.*'
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/build'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/art'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'linaro-art/platform/external/vixl'
- branches:
- - branch-pattern: 'master'
- wrappers:
- - timestamps
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- !include: linaro-art/microbenchmarks/builders.yaml.inc
- publishers:
- - archive:
- artifacts: '*.txt, *.xml, *.json'
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android-art.parse'
- unstable-on-warning: false
- fail-on-error: false
- - groovy-postbuild:
- script:
- !include-raw:
- - linaro-art/global.groovy
diff --git a/linaro-art-vixlpresubmit-macos.yaml b/linaro-art-vixlpresubmit-macos.yaml
index d152302bce..67fb98135d 100644
--- a/linaro-art-vixlpresubmit-macos.yaml
+++ b/linaro-art-vixlpresubmit-macos.yaml
@@ -31,7 +31,7 @@
num-to-keep: 60
- github:
url: https://github.com/Linaro/vixl
- disabled: false
+ disabled: true
node: macos
display-name: 'VIXL: Presubmit Test on mac os'
concurrent: true
@@ -53,8 +53,7 @@
white-list-target-branches:
- 'main'
- 'master'
- - 'sve'
- - 'sve2'
+ - 'mte'
auth-id: 'GITHUB_TOKEN'
status-context: 'VIXL Presubmit MacOS Test'
success-status: 'presubmit macos test succeeded'
diff --git a/linaro-art-vixlpresubmit-native-armv8.yaml b/linaro-art-vixlpresubmit-native-armv8.yaml
index ff2ac959e2..23ff0e943f 100644
--- a/linaro-art-vixlpresubmit-native-armv8.yaml
+++ b/linaro-art-vixlpresubmit-native-armv8.yaml
@@ -31,7 +31,7 @@
num-to-keep: 60
- github:
url: https://github.com/Linaro/vixl
- disabled: false
+ disabled: true
node: docker-bionic-arm64
display-name: 'VIXL: Presubmit Test on ARMv8 hardware'
concurrent: true
@@ -57,8 +57,7 @@
white-list-target-branches:
- 'main'
- 'master'
- - 'sve'
- - 'sve2'
+ - 'mte'
auth-id: 'GITHUB_TOKEN'
status-context: 'VIXL ARMv8 Presubmit Test'
success-status: 'presubmit armv8 test succeeded'
diff --git a/linaro-art-vixlpresubmit.yaml b/linaro-art-vixlpresubmit.yaml
index 8d5e1e7256..017597b9da 100644
--- a/linaro-art-vixlpresubmit.yaml
+++ b/linaro-art-vixlpresubmit.yaml
@@ -31,7 +31,7 @@
num-to-keep: 60
- github:
url: https://github.com/Linaro/vixl
- disabled: false
+ disabled: true
node: docker-bionic-art
display-name: 'VIXL: Presubmit Test'
concurrent: true
@@ -57,8 +57,7 @@
white-list-target-branches:
- 'master'
- 'main'
- - 'sve'
- - 'sve2'
+ - 'mte'
auth-id: 'GITHUB_TOKEN'
status-context: 'VIXL Presubmit Test'
success-status: 'presubmit test succeeded'
diff --git a/linaro-art/microbenchmarks/builders.sh b/linaro-art/microbenchmarks/builders.sh
index 195de31539..cf02658214 100644
--- a/linaro-art/microbenchmarks/builders.sh
+++ b/linaro-art/microbenchmarks/builders.sh
@@ -20,6 +20,21 @@ alias python=python3
perl scripts/jenkins/test_launcher.pl \
scripts/benchmarks/benchmarks_run_target.sh --skip-run true
+tar --exclude-vcs -cJf test-tree.txz \
+ art/ \
+ scripts/ \
+ external-benchmarks/ \
+ benchmarks/ \
+ device/generic/art/ \
+ build/ \
+ Makefile \
+ Android.bp \
+ bootstrap.bash \
+ prebuilts/build-tools/ \
+ prebuilts/go/linux-x86/ \
+ prebuilts/jdk/jdk11/ \
+ external/golang-protobuf/
+
readonly out_krait=out/target/product/arm_krait
readonly out_armv8=out/target/product/armv8
readonly out_host=out/host/linux-x86
@@ -33,11 +48,20 @@ mkdir -p pub
mv ${WORKSPACE}/*.xml *.txz pub/
PUB_DEST=${PUB_DEST:-/android/${JOB_NAME}/${BUILD_NUMBER}}
+# Only grant access to artifacts to the linaro-art group.
+cat << EOF > ${WORKSPACE}/BUILD-INFO.txt
+Format-Version: 0.5
+Files-Pattern: *
+License-Type: protected
+Auth-Groups: linaro-art
+EOF
+
# Publish
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
time python3 ${HOME}/bin/linaro-cp.py \
--manifest \
+ --build-info ${WORKSPACE}/BUILD-INFO.txt \
--link-latest \
--split-job-owner \
--server ${PUBLISH_SERVER} \
diff --git a/lite-aeolus-jerryscript.yaml b/lite-aeolus-jerryscript.yaml
index 7341803232..6f3949d4fa 100644
--- a/lite-aeolus-jerryscript.yaml
+++ b/lite-aeolus-jerryscript.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -24,7 +24,7 @@
parameters:
- string:
name: GIT_URL
- default: 'https://git.linaro.org/lite/jerryscript.git'
+ default: 'https://github.com/pfalcon/jerryscript'
- string:
name: BRANCH
default: 'zephyr-wip'
@@ -49,7 +49,7 @@
- string:
name: USE_QA_SERVER
default: '1'
- disabled: false
+ disabled: true
node: master
child-workspace: .
display-name: 'LITE Aeolus - JerryScript'
@@ -156,5 +156,5 @@
- groovy-postbuild:
script:
!include-raw: lite-aeolus/description-lava-link.groovy
- - email:
- recipients: 'paul.sokolovsky@linaro.org'
+# - email:
+# recipients: 'first.last@linaro.org'
diff --git a/lite-aeolus-micropython.yaml b/lite-aeolus-micropython.yaml
index 4d9b620021..e0e059f628 100644
--- a/lite-aeolus-micropython.yaml
+++ b/lite-aeolus-micropython.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -45,7 +45,7 @@
- string:
name: USE_QA_SERVER
default: '1'
- disabled: false
+ disabled: true
node: master
child-workspace: .
display-name: 'LITE Aeolus - MicroPython'
@@ -154,5 +154,5 @@
- groovy-postbuild:
script:
!include-raw: lite-aeolus/description-lava-link.groovy
- - email:
- recipients: 'paul.sokolovsky@linaro.org'
+# - email:
+# recipients: 'first.last@linaro.org'
diff --git a/lite-aeolus-openamp.yaml b/lite-aeolus-openamp.yaml
index 7e392c6d66..9ebd23bd77 100644
--- a/lite-aeolus-openamp.yaml
+++ b/lite-aeolus-openamp.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -50,7 +50,7 @@
- string:
name: GIT_RECLONE
default: '0'
- disabled: false
+ disabled: true
node: master
child-workspace: .
display-name: 'LITE Aeolus - OpenAMP'
@@ -121,5 +121,5 @@
- groovy-postbuild:
script:
!include-raw: lite-aeolus/description-lava-link.groovy
- - email:
- recipients: 'ed.mooring@linaro.org paul.sokolovsky@linaro.org'
+# - email:
+# recipients: 'ed.mooring@linaro.org'
diff --git a/lite-aeolus-zephyr.js.yaml b/lite-aeolus-zephyr.js.yaml
index 46bba06ac1..7cd0749d2d 100644
--- a/lite-aeolus-zephyr.js.yaml
+++ b/lite-aeolus-zephyr.js.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lite-aeolus/build-init.sh b/lite-aeolus/build-init.sh
index 287b18bd21..a935eca6be 100644
--- a/lite-aeolus/build-init.sh
+++ b/lite-aeolus/build-init.sh
@@ -50,7 +50,7 @@ echo "GIT_COMMIT_ID=${GIT_COMMIT_ID}" >${WORKSPACE}/env_var_parameters
# docker volume under ${HOME}/srv/toolchain/.
# Note that Zephyr SDK is needed even when building with the gnuarmemb
# toolchain, ZEPHYR_SDK_INSTALL_DIR is needed to find things like conf.
-export ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-0.12.4"
+export ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-0.15.0"
export GCCARMEMB_TOOLCHAIN_PATH="${HOME}/srv/toolchain/gcc-arm-none-eabi-9-2019-q4-major"
# Set build environment variables
diff --git a/lite-common/install-toolchains.sh b/lite-common/install-toolchains.sh
index 8f29a9b7a2..b5f5b741ef 100644
--- a/lite-common/install-toolchains.sh
+++ b/lite-common/install-toolchains.sh
@@ -4,9 +4,9 @@
set -ex
-ZEPHYR_SDK_VER="0.12.4"
+ZEPHYR_SDK_VER="0.15.0"
-ZEPHYR_SDK_URL="https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VER}/zephyr-sdk-${ZEPHYR_SDK_VER}-x86_64-linux-setup.run"
+ZEPHYR_SDK_URL="https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VER}/zephyr-sdk-${ZEPHYR_SDK_VER}_linux-x86_64.tar.gz"
GNUARMEMB_TOOLCHAIN_URL="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/9-2019q4/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2"
ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-${ZEPHYR_SDK_VER}"
@@ -18,8 +18,8 @@ install_zephyr_sdk()
test -f ${ZEPHYR_SDK_INSTALL_DIR}.lck && exit 1
touch ${ZEPHYR_SDK_INSTALL_DIR}.lck
wget -q "${ZEPHYR_SDK_URL}"
- chmod +x $(basename ${ZEPHYR_SDK_URL})
- ./$(basename ${ZEPHYR_SDK_URL}) --quiet --nox11 -- <<< ${ZEPHYR_SDK_INSTALL_DIR}
+ tar xfa $(basename ${ZEPHYR_SDK_URL}) -C $(dirname ${ZEPHYR_SDK_INSTALL_DIR})
+ (cd ${ZEPHYR_SDK_INSTALL_DIR}; ./zephyr-sdk-x86_64-hosttools-standalone-0.9.sh -y -d .)
rm -f ${ZEPHYR_SDK_INSTALL_DIR}.lck
}
@@ -37,4 +37,7 @@ install_arm_toolchain()
install_zephyr_sdk
install_arm_toolchain
+sudo pip3 install cmake==3.20.2
+
+cmake --version
${ZEPHYR_SDK_INSTALL_DIR}/sysroots/x86_64-pokysdk-linux/usr/bin/dtc --version
diff --git a/lite-gateway-ubuntu-core.yaml b/lite-gateway-ubuntu-core.yaml
deleted file mode 100644
index f03b54f22e..0000000000
--- a/lite-gateway-ubuntu-core.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-- job:
- name: lite-gateway-ubuntu-core
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: MACHINES
- default: 'dragonboard-410c pi-2 pi-3 hummingboard'
- disabled: false
- node: docker-xenial-amd64
- display-name: 'LITE - Ubuntu Core gateway image'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - snap.tar
- relative-to: 'somewhereElse'
- builders:
- - shell:
- !include-raw: lite-gateway-ubuntu-core/builders.sh
- - linaro-publish-token
- - shell: |
- #!/bin/bash -e
-
- mkdir out
- for machine in ${MACHINES}; do
- pxz ubuntu-core-16-${machine}-lite.img
- mv ubuntu-core-16-${machine}-lite.img.xz out/
- done
-
- # Publish
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --api_version 3 \
- --link-latest \
- out ubuntu/images/lite-gateway/${BUILD_NUMBER}
-
- rm -rf out
- publishers:
- - email:
- recipients: 'fathi.boudra@linaro.org madper.xie@linaro.org'
diff --git a/lite-openembedded-zcu102-rocko.yaml b/lite-openembedded-zcu102-rocko.yaml
index 667910ceb8..4f8dd73108 100644
--- a/lite-openembedded-zcu102-rocko.yaml
+++ b/lite-openembedded-zcu102-rocko.yaml
@@ -30,7 +30,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -55,7 +55,7 @@
- string:
name: PUB_DEST
default: 'openembedded/lite/${BRANCH}/${MACHINE}/${BUILD_NUMBER}/${DISTRO}'
- disabled: false
+ disabled: true
node: docker-stretch-amd64
display-name: 'LITE - OpenEmbedded for Xilinx ZCU102 (rocko)'
scm:
diff --git a/lite-tf-m.yaml b/lite-tf-m.yaml
index e0b2df7994..b4941ab06f 100644
--- a/lite-tf-m.yaml
+++ b/lite-tf-m.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -34,7 +34,7 @@
default: 'master'
- string:
name: GIT_COMMIT
- default: '865778b9d96d'
+ default: 'd3c5cd90d792'
- string:
name: LAVA_SERVER
default: 'validation.linaro.org/RPC2/'
@@ -50,7 +50,7 @@
- string:
name: USE_QA_SERVER
default: '1'
- disabled: false
+ disabled: true
node: master
child-workspace: .
display-name: "LITE - TrustedFirmware-M"
@@ -119,6 +119,6 @@
git clone --depth 1 https://github.com/pfalcon/lite-build-tools
./configs/lite-tf-m/submit-test.sh
- publishers:
- - email:
- recipients: 'paul.sokolovsky@linaro.org'
+# publishers:
+# - email:
+# recipients: 'paul.sokolovsky@linaro.org'
diff --git a/lite-tf-m/build.sh b/lite-tf-m/build.sh
index 7a86e157f2..b45d99bd53 100755
--- a/lite-tf-m/build.sh
+++ b/lite-tf-m/build.sh
@@ -17,7 +17,7 @@ git clone https://git.trustedfirmware.org/trusted-firmware-m.git -b ${BRANCH}
#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 tf-m-tests; git checkout be6769d4fc773886faedb172f15532a79babe677)
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 c411d0b692..7d283b7f04 100755
--- a/lite-tf-m/install-deps.sh
+++ b/lite-tf-m/install-deps.sh
@@ -30,3 +30,6 @@ ls -l ${TOOLCHAINS}
# Preclude spammy "advices"
git config --global advice.detachedHead false
+
+git config --global user.email "dummy@dummy.com"
+git config --global user.name "Dummy"
diff --git a/lite-tf-m/tfm-build.sh b/lite-tf-m/tfm-build.sh
index d648ca6e1c..edb440f892 100755
--- a/lite-tf-m/tfm-build.sh
+++ b/lite-tf-m/tfm-build.sh
@@ -32,7 +32,7 @@ fi
# ../
cmake -DTFM_PLATFORM=mps2/an521 \
- -DCMAKE_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake \
+ -DTFM_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DBL2=False \
-DTEST_S=ON -DTEST_NS=ON \
diff --git a/lkft-android-common-gateway.yaml b/lkft-android-common-gateway.yaml
deleted file mode 100644
index 61d1dbe2de..0000000000
--- a/lkft-android-common-gateway.yaml
+++ /dev/null
@@ -1,152 +0,0 @@
-- job:
- name: lkft-android-common-gateway
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 400
- parameters:
- - string:
- name: CALLER_JOB_NAME
- - string:
- name: CALLER_BUILD_NUMBER
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IGNORE_KERNELVERSION_CHECK
- default: "false"
- disabled: false
- node: triggers
- display-name: 'Gateway for changes on android common kernels'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${KERNEL_DESCRIBE}-${KERNEL_BRANCH}-${PROPFILE,file="prop_triggered_or_ignored",property="TRIGGERED_OR_IGNORED"}'
- - ssh-agent-credentials:
- users:
- - 'CI_BOT_SSH_KEY'
- builders:
- - shell: |
- #!/bin/bash -ex
-
- # clean the property files for the builds that to be triggered
- rm -f "all-kernels.txt" "api_callbacks_properties.txt" "lkft-android12-5.4-x15.txt" "lkft-android-mainline-x15.txt" "lkft-android-mainline-hikey.txt"
- rm -f "prop_triggered_or_ignored"
- skip_build=false
- if [ "X${IGNORE_KERNELVERSION_CHECK}X" == "XfalseX" ]; then
- ssh-keyscan -p 29418 android-review.linaro.org >> ~/.ssh/known_hosts
- git config --global user.name "Linaro CI"
- git config --global user.email "ci-bot@linaro.org"
- rm -fr android-build-kernel-versions
- git clone -b lkft ssh://ci-bot@android-review.linaro.org:29418/android-build-kernel-versions android-build-kernel-versions
- set +e
- ./android-build-kernel-versions/get-update.sh "${KERNEL_BRANCH}" "${MAKE_KERNELVERSION}" lkft
- check_status=$?
- if [ ${check_status} -eq 1 ]; then
- skip_build=true
- fi
- set -e
- fi
-
- if ${skip_build}; then
- # create the fake file for the inject following
- touch api_callbacks_properties.txt
- echo "TRIGGERED_OR_IGNORED=ignored" > prop_triggered_or_ignored
- else
- echo "TRIGGERED_OR_IGNORED=triggered" > prop_triggered_or_ignored
-
- params="lkft-${KERNEL_BRANCH}.txt"
- echo "KERNEL_DESCRIBE=${KERNEL_DESCRIBE}" >> "${params}"
- echo "SRCREV_kernel=${SRCREV_kernel}" >> "${params}"
- echo "MAKE_KERNELVERSION=${MAKE_KERNELVERSION}" >> "${params}"
- echo "KERNEL_BRANCH=${KERNEL_BRANCH}" >> "${params}"
- cat "${params}"
-
- KERNEL_BRANCH_REAL="${KERNEL_BRANCH}"
- ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED=""
- TEST_OTHER_PLANS_OVERRIDE=""
-
- case "X${KERNEL_BRANCH}" in
- "Xandroid-mainline")
- cp -fv "${params}" "lkft-${KERNEL_BRANCH}-x15.txt"
- echo "ANDROID_BUILD_CONFIG=lkft-x15-aosp-master-mainline" >> "lkft-${KERNEL_BRANCH}-x15.txt"
-
- cp -fv "${params}" "lkft-${KERNEL_BRANCH}-hikey.txt"
- echo "ANDROID_BUILD_CONFIG=lkft-hikey-aosp-master-mainline-gki" >> "lkft-${KERNEL_BRANCH}-hikey.txt"
- ;;
- "Xandroid11-5.4-presubmit")
- KERNEL_BRANCH_REAL="android11-5.4"
- ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED="lkft-db845c-android11-android11-5.4-gki"
- TEST_OTHER_PLANS_OVERRIDE="CTS_PRESUBMIT"
- ;;
- "Xandroid12-5.4-presubmit")
- KERNEL_BRANCH_REAL="android12-5.4"
- ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED="lkft-member-wrapper"
- TEST_OTHER_PLANS_OVERRIDE="CTS_PRESUBMIT"
- ;;
- "Xandroid12-5.10-presubmit")
- KERNEL_BRANCH_REAL="android12-5.10"
- ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED="lkft-member-wrapper"
- TEST_OTHER_PLANS_OVERRIDE="CTS_PRESUBMIT"
- ;;
- "Xandroid13-5.10-presubmit")
- KERNEL_BRANCH_REAL="android13-5.10"
- ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED="lkft-db845c-aosp-master-android13-5.10-gki"
- TEST_OTHER_PLANS_OVERRIDE="CTS_PRESUBMIT"
- ;;
- "X*")
- echo "No particular build for this branch: ${KERNEL_BRANCH}"
- ;;
- esac
-
- # generate files for the api callback build and gki build
- QA_BUILD_VERSION="${KERNEL_DESCRIBE}"
- f_gki_kernel="all-kernels.txt"
- cp -fv "${params}" "${f_gki_kernel}"
- echo "QA_BUILD_VERSION=${QA_BUILD_VERSION}" >> "${f_gki_kernel}"
- echo "ANDROID_BUILD_CONFIG=lkft-gki-${KERNEL_BRANCH_REAL}" >> "${f_gki_kernel}"
- if [ -n "${ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED}" ]; then
- echo "ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED=${ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED}" >> "${f_gki_kernel}"
- fi
- if [ -n "${TEST_OTHER_PLANS_OVERRIDE}" ]; then
- echo "TEST_OTHER_PLANS_OVERRIDE=${TEST_OTHER_PLANS_OVERRIDE}" >> "${f_gki_kernel}"
- fi
-
- f_api_callbacks_prop="api_callbacks_properties.txt"
- cp -fv "${f_gki_kernel}" "${f_api_callbacks_prop}"
- [ -z "${CALLER_JOB_NAME}" ] && CALLER_JOB_NAME="${JOB_NAME}"
- [ -z "${CALLER_BUILD_NUMBER}" ] && CALLER_BUILD_NUMBER="${BUILD_NUMBER}"
- echo "CALLER_JOB_NAME=${CALLER_JOB_NAME}" >> "${f_api_callbacks_prop}"
- echo "CALLER_BUILD_NUMBER=${CALLER_BUILD_NUMBER}" >>"${f_api_callbacks_prop}"
- fi
-
- - inject:
- properties-file: api_callbacks_properties.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-gki-kernel
- property-file: all-kernels.txt
- - project: lkft-generic-omap-build
- property-file: lkft-android-mainline-x15.txt
- - project: lkft-generic-build
- property-file: lkft-android-mainline-hikey.txt
- publishers:
- - email:
- recipients: 'yongqin.liu@linaro.org'
diff --git a/lkft-aosp-master-tracking.yaml b/lkft-aosp-master-tracking.yaml
deleted file mode 100644
index 126575a6c0..0000000000
--- a/lkft-aosp-master-tracking.yaml
+++ /dev/null
@@ -1,326 +0,0 @@
-- job:
- name: lkft-aosp-master-tracking
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 60
- numToKeep: 60
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- parameters:
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'hikey-aosp-master'
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'aosp-master-tracking'
- - string:
- name: ANDROID_VERSION
- default: 'AOSP MASTER'
- - string:
- name: KERNEL_DESCRIBE
- default: 'dummy'
- - string:
- name: SRCREV_kernel
- default: 'dummy'
- - string:
- name: TOOLCHAIN
- default: 'clang-r353983c'
- disabled: false
- node: docker-xenial-aosp
- display-name: 'LKFT AOSP Master HiKey builds'
- concurrent: true
- wrappers:
- - timestamps
- - timeout:
- timeout: 1000
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell: |
- #!/bin/bash
-
- export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
-
- java -version
-
- sudo apt-get update
- sudo apt-get install -y gcc-4.9-multilib bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools python-pip pxz libssl-dev
-
- wget -q http://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u45-b14-1_amd64.deb \
- http://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u45-b14-1_amd64.deb \
- http://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u45-b14-1_amd64.deb
- sudo dpkg -i --force-all *.deb
-
- mkdir -p ${HOME}/bin ${WORKSPACE}/build/out
- curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
- chmod a+x ${HOME}/bin/*
- export PATH=${HOME}/bin:${PATH}
-
- DIR_SRV_AOSP_MASTER="/home/buildslave/srv/aosp-master"
- if [ ! -d "${DIR_SRV_AOSP_MASTER}" ]; then
- sudo mkdir -p "${DIR_SRV_AOSP_MASTER}"
- sudo chmod 777 "${DIR_SRV_AOSP_MASTER}"
- fi
- cd "${DIR_SRV_AOSP_MASTER}"
-
- git config --global user.email "ci_notify@linaro.org"
- git config --global user.name "Linaro CI"
-
- # Runs as ubuntu
- set -xe
- rm -rf .repo/manifests* .repo/local_manifests build-tools jenkins-tools build-configs
- git clone --depth 1 https://git.linaro.org/infrastructure/linaro-android-build-tools.git build-tools
- git clone --depth 1 https://git.linaro.org/infrastructure/linaro-jenkins-tools.git jenkins-tools
- git clone --depth 1 http://android-git.linaro.org/git/android-build-configs.git build-configs
-
- ANDROID_ROOT="${DIR_SRV_AOSP_MASTER}/build"
- DIR_PUB_SRC="${ANDROID_ROOT}/out"
- DIR_PUB_SRC_PRODUCT="${DIR_PUB_SRC}/target/product/hikey"
-
- # clean the out directory as this workspace is used accross multiple builds
- rm -fr ${DIR_SRV_AOSP_MASTER}/.repo-backup
- if [ -d "${ANDROID_ROOT}/.repo" ]; then
- mv -f ${ANDROID_ROOT}/.repo ${DIR_SRV_AOSP_MASTER}/.repo-backup
- fi
- rm -fr ${ANDROID_ROOT}/ && mkdir -p ${ANDROID_ROOT}
- if [ -d "${DIR_SRV_AOSP_MASTER}/.repo-backup" ]; then
- mv -f ${DIR_SRV_AOSP_MASTER}/.repo-backup ${ANDROID_ROOT}/.repo
- fi
-
- export BUILD_CONFIG_FILENAME=${BUILD_CONFIG_FILENAME:-${JOB_NAME#android-*}}
-
- # Early test
- if [ ! -f ${DIR_SRV_AOSP_MASTER}/build-configs/${BUILD_CONFIG_FILENAME} ]; then
- echo "No config file named ${BUILD_CONFIG_FILENAME} exists"
- echo "in android-build-configs.git"
- exit 1
- fi
-
- # Build Android for HiKey
- cd ${ANDROID_ROOT}
- ${DIR_SRV_AOSP_MASTER}/build-configs/linaro-build.sh -c ${BUILD_CONFIG_FILENAME}
- cd -
-
- cp -a ${ANDROID_ROOT}/out/pinned-manifest/*-pinned-manifest.xml ${ANDROID_ROOT}/out
- cp -a ${ANDROID_ROOT}/out/pinned-manifest/*-pinned-manifest.xml ${WORKSPACE}/ || true
-
-
- rm -rf ${DIR_PUB_SRC}/BUILD-INFO.txt
- 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
-
- IMAGE_FILES="boot.img boot-debug.img userdata.img system.img vendor.img"
- for f in ${IMAGE_FILES}; do
- if [ -f ${DIR_PUB_SRC_PRODUCT}/${f} ]; then
- mv -vf ${DIR_PUB_SRC_PRODUCT}/${f} ${DIR_PUB_SRC}/${f}
- xz ${DIR_PUB_SRC}/${f}
- fi
- done
-
- IMAGE_FILES="ramdisk.img ramdisk-debug.img"
- for f in ${IMAGE_FILES}; do
- if [ -f ${DIR_PUB_SRC_PRODUCT}/${f} ]; then
- mv -vf ${DIR_PUB_SRC_PRODUCT}/${f} ${DIR_PUB_SRC}/${f}
- fi
- done
-
- [ -n "${DIR_PUB_SRC}/system.img.xz" ] && SYSTEM_IMG_SHA256SUM=$(sha256sum ${DIR_PUB_SRC}/system.img.xz | cut -d\ -f1)
- [ -n "${DIR_PUB_SRC}/userdata.img.xz" ] && USERDATA_IMG_SHA256SUM=$(sha256sum ${DIR_PUB_SRC}/userdata.img.xz | cut -d\ -f1)
- [ -n "${DIR_PUB_SRC}/vendor.img.xz" ] && VENDOR_IMG_SHA256SUM=$(sha256sum ${DIR_PUB_SRC}/vendor.img.xz | cut -d\ -f1)
-
- # Build latest boot.img with latest kernel from source for 4.14, 4.19 versions
- cd ${ANDROID_ROOT}
- export PATH=${PWD}/prebuilts/clang/host/linux-x86/${TOOLCHAIN}/bin/:${PWD}/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/:${PATH}
-
- export CLANG_TRIPLE=aarch64-linux-gnu-
- export CROSS_COMPILE=aarch64-linux-android-
- CMDLINE="console=ttyAMA3,115200 androidboot.console=ttyAMA3"
- CMDLINE="${CMDLINE} androidboot.hardware=hikey firmware_class.path=/vendor/firmware efi=noruntime"
- CMDLINE="${CMDLINE} init=/init androidboot.boot_devices=soc/f723d000.dwmmc0"
- CMDLINE="${CMDLINE} printk.devkmsg=on buildvariant=userdebug"
-
- ######################################################################
- # common for 4.14/4.19
- if [ ! -d hikey-linaro ]; then
- git clone https://android.googlesource.com/kernel/hikey-linaro
- fi
- cd hikey-linaro
-
- # need to use fetch to get all the new changes
- git fetch --all
-
- # get the mkbootimg command which will be used to create the boot image by all kernel versions
- wget https://android-git.linaro.org/platform/system/core.git/plain/mkbootimg/mkbootimg.py?id=1e40c30b0cc0f2ae007dacc64fe08af52cc731e3 -O mkbootimg
-
- # Build 4.19 kernel
- git checkout android-hikey-linaro-4.19
- git pull
- export KERNEL_DESCRIBE_4_19=$(git rev-parse --short HEAD)
- export KERNEL_VERSION_4_19=$(make kernelversion)
-
- make mrproper
- make -j1 ARCH=arm64 CC=clang HOSTCC=clang hikey_defconfig
- make ARCH=arm64 CC=clang HOSTCC=clang -j$(nproc) Image.gz-dtb
- python mkbootimg \
- --kernel arch/arm64/boot/Image.gz-dtb \
- --ramdisk ${DIR_PUB_SRC}/ramdisk.img \
- --cmdline "${CMDLINE}" \
- --os_version Q \
- --os_patch_level 2019-01-05 \
- --output ${DIR_PUB_SRC}/boot-4.19-${KERNEL_DESCRIBE_4_19}.img
- cp vmlinux ${DIR_PUB_SRC}/4.19_vmlinux
- cp .config ${DIR_PUB_SRC}/4.19_defconfig
- xz ${DIR_PUB_SRC}/boot-4.19-${KERNEL_DESCRIBE_4_19}.img
- BOOT_4_19_IMG_SHA256SUM=$(sha256sum ${DIR_PUB_SRC}/boot-4.19-${KERNEL_DESCRIBE_4_19}.img.xz | cut -d\ -f1)
-
- # Build 4.14 kernel
- git checkout android-hikey-linaro-4.14
- git pull
- export KERNEL_DESCRIBE_4_14=$(git rev-parse --short HEAD)
- export KERNEL_VERSION_4_14=$(make kernelversion)
-
- make mrproper
- make -j1 ARCH=arm64 CC=clang HOSTCC=clang hikey_defconfig
- make ARCH=arm64 CC=clang HOSTCC=clang -j$(nproc) Image.gz-dtb
- python mkbootimg \
- --kernel arch/arm64/boot/Image.gz-dtb \
- --ramdisk ${DIR_PUB_SRC}/ramdisk.img \
- --cmdline "${CMDLINE}" \
- --os_version Q \
- --os_patch_level 2019-01-05 \
- --output ${DIR_PUB_SRC}/boot-4.14-${KERNEL_DESCRIBE_4_14}.img
- cp vmlinux ${DIR_PUB_SRC}/4.14_vmlinux
- cp .config ${DIR_PUB_SRC}/4.14_defconfig
- xz ${DIR_PUB_SRC}/boot-4.14-${KERNEL_DESCRIBE_4_14}.img
- BOOT_4_14_IMG_SHA256SUM=$(sha256sum ${DIR_PUB_SRC}/boot-4.14-${KERNEL_DESCRIBE_4_14}.img.xz | cut -d\ -f1)
-
- cd ../
- rm -fr hikey-linaro
-
- # Publish parameters
- cat << EOF > ${WORKSPACE}/publish_parameters
- PUB_DEST=android/lkft/lkft-aosp-master/${BUILD_NUMBER}
- PUB_SRC=${DIR_PUB_SRC}
- PUB_EXTRA_INC=^[^/]+\.(dtb|dtbo|zip)$|MLO|vmlinux|System.map
-
- KERNEL_DESCRIBE_4_19=${KERNEL_DESCRIBE_4_19}
- KERNEL_DESCRIBE_4_14=${KERNEL_DESCRIBE_4_14}
-
- KERNEL_VERSION_4_19=${KERNEL_VERSION_4_19}
- KERNEL_VERSION_4_14=${KERNEL_VERSION_4_14}
- BOOT_4_19_IMG_SHA256SUM=${BOOT_4_19_IMG_SHA256SUM}
- BOOT_4_14_IMG_SHA256SUM=${BOOT_4_14_IMG_SHA256SUM}
- SYSTEM_IMG_SHA256SUM=${SYSTEM_IMG_SHA256SUM}
- USERDATA_IMG_SHA256SUM=${USERDATA_IMG_SHA256SUM}
- VENDOR_IMG_SHA256SUM=${VENDOR_IMG_SHA256SUM}
- EOF
- - inject:
- properties-file: publish_parameters
- - linaro-publish-token
- - shell:
- !include-raw:
- - android/linaro-publisher.sh
- - inject:
- properties-file: publish_parameters
- - shell: |
- # Install ruamel.yaml==0.16.13
- pip install --user --force-reinstall ruamel.yaml==0.16.13
- pip install --user --force-reinstall Jinja2
- export PUB_DEST=android/lkft/lkft-aosp-master/${BUILD_NUMBER}
- export DEVICE_TYPE=hi6220-hikey
- export LAVA_SERVER=https://lkft.validation.linaro.org/RPC2/
- export DOWNLOAD_URL=http://snapshots.linaro.org/${PUB_DEST}
- export REFERENCE_BUILD_URL=http://snapshots.linaro.org/${PUB_DEST}
- export KERNEL_COMMIT=${BUILD_NUMBER}
- export TOOLCHAIN=${TOOLCHAIN}
- export KERNEL_REPO=hikey-linaro
- export ANDROID_VERSION=aosp-master-$(date --iso-8601)
- export VTS_VERSION=$(echo $VTS_URL | awk -F"/" '{print$(NF-1)}')
- export CTS_VERSION=$(echo $CTS_URL | awk -F"/" '{print$(NF-1)}')
- export QA_BUILD_VERSION=${BUILD_NUMBER}
- export KERNEL_DESCRIBE=${KERNEL_DESCRIBE_4_4}
- export SRCREV_kernel=${KERNEL_DESCRIBE_4_4}
-
- rm -rf configs
- git clone --depth 1 http://git.linaro.org/ci/job/configs.git
-
- # Submit jobs for 4.14 kernel
- cd configs
- git reset --hard
- cd -
- sed -i "s|boot.img.xz|boot-4.14-${KERNEL_DESCRIBE_4_14}.img.xz|g" configs/lkft/lava-job-definitions/${DEVICE_TYPE}/*.yaml
-
- export KERNEL_BRANCH="android-hikey-linaro-${KERNEL_VERSION_4_14}-${KERNEL_DESCRIBE_4_14}"
- export KERNEL_DESCRIBE=${KERNEL_DESCRIBE_4_14}
- export SRCREV_kernel=${KERNEL_DESCRIBE_4_14}
- export BOOT_IMG_SHA256SUM=${BOOT_4_14_IMG_SHA256SUM}
- # submit 4.14 jobs to v.l.o to reduce load on production lkft
- export LAVA_SERVER=https://validation.linaro.org/RPC2/
- python configs/openembedded-lkft/submit_for_testing.py \
- --device-type ${DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team android-lkft \
- --env-suffix "_4.14" \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --git-commit ${QA_BUILD_VERSION} \
- --template-path configs/lkft/lava-job-definitions \
- --template-names template-vts-kernel.yaml \
- --quiet
-
- # Submit jobs for 4.19 kernel
- cd configs && git reset --hard && cd -
- sed -i "s|boot.img.xz|boot-4.19-${KERNEL_DESCRIBE_4_19}.img.xz|g" configs/lkft/lava-job-definitions/${DEVICE_TYPE}/*.yaml
-
- export KERNEL_BRANCH="android-hikey-linaro-${KERNEL_VERSION_4_19}-${KERNEL_DESCRIBE_4_19}"
- export KERNEL_DESCRIBE=${KERNEL_DESCRIBE_4_19}
- export SRCREV_kernel=${KERNEL_DESCRIBE_4_19}
- export BOOT_IMG_SHA256SUM=${BOOT_4_19_IMG_SHA256SUM}
- # submit 4.19 jobs to v.l.o to reduce load on production lkft
- export LAVA_SERVER=https://validation.linaro.org/RPC2/
- python configs/openembedded-lkft/submit_for_testing.py \
- --device-type ${DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team android-lkft \
- --env-suffix "_4.19" \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --git-commit ${QA_BUILD_VERSION} \
- --template-path configs/lkft/lava-job-definitions \
- --template-names template-vts-kernel.yaml \
- --quiet
-
- publishers:
- - archive:
- artifacts: '*.xml,*.json'
- latest-only: true
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - email:
- recipients: 'tom.gall@linaro.org yongqin.liu@linaro.org'
diff --git a/lkft-aosp-master-x15.yaml b/lkft-aosp-master-x15.yaml
deleted file mode 100644
index 5f571616ef..0000000000
--- a/lkft-aosp-master-x15.yaml
+++ /dev/null
@@ -1,147 +0,0 @@
-- job:
- name: lkft-aosp-master-x15
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 60
- numToKeep: 60
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- parameters:
- - string:
- name: BUILD_CONFIG_FILENAME
- default: 'aosp-master-x15'
- - string:
- name: TOOLCHAIN_NAME
- default: 'gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf'
- - string:
- name: TOOLCHAIN_URL
- default: 'https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz'
- - string:
- name: CROSS_COMPILE
- default: 'gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-'
- - string:
- name: CTS_URL
- default: 'http://testdata.linaro.org/lkft/aosp-stable/android/android-cts/aosp-arm64-userdebug/32/master'
- - string:
- name: VTS_URL
- default: 'http://testdata.linaro.org/lkft/aosp-stable/aosp-master-throttled/6498268/test_suites_arm64'
- disabled: true
- node: docker-xenial-aosp
- display-name: 'DELETE ME'
- concurrent: true
- triggers:
- - timed : 'H 0 * * 1-5'
- wrappers:
- - timestamps
- - timeout:
- timeout: 900
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- - shell: |
- #!/bin/bash -ex
- sudo apt-get update
- sudo apt-get install -y --allow-change-held-packages make gcc-4.9-multilib bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools python-pip pxz libssl-dev
-
- wget --no-check-certificate https://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u162-b12-1_amd64.deb \
- https://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u162-b12-1_amd64.deb \
- https://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u162-b12-1_amd64.deb
-
- sudo dpkg -i --force-all *.deb
- java -version
-
- mkdir -p ${HOME}/bin
- curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
- chmod a+x ${HOME}/bin/*
-
- git config --global user.email "ci_notify@linaro.org"
- git config --global user.name "Linaro CI"
-
- - shell:
- !include-raw:
- - lkft/x15-aosp/lkft-aosp-master-x15.sh
- - inject:
- properties-file: publish_parameters
- - linaro-publish-token
- - shell:
- !include-raw:
- - android/linaro-publisher.sh
- - inject:
- properties-file: publish_parameters
- - shell: |
- # Install ruamel.yaml==0.16.13
- pip install --user --force-reinstall ruamel.yaml==0.16.13
- pip install --user --force-reinstall Jinja2
- export PUB_DEST=android/lkft/lkft-aosp-master-x15/${BUILD_NUMBER}
- export DOWNLOAD_URL=http://snapshots.linaro.org/${PUB_DEST}
- export REFERENCE_BUILD_URL=http://snapshots.linaro.org/${PUB_DEST}
- export TEST_METADATA_TOOLCHAIN=${TOOLCHAIN_NAME}
- export KERNEL_REPO=https://android.googlesource.com/kernel/omap
- export ANDROID_VERSION=aosp-master-$(date --iso-8601)
- export TEST_VTS_URL=${VTS_URL}
- export TEST_CTS_URL=${CTS_URL}
- export TEST_VTS_VERSION=$(echo $VTS_URL | awk -F"/" '{print $(NF-2) "#" $(NF-1)}')
- export TEST_CTS_VERSION=$(echo $CTS_URL | awk -F"/" '{print $(NF-1) "#" $(NF-2)}')
-
-
- TEST_DEVICE_TYPE=x15
- TEST_LAVA_SERVER=https://lkft.validation.linaro.org/RPC2/
- TEST_QA_SERVER="https://qa-reports.linaro.org"
- QA_SERVER_TEAM="android-lkft"
-
- rm -rf configs
- git clone --depth 1 http://git.linaro.org/ci/job/configs.git
-
- # update templates to use the new image names
- ANDROID_IMAGES="boot.img.xz vbmeta.img.xz super.img.xz userdata.img.xz recovery.img.xz"
-
- # submit jobs for x15 4.19 kernel build
- # reset the changes done before
- cd configs && git reset --hard && cd -
- export KERNEL_DESCRIBE=${KERNEL_DESCRIBE_X15_4_19}
- export KERNEL_COMMIT=${KERNEL_DESCRIBE_X15_4_19}
- export KERNEL_BRANCH="android-beagle-x15-4.19"
- QA_BUILD_VERSION=${KERNEL_VERSION_X15_4_19}-${KERNEL_DESCRIBE_X15_4_19}-${BUILD_NUMBER}
- TEST_QA_SERVER_PROJECT="4.19-master-x15"
-
- # update templates to use the new image names
- for f in ${ANDROID_IMAGES}; do
- sed -i "s|${f}|4.19-${f}|" configs/lkft/lava-job-definitions/common/devices/x15
- done
-
- python configs/openembedded-lkft/submit_for_testing.py \
- --device-type ${TEST_DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${TEST_LAVA_SERVER} \
- --qa-server ${TEST_QA_SERVER} \
- --qa-server-team ${QA_SERVER_TEAM} \
- --qa-server-project ${TEST_QA_SERVER_PROJECT} \
- --git-commit ${QA_BUILD_VERSION} \
- --testplan-path configs/lkft/lava-job-definitions/common \
- --test-plan template-boot.yaml template-vts-kernel.yaml template-cts.yaml \
- --quiet
-
- publishers:
- - archive:
- artifacts: '*.xml,*.json'
- latest-only: true
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - email:
- recipients: 'tom.gall@linaro.org yongqin.liu@linaro.org praneeth.bajjuri@linaro.org'
diff --git a/lkft-aosp-member-wrapper.yaml b/lkft-aosp-member-wrapper.yaml
index e8e1ded5dd..3a4e6ffc33 100644
--- a/lkft-aosp-member-wrapper.yaml
+++ b/lkft-aosp-member-wrapper.yaml
@@ -3,75 +3,118 @@
project-type: freestyle
defaults: global
logrotate:
- daysToKeep: 30
- numToKeep: 30
+ daysToKeep: 30
+ numToKeep: 30
properties:
- - authorization:
- anonymous:
- - job-discover
- android-internal:
- - job-read
- - job-build
- - job-cancel
- - job-extended-read
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- artifact-num-to-keep: 1
+ - authorization:
+ anonymous:
+ - job-discover
+ android-internal:
+ - job-read
+ - job-build
+ - job-cancel
+ - job-extended-read
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ artifact-num-to-keep: 1
parameters:
- - string:
- name: ANDROID_BUILD_CONFIG_REPO_URL
- default: ssh://git@dev-private-git.linaro.org/android-internal/android-build-configs.git
+ - string:
+ name: ANDROID_BUILD_CONFIG_REPO_URL
+ default: ssh://git@dev-private-git.linaro.org/android-internal/android-build-configs.git
disabled: false
- node: docker-bionic-aosp
+ node: docker-focal-aosp
display-name: 'Wrapper for the lkft-aosp-member build'
concurrent: true
wrappers:
- - timestamps
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - '768c1ba1-6052-4b97-a531-7e4fabda6979'
builders:
- shell: |
#!/bin/bash -ex
- ## find the build configs for the branch
- rm -fr android-build-configs-private
rm -fr params_*.txt test_*.txt
- if git clone -b lkft ${ANDROID_BUILD_CONFIG_REPO_URL} android-build-configs-private; then
- if [ -f android-build-configs-private/lkft-member-builds ]; then
- while read line; do
- android_version=$(echo $line|cut -d= -f1)
- build_configs=$(echo $line|cut -d= -f2|tr -d \")
- for build_config in ${build_configs}; do
- md5sum_val=$(echo "${android_version}-${build_config}"|md5sum|awk '{print $1}')
- f_params="params_${md5sum_val}.txt"
-
- cp -vf android-build-configs-private/${build_config} ${f_params}
- done
- done < android-build-configs-private/lkft-member-builds
- fi
- fi
-
- rm -fr params_lkft-master-x15
- echo "ANDROID_BUILD_CONFIG=lkft-master-x15" >>params_lkft-master-x15
-
- rm -fr params_lkft-android11-hikey960
- echo "ANDROID_BUILD_CONFIG=lkft-android11-hikey960" >>params_lkft-android11-hikey960
+ ## find the build configs for the branch
+ #rm -fr android-build-configs-private
+ #if git clone -b lkft ${ANDROID_BUILD_CONFIG_REPO_URL} android-build-configs-private; then
+ # if [ -f android-build-configs-private/lkft-member-builds ]; then
+ # while read line; do
+ # android_version=$(echo $line|cut -d= -f1)
+ # build_configs=$(echo $line|cut -d= -f2|tr -d \")
+ # for build_config in ${build_configs}; do
+ # md5sum_val=$(echo "${android_version}-${build_config}"|md5sum|awk '{print $1}')
+ # f_params="params_${md5sum_val}.txt"
+ # rm -fr ${f_params}
+ # echo "ANDROID_BUILD_CONFIG=${build_config}" >> "${f_params}"
+ # echo "ANDROID_BUILD_CONFIG_REPO_URL=${ANDROID_BUILD_CONFIG_REPO_URL}" >> "${f_params}"
+ # echo "ANDROID_BUILD_CONFIG_REPO_BRANCH=lkft" >> "${f_params}"
+ # done
+ # done < android-build-configs-private/lkft-member-builds
+ # fi
+ #fi
+ public_configs="lkft-aosp-main-db845c lkft-aosp-main-hikey960 lkft-aosp-main-linaro-hikey960 lkft-aosp-main-arm64 lkft-aosp-main-cts lkft-aosp-main-vts"
+ public_configs="${public_configs} lkft-aosp-android14-db845c"
+ public_configs="${public_configs} lkft-aosp-android13-db845c lkft-aosp-android13-hikey960"
+ public_configs="${public_configs} lkft-aosp-android12-hikey lkft-aosp-android12-hikey960 lkft-aosp-android12-db845c"
+ public_configs="${public_configs} lkft-aosp-android11-hikey960 lkft-aosp-android11-db845c lkft-aosp-android11-hikey"
+ public_configs="${public_configs} lkft-aosp-android11-cts lkft-aosp-android11-vts"
+ public_configs="${public_configs} lkft-aosp-android12-cts lkft-aosp-android12-vts"
+ public_configs="${public_configs} lkft-aosp-android13-cts lkft-aosp-android13-vts"
+ public_configs="${public_configs} lkft-aosp-android14-cts lkft-aosp-android14-vts"
+ for config in ${public_configs}; do
+ rm -fr params_${config}
+ echo "ANDROID_BUILD_CONFIG=${config}" >>params_${config}
+ done
- trigger-builds:
- - project: lkft-aosp-member
- property-file: params_facc36a5db28d6ae2bfa05ca4f8f0a21.txt
- - project: lkft-aosp-member
- property-file: params_6ff83c1a3c2ac4d7ad241feef98ff352.txt
- - project: lkft-aosp-member
- property-file: params_693674c3b02fc16e54f21b96ac5ab027.txt
- - project: lkft-aosp-member
- property-file: params_cec2e2b5fcc2caf4851015135ab9ec51.txt
- - project: lkft-aosp
- property-file: params_lkft-master-x15
- - project: lkft-aosp
- property-file: params_lkft-android11-hikey960
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android11-hikey960
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android11-db845c
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android11-hikey
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android11-cts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android11-vts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android12-hikey
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android12-hikey960
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android12-db845c
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android12-cts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android12-vts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android13-db845c
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android13-hikey960
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android13-cts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android13-vts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android14-db845c
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android14-cts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-android14-vts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-main-db845c
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-main-hikey960
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-main-linaro-hikey960
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-main-cts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-main-vts
+ - project: lkft-aosp
+ property-file: params_lkft-aosp-main-arm64
publishers:
- - email:
- recipients: 'yongqin.liu@linaro.org'
+ - email:
+ recipients: 'yongqin.liu@linaro.org sumit.semwal@linaro.org'
diff --git a/lkft-aosp-member.yaml b/lkft-aosp-member.yaml
index d889f43e23..a3bbb8cd1e 100644
--- a/lkft-aosp-member.yaml
+++ b/lkft-aosp-member.yaml
@@ -16,14 +16,23 @@
- job-extended-read
parameters:
- string:
+ name: ANDROID_BUILD_CONFIG_REPO_URL
+ default: ssh://git@dev-private-git.linaro.org/android-internal/android-build-configs.git
+ - string:
+ name: ANDROID_BUILD_CONFIG_REPO_BRANCH
+ default: lkft
+ - string:
+ name: ANDROID_BUILD_CONFIG
+ default: ''
+ - string:
name: MANIFEST_URL
- default: 'https://android.googlesource.com/platform/manifest'
+ default: ''
- string:
name: MANIFEST_BRANCH
- default: 'master'
+ default: ''
- string:
name: TARGET_PRODUCT
- default: 'hikey960'
+ default: ''
- string:
name: MAKE_TARGETS
default: ''
@@ -31,13 +40,13 @@
name: PUBLISH_FILES
default: ''
disabled: false
- node: docker-bionic-aosp
+ node: docker-focal-aosp
display-name: 'Jobs for pure private aosp builds'
concurrent: true
wrappers:
- timestamps
- build-name:
- name: '#${BUILD_NUMBER}-${TARGET_PRODUCT}'
+ name: '#${BUILD_NUMBER}-${ANDROID_BUILD_CONFIG}'
- timeout:
timeout: 900
- ssh-agent-credentials:
diff --git a/lkft-aosp.yaml b/lkft-aosp.yaml
index ff4a804a42..7caf2f7339 100644
--- a/lkft-aosp.yaml
+++ b/lkft-aosp.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
parameters:
@@ -18,13 +18,16 @@
name: ANDROID_BUILD_CONFIG
default: ''
- string:
+ name: KERNEL_BUILD_CONFIG
+ default: ''
+ - string:
name: MANIFEST_BRANCH
default: ''
- string:
name: TARGET_PRODUCT
default: ""
disabled: false
- node: docker-bionic-aosp
+ node: docker-focal-aosp
display-name: 'Jobs for pure aosp builds'
concurrent: true
wrappers:
@@ -33,24 +36,27 @@
name: '#${BUILD_NUMBER}${PROPFILE,file="wrappers_parameters",property="WRAPPER_BUILD_NAME"}'
- timeout:
timeout: 900
+ # needed to publish to snapshots
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell: |
#!/bin/bash -ex
- #change to use python3 by default
- if ! python --version|grep 3; then
- sudo rm -fv /usr/bin/python && sudo ln -s /usr/bin/python3 /usr/bin/python
- fi
sudo apt-get update
- sudo apt-get install -y --allow-change-held-packages make bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools python3-pip libssl-dev
-
- wget --no-check-certificate https://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u162-b12-1_amd64.deb \
- https://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u162-b12-1_amd64.deb \
- https://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u162-b12-1_amd64.deb
-
- sudo dpkg -i --force-all *.deb
+ # Here is for packages not listed by the source.android.com site below.
+ # But the following packages might not be really necessary,
+ # as the docker image for docker-focal-aosp labelled nodes is linaro/jenkins-amd64-ubuntu:focal
+ # which is defined here: https://git.linaro.org/infrastructure/ci-yadp-builder.git/tree/docker_templates_aosp_amd64.yml#n2
+ # And the packages listed here might be already defined there.
+ sudo apt-get install -y --allow-change-held-packages wget sudo python3 python-is-python3 openjdk-11-jdk-headless
java -version
+ ## https://source.android.com/docs/setup/start/requirements#hardware-requirements
+ sudo apt-get install -y --allow-change-held-packages git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
+
mkdir -p ${HOME}/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
chmod a+x ${HOME}/bin/*
@@ -75,6 +81,13 @@
- shell:
!include-raw:
- android/linaro-publisher.sh
+ - shell: |
+ #!/bin/bash -ex
+ BUILD_ROOT="${BUILD_ROOT:-/home/buildslave/srv/aosp-public}"
+
+ rm -fr "${BUILD_ROOT}/build/aosp-${BUILD_NUMBER}"
+ rm -fr "${BUILD_ROOT}/build/kernel-${BUILD_NUMBER}"
+ rm -fr "${BUILD_ROOT}/dist-${BUILD_NUMBER}"
publishers:
- archive:
artifacts: '*.xml,*.json'
@@ -86,4 +99,4 @@
- fingerprint:
files: 'build/fingerprints/*'
- email:
- recipients: 'yongqin.liu@linaro.org'
+ recipients: 'yongqin.liu@linaro.org sumit.semwal@linaro.org'
diff --git a/lkft-api-callbacks.yaml b/lkft-api-callbacks.yaml
deleted file mode 100644
index a3d8422d06..0000000000
--- a/lkft-api-callbacks.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-- job:
- name: lkft-api-callbacks
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: CALLER_JOB_NAME
- - string:
- name: CALLER_BUILD_NUMBER
- - string:
- name: KERNEL_BRANCH
- - string:
- name: QA_BUILD_VERSION
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - callbacks for lkft builds'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${KERNEL_BRANCH}-${QA_BUILD_VERSION}-${MAKE_KERNELVERSION}'
- - timeout:
- timeout: 10
- builders:
- - shell: |
- #!/bin/bash -ex
-
- # call api of android.linaro.org for lkft report check scheduling
- if [ -n "${KERNEL_BRANCH}" ] && \
- [ -n "${QA_BUILD_VERSION}" ] && \
- [ -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
- fi
diff --git a/lkft-db845c-5.4-rc.yaml b/lkft-db845c-5.4-rc.yaml
deleted file mode 100644
index 8e583887f5..0000000000
--- a/lkft-db845c-5.4-rc.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-- job:
- name: lkft-db845c-5.4-rc
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 360
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-db845c-aosp-master-5.4-gki-rc'
- - string:
- name: USE_KERNELVERSION_FOR_QA_BUILD_VERSION
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: KERNEL_BRANCH
- disabled: true
- node: docker-bionic-android-lkft
- display-name: 'LKFT - Dragonboard845c builds with kernel android12-5.4 + 5.4 rc changes'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="MAKE_KERNELVERSION"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] db845c 5.4 + 5.4 rc builds: ${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/lkft-generic-build.yaml b/lkft-generic-build.yaml
deleted file mode 100644
index b6d8b12684..0000000000
--- a/lkft-generic-build.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-- job:
- name: lkft-generic-build
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 450
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: ''
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- - string:
- name: BUILD_REFERENCE_IMAGE_GZ_URL
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: TEST_OTHER_PLANS_OVERRIDE
- default: ""
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'Generic CI Job for lkft builds'
- concurrent: true
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${KERNEL_DESCRIBE}-${KERNEL_BRANCH}-${ANDROID_BUILD_CONFIG}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey960 mainline gki + aosp master + QGSI: ${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/lkft-generic-mirror-build.yaml b/lkft-generic-mirror-build.yaml
deleted file mode 100644
index a2587aca5a..0000000000
--- a/lkft-generic-mirror-build.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-- job:
- name: lkft-generic-mirror-build
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: ''
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'Generic CI Job for lkft builds'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${KERNEL_DESCRIBE}-${KERNEL_BRANCH}-${ANDROID_BUILD_CONFIG}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] LKFT generic build for mirror kernels: ${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/lkft-generic-omap-build.yaml b/lkft-generic-omap-build.yaml
deleted file mode 100644
index a0f874a3da..0000000000
--- a/lkft-generic-omap-build.yaml
+++ /dev/null
@@ -1,96 +0,0 @@
-- job:
- name: lkft-generic-omap-build
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: ''
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- - string:
- name: BUILD_REFERENCE_IMAGE_GZ_URL
- - string:
- name: MAKE_KERNELVERSION
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'Generic CI Job for lkft omap builds'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${KERNEL_DESCRIBE}-${KERNEL_BRANCH}-${ANDROID_BUILD_CONFIG}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] LKFT generic build for omap kernels: ${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/lkft-gki-kernel.yaml b/lkft-gki-kernel.yaml
deleted file mode 100644
index 5b6825215e..0000000000
--- a/lkft-gki-kernel.yaml
+++ /dev/null
@@ -1,200 +0,0 @@
-- job:
- name: lkft-gki-kernel
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 500
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- - string:
- name: ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED
- default: ""
- - string:
- name: TEST_OTHER_PLANS_OVERRIDE
- default: ""
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - build android gki kernels'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="KERNEL_BRANCH"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell: |
- #!/bin/bash -ex
- env
-
- ###########################STEPS TO ADD NEW BRANCH######################
- ### 1. add variant of build_configs_${ANDROIDVERSION}_${KERVERMAJ}${KERVERMIN}
- ### 2. set build_configs in the case linesBefore
- ### 3. add enties for the trigger-builds
- ########################################################################
- # https://snapshots.linaro.org/android/lkft/lkft-gki-android-mainline/67/lkft-gki-android-5.4-Image.gz
- f_gki_image_gz_url=android/lkft/${JOB_NAME}/${BUILD_NUMBER}/${ANDROID_BUILD_CONFIG}-Image.gz
-
- 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_54="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"
-
- build_configs=""
- if [ -z "${ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED}" ]; then
- case "X${KERNEL_BRANCH}" in
- "Xandroid11-5.4")
- if [ "X${ANDROID_BUILD_CONFIG}" = "Xlkft-gki-android11-5.4-premerge" ]; then
- build_configs="${build_configs_11_54_premerge}"
- else
- build_configs="${build_configs_11_54}"
- fi
- ;;
- "Xandroid11-5.4-lts")
- build_configs="${build_configs_11_54_lts}"
- ;;
- "Xandroid12-5.4")
- build_configs="${build_configs_12_54}"
- ;;
- "Xandroid12-5.10")
- build_configs="${build_configs_12_510}"
- ;;
- "Xandroid13-5.10")
- build_configs="${build_configs_13_510}"
- ;;
- "Xandroid-mainline")
- build_configs="${build_configs_mainline}"
- ;;
- "X*")
- build_configs=""
- ;;
- esac
- else
- build_configs="${ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED}"
- fi
-
- rm -fr params_*.txt test_*.txt
- for build_config in ${build_configs}; do
- f_params="params_${KERNEL_BRANCH}-${build_config}.txt"
-
- cat << __EOF__ > ${f_params}
- ANDROID_BUILD_CONFIG=${build_config}
- KERNEL_DESCRIBE=${KERNEL_DESCRIBE}
- KERNEL_BRANCH=${KERNEL_BRANCH}
- SRCREV_kernel=${SRCREV_kernel}
- BUILD_REFERENCE_IMAGE_GZ_URL=http://snapshots.linaro.org/${f_gki_image_gz_url}
- MAKE_KERNELVERSION=${MAKE_KERNELVERSION}
- TEST_OTHER_PLANS_OVERRIDE=${TEST_OTHER_PLANS_OVERRIDE}
- __EOF__
-
- cat ${f_params}
- done
-
- - trigger-builds:
- - project: lkft-generic-build
- property-file: params_android11-5.4-lts-lkft-db845c-android11-android11-5.4-lts-gki.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-lts-lkft-hikey960-android11-android11-5.4-lts-gki.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-lkft-db845c-android11-android11-5.4-gki.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-lkft-hikey960-android11-android11-5.4-gki.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-lkft-db845c-android11-android11-5.4-gki-premerge.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-lkft-hikey960-android11-android11-5.4-gki-premerge.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-lkft-db845c-aosp-master-android11-5.4-gki.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-lkft-hikey960-aosp-master-android11-5.4-gki.txt
- - project: lkft-member-wrapper
- 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-generic-build
- property-file: params_android11-5.4-weekly-lkft-db845c-android11-android11-5.4-gki.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-weekly-lkft-hikey960-android11-android11-5.4-gki.txt
- - project: lkft-generic-build
- property-file: params_android12-5.10-lkft-db845c-aosp-master-android12-5.10-gki.txt
- - project: lkft-generic-build
- 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-generic-build
- property-file: params_android13-5.10-lkft-db845c-aosp-master-android13-5.10-gki.txt
- - project: lkft-generic-build
- property-file: params_android13-5.10-lkft-hikey960-aosp-master-android13-5.10-gki.txt
- - project: lkft-generic-build
- property-file: params_android-mainline-lkft-db845c-aosp-master-mainline-gki.txt
- - project: lkft-generic-build
- property-file: params_android-mainline-lkft-hikey960-aosp-master-mainline-gki.txt
- - project: lkft-generic-build
- property-file: params_android-mainline-lkft-hikey-aosp-master-mainline-gki.txt
- - project: lkft-generic-build
- property-file: params_android11-5.4-presubmit-lkft-db845c-android11-android11-5.4-gki.txt
- - project: lkft-member-wrapper
- property-file: params_android12-5.4-presubmit-lkft-member-wrapper.txt
- - project: lkft-member-wrapper
- property-file: params_android12-5.10-presubmit-lkft-member-wrapper.txt
- - project: lkft-member-wrapper
- 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
-
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] android gki + aosp master ${KERNEL_BRANCH} ${SRCREV_kernel} ${BUILD_STATUS}'
- body: |
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
- Git branch: ${KERNEL_BRANCH}
- 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/lkft-hikey-10.0-4.14-q.yaml b/lkft-hikey-10.0-4.14-q.yaml
deleted file mode 100644
index 73cbd4823c..0000000000
--- a/lkft-hikey-10.0-4.14-q.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-10.0-4.14-q
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-10.0-gsi-4.14 lkft-hikey960-android-10.0-gsi-4.14'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Stable 4.14-q (Android 10.0 + Q GSI)'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.19-q: ${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/lkft-hikey-10.0-4.9-q.yaml b/lkft-hikey-10.0-4.9-q.yaml
deleted file mode 100644
index 0b3a28e38f..0000000000
--- a/lkft-hikey-10.0-4.9-q.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-10.0-4.9-q
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-10.0-gsi-4.9 lkft-hikey960-android-10.0-gsi-4.9'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Stable 4.9-q (Android 10.0 + Q GSI)'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.19-q: ${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/lkft-hikey-4.14-rc.yaml b/lkft-hikey-4.14-rc.yaml
deleted file mode 100644
index 0ba8dd1a0b..0000000000
--- a/lkft-hikey-4.14-rc.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-- job:
- name: lkft-hikey-4.14-rc
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 360
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-10.0-gsi-4.14-q-rc lkft-hikey960-android-10.0-gsi-4.14-q-rc'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: USE_KERNELVERSION_FOR_QA_BUILD_VERSION
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: KERNEL_BRANCH
- disabled: true
- node: docker-bionic-android-lkft
- display-name: 'LKFT - HiKey builds with kernel 4.14 + 4.14 rc changes'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="MAKE_KERNELVERSION"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey 4.14 + 4.14 rc builds: ${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/lkft-hikey-4.19-rc.yaml b/lkft-hikey-4.19-rc.yaml
deleted file mode 100644
index c75c92e84e..0000000000
--- a/lkft-hikey-4.19-rc.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-- job:
- name: lkft-hikey-4.19-rc
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 360
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-10.0-gsi-4.19-q-rc lkft-hikey960-android-10.0-gsi-4.19-q-rc'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: USE_KERNELVERSION_FOR_QA_BUILD_VERSION
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: KERNEL_BRANCH
- disabled: true
- node: docker-bionic-android-lkft
- display-name: 'LKFT - HiKey builds with kernel 4.19 + 4.19 rc changes'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="MAKE_KERNELVERSION"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey 4.19 + 4.19 rc builds: ${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/lkft-hikey-4.4-o.yaml b/lkft-hikey-4.4-o.yaml
deleted file mode 100644
index 8f44057965..0000000000
--- a/lkft-hikey-4.4-o.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-4.4-o
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-8.1-4.4-o lkft-hikey-android-9.0-4.4-o lkft-hikey-android-10.0-gsi-4.4-o'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - HiKey builds with kernel 4.4-o'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey 4.4-o builds: ${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/lkft-hikey-4.4-p.yaml b/lkft-hikey-4.4-p.yaml
deleted file mode 100644
index b74947d6b2..0000000000
--- a/lkft-hikey-4.4-p.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-4.4-p
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-9.0-4.4-p lkft-hikey-android-10.0-gsi-4.4-p'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - HiKey/HiKey960 builds with kernel 4.4-p'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.4-p builds: ${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/lkft-hikey-4.4-rc-p.yaml b/lkft-hikey-4.4-rc-p.yaml
deleted file mode 100644
index 8e8b87b527..0000000000
--- a/lkft-hikey-4.4-rc-p.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-- job:
- name: lkft-hikey-4.4-rc-p
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 360
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-9.0-4.4-p-rc lkft-hikey-android-10.0-gsi-4.4-p-rc'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: USE_KERNELVERSION_FOR_QA_BUILD_VERSION
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: KERNEL_BRANCH
- disabled: true
- node: docker-bionic-android-lkft
- display-name: 'LKFT - HiKey builds with kernel 4.4-p + 4.4 rc changes'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="MAKE_KERNELVERSION"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey 4.4-p + 4.4 rc builds: ${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/lkft-hikey-4.9-o.yaml b/lkft-hikey-4.9-o.yaml
deleted file mode 100644
index add6877a91..0000000000
--- a/lkft-hikey-4.9-o.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-4.9-o
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-8.1-4.9-o lkft-hikey-android-9.0-4.9-o lkft-hikey-android-10.0-gsi-4.9-o lkft-hikey960-android-10.0-gsi-4.9-o'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Stable 4.9-o (Android 10.0 + Q GSI)'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.19-o: ${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/lkft-hikey-4.9-rc.yaml b/lkft-hikey-4.9-rc.yaml
deleted file mode 100644
index 068e32239a..0000000000
--- a/lkft-hikey-4.9-rc.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-- job:
- name: lkft-hikey-4.9-rc
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 360
- num-to-keep: 30
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-10.0-gsi-4.9-p-rc lkft-hikey960-android-10.0-gsi-4.9-p-rc'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: USE_KERNELVERSION_FOR_QA_BUILD_VERSION
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: KERNEL_BRANCH
- disabled: true
- node: docker-bionic-android-lkft
- display-name: 'LKFT - HiKey builds with kernel 4.9 + 4.9 rc changes'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="MAKE_KERNELVERSION"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey 4.9 + 4.9 rc builds: ${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/lkft-hikey-android-10.0-gsi-4.19.yaml b/lkft-hikey-android-10.0-gsi-4.19.yaml
deleted file mode 100644
index eb161d40b2..0000000000
--- a/lkft-hikey-android-10.0-gsi-4.19.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-android-10.0-gsi-4.19
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-10.0-gsi-4.19 lkft-hikey960-android-10.0-gsi-4.19'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Stable 4.19-q (Android 10.0 + QGSI)'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.19-q + Android 10.0 + QGSi: ${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/lkft-hikey-android-8.1-4.14.yaml b/lkft-hikey-android-8.1-4.14.yaml
deleted file mode 100644
index f6fd6281ab..0000000000
--- a/lkft-hikey-android-8.1-4.14.yaml
+++ /dev/null
@@ -1,139 +0,0 @@
-- job:
- name: lkft-hikey-android-8.1-4.14
- 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
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: ANDROID_VERSION
- default: 'android-8.1.0_r29'
- - string:
- name: REFERENCE_BUILD_URL
- default: 'http://testdata.linaro.org/lkft/aosp-stable/android-8.1.0_r29/'
- - string:
- name: KERNEL_BRANCH
- default: 'android-hikey-linaro-4.14'
- - string:
- name: KERNEL_REPO
- default: 'https://android.googlesource.com/kernel/hikey-linaro'
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'android-hikey-linaro-4.14-android-8.1'
- - string:
- name: VTS_URL
- default: 'http://testdata.linaro.org/vts/oreo-mr1-vts-release-07112018/'
- - string:
- name: CTS_URL
- default: 'http://testdata.linaro.org/cts/android-cts-8.1_r6/'
- - string:
- name: TOOLCHAIN
- default: 'clang-r353983c'
- - string:
- name: CONFIG_FRAGMENTS_PATH
- default: 'android-4.14'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Stable 4.14 (Android 8.1)'
- scm:
- - git:
- url: ${KERNEL_REPO}
- refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
- branches:
- - origin/${KERNEL_BRANCH}
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell: |
- #!/bin/bash
-
- git config --global user.email "ci_notify@linaro.org"
- git config --global user.name "Linaro CI"
- ## Revert "hikey/hikey960_defconfig: Remove FBDEV_EMULATION support for drm_hwcomposer"
- ## https://android-review.linaro.org/c/kernel/hikey-linaro/+/20431
- git fetch "http://android-review.linaro.org/kernel/hikey-linaro" refs/changes/31/20431/1 && git cherry-pick FETCH_HEAD
-
- - shell:
- !include-raw:
- - lkft/hikey-aosp/builders.sh
- - linaro-publish-token
- - shell: |
- #!/bin/bash
-
- wget -q https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/android-lcr/hikey/build-info/aosp-master-template.txt -O out/BUILD-INFO.txt
-
- # Publish
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --build-info out/BUILD-INFO.txt \
- --link-latest \
- out/ android/lkft/${JOB_NAME}/${BUILD_NUMBER}
-
- PUB_DEST=android/lkft/${JOB_NAME}/${BUILD_NUMBER}
- - shell:
- !include-raw: lkft/hikey-aosp/submit_for_testing.sh
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey: ${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/lkft-hikey-android-8.1-4.4.yaml b/lkft-hikey-android-8.1-4.4.yaml
deleted file mode 100644
index 40be7c31e4..0000000000
--- a/lkft-hikey-android-8.1-4.4.yaml
+++ /dev/null
@@ -1,130 +0,0 @@
-- job:
- name: lkft-hikey-android-8.1-4.4
- 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
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: ANDROID_VERSION
- default: 'android-8.1.0_r29'
- - string:
- name: REFERENCE_BUILD_URL
- default: 'http://testdata.linaro.org/lkft/aosp-stable/android-8.1.0_r29/'
- - string:
- name: KERNEL_BRANCH
- default: 'android-hikey-linaro-4.4'
- - string:
- name: KERNEL_REPO
- default: 'https://android.googlesource.com/kernel/hikey-linaro'
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'android-hikey-linaro-4.4-android-8.1'
- - string:
- name: VTS_URL
- default: 'http://testdata.linaro.org/vts/oreo-mr1-vts-release-07112018/'
- - string:
- name: CTS_URL
- default: 'http://testdata.linaro.org/cts/android-cts-8.1_r6/'
- - string:
- name: TOOLCHAIN
- default: 'clang-r353983c'
- - string:
- name: CONFIG_FRAGMENTS_PATH
- default: 'o-mr1/android-4.4'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- disabled: ture
- node: docker-bionic-android-lkft
- display-name: 'TOBEDELETED: LKFT - AOSP Stable 4.4 (Android 8.1)'
- scm:
- - git:
- url: ${KERNEL_REPO}
- refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
- branches:
- - origin/${KERNEL_BRANCH}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw:
- - lkft/hikey-aosp/builders.sh
- - linaro-publish-token
- - shell: |
- #!/bin/bash
-
- wget -q https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/android-lcr/hikey/build-info/aosp-master-template.txt -O out/BUILD-INFO.txt
-
- # Publish
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --build-info out/BUILD-INFO.txt \
- --link-latest \
- out/ android/lkft/${JOB_NAME}/${BUILD_NUMBER}
-
- PUB_DEST=android/lkft/${JOB_NAME}/${BUILD_NUMBER}
- - shell:
- !include-raw: lkft/hikey-aosp/submit_for_testing.sh
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey: ${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/lkft-hikey-aosp-4.14-premerge-ci.yaml b/lkft-hikey-aosp-4.14-premerge-ci.yaml
deleted file mode 100644
index 2c171593f8..0000000000
--- a/lkft-hikey-aosp-4.14-premerge-ci.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-aosp-4.14-premerge-ci
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-9.0-4.14-lts lkft-hikey960-android-9.0-4.14-lts lkft-hikey-android-10.0-gsi-4.14-p lkft-hikey960-android-10.0-gsi-4.14-p'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP 4.14 premerge CI'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.14 Premerge: ${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/lkft-hikey-aosp-4.9-premerge-ci.yaml b/lkft-hikey-aosp-4.9-premerge-ci.yaml
deleted file mode 100644
index bf4e1cbf7c..0000000000
--- a/lkft-hikey-aosp-4.9-premerge-ci.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: lkft-hikey-aosp-4.9-premerge-ci
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-android-9.0-4.9-lts lkft-hikey960-android-9.0-4.9-lts lkft-hikey-android-10.0-gsi-4.9-p lkft-hikey960-android-10.0-gsi-4.9-p'
- - string:
- name: TEST_QA_SERVER_ENVIRONMENT_ENABLED
- default: true
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP 4.9 premerge CI'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.9 Premerge: ${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/lkft-hikey-aosp-master-4.14.yaml b/lkft-hikey-aosp-master-4.14.yaml
deleted file mode 100644
index d4d0593f3d..0000000000
--- a/lkft-hikey-aosp-master-4.14.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-- job:
- name: lkft-hikey-aosp-master-4.14
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-aosp-master-4.14 lkft-hikey960-aosp-master-4.14'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Master + 4.14 kernel for hikey/hikey960'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.14 + aosp master: ${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/lkft-hikey-aosp-master-4.19.yaml b/lkft-hikey-aosp-master-4.19.yaml
deleted file mode 100644
index aa6bcd02bb..0000000000
--- a/lkft-hikey-aosp-master-4.19.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-- job:
- name: lkft-hikey-aosp-master-4.19
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-aosp-master-4.19 lkft-hikey960-aosp-master-4.19'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Master + 4.19 kernel for hikey/hikey960'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey/HiKey960 4.19 + aosp master: ${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/lkft-hikey-aosp-master-5.4.yaml b/lkft-hikey-aosp-master-5.4.yaml
deleted file mode 100644
index ad8e391fd0..0000000000
--- a/lkft-hikey-aosp-master-5.4.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-- job:
- name: lkft-hikey-aosp-master-5.4
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: 'lkft-hikey-aosp-master-5.4-gki'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - AOSP Master + android12-5.4 gki for hikey'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
- subject: '[CI] HiKey android12-5.4 gki + aosp master: ${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/lkft-hikey-merge-mirrors.yaml b/lkft-hikey-merge-mirrors.yaml
deleted file mode 100644
index 819dda70e5..0000000000
--- a/lkft-hikey-merge-mirrors.yaml
+++ /dev/null
@@ -1,138 +0,0 @@
-- job:
- name: lkft-hikey-merge-mirrors
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: KERNEL_BRANCH
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - merge changes from mirror branches for hikey-linaro kernels'
- scm:
- - git:
- remotes:
- - linaro:
- url: ssh://ci-bot@android-review.linaro.org:29418/kernel/hikey-linaro.git
- credentials-id: 'CI_BOT_SSH_KEY'
- - aosp:
- url: https://android.googlesource.com/kernel/common
- branches:
- - linaro/android-hikey-linaro-4.14-lkft
- git-config-name: 'Linaro CI'
- git-config-email: 'ci-bot@linaro.org'
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="KERNEL_BRANCH"}'
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - 'CI_BOT_SSH_KEY'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- ssh-keyscan -p 29418 android-review.linaro.org >> ~/.ssh/known_hosts
-
- git config --global user.name "Linaro CI"
- git config --global user.email "ci-bot@linaro.org"
-
- case "X${KERNEL_BRANCH}" in
- "Xmirror-android-4.14-stable"|"Xandroid-4.14-stable")
- target_branch="android-hikey-linaro-4.14-stable-lkft"
- ;;
- "Xmirror-android-4.19-stable"|"Xandroid-4.19-stable")
- target_branch="android-hikey-linaro-4.19-stable-lkft"
- ;;
- "Xandroid-4.4-o")
- target_branch="android-4.4-o-hikey"
- ;;
- "Xandroid-4.4-p")
- target_branch="android-4.4-p-hikey"
- ;;
- "Xandroid-4.9-o")
- target_branch="android-4.9-o-hikey"
- ;;
- "Xandroid-4.9-p")
- target_branch="android-4.9-p-hikey"
- ;;
- "Xandroid-4.9-q")
- target_branch="android-4.9-q-hikey"
- ;;
- "Xandroid-4.14-p")
- target_branch="android-4.14-p-hikey"
- ;;
- "Xandroid-4.14-q")
- target_branch="android-4.14-q-hikey"
- ;;
- "Xandroid-4.19-q")
- target_branch="android-4.19-q-hikey"
- ;;
- "X*")
- target_branch=""
- ;;
- esac
-
- if [ -n "${target_branch}" ]; then
- git checkout -B ${target_branch} linaro/${target_branch}
- git merge --log --no-edit aosp/${KERNEL_BRANCH}
- # push to the remote branch
- git push linaro HEAD:${target_branch}
-
- # Apply tag
- tag=${KERNEL_DESCRIBE}-$(date +"%Y%m%d")-${BUILD_NUMBER}
- git tag ${tag}
-
- # Push tag
- git push linaro ${tag}
- fi
-
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'yongqin.liu@linaro.org'
- subject: '[CI] HiKey/HiKey960 merge chagnes from mirror builds: ${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/lkft-linux-clang.yaml b/lkft-linux-clang.yaml
deleted file mode 100644
index 6f947f06ef..0000000000
--- a/lkft-linux-clang.yaml
+++ /dev/null
@@ -1,144 +0,0 @@
-- job:
- name: lkft-linux-clang
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 300
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: KERNEL_GITREF
- default: 'torvalds/master'
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: false
- node: master
- display-name: 'LKFT Linux Kernel built with Clang'
- concurrent: true
- axes:
- - axis:
- type: user-defined
- name: ARCH
- values:
- - 'arm64'
- - 'x86_64'
- - axis:
- type: user-defined
- name: CLANG_TOOLCHAIN
- values:
- - 'clang-r328903'
- - 'clang-master'
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - timestamps
- - timeout:
- timeout: 180
- builders:
- - shell: |
- #!/bin/bash -ex
-
- sudo apt-get update
- sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y libssl-dev
-
- # Keep an updated mirror of Linux in permanent storage
- cd $HOME/srv
- if [ ! -d linux.git ]; then
- mkdir linux.git
- cd linux.git
- git init --bare
- git remote add torvalds https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- git remote add linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- cd ..
- fi
-
- cd linux.git
- git remote update
-
- # Download Clang and GCC toolchains to cross-compile
- cd ${WORKSPACE}
- mkdir ${CLANG_TOOLCHAIN}
- if [ "${CLANG_TOOLCHAIN}" = "clang-master" ]; then
- wget -q http://snapshots.linaro.org/android/android-clang-toolchain/latest/clang-master.tar.xz
- tar Jxf clang-master.tar.xz
- else
- wget -q "https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/master/${CLANG_TOOLCHAIN}.tar.gz"
- tar zxf "${CLANG_TOOLCHAIN}.tar.gz" -C "${CLANG_TOOLCHAIN}/"
- fi
- git clone --depth=1 https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
-
-
- export PATH=${PWD}/${CLANG_TOOLCHAIN}/bin:${PWD}/aarch64-linux-android-4.9/bin:${PATH}
-
- # Set up Linux Git repositories
- # "torvalds" is Linus' kernel, mainline
- # "linux-stable" is GKH repository for stable kernels
- cd ${WORKSPACE}
- git clone \
- -o torvalds \
- --reference ${HOME}/srv/linux.git \
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git \
- linux
- cd linux
- git remote add linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- git fetch linux-stable
-
- # If triggered with a GIT_COMMIT, check it out;
- # else, check out the Git reference.
- if [ -n "${GIT_COMMIT}" ]; then
- GIT_REFERENCE=${GIT_COMMIT}
- else
- GIT_REFERENCE=${KERNEL_GITREF}
- fi
- git checkout ${GIT_REFERENCE}
-
- case "${ARCH}" in
- arm64)
- CLANG_TRIPLE=aarch64-linux-gnu-
- CROSS_COMPILE=aarch64-linux-android-
- ;;
- x86_64)
- CLANG_TRIPLE=
- CROSS_COMPILE=
- ;;
- *)
- echo "Unsupported ARCH: ${ARCH}"
- exit 1
- ;;
- esac
- export ARCH
- export CLANG_TRIPLE
- export CROSS_COMPILE
-
- make CC=clang HOSTCC=clang defconfig
- make CC=clang HOSTCC=clang -j$(nproc)
- publishers:
- - email-ext:
- recipients: 'daniel.diaz@linaro.org, dan.rue@linaro.org'
- matrix-trigger: only-configurations
- subject: '[CI] Linux/Clang failed: ${KERNEL_GITREF}: ${KERNEL_DESCRIBE}'
- body: |
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Build log: ${PROJECT_URL}${BUILD_NUMBER}/console
- Git repo/branch: ${KERNEL_GITREF}
- Git commit: ${GIT_COMMIT}
- Clang toolchain: ${CLANG_TOOLCHAIN}
- Kernel version (from make): ${MAKE_KERNELVERSION}
- Kernel version (from Git): ${KERNEL_DESCRIBE}
-
- Errors:
- ${BUILD_LOG_REGEX, regex=".*: error: .*", linesBefore=0, linesAfter=2, showTruncatedLines=false}
diff --git a/lkft-member-build.yaml b/lkft-member-build.yaml
deleted file mode 100644
index a2528435b9..0000000000
--- a/lkft-member-build.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-- job:
- name: lkft-member-build
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- android-internal:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 450
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: ANDROID_BUILD_CONFIG_REPO_URL
- default: ssh://git@dev-private-git.linaro.org/android-internal/android-build-configs.git
- - string:
- name: SNAPSHOT_SITE_BUILD_INFO_URL
- default: "https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/lkft/common/build-info/member.txt"
- - string:
- name: SNAPAHOT_SITE_ROOT
- default: "android/lkft/protected"
- - string:
- name: DEFAULT_TEST_LAVA_JOB_PRIORITY
- default: 60
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: ''
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- - string:
- name: BUILD_REFERENCE_IMAGE_GZ_URL
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: TEST_OTHER_PLANS_OVERRIDE
- default: ""
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'Generic CI Job for lkft builds'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${KERNEL_DESCRIBE}-${KERNEL_BRANCH}-${ANDROID_BUILD_CONFIG}'
- - timeout:
- timeout: 500
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - text:
- credential-id: AP_SSID_OEM
- variable: AP_SSID
- - text:
- credential-id: AP_KEY
- variable: AP_KEY
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell:
- !include-raw: lkft/common/builders-v2.sh
- - linaro-publish-token
- - shell:
- !include-raw: lkft/common/publisher-v2.sh
- - shell:
- !include-raw: lkft/lava-job-definitions/submit_for_testing-v2.sh
- publishers:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - FAILURE
- build-steps:
- - shell:
- !include-raw: lkft/common/postbuildscript-v2.sh
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'yongqin.liu@linaro.org tom.gall@linaro.org sumit.semwal@linaro.org'
- subject: 'LKFT Member builds ${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/lkft-member-wrapper.yaml b/lkft-member-wrapper.yaml
deleted file mode 100644
index 385860b9bb..0000000000
--- a/lkft-member-wrapper.yaml
+++ /dev/null
@@ -1,110 +0,0 @@
-- job:
- name: lkft-member-wrapper
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- android-internal:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 450
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: ANDROID_BUILD_CONFIG_REPO_URL
- default: ssh://git@dev-private-git.linaro.org/android-internal/android-build-configs.git
- - string:
- name: BUILD_DIR
- default: lkft
- - string:
- name: ANDROID_BUILD_CONFIG
- default: ''
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_BRANCH
- - string:
- name: SRCREV_kernel
- - string:
- name: BUILD_REFERENCE_IMAGE_GZ_URL
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: TEST_OTHER_PLANS_OVERRIDE
- default: ""
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'Generic CI Job Wrapper for lkft member builds'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${KERNEL_DESCRIBE}-${KERNEL_BRANCH}'
- - ssh-agent-credentials:
- users:
- - '768c1ba1-6052-4b97-a531-7e4fabda6979'
- builders:
- - shell: |
- #!/bin/bash -ex
-
- ## find the build configs for the branch
- rm -fr android-build-configs-private
- git clone -b lkft "${ANDROID_BUILD_CONFIG_REPO_URL}" android-build-configs-private
- build_configs=$(grep "${KERNEL_BRANCH}=" android-build-configs-private/lkft/lkft-member-builds|cut -d= -f2|tr -d \")
-
- rm -fr params_*.txt test_*.txt
- for build_config in ${build_configs}; do
- md5sum_val="$(echo ${KERNEL_BRANCH}-${build_config}|md5sum|awk '{print $1}')"
- f_params="params_${md5sum_val}.txt"
-
- cat << __EOF__ > "${f_params}"
- ANDROID_BUILD_CONFIG=${build_config}
- KERNEL_DESCRIBE=${KERNEL_DESCRIBE}
- KERNEL_BRANCH=${KERNEL_BRANCH}
- SRCREV_kernel=${SRCREV_kernel}
- BUILD_REFERENCE_IMAGE_GZ_URL=${BUILD_REFERENCE_IMAGE_GZ_URL}
- MAKE_KERNELVERSION=${MAKE_KERNELVERSION}
- TEST_OTHER_PLANS_OVERRIDE=${TEST_OTHER_PLANS_OVERRIDE}
- __EOF__
-
- done
-
- - trigger-builds:
- - project: lkft-member-build
- property-file: params_927501fb333e6715f573c7f085107f30.txt
- - project: lkft-member-build
- property-file: params_b257960da2650d3caaf4f4dd979b081f.txt
- - project: lkft-member-build
- property-file: params_c78cc805cbb2d7a43d80ae5be3936a46.txt
- - project: lkft-member-build
- property-file: params_6c2f6d66b6b0e4e4a2a2cf42b639566a.txt
- - project: lkft-member-build
- property-file: params_2ad26db752fc7161505f7c46848a7f05.txt
- - project: lkft-member-build
- property-file: params_8ffd4c85051e1337236f199329f8c7a5.txt
- - project: lkft-member-build
- property-file: params_b162684e117edff09035d88a812eabb6.txt
- - project: lkft-member-build
- property-file: params_aac20f524eb3766e861dd92a2f90b2b0.txt
- - project: lkft-member-build
- property-file: params_18b311065f598c54b3adb88d809106f3.txt
- - project: lkft-member-build
- property-file: params_bffb5c33bf6f506687580e07ccb29eb2.txt
- - project: lkft-member-build
- property-file: params_856f0b50dbbe8b8ee001d902a267b40f.txt
- - project: lkft-member-build
- property-file: params_e584aefdf81f254ecc755231065f97e3.txt
- - project: lkft-member-build
- property-file: params_9f41cb6dcb64a5b49cbf9e81199e06a3.txt
- - project: lkft-member-build
- property-file: params_5654d7b4ecf574ec36dc173dfdbede02.txt
- - project: lkft-member-build
- property-file: params_a3648a685034f8bc048e327935a18b71.txt
- publishers:
- - email:
- recipients: 'yongqin.liu@linaro.org'
diff --git a/lkft-notify-developer.yaml b/lkft-notify-developer.yaml
index a7c84d805b..aeeb3c7eb5 100644
--- a/lkft-notify-developer.yaml
+++ b/lkft-notify-developer.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/lkft-notify-kselftest-next.yaml b/lkft-notify-kselftest-next.yaml
index 05f4b6774d..7040b2fd33 100644
--- a/lkft-notify-kselftest-next.yaml
+++ b/lkft-notify-kselftest-next.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/lkft-omap-merge-mirrors.yaml b/lkft-omap-merge-mirrors.yaml
deleted file mode 100644
index 2f2376c2d4..0000000000
--- a/lkft-omap-merge-mirrors.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-- job:
- name: lkft-omap-merge-mirrors
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- artifact-num-to-keep: 1
- parameters:
- - string:
- name: KERNEL_BRANCH
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- disabled: false
- node: docker-bionic-android-lkft
- display-name: 'LKFT - merge LTS changes for omap kernel'
- scm:
- - git:
- remotes:
- - linaro:
- url: ssh://ci-bot@android-review.linaro.org:29418/kernel/omap.git
- refspec: +refs/heads/android-beagle-x15-4.14-stable-lkft:refs/remotes/linaro/android-beagle-x15-4.14-stable-lkft +refs/heads/android-beagle-x15-4.14-lkft:refs/remotes/linaro/android-beagle-x15-4.14-lkft +refs/heads/android-beagle-x15-4.19-stable-lkft:refs/remotes/linaro/android-beagle-x15-4.19-stable-lkft
- credentials-id: 'CI_BOT_SSH_KEY'
- - aosp:
- url: https://android.googlesource.com/kernel/common
- refspec: +refs/heads/android-4.14-stable:refs/remotes/aosp/android-4.14-stable +refs/heads/android-4.19-stable:refs/remotes/aosp/android-4.19-stable
- branches:
- - linaro/android-beagle-x15-4.14-lkft
- git-config-name: 'Linaro CI'
- git-config-email: 'ci-bot@linaro.org'
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="KERNEL_DESCRIBE"}-${ENV,var="KERNEL_BRANCH"}'
- - timeout:
- timeout: 500
- - ssh-agent-credentials:
- users:
- - 'CI_BOT_SSH_KEY'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- ssh-keyscan -p 29418 android-review.linaro.org >> ~/.ssh/known_hosts
-
- git config --global user.name "Linaro CI"
- git config --global user.email "ci-bot@linaro.org"
-
- case "X${KERNEL_BRANCH}" in
- "Xandroid-4.14-stable")
- target_branch="android-beagle-x15-4.14-stable-lkft"
- ;;
- "Xandroid-4.19-stable")
- target_branch="android-beagle-x15-4.19-stable-lkft"
- ;;
- "X*")
- target_branch=""
- ;;
- esac
-
- if [ -n "${target_branch}" ]; then
- git checkout -B ${target_branch} linaro/${target_branch}
- git merge --log --no-edit aosp/${KERNEL_BRANCH}
- # push to the remote branch
- git push linaro HEAD:${target_branch}
-
- # Apply tag
- tag=${KERNEL_DESCRIBE}-$(date +"%Y%m%d")-${BUILD_NUMBER}
- git tag ${tag}
-
- # Push tag
- git push linaro ${tag}
- fi
-
- publishers:
- - logparser:
- parse-rules: '/var/jenkins_home/userContent/android.parse'
- unstable-on-warning: false
- fail-on-error: false
- - fingerprint:
- files: 'build/fingerprints/*'
- - groovy-postbuild:
- script:
- !include-raw: openembedded-lkft/postbuild.groovy
- - email:
- recipients: 'yongqin.liu@linaro.org'
- subject: '[CI] Merge LTS fixes for X15: ${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/lkft-staging-lava.yaml b/lkft-staging-lava.yaml
index 173ff10152..e452486623 100644
--- a/lkft-staging-lava.yaml
+++ b/lkft-staging-lava.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lkft-staging-no-skiplist.yaml b/lkft-staging-no-skiplist.yaml
index 5897824779..190f58ae84 100644
--- a/lkft-staging-no-skiplist.yaml
+++ b/lkft-staging-no-skiplist.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/lkft/common/build-aosp-member.sh b/lkft/common/build-aosp-member.sh
index cc85a8d218..0c1df9d444 100755
--- a/lkft/common/build-aosp-member.sh
+++ b/lkft/common/build-aosp-member.sh
@@ -44,7 +44,18 @@ 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}"
+ opt_cu=""
+ if [ -n "${ANDROID_BUILD_CONFIG_REPO_URL}" ]; then
+ opt_branch=""
+ if [ -n "${ANDROID_BUILD_CONFIG_REPO_BRANCH}" ]; then
+ opt_branch="-b ${ANDROID_BUILD_CONFIG_REPO_BRANCH}"
+ fi
+ # shellcheck disable=SC2086
+ git clone ${opt_branch} ${ANDROID_BUILD_CONFIG_REPO_URL} android-build-configs-private
+ opt_cu="-cu ${ANDROID_ROOT}/android-build-configs-private/${ANDROID_BUILD_CONFIG}"
+ fi
+ # shellcheck disable=SC2086
+ bash -ex ./linaro-build.sh -c "${ANDROID_BUILD_CONFIG}" ${opt_cu}
# ${ANDROID_BUILD_CONFIG} will be repo synced after build
# shellcheck source=/dev/null
source "android-build-configs/${ANDROID_BUILD_CONFIG}"
@@ -56,7 +67,7 @@ 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
@@ -77,6 +88,12 @@ function build_android(){
for f in ${PUBLISH_FILES}; do
if [ "X${f}X" = "Xandroid-cts.zipX" ]; then
f_src_path="${ANDROID_ROOT}/out/host/linux-x86/cts/android-cts.zip"
+ if [ "X${SPLIT_CTS}X" = "XtrueX" ]; then
+ split -b 4GB -d --additional-suffix=.split "${f_src_path}" "${f_src_path}."
+ # shellcheck disable=SC2086
+ mv -vf ${f_src_path}.*.split "${DIR_PUB_SRC}/"
+ continue
+ fi
elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
f_src_path="${ANDROID_ROOT}/out/host/linux-x86/vts/android-vts.zip"
else
@@ -89,7 +106,9 @@ function build_android(){
mv -vf "${f_src_path}" "${DIR_PUB_SRC}/${f}"
fi
- if [ "Xramdisk.img" = "X${f}" ] || [ "Xramdisk-debug.img" = "X${f}" ] || [ "Xandroid-cts.zip" = "X${f}" ] || [ "Xandroid-vts.zip" = "X${f}" ]; then
+ if [ "Xramdisk.img" = "X${f}" ] || [ "Xramdisk-debug.img" = "X${f}" ] \
+ || [ "Xandroid-cts.zip" = "X${f}" ] \
+ || [ "Xandroid-vts.zip" = "X${f}" ]; then
# files no need to compress
continue
else
@@ -117,28 +136,31 @@ function build_android(){
# clean workspace to save space
function clean_workspace(){
+ # Delete sources after build to save space
rm -fr "${ANDROID_ROOT}"
}
# export parameters for publish/job submission steps
function export_parameters(){
- if [ "X${f}X" = "Xandroid-cts.zipX" ]; then
+ # Publish parameters
+ # The pinned-manifest was copied into the publist directory as pinned-manifest.xml already
+ cp -a "${DIR_PUB_SRC}/pinned-manifest.xml" "${WORKSPACE}/"
+
+ if [ -n "${PUB_DEST_PATH}" ]; then
+ PUB_DEST_TARGET="${PUB_DEST_PATH}"
+ elif [ -n "${ANDROID_BUILD_CONFIG}" ]; then
+ PUB_DEST_TARGET="${ANDROID_BUILD_CONFIG}"
+ elif echo "${PUBLISH_FILES}" |grep android-cts.zip; then
PUB_DEST_TARGET="android-cts"
- elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
+ elif echo "${PUBLISH_FILES}" |grep android-vts.zip; then
PUB_DEST_TARGET="android-vts"
- elif [ "X${TARGET_PRODUCT}" = "Xbeagle_x15" ]; then
- # beagle_x15 could not used as part of the url for snapshot site
- PUB_DEST_TARGET=x15
else
- PUB_DEST_TARGET=${TARGET_PRODUCT}
+ PUB_DEST_TARGET="${TARGET_PRODUCT}"
fi
- # Publish parameters
- # 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"
+ echo "PUB_EXTRA_INC=^[^/]+\.(txt|img|xz|dtb|dtbo|zip|split)$|MLO|vmlinux|System.map" >> "${WORKSPACE}/publish_parameters"
}
function main(){
@@ -146,8 +168,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 70461c678b..61be333f46 100755
--- a/lkft/common/build-aosp.sh
+++ b/lkft/common/build-aosp.sh
@@ -3,62 +3,53 @@
export PATH=${HOME}/bin:${PATH}
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
-#BUILD_CONFIG_FILENAME=aosp-master-x15
-#KERNEL_REPO_URL=/data/android/aosp-mirror/kernel/omap.git
-#OPT_MIRROR="-m /data/android/aosp-mirror/platform/manifest.git"
-#BUILD_ROOT="/data/android/aosp/pure-master/test-x15-lkft"
-#CLEAN_UP=false
-#IN_JENKINS=false
-
BUILD_ROOT="${BUILD_ROOT:-/home/buildslave/srv/aosp-public}"
OPT_MIRROR="${OPT_MIRROR:-}"
CLEAN_UP=${CLEAN_UP:-true}
-ANDROID_ROOT="${BUILD_ROOT}/build/aosp"
-DIR_PUB_SRC="${BUILD_ROOT}/dist"
+ANDROID_ROOT="${BUILD_ROOT}/build/aosp-${BUILD_NUMBER}"
+KERNEL_ROOT="${BUILD_ROOT}/build/kernel-${BUILD_NUMBER}"
+DIR_PUB_SRC="${BUILD_ROOT}/dist-${BUILD_NUMBER}"
AOSP_REPO_BACKUP="${BUILD_ROOT}/aosp-repo-backup"
ANDROID_IMAGE_FILES="boot.img dtb.img dtbo.img super.img vendor.img product.img system.img system_ext.img vbmeta.img userdata.img ramdisk.img ramdisk-debug.img recovery.img cache.img"
ANDROID_IMAGE_FILES="${ANDROID_IMAGE_FILES} vendor_boot-debug.img vendor_boot.img"
-# functions for clean the environemnt before repo sync and build
function prepare_environment(){
if [ ! -d "${BUILD_ROOT}" ]; then
sudo mkdir -p "${BUILD_ROOT}"
sudo chmod 777 "${BUILD_ROOT}"
fi
cd "${BUILD_ROOT}"
+}
- # clean manifest files under ${ANDROID_ROOT}
- rm -rf "${ANDROID_ROOT}/.repo/manifests" "${ANDROID_ROOT}/.repo/manifests.git" "${ANDROID_ROOT}/.repo/manifests.xml" "${ANDROID_ROOT}/.repo/local_manifests" "${ANDROID_ROOT}/build-tools" "${ANDROID_ROOT}/jenkins-tools"
-
- # clean the build directory as it is used accross multiple builds
- # by removing all files except the .repo directory
- if ${CLEAN_UP}; then
- rm -fr "${AOSP_REPO_BACKUP}"
- if [ -d "${ANDROID_ROOT}/.repo" ]; then
- mv -f "${ANDROID_ROOT}/.repo" "${AOSP_REPO_BACKUP}"
- fi
- rm -fr "${ANDROID_ROOT}" && mkdir -p "${ANDROID_ROOT}"
- if [ -d "${AOSP_REPO_BACKUP}" ]; then
- mv -f "${AOSP_REPO_BACKUP}" "${ANDROID_ROOT}/.repo"
- fi
+###############################################################
+# Build the kernel images that would be used for the userspace
+# All operations following should be done under ${KERNEL_ROOT}
+###############################################################
+function build_kernel(){
+ if [ -z "${KERNEL_BUILD_CONFIG}" ]; then
+ return
fi
+ sudo rm -fr "${KERNEL_ROOT}" && mkdir -p "${KERNEL_ROOT}" && cd "${KERNEL_ROOT}"
+ wget https://android-git.linaro.org/android-build-configs.git/plain/lkft/linaro-lkft.sh?h=lkft -O linaro-lkft.sh
+ chmod +x linaro-lkft.sh
+ BUILD_KERNEL_WITH_UPSTREAM_BUILD=true ./linaro-lkft.sh -c "${KERNEL_BUILD_CONFIG}" -obk
+ cp -vf out/"${KERNEL_BUILD_CONFIG}"/pinned-manifest/*-pinned.xml "${DIR_PUB_SRC}/kernel-pinned-manifest.xml"
+ cp -vf "android-build-configs/lkft/${KERNEL_BUILD_CONFIG}" "${DIR_PUB_SRC}/${KERNEL_BUILD_CONFIG}"
}
-
###############################################################
# Build Android userspace images
# All operations following should be done under ${ANDROID_ROOT}
###############################################################
function build_android(){
- mkdir -p "${ANDROID_ROOT}" && cd "${ANDROID_ROOT}"
- rm -fr "${DIR_PUB_SRC}" && mkdir -p "${DIR_PUB_SRC}"
+ sudo rm -fr "${ANDROID_ROOT}" && mkdir -p "${ANDROID_ROOT}" && cd "${ANDROID_ROOT}"
rm -fr "${ANDROID_ROOT}/out/pinned-manifest"
rm -fr android-build-configs linaro-build.sh
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,11 +61,17 @@ 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 echo "${TARGET_PRODUCT}" | grep "trunk_staging"; then
+ # with the main branch, there are release information, like aosp_arm64-trunk_staging
+ TARGET_PRODUCT=$(echo "${TARGET_PRODUCT}"|cut -d- -f1)
fi
if [ "X${TARGET_PRODUCT}X" = "Xaosp_arm64X" ]; then
- # for cts and vts
+ # for cts, vts, gsi
DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/generic_arm64"
+ elif [ "X${TARGET_PRODUCT}X" = "Xbeagle_x15_autoX" ]; then
+ DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/beagle_x15"
else
DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/${TARGET_PRODUCT}"
fi
@@ -91,8 +88,16 @@ function build_android(){
for f in ${PUBLISH_FILES}; do
if [ "X${f}X" = "Xandroid-cts.zipX" ]; then
f_src_path="${ANDROID_ROOT}/out/host/linux-x86/cts/android-cts.zip"
+ if [ "X${SPLIT_CTS}X" = "XtrueX" ]; then
+ split -b 4GB -d --additional-suffix=.split "${f_src_path}" "${f_src_path}."
+ # shellcheck disable=SC2086
+ mv -vf ${f_src_path}.*.split "${DIR_PUB_SRC}/"
+ continue
+ fi
elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
f_src_path="${ANDROID_ROOT}/out/host/linux-x86/vts/android-vts.zip"
+ elif [ "X${f}X" = "Xuserdebug_plat_sepolicy.cilX" ]; then
+ f_src_path="${DIR_PUB_SRC_PRODUCT}/debug_ramdisk/${f}"
else
f_src_path="${DIR_PUB_SRC_PRODUCT}/${f}"
fi
@@ -103,7 +108,10 @@ function build_android(){
mv -vf "${f_src_path}" "${DIR_PUB_SRC}/${f}"
fi
- if [ "Xramdisk.img" = "X${f}" ] || [ "Xramdisk-debug.img" = "X${f}" ] || [ "Xandroid-cts.zip" = "X${f}" ] || [ "Xandroid-vts.zip" = "X${f}" ]; then
+ if [ "Xramdisk.img" = "X${f}" ] || [ "Xramdisk-debug.img" = "X${f}" ] \
+ || [ "Xuserdebug_plat_sepolicy.cil" = "X${f}" ] \
+ || [ "Xandroid-cts.zip" = "X${f}" ] \
+ || [ "Xandroid-vts.zip" = "X${f}" ]; then
# files no need to compress
continue
else
@@ -131,42 +139,62 @@ 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/
+ sudo rm -fr "${ANDROID_ROOT}"
+ sudo rm -fr "${KERNEL_ROOT}"
}
# export parameters for publish/job submission steps
function export_parameters(){
- if [ "X${f}X" = "Xandroid-cts.zipX" ]; then
- PUB_DEST_TARGET="android-cts"
- elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
- PUB_DEST_TARGET="android-vts"
- elif [ "X${TARGET_PRODUCT}" = "Xbeagle_x15" ]; then
- # beagle_x15 could not used as part of the url for snapshot site
- PUB_DEST_TARGET=x15
- else
- PUB_DEST_TARGET=${TARGET_PRODUCT}
- fi
-
# Publish parameters
# 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"
+
+ if [ -n "${PUB_DEST_PATH}" ]; then
+ PUB_DEST="${PUB_DEST_PATH}/${BUILD_NUMBER}"
+ else
+ if [ -n "${ANDROID_BUILD_CONFIG}" ]; then
+ PUB_DEST_TARGET="${ANDROID_BUILD_CONFIG}"
+ elif [ "X${f}X" = "Xandroid-cts.zipX" ]; then
+ PUB_DEST_TARGET="android-cts"
+ elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
+ PUB_DEST_TARGET="android-vts"
+ elif [ "X${TARGET_PRODUCT}" = "Xbeagle_x15" ]; then
+ # beagle_x15 could not used as part of the url for snapshot site
+ PUB_DEST_TARGET=x15
+ else
+ PUB_DEST_TARGET=${TARGET_PRODUCT}
+ fi
+ PUB_DEST="android/lkft/${PUB_DEST_TARGET}/${BUILD_NUMBER}"
+ fi
+
+ echo "PUB_DEST=${PUB_DEST}" > "${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"
+ echo "PUB_EXTRA_INC=^[^/]+\.(txt|img|xz|dtb|dtbo|zip|split|cil)$|MLO|vmlinux|System.map" >> "${WORKSPACE}/publish_parameters"
}
function main(){
+ # print for debug purpose
+ df -h
+ ls -l1d ${BUILD_ROOT}/build/* || true
+ ls -l1d ${BUILD_ROOT}/* || true
+ ################
prepare_environment
+ rm -fr "${DIR_PUB_SRC}" && mkdir -p "${DIR_PUB_SRC}"
+ if [ -n "${KERNEL_BUILD_CONFIG}" ]; then
+ build_kernel
+ export LOCAL_KERNEL_HOME=${KERNEL_ROOT}/out/${KERNEL_BUILD_CONFIG}/vendor-kernel/dist
+ kernel_ver=$(grep GKI_KERNEL_MAKEVERSION "${KERNEL_ROOT}/out/${KERNEL_BUILD_CONFIG}/misc_info.txt" | cut -d= -f2)
+ if [ -z "${kernel_ver}" ]; then
+ kernel_ver=$(grep VENDOR_KERNEL_MAKEVERSION "${KERNEL_ROOT}/out/${KERNEL_BUILD_CONFIG}/misc_info.txt" | cut -d= -f2 )
+ fi
+ export TARGET_KERNEL_USE=${kernel_ver}
+ fi
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 76651f7f80..376907e738 100755
--- a/lkft/common/builders-v2.sh
+++ b/lkft/common/builders-v2.sh
@@ -40,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/common/publisher-v2.sh b/lkft/common/publisher-v2.sh
index 20b0667421..147afe6a9f 100644
--- a/lkft/common/publisher-v2.sh
+++ b/lkft/common/publisher-v2.sh
@@ -13,7 +13,7 @@ if [ -n "${SNAPSHOT_SITE_BUILD_INFO_URL}" ]; then
fi
wget ${url_build_info} -O ${JOB_OUT_PUBLISH}/BUILD-INFO.txt
-PUBLISH_COMMON_FILES="pinned-manifest.xml defconfig gki_defconfig upstream_gki_defconfig SHA256SUMS.txt"
+PUBLISH_COMMON_FILES="pinned-manifest.xml defconfig gki_defconfig upstream_gki_defconfig SHA256SUMS.txt misc_info.txt"
for build_config in ${ANDROID_BUILD_CONFIG}; do
# the config file should be in the directory of android-build-configs/lkft
# or copied to there by the linaro-lkft.sh build
@@ -21,7 +21,13 @@ for build_config in ${ANDROID_BUILD_CONFIG}; do
for f in ${PUBLISH_COMMON_FILES} ${PUBLISH_FILES}; do
if [ -f out/${build_config}/${f} ]; then
- mv -v out/${build_config}/${f} ${JOB_OUT_PUBLISH}/${build_config}-${f}
+ if [ "X${f}" = "Xmisc_info.txt" ]; then
+ # the name of misc_info.txt is used by the submit_for_testing-v2.sh
+ # so we can not move it, instead copy it to the workspace directory
+ cp -v out/${build_config}/${f} ${JOB_OUT_PUBLISH}/${build_config}-${f}
+ else
+ mv -v out/${build_config}/${f} ${JOB_OUT_PUBLISH}/${build_config}-${f}
+ fi
fi
done
done
diff --git a/lkft/lava-job-definitions/common/devices/dragonboard-845c b/lkft/lava-job-definitions/common/devices/dragonboard-845c
index 1f391a4bce..2c42f0d3ee 100644
--- a/lkft/lava-job-definitions/common/devices/dragonboard-845c
+++ b/lkft/lava-job-definitions/common/devices/dragonboard-845c
@@ -15,7 +15,7 @@ tags:
connection: lxc
images:
"partition:0":
- url: "https://images.validation.linaro.org/snapshots.linaro.org/96boards/dragonboard845c/linaro/rescue/69/dragonboard-845c-bootloader-ufs-aosp-69/gpt_both0.bin"
+ url: "https://images.validation.linaro.org/snapshots.linaro.org/96boards/dragonboard845c/linaro/rescue/90/dragonboard-845c-bootloader-ufs-aosp-90/gpt_both0.bin"
boot:
url: {{DOWNLOAD_URL}}/boot.img.xz
compression: xz
@@ -53,6 +53,8 @@ tags:
minutes: 15
method: fastboot
commands:
+ - format:ext4 metadata
+ - reboot bootloader
- oem select-display-panel hdmi
- reboot bootloader
- oem select-display-panel hdmi
diff --git a/lkft/lava-job-definitions/common/devices/hikey960 b/lkft/lava-job-definitions/common/devices/hikey960
index 23dfa4f4f9..8f983873b5 100644
--- a/lkft/lava-job-definitions/common/devices/hikey960
+++ b/lkft/lava-job-definitions/common/devices/hikey960
@@ -1,6 +1,10 @@
{% extends "template-lkft.yaml" %}
{% block device_type %}hi960-hikey{% endblock %}
+{% block device_tags %}
+tags:
+- old-firmware
+{% endblock device_tags %}
{% block secrets %}
{{ super() }}
@@ -54,6 +58,9 @@
timeout:
minutes: 15
method: fastboot
+ commands:
+ - format:ext4 cache
+ - reboot
{% endblock boot_target %}
{% block test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v7a.yaml b/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v7a.yaml
index daeb4e9e81..0ab69f3168 100644
--- a/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v7a.yaml
+++ b/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v7a.yaml
@@ -5,7 +5,7 @@
{% block job_gobal_timeout %}
timeouts:
job:
- minutes: 500
+ minutes: 930
action:
minutes: 15
connection:
@@ -23,7 +23,7 @@ timeouts:
- test:
namespace: tlxc
timeout:
- minutes: 480
+ minutes: 900
definitions:
- repository: https://git.linaro.org/qa/test-definitions.git
from: git
diff --git a/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v8a.yaml b/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v8a.yaml
index 8b750867c5..19068b46a7 100644
--- a/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v8a.yaml
+++ b/lkft/lava-job-definitions/common/template-cts-CtsDeqpTestCases-v8a.yaml
@@ -5,7 +5,7 @@
{% block job_gobal_timeout %}
timeouts:
job:
- minutes: 500
+ minutes: 930
action:
minutes: 15
connection:
@@ -23,7 +23,7 @@ timeouts:
- test:
namespace: tlxc
timeout:
- minutes: 480
+ minutes: 900
definitions:
- repository: https://git.linaro.org/qa/test-definitions.git
from: git
diff --git a/lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v7a.yaml b/lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v7a.yaml
new file mode 100644
index 0000000000..b5988e6fc7
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v7a.yaml
@@ -0,0 +1,37 @@
+{% extends device_type %}
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-CtsScopedStorageDeviceOnlyTest-v7a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 260
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts CtsScopedStorageDeviceOnlyTest"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 240
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: "cts --abi armeabi-v7a -m CtsScopedStorageDeviceOnlyTest --disable-reboot"
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v8a.yaml b/lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v8a.yaml
new file mode 100644
index 0000000000..78c79cea31
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-CtsScopedStorageDeviceOnlyTest-v8a.yaml
@@ -0,0 +1,37 @@
+{% extends device_type %}
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-CtsScopedStorageDeviceOnlyTest-v8a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 260
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts CtsScopedStorageDeviceOnlyTest"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 240
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: "cts --abi arm64-v8a -m CtsScopedStorageDeviceOnlyTest --disable-reboot"
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-CtsWindowManagerDeviceTestCases.yaml b/lkft/lava-job-definitions/common/template-cts-CtsWindowManagerDeviceTestCases.yaml
new file mode 100644
index 0000000000..3f85d421ed
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-CtsWindowManagerDeviceTestCases.yaml
@@ -0,0 +1,37 @@
+{% extends device_type %}
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-CtsWindowManagerDeviceTestCases{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 260
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts CtsWindowManagerDeviceTestCases"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 240
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: "cts -m CtsWindowManagerDeviceTestCases --disable-reboot"
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-excluded-v7a.yaml b/lkft/lava-job-definitions/common/template-cts-excluded-v7a.yaml
new file mode 100644
index 0000000000..1629840b8e
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-excluded-v7a.yaml
@@ -0,0 +1,63 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-excluded-v7a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 630
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 600
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi armeabi-v7a
+ --include-filter CtsKeystoreTestCases
+ --include-filter CtsWindowManagerDeviceTestCases
+ --include-filter CtsDevicePolicyManagerTestCases
+ --include-filter CtsIdentityTestCases
+ --include-filter CtsJobSchedulerTestCases
+ --include-filter CtsIncidentHostTestCases
+ --include-filter CtsIncidentHostTestCases[instant]
+ --include-filter CtsStatsdHostTestCases[instant]
+ --include-filter CtsStatsdHostTestCases
+ --include-filter CtsPrintTestCases
+ --include-filter CtsPrintTestCases[instant]
+ --include-filter CtsFileSystemTestCases
+ --include-filter CtsFileSystemTestCases[instant]
+ --include-filter CtsUsageStatsTestCases
+ --include-filter CtsTrustedVoiceHostTestCases
+ --include-filter CtsPerfettoTestCases
+ --include-filter CtsShortcutHostTestCases
+ --include-filter CtsNativeHardwareTestCases
+ --include-filter CtsNativeMidiTestCases
+ --include-filter CtsAutoFillServiceTestCases[instant]
+ --include-filter CtsAutoFillServiceTestCases
+ --include-filter CtsBackupHostTestCases
+ --include-filter CtsBackupTestCases
+ --include-filter CtsSecurityBulletinHostTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-excluded-v8a.yaml b/lkft/lava-job-definitions/common/template-cts-excluded-v8a.yaml
new file mode 100644
index 0000000000..6292dd7c2a
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-excluded-v8a.yaml
@@ -0,0 +1,63 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-excluded-v8a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 630
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 600
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi arm64-v8a
+ --include-filter CtsKeystoreTestCases
+ --include-filter CtsWindowManagerDeviceTestCases
+ --include-filter CtsDevicePolicyManagerTestCases
+ --include-filter CtsIdentityTestCases
+ --include-filter CtsJobSchedulerTestCases
+ --include-filter CtsIncidentHostTestCases
+ --include-filter CtsIncidentHostTestCases[instant]
+ --include-filter CtsStatsdHostTestCases[instant]
+ --include-filter CtsStatsdHostTestCases
+ --include-filter CtsPrintTestCases
+ --include-filter CtsPrintTestCases[instant]
+ --include-filter CtsFileSystemTestCases
+ --include-filter CtsFileSystemTestCases[instant]
+ --include-filter CtsUsageStatsTestCases
+ --include-filter CtsTrustedVoiceHostTestCases
+ --include-filter CtsPerfettoTestCases
+ --include-filter CtsShortcutHostTestCases
+ --include-filter CtsNativeHardwareTestCases
+ --include-filter CtsNativeMidiTestCases
+ --include-filter CtsAutoFillServiceTestCases[instant]
+ --include-filter CtsAutoFillServiceTestCases
+ --include-filter CtsBackupHostTestCases
+ --include-filter CtsBackupTestCases
+ --include-filter CtsSecurityBulletinHostTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-camera.yaml b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-camera.yaml
new file mode 100644
index 0000000000..2c0e170995
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-camera.yaml
@@ -0,0 +1,41 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-lkft-powersave-camera{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 360
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 360
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ SET_GOVERNOR_POWERSAVE: "true"
+ TEST_PARAMS: cts
+ --include-filter CtsCameraTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-libcore.yaml b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-libcore.yaml
new file mode 100644
index 0000000000..51dcf14ff0
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-libcore.yaml
@@ -0,0 +1,41 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-lkft-powersave-libcore{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 360
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 360
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ SET_GOVERNOR_POWERSAVE: "true"
+ TEST_PARAMS: cts
+ --include-filter CtsLibcoreTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-no-libcore-camera-webkit.yaml b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-no-libcore-camera-webkit.yaml
new file mode 100644
index 0000000000..0b9a0cc1e6
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-no-libcore-camera-webkit.yaml
@@ -0,0 +1,55 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-lkft{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 360
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 360
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ SET_GOVERNOR_POWERSAVE: "true"
+ TEST_PARAMS: cts
+ --include-filter CtsAslrMallocTestCases
+ --include-filter CtsBionicTestCases
+ --include-filter CtsBluetoothTestCases
+ --include-filter CtsDisplayTestCases
+ --include-filter CtsDramTestCases
+ --include-filter CtsDrmTestCases
+ --include-filter CtsGraphicsTestCases
+ --include-filter CtsHardwareTestCases
+ --include-filter CtsJankDeviceTestCases
+ --include-filter CtsJniTestCases
+ --include-filter CtsLibcoreLegacy22TestCases
+ --include-filter CtsOsTestCases
+ --include-filter CtsSystemUiTestCases
+ --include-filter CtsSystemUiRenderingTestCases
+ --include-filter CtsUsbTests
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-webkit.yaml b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-webkit.yaml
new file mode 100644
index 0000000000..d5525ed261
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-lkft-x15-powersave-webkit.yaml
@@ -0,0 +1,41 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-lkft-powersave-webkit{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 360
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 360
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ SET_GOVERNOR_POWERSAVE: "true"
+ TEST_PARAMS: cts
+ --include-filter CtsWebkitTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-part1-v7a.yaml b/lkft/lava-job-definitions/common/template-cts-part1-v7a.yaml
new file mode 100644
index 0000000000..4ca9eb6de7
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-part1-v7a.yaml
@@ -0,0 +1,54 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-part1-v7a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 500
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 480
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi armeabi-v7a
+ --include-filter CtsContentTestCases
+ --include-filter CtsAppTestCases
+ --include-filter CtsAppTestCases[instant]
+ --include-filter CtsKeystorePerformanceTestCases
+ --include-filter CtsOsTestCases
+ --include-filter CtsDynamicMimeHostTestCases
+ --include-filter CtsInputMethodTestCases
+ --include-filter CtsInputMethodTestCases[instant]
+ --include-filter CtsJdwpTestCases[instant]
+ --include-filter CtsJdwpTestCases
+ --include-filter CtsNNAPITestCases
+ --include-filter CtsHostsideNetworkTests
+ --include-filter CtsHostsideNetworkTests[instant]
+ --include-filter CtsIcu4cTestCases
+ --include-filter CtsOsTestCases[instant]
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-part1-v8a.yaml b/lkft/lava-job-definitions/common/template-cts-part1-v8a.yaml
new file mode 100644
index 0000000000..a4409e8e7c
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-part1-v8a.yaml
@@ -0,0 +1,54 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-part1-v8a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 500
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 480
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi arm64-v8a
+ --include-filter CtsContentTestCases
+ --include-filter CtsAppTestCases
+ --include-filter CtsAppTestCases[instant]
+ --include-filter CtsKeystorePerformanceTestCases
+ --include-filter CtsOsTestCases
+ --include-filter CtsDynamicMimeHostTestCases
+ --include-filter CtsInputMethodTestCases
+ --include-filter CtsInputMethodTestCases[instant]
+ --include-filter CtsJdwpTestCases[instant]
+ --include-filter CtsJdwpTestCases
+ --include-filter CtsNNAPITestCases
+ --include-filter CtsHostsideNetworkTests
+ --include-filter CtsHostsideNetworkTests[instant]
+ --include-filter CtsIcu4cTestCases
+ --include-filter CtsOsTestCases[instant]
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-part2-v7a.yaml b/lkft/lava-job-definitions/common/template-cts-part2-v7a.yaml
new file mode 100644
index 0000000000..8523114224
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-part2-v7a.yaml
@@ -0,0 +1,51 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-part2-v7a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 500
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 480
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi armeabi-v7a
+ --include-filter CtsVideoTestCases
+ --include-filter CtsWidgetTestCases[instant]
+ --include-filter CtsThemeHostTestCases
+ --include-filter CtsViewTestCases
+ --include-filter vm-tests-tf
+ --include-filter CtsWidgetTestCases
+ --include-filter CtsTelephonyTestCases
+ --include-filter CtsStatsdAtomHostTestCases[instant]
+ --include-filter CtsStatsdAtomHostTestCases
+ --include-filter CtsSystemUiTestCases[instant]
+ --include-filter CtsSystemUiTestCases
+ --include-filter CtsWifiTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-part2-v8a.yaml b/lkft/lava-job-definitions/common/template-cts-part2-v8a.yaml
new file mode 100644
index 0000000000..e9465b9b9f
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-part2-v8a.yaml
@@ -0,0 +1,51 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-part2-v8a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 500
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 480
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi arm64-v8a
+ --include-filter CtsVideoTestCases
+ --include-filter CtsWidgetTestCases[instant]
+ --include-filter CtsThemeHostTestCases
+ --include-filter CtsViewTestCases
+ --include-filter vm-tests-tf
+ --include-filter CtsWidgetTestCases
+ --include-filter CtsTelephonyTestCases
+ --include-filter CtsStatsdAtomHostTestCases[instant]
+ --include-filter CtsStatsdAtomHostTestCases
+ --include-filter CtsSystemUiTestCases[instant]
+ --include-filter CtsSystemUiTestCases
+ --include-filter CtsWifiTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-part3-v7a.yaml b/lkft/lava-job-definitions/common/template-cts-part3-v7a.yaml
new file mode 100644
index 0000000000..854b83fe2c
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-part3-v7a.yaml
@@ -0,0 +1,65 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-part3-v7a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 500
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 480
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi armeabi-v7a
+ --include-filter CtsMediaDrmTestCases[instant]
+ --include-filter CtsMediaDrmTestCases
+ --include-filter CtsMediaBitstreamsTestCases
+ --include-filter CtsInstallHostTestCases
+ --include-filter CtsContactsProviderTestCases
+ --include-filter CtsNetTestCases
+ --include-filter CtsSecurityHostTestCases
+ --include-filter CtsStagedInstallHostTestCases
+ --include-filter CtsPermission3TestCases
+ --include-filter CtsPdfTestCases
+ --include-filter CtsPdfTestCases[instant]
+ --include-filter CtsBlobStoreTestCases
+ --include-filter CtsSensorTestCases[instant]
+ --include-filter CtsSensorTestCases
+ --include-filter CtsExtractNativeLibsHostTestCases
+ --include-filter CtsMediaProviderTranscodeTests
+ --include-filter CtsWebkitTestCases
+ --include-filter CtsTextTestCases
+ --include-filter CtsPermissionTestCases
+ --include-filter CtsTextTestCases[instant]
+ --include-filter CtsBugreportTestCases
+ --include-filter CtsCameraTestCases
+ --include-filter CtsCameraTestCases[instant]
+ --include-filter CtsAppExitTestCases[instant]
+ --include-filter CtsLibcoreFileIOTestCases
+ --include-filter CtsSimpleperfTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-part3-v8a.yaml b/lkft/lava-job-definitions/common/template-cts-part3-v8a.yaml
new file mode 100644
index 0000000000..a8b32445f7
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-cts-part3-v8a.yaml
@@ -0,0 +1,65 @@
+{% extends device_type %}
+
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-cts-part3-v8a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 500
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ cts-url: "{{TEST_CTS_URL}}/android-cts.zip"
+ cts-manifest: "{{TEST_CTS_URL}}/pinned-manifest.xml"
+ cts-version: "{{TEST_CTS_VERSION}}"
+ cts-plan: "cts-lkft"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 480
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ TEST_PARAMS: cts --abi arm64-v8a
+ --include-filter CtsMediaDrmTestCases[instant]
+ --include-filter CtsMediaDrmTestCases
+ --include-filter CtsMediaBitstreamsTestCases
+ --include-filter CtsInstallHostTestCases
+ --include-filter CtsContactsProviderTestCases
+ --include-filter CtsNetTestCases
+ --include-filter CtsSecurityHostTestCases
+ --include-filter CtsStagedInstallHostTestCases
+ --include-filter CtsPermission3TestCases
+ --include-filter CtsPdfTestCases
+ --include-filter CtsPdfTestCases[instant]
+ --include-filter CtsBlobStoreTestCases
+ --include-filter CtsSensorTestCases[instant]
+ --include-filter CtsSensorTestCases
+ --include-filter CtsExtractNativeLibsHostTestCases
+ --include-filter CtsMediaProviderTranscodeTests
+ --include-filter CtsWebkitTestCases
+ --include-filter CtsTextTestCases
+ --include-filter CtsPermissionTestCases
+ --include-filter CtsTextTestCases[instant]
+ --include-filter CtsBugreportTestCases
+ --include-filter CtsCameraTestCases
+ --include-filter CtsCameraTestCases[instant]
+ --include-filter CtsAppExitTestCases[instant]
+ --include-filter CtsLibcoreFileIOTestCases
+ --include-filter CtsSimpleperfTestCases
+ --disable-reboot
+ TEST_URL: "{{TEST_CTS_URL}}/android-cts.zip"
+ TEST_PATH: "android-cts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ name: "cts-lkft"
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-cts-v7a.yaml b/lkft/lava-job-definitions/common/template-cts-v7a.yaml
index 413aa1ab95..538525397d 100644
--- a/lkft/lava-job-definitions/common/template-cts-v7a.yaml
+++ b/lkft/lava-job-definitions/common/template-cts-v7a.yaml
@@ -5,7 +5,7 @@
{% block job_gobal_timeout %}
timeouts:
job:
- minutes: 1230
+ minutes: 930
action:
minutes: 15
connection:
@@ -23,13 +23,67 @@ timeouts:
- test:
namespace: tlxc
timeout:
- minutes: 1200
+ minutes: 900
definitions:
- repository: https://git.linaro.org/qa/test-definitions.git
from: git
path: automated/android/noninteractive-tradefed/tradefed.yaml
params:
TEST_PARAMS: cts --abi armeabi-v7a
+ --exclude-filter CtsMediaDrmTestCases[instant]
+ --exclude-filter CtsMediaDrmTestCases
+ --exclude-filter CtsMediaBitstreamsTestCases
+ --exclude-filter CtsInstallHostTestCases
+ --exclude-filter CtsContactsProviderTestCases
+ --exclude-filter CtsNetTestCases
+ --exclude-filter CtsSecurityHostTestCases
+ --exclude-filter CtsStagedInstallHostTestCases
+ --exclude-filter CtsPermission3TestCases
+ --exclude-filter CtsPdfTestCases
+ --exclude-filter CtsPdfTestCases[instant]
+ --exclude-filter CtsBlobStoreTestCases
+ --exclude-filter CtsSensorTestCases[instant]
+ --exclude-filter CtsSensorTestCases
+ --exclude-filter CtsScopedStorageDeviceOnlyTest
+ --exclude-filter CtsExtractNativeLibsHostTestCases
+ --exclude-filter CtsMediaProviderTranscodeTests
+ --exclude-filter CtsWebkitTestCases
+ --exclude-filter CtsTextTestCases
+ --exclude-filter CtsPermissionTestCases
+ --exclude-filter CtsTextTestCases[instant]
+ --exclude-filter CtsBugreportTestCases
+ --exclude-filter CtsCameraTestCases
+ --exclude-filter CtsCameraTestCases[instant]
+ --exclude-filter CtsAppExitTestCases[instant]
+ --exclude-filter CtsLibcoreFileIOTestCases
+ --exclude-filter CtsSimpleperfTestCases
+ --exclude-filter CtsVideoTestCases
+ --exclude-filter CtsWidgetTestCases[instant]
+ --exclude-filter CtsThemeHostTestCases
+ --exclude-filter CtsViewTestCases
+ --exclude-filter vm-tests-tf
+ --exclude-filter CtsWidgetTestCases
+ --exclude-filter CtsTelephonyTestCases
+ --exclude-filter CtsStatsdAtomHostTestCases[instant]
+ --exclude-filter CtsStatsdAtomHostTestCases
+ --exclude-filter CtsSystemUiTestCases[instant]
+ --exclude-filter CtsSystemUiTestCases
+ --exclude-filter CtsWifiTestCases
+ --exclude-filter CtsContentTestCases
+ --exclude-filter CtsAppTestCases
+ --exclude-filter CtsAppTestCases[instant]
+ --exclude-filter CtsKeystorePerformanceTestCases
+ --exclude-filter CtsOsTestCases
+ --exclude-filter CtsDynamicMimeHostTestCases
+ --exclude-filter CtsInputMethodTestCases
+ --exclude-filter CtsInputMethodTestCases[instant]
+ --exclude-filter CtsJdwpTestCases[instant]
+ --exclude-filter CtsJdwpTestCases
+ --exclude-filter CtsNNAPITestCases
+ --exclude-filter CtsHostsideNetworkTests
+ --exclude-filter CtsHostsideNetworkTests[instant]
+ --exclude-filter CtsIcu4cTestCases
+ --exclude-filter CtsOsTestCases[instant]
--exclude-filter CtsDeqpTestCases
--exclude-filter CtsMediaTestCases
--exclude-filter CtsMediaTestCases[instant]
diff --git a/lkft/lava-job-definitions/common/template-cts-v8a.yaml b/lkft/lava-job-definitions/common/template-cts-v8a.yaml
index a566315b78..a3287e14c1 100644
--- a/lkft/lava-job-definitions/common/template-cts-v8a.yaml
+++ b/lkft/lava-job-definitions/common/template-cts-v8a.yaml
@@ -5,7 +5,7 @@
{% block job_gobal_timeout %}
timeouts:
job:
- minutes: 1230
+ minutes: 930
action:
minutes: 15
connection:
@@ -23,13 +23,67 @@ timeouts:
- test:
namespace: tlxc
timeout:
- minutes: 1200
+ minutes: 900
definitions:
- repository: https://git.linaro.org/qa/test-definitions.git
from: git
path: automated/android/noninteractive-tradefed/tradefed.yaml
params:
TEST_PARAMS: cts --abi arm64-v8a
+ --exclude-filter CtsMediaDrmTestCases[instant]
+ --exclude-filter CtsMediaDrmTestCases
+ --exclude-filter CtsMediaBitstreamsTestCases
+ --exclude-filter CtsInstallHostTestCases
+ --exclude-filter CtsContactsProviderTestCases
+ --exclude-filter CtsNetTestCases
+ --exclude-filter CtsSecurityHostTestCases
+ --exclude-filter CtsStagedInstallHostTestCases
+ --exclude-filter CtsPermission3TestCases
+ --exclude-filter CtsPdfTestCases
+ --exclude-filter CtsPdfTestCases[instant]
+ --exclude-filter CtsBlobStoreTestCases
+ --exclude-filter CtsSensorTestCases[instant]
+ --exclude-filter CtsSensorTestCases
+ --exclude-filter CtsScopedStorageDeviceOnlyTest
+ --exclude-filter CtsExtractNativeLibsHostTestCases
+ --exclude-filter CtsMediaProviderTranscodeTests
+ --exclude-filter CtsWebkitTestCases
+ --exclude-filter CtsTextTestCases
+ --exclude-filter CtsPermissionTestCases
+ --exclude-filter CtsTextTestCases[instant]
+ --exclude-filter CtsBugreportTestCases
+ --exclude-filter CtsCameraTestCases
+ --exclude-filter CtsCameraTestCases[instant]
+ --exclude-filter CtsAppExitTestCases[instant]
+ --exclude-filter CtsLibcoreFileIOTestCases
+ --exclude-filter CtsSimpleperfTestCases
+ --exclude-filter CtsVideoTestCases
+ --exclude-filter CtsWidgetTestCases[instant]
+ --exclude-filter CtsThemeHostTestCases
+ --exclude-filter CtsViewTestCases
+ --exclude-filter vm-tests-tf
+ --exclude-filter CtsWidgetTestCases
+ --exclude-filter CtsTelephonyTestCases
+ --exclude-filter CtsStatsdAtomHostTestCases[instant]
+ --exclude-filter CtsStatsdAtomHostTestCases
+ --exclude-filter CtsSystemUiTestCases[instant]
+ --exclude-filter CtsSystemUiTestCases
+ --exclude-filter CtsWifiTestCases
+ --exclude-filter CtsContentTestCases
+ --exclude-filter CtsAppTestCases
+ --exclude-filter CtsAppTestCases[instant]
+ --exclude-filter CtsKeystorePerformanceTestCases
+ --exclude-filter CtsOsTestCases
+ --exclude-filter CtsDynamicMimeHostTestCases
+ --exclude-filter CtsInputMethodTestCases
+ --exclude-filter CtsInputMethodTestCases[instant]
+ --exclude-filter CtsJdwpTestCases[instant]
+ --exclude-filter CtsJdwpTestCases
+ --exclude-filter CtsNNAPITestCases
+ --exclude-filter CtsHostsideNetworkTests
+ --exclude-filter CtsHostsideNetworkTests[instant]
+ --exclude-filter CtsIcu4cTestCases
+ --exclude-filter CtsOsTestCases[instant]
--exclude-filter CtsDeqpTestCases
--exclude-filter CtsMediaTestCases
--exclude-filter CtsMediaTestCases[instant]
diff --git a/lkft/lava-job-definitions/common/template-lkft.yaml b/lkft/lava-job-definitions/common/template-lkft.yaml
index 768e72eeff..369e0931f5 100644
--- a/lkft/lava-job-definitions/common/template-lkft.yaml
+++ b/lkft/lava-job-definitions/common/template-lkft.yaml
@@ -49,6 +49,7 @@ protocols:
{% block protocols %}
lava-lxc:
name: lxc-test
+ template: download
distribution: ubuntu
release: bionic
arch: amd64
@@ -117,11 +118,10 @@ actions:
description: "android-boot"
run:
steps:
- - lava-test-case "android-boot-sleep-3mins" --shell sleep 180
+ - lava-test-case "android-boot-sleep-30secs" --shell sleep 30
- lava-test-case "android-boot-lsusb-v" --shell lsusb -v
- - lava-test-case "android-boot-wait-for-device" --shell adb wait-for-device
- - lava-test-case "android-boot-sleep-1mins" --shell adb shell sleep 60
- - lava-test-case "android-boot" --shell adb shell getprop sys.boot_completed
+ - lava-test-case "android-boot-boot-completed" --shell "while ! adb shell getprop sys.boot_completed|grep 1; do sleep 2; done"
+ - lava-test-case "android-boot-set-power-stayon" --shell adb shell su 0 svc power stayon true
- lava-test-case "android-boot-screencap" --shell adb shell screencap -p /data/local/tmp/screencap.png
{% block test_target %}
diff --git a/lkft/lava-job-definitions/common/template-vts-CtsWindowManagerDeviceTestCases.yaml b/lkft/lava-job-definitions/common/template-vts-kernel-x15-powersave-ltp.yaml
index c80479be29..5e8d4dadf0 100644
--- a/lkft/lava-job-definitions/common/template-vts-CtsWindowManagerDeviceTestCases.yaml
+++ b/lkft/lava-job-definitions/common/template-vts-kernel-x15-powersave-ltp.yaml
@@ -1,10 +1,10 @@
{% extends device_type %}
-{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-vts-CtsWindowManagerDeviceTestCases{% endblock job_name %}
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-vts-kernel-powersave-ltp{% endblock job_name %}
{% block job_gobal_timeout %}
timeouts:
job:
- minutes: 360
+ minutes: 500
action:
minutes: 15
connection:
@@ -22,14 +22,15 @@ timeouts:
- test:
namespace: tlxc
timeout:
- minutes: 360
+ minutes: 480
definitions:
- repository: https://git.linaro.org/qa/test-definitions.git
from: git
path: automated/android/noninteractive-tradefed/tradefed.yaml
params:
+ SET_GOVERNOR_POWERSAVE: "true"
TEST_URL: "{{TEST_VTS_URL}}/android-vts.zip"
- TEST_PARAMS: "vts -m CtsWindowManagerDeviceTestCases"
+ TEST_PARAMS: "vts-kernel -m vts_ltp_test_arm"
TEST_PATH: "android-vts"
RESULTS_FORMAT: "aggregated"
ANDROID_VERSION: "{{ANDROID_VERSION}}"
diff --git a/lkft/lava-job-definitions/common/template-vts-kernel-x15-powersave-no-ltp.yaml b/lkft/lava-job-definitions/common/template-vts-kernel-x15-powersave-no-ltp.yaml
new file mode 100644
index 0000000000..fc994c0af2
--- /dev/null
+++ b/lkft/lava-job-definitions/common/template-vts-kernel-x15-powersave-no-ltp.yaml
@@ -0,0 +1,39 @@
+{% extends device_type %}
+{% block job_name %}lkft-android-{{KERNEL_BRANCH}}-{{BUILD_NUMBER}}-vts-kernel-armeabi-v7a{% endblock job_name %}
+
+{% block job_gobal_timeout %}
+timeouts:
+ job:
+ minutes: 500
+ action:
+ minutes: 15
+ connection:
+ minutes: 2
+{% endblock job_gobal_timeout %}
+
+{% block job_specific_metadata %}
+ vts-url: "{{TEST_VTS_URL}}/android-vts.zip"
+ vts-manifest: "{{TEST_VTS_URL}}/pinned-manifest.xml"
+ vts-version: "{{TEST_VTS_VERSION}}"
+ vts-plan: "vts-kernel"
+{% endblock job_specific_metadata %}
+
+{% block test_target %}
+- test:
+ namespace: tlxc
+ timeout:
+ minutes: 480
+ definitions:
+ - repository: https://git.linaro.org/qa/test-definitions.git
+ from: git
+ path: automated/android/noninteractive-tradefed/tradefed.yaml
+ params:
+ SET_GOVERNOR_POWERSAVE: "true"
+ TEST_URL: "{{TEST_VTS_URL}}/android-vts.zip"
+ TEST_PARAMS: "vts-kernel --exclude-filter vts_ltp_test_arm"
+ TEST_PATH: "android-vts"
+ RESULTS_FORMAT: "aggregated"
+ ANDROID_VERSION: "{{ANDROID_VERSION}}"
+ TEST_REBOOT_EXPECTED: "true"
+ name: vts-test
+{% endblock test_target %}
diff --git a/lkft/lava-job-definitions/common/template-vts.yaml b/lkft/lava-job-definitions/common/template-vts.yaml
index 0c2effe2b1..2db48797b5 100644
--- a/lkft/lava-job-definitions/common/template-vts.yaml
+++ b/lkft/lava-job-definitions/common/template-vts.yaml
@@ -29,7 +29,7 @@ timeouts:
path: automated/android/noninteractive-tradefed/tradefed.yaml
params:
TEST_URL: "{{TEST_VTS_URL}}/android-vts.zip"
- TEST_PARAMS: "vts --exclude-filter CtsWindowManagerDeviceTestCases --exclude-filter FastbootVerifyUserspaceTest --exclude-filter VtsHalAudioV4_0TargetTest"
+ TEST_PARAMS: "vts --exclude-filter FastbootVerifyUserspaceTest --exclude-filter VtsHalAudioV4_0TargetTest"
TEST_PATH: "android-vts"
RESULTS_FORMAT: "aggregated"
ANDROID_VERSION: "{{ANDROID_VERSION}}"
diff --git a/lkft/lava-job-definitions/docker/devices/dragonboard-845c b/lkft/lava-job-definitions/docker/devices/dragonboard-845c
index a6c5e8fe6c..bf29d5705f 100644
--- a/lkft/lava-job-definitions/docker/devices/dragonboard-845c
+++ b/lkft/lava-job-definitions/docker/devices/dragonboard-845c
@@ -12,7 +12,7 @@ tags:
to: downloads
images:
"partition:0":
- url: "https://images.validation.linaro.org/snapshots.linaro.org/96boards/dragonboard845c/linaro/rescue/69/dragonboard-845c-bootloader-ufs-aosp-69/gpt_both0.bin"
+ url: "https://images.validation.linaro.org/snapshots.linaro.org/96boards/dragonboard845c/linaro/rescue/90/dragonboard-845c-bootloader-ufs-aosp-90/gpt_both0.bin"
boot:
url: {{DOWNLOAD_URL}}/boot.img.xz
compression: xz
@@ -62,6 +62,24 @@ tags:
{% block boot_target %}
- test:
docker:
+ image: yongqinliu/linaro-android-docker:0.1
+ timeout:
+ minutes: 20
+ definitions:
+ - from: inline
+ path: format-metatdata.yaml
+ name: format-metatdata
+ repository:
+ metadata:
+ format: Lava-Test Test Definition 1.0
+ name: format-metatdata
+ description: format-metatdata
+ run:
+ steps:
+ - lava-test-case "format-metadata" --shell fastboot format:ext4 metadata
+
+- test:
+ docker:
image: yongqinliu/linaro-android-docker:0.1
timeout:
minutes: 20
diff --git a/lkft/lava-job-definitions/docker/devices/hikey b/lkft/lava-job-definitions/docker/devices/hikey
index 50f9a478bc..1d5d927e05 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 5e5c0af062..ee3bbc3037 100644
--- a/lkft/lava-job-definitions/docker/devices/hikey960
+++ b/lkft/lava-job-definitions/docker/devices/hikey960
@@ -1,6 +1,10 @@
{% extends "template-lkft.yaml" %}
{% block device_type %}hi960-hikey{% endblock %}
+{% block device_tags %}
+tags:
+- old-firmware
+{% endblock device_tags %}
{% block secrets %}
{{ super() }}
@@ -14,6 +18,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 +48,7 @@
url: {{REFERENCE_BUILD_URL}}/vendor.img.xz
compression: xz
{% endif %}
+{% endif %}
- deploy:
timeout:
@@ -59,6 +76,25 @@
{% endblock deploy_target %}
{% block boot_target %}
+- test:
+ docker:
+ image: yongqinliu/linaro-android-docker:0.1
+ timeout:
+ minutes: 20
+ definitions:
+ - from: inline
+ path: format-metatdata.yaml
+ name: format-metatdata
+ repository:
+ metadata:
+ format: Lava-Test Test Definition 1.0
+ name: format-metatdata
+ description: format-metatdata
+ run:
+ steps:
+ - lava-test-case "fastboot-format-metadata" --shell fastboot format cache
+ - lava-test-case "fastboot-reboot-bootloader" --shell fastboot reboot bootloader
+
- boot:
docker:
image: yongqinliu/linaro-android-docker:0.1
diff --git a/lkft/lava-job-definitions/docker/template-lkft.yaml b/lkft/lava-job-definitions/docker/template-lkft.yaml
index fef244f1ed..c434cfcad6 100644
--- a/lkft/lava-job-definitions/docker/template-lkft.yaml
+++ b/lkft/lava-job-definitions/docker/template-lkft.yaml
@@ -30,6 +30,10 @@ metadata:
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}}"
@@ -70,11 +74,10 @@ actions:
description: "android-boot"
run:
steps:
- - lava-test-case "android-boot-sleep-3mins" --shell sleep 180
+ - lava-test-case "android-boot-sleep-30secs" --shell sleep 30
- lava-test-case "android-boot-lsusb-v" --shell lsusb -v
- - lava-test-case "android-boot-wait-for-device" --shell adb wait-for-device
- - lava-test-case "android-boot-sleep-1mins" --shell adb shell sleep 60
- - lava-test-case "android-boot" --shell adb shell getprop sys.boot_completed
+ - lava-test-case "android-boot-boot-completed" --shell "while ! adb shell getprop sys.boot_completed|grep 1; do sleep 2; done"
+ - lava-test-case "android-boot-set-power-stayon" --shell adb shell su 0 svc power stayon true
- lava-test-case "android-boot-screencap" --shell adb shell screencap -p /data/local/tmp/screencap.png
{% block test_target %}
diff --git a/lkft/lava-job-definitions/docker/template-vts.yaml b/lkft/lava-job-definitions/docker/template-vts.yaml
index 0c2effe2b1..2db48797b5 100644
--- a/lkft/lava-job-definitions/docker/template-vts.yaml
+++ b/lkft/lava-job-definitions/docker/template-vts.yaml
@@ -29,7 +29,7 @@ timeouts:
path: automated/android/noninteractive-tradefed/tradefed.yaml
params:
TEST_URL: "{{TEST_VTS_URL}}/android-vts.zip"
- TEST_PARAMS: "vts --exclude-filter CtsWindowManagerDeviceTestCases --exclude-filter FastbootVerifyUserspaceTest --exclude-filter VtsHalAudioV4_0TargetTest"
+ TEST_PARAMS: "vts --exclude-filter FastbootVerifyUserspaceTest --exclude-filter VtsHalAudioV4_0TargetTest"
TEST_PATH: "android-vts"
RESULTS_FORMAT: "aggregated"
ANDROID_VERSION: "{{ANDROID_VERSION}}"
diff --git a/lkft/lava-job-definitions/hi6220-hikey/template-boot.yaml b/lkft/lava-job-definitions/hi6220-hikey/template-boot.yaml
index b02c6c1d45..876c3fdf30 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 379b884afa..06faa6c1fa 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 b6bb9fb66c..24e93fa30c 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 a6d35667e0..83e9827638 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 92bb5eeda7..615f1f8db6 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}"
@@ -107,20 +117,136 @@ function update_device_template(){
function download_fingerprint(){
local fingerprint_url="${1}"
local fingerprint_name="${2}"
- if ! wget "${fingerprint_url}" -O "${fingerprint_name}"; then
+
+ if [ -n "${TESTDATA_SITE_PROTECTED}" ] && [ "${TESTDATA_SITE_PROTECTED}" = "True" ] \
+ && echo ${fingerprint_url} | grep -q "http://testdata.linaro.org/lkft/aosp-stable/android/lkft/protected"; then
+ ## testdata fingerprint url: http://testdata.linaro.org/lkft/aosp-stable/android/lkft/protected/aosp/android-cts/175/build_fingerprint.txt
+ ## aws url: s3://validation-linaro-org/testdata/lkft/aosp-stable/android/lkft/protected/aosp/android-cts/175/build_fingerprint.txt
+ # shellcheck disable=SC2001
+ aws_download_url=$(echo "${fingerprint_url}" | sed "s|http://testdata.linaro.org/lkft/aosp-stable/android/lkft/protected/|s3://validation-linaro-org/testdata/lkft/aosp-stable/android/lkft/protected/|")
+ aws s3 cp "${aws_download_url}" "${fingerprint_name}" || true
+ else
+ wget "${fingerprint_url}" -O "${fingerprint_name}" || true
+ fi
+ if [ ! -e "${fingerprint_name}" ] || [ $(wc -l "${fingerprint_name}" |awk '{print $1}') -ne 1 ]; 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="tradefed"
+
+ qa_project_public_settings='PLUGINS_TRADEFED_EXTRACT_AGGREGATED: True
+CI_RESET_BUILD_EVENTS_ON_JOB_RESUBMISSION: True
+CI_LAVA_INFRA_ERROR_MESSAGES:
+- "adb device [a-zA-Z0-9]+ lost!"
+- "auto-login-action timed out after [0-9]+ seconds"
+- "bootloader-interrupt timed out after [0-9]+ seconds"
+- "Connection closed"
+- "Device NOT found!"
+- "Download finished ([0-9]+ bytes) but was not expected size ([0-9]+ bytes), check your networking."
+- "fastboot-flash-action timed out"
+- "fastboot-boot-commands timed out after [0-9]+ seconds"
+- "Failed to install android platform tools!"
+- "git-repo-action timed out after [0-9]+ seconds"
+- "Infrastructure error: Unable to run"
+- "lava_test_shell connection dropped."
+- "lava-test-shell timed out after [0-9]+ seconds"
+- "lava-docker-test-shell timed out after [0-9]+ seconds"
+- "login-action timed out after [0-9]+ seconds"
+- "lxc-apt-install timed out after [0-9]+ seconds"
+- "tradefed - adb device lost"
+- "tradefed - failed to collect results and log files"
+- "uboot-enter-fastboot timed out after [0-9]+ seconds"
+- "Unable to apt-get update in lxc container"
+- "Unable to create lxc container"
+- "Unable to fetch git repository"
+- "Unable to install using apt-get in lxc container"
+- "/usr/local/lab-scripts/cbrxd_hub_control"
+- "wait-device-boardid timed out after [0-9]+ seconds"
+- "wait for prompt timed out"
+'
+
+ 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 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
@@ -139,6 +265,7 @@ 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}"
@@ -148,7 +275,11 @@ function submit_jobs_for_config(){
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-throttled/'; then
+ 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}"
@@ -162,7 +293,10 @@ function submit_jobs_for_config(){
fi
fi
- if echo "${TEST_CTS_URL}"|grep '/aosp-master-throttled/'; then
+ 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
@@ -221,6 +355,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}/ && \
@@ -241,6 +383,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"
@@ -254,6 +399,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} \
@@ -303,9 +450,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
@@ -320,6 +470,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 b5d95b7207..89a7615482 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 4b2e4553f5..6b0787cc41 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 d851642495..6a3f9bd62b 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 cbaaa9d837..1e0885da06 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/lkft/x15-aosp/builders.sh b/lkft/x15-aosp/builders.sh
index 5ed7c8a202..7fd2e2361d 100644
--- a/lkft/x15-aosp/builders.sh
+++ b/lkft/x15-aosp/builders.sh
@@ -27,7 +27,7 @@ export PATH=${HOME}/bin:${PATH}
cd ~/srv/aosp-master/build/
rm -rf .repo/manifests* .repo/local_manifests* out
-repo init -u http://android.googlesource.com/platform/manifest -b master
+repo init -u http://android.googlesource.com/platform/manifest -b main
if [ ! -z ${REFERENCE_BUILD_URL} ]; then
cd .repo/manifests/
wget ${REFERENCE_BUILD_URL}/pinned-manifest.xml -O default.xml
diff --git a/llp-test.yaml b/llp-test.yaml
deleted file mode 100644
index 321c29e9c7..0000000000
--- a/llp-test.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-- job:
- name: llp-test
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 10
- num-to-keep: 10
- disabled: false
- display-name: 'Test job to upload files to LLP'
- node: docker-stretch-amd64
- wrappers:
- - timestamps
- builders:
- - linaro-publish-token
- - shell: |
- #!/bin/bash
- mkdir -p upload
- for n in {1..1000}; do
- dd if=/dev/urandom of=upload/file$( printf %03d "$n" ).bin bs=1 count=$(( RANDOM + 1024 ))
- done
- - shell: |
- # Publish
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server http://snapshots-staging.ctt.linaro.org
- --api_version 3 \
- --link-latest \
- upload test/ infrastructure/$(date +%M)
- publishers:
- - email:
- recipients: linaro-infrastructure-errors@lists.linaro.org
diff --git a/lt-qcom-bootloader-dragonboard410c.yaml b/lt-qcom-bootloader-dragonboard410c.yaml
deleted file mode 100644
index 5591027eae..0000000000
--- a/lt-qcom-bootloader-dragonboard410c.yaml
+++ /dev/null
@@ -1,80 +0,0 @@
-- job:
- name: lt-qcom-bootloader-dragonboard410c
- 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-build
- - job-cancel
- parameters:
- - string:
- name: BRANCH
- default: 'master'
- - string:
- name: LK_GIT_LINARO
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/lk.git'
- - string:
- name: LK_GCC_GIT
- default: 'git://codeaurora.org/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8.git'
- - string:
- name: LK_GCC_REL
- default: 'LA.BR.1.1.3.c4-01000-8x16.0'
- - string:
- name: LK_GIT_REL_SD_RESCUE
- default: 'release/LA.BR.1.2.7-03810-8x16.0+rescue'
- - string:
- name: LK_GIT_REL_SD_BOOT
- default: 'release/LA.BR.1.2.7-03810-8x16.0+sdboot'
- - string:
- name: LK_GIT_REL_EMMC_BOOT
- default: 'release/LA.BR.1.2.7-03810-8x16.0'
- - string:
- name: QCOM_LINUX_FIRMWARE
- default: 'http://releases.linaro.org/96boards/dragonboard410c/qualcomm/firmware/linux-board-support-package-r1034.2.1.zip'
- - string:
- name: QCOM_LINUX_FIRMWARE_MD5
- default: '25c241bfd5fb2e55e8185752d5fe92ce'
- - string:
- name: QCOM_LINUX_FIRMWARE_LICENSE_MD5
- default: '4d087ee0965cb059f1b2f9429e166f64'
- - string:
- name: PUB_DEST
- default: '96boards/dragonboard410c/linaro/rescue/${BUILD_NUMBER}'
- disabled: false
- node: docker-buster-amd64
- display-name: 'Qualcomm bootloader for DragonBoard 410c'
- scm:
- - git:
- url: https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git
- refspec: +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH}
- name: origin
- branches:
- - refs/heads/${BRANCH}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}'
- builders:
- - linaro-publish-token
- - shell:
- !include-raw: lt-qcom-bootloader/dragonboard410c/builders.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
diff --git a/lt-qcom-bootloader-dragonboard820c.yaml b/lt-qcom-bootloader-dragonboard820c.yaml
deleted file mode 100644
index ad9c599b02..0000000000
--- a/lt-qcom-bootloader-dragonboard820c.yaml
+++ /dev/null
@@ -1,77 +0,0 @@
-- job:
- name: lt-qcom-bootloader-dragonboard820c
- 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-build
- - job-cancel
- parameters:
- - string:
- name: BRANCH
- default: 'master'
- - string:
- name: LK_GIT_LINARO
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/lk.git'
- - string:
- name: LK_GCC_GIT
- default: 'git://codeaurora.org/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8.git'
- - string:
- name: LK_GCC_REL
- default: 'LA.BR.1.1.3.c4-01000-8x16.0'
- - string:
- name: LK_GIT_REL_SD_RESCUE
- default: 'release/LA.HB.1.3.2-19600-8x96.0+rescue'
- - string:
- name: LK_GIT_REL_UFS_BOOT
- default: 'release/LA.HB.1.3.2-19600-8x96.0'
- - string:
- name: QCOM_LINUX_FIRMWARE
- default: 'http://releases.linaro.org/96boards/dragonboard820c/qualcomm/firmware/linux-board-support-package-r01700.1.zip'
- - string:
- name: QCOM_LINUX_FIRMWARE_MD5
- default: '587138c5e677342db9a88d5c8747ec6c'
- - string:
- name: QCOM_LINUX_FIRMWARE_LICENSE_MD5
- default: '4d087ee0965cb059f1b2f9429e166f64'
- - string:
- name: PUB_DEST
- default: '96boards/dragonboard820c/linaro/rescue/${BUILD_NUMBER}'
- disabled: false
- node: docker-buster-amd64
- display-name: 'Qualcomm bootloader for DragonBoard 820c'
- scm:
- - git:
- url: https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git
- refspec: +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH}
- name: origin
- branches:
- - refs/heads/${BRANCH}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}'
- builders:
- - linaro-publish-token
- - shell:
- !include-raw: lt-qcom-bootloader/dragonboard820c/builders.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
diff --git a/lt-qcom-bootloader-dragonboard845c.yaml b/lt-qcom-bootloader-dragonboard845c.yaml
deleted file mode 100644
index dd5b61a5ef..0000000000
--- a/lt-qcom-bootloader-dragonboard845c.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-- job:
- name: lt-qcom-bootloader-dragonboard845c
- 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-build
- - job-cancel
- parameters:
- - string:
- name: TOOLCHAIN_ARCH
- default: 'arm64'
- - string:
- name: BRANCH
- default: 'master'
- - string:
- name: QCOM_LINUX_FIRMWARE
- default: 'https://releases.linaro.org/96boards/dragonboard845c/qualcomm/firmware/RB3_firmware_20190529180356-v4.zip'
- - string:
- name: QCOM_LINUX_FIRMWARE_MD5
- default: 'ad69855a1275547b16d94a1b5405ac62'
- - string:
- name: QCOM_LINUX_FIRMWARE_LICENSE_MD5
- default: 'cbbe399f2c983ad51768f4561587f000'
- - string:
- name: ABL_GIT_LINARO
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/abl.git'
- - string:
- name: ABL_GIT_REL
- default: 'release/LE.UM.3.2.2.r1-02700-sdm845.0'
- - string:
- name: ABL_CLANG_GIT
- default: 'https://source.codeaurora.org/quic/la/platform/prebuilts/clang/host/linux-x86'
- - string:
- name: ABL_CLANG_REL
- default: 'LA.UM.7.9.r1-07300-sm6150.0'
- - string:
- name: PUB_DEST
- default: '96boards/dragonboard845c/linaro/rescue/${BUILD_NUMBER}'
- disabled: false
- node: docker-buster-amd64
- display-name: 'Qualcomm bootloader for DragonBoard 845c'
- scm:
- - git:
- url: https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git
- refspec: +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH}
- name: origin
- branches:
- - refs/heads/${BRANCH}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - credentials-binding:
- - text:
- credential-id: LT_QCOM_KEY
- variable: LT_QCOM_KEY
- - credentials-binding:
- - text:
- credential-id: AUTH_TOKEN
- variable: AUTH_TOKEN
- - ssh-agent-credentials:
- users:
- - 'LT_QUALCOMM_PRIVATE_KEY_SSH'
- - build-name:
- name: '#${BUILD_NUMBER}'
- builders:
- - shell:
- !include-raw: lt-qcom/install-gcc-toolchain.sh
- - inject:
- properties-file: gcc_toolchain_env
- - linaro-publish-token
- - shell:
- !include-raw: lt-qcom-bootloader/dragonboard845c/builders.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
diff --git a/lt-qcom-bootloader-rb5.yaml b/lt-qcom-bootloader-rb5.yaml
deleted file mode 100644
index 75df5646e7..0000000000
--- a/lt-qcom-bootloader-rb5.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-- job:
- name: lt-qcom-bootloader-rb5
- 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-build
- - job-cancel
- parameters:
- - string:
- name: TOOLCHAIN_ARCH
- default: 'arm64'
- - string:
- name: BRANCH
- default: 'master'
- - string:
- name: QCOM_LINUX_FIRMWARE
- default: 'http://releases.linaro.org/96boards/rb5/qualcomm/firmware/RB5_firmware_20210331-v4.1.zip'
- - string:
- name: QCOM_LINUX_FIRMWARE_MD5
- default: '498aeeeb2603ddcf619c7e613c763791'
- - string:
- name: QCOM_LINUX_FIRMWARE_LICENSE_MD5
- default: 'cbbe399f2c983ad51768f4561587f000'
- - string:
- name: ABL_GIT_LINARO
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/abl.git'
- - string:
- name: ABL_GIT_REL
- default: 'release/LU.UM.1.2.1.r1-23200-QRB5165.0'
- - string:
- name: ABL_CLANG_GIT
- default: 'https://source.codeaurora.org/quic/la/platform/prebuilts/clang/host/linux-x86'
- - string:
- name: ABL_CLANG_REL
- default: 'LA.UM.7.9.r1-07300-sm6150.0'
- - string:
- name: PUB_DEST
- default: '96boards/qrb5165-rb5/linaro/rescue/${BUILD_NUMBER}'
- disabled: false
- node: docker-buster-amd64
- display-name: 'Qualcomm bootloader for Qualcomm RB5'
- scm:
- - git:
- url: https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git
- refspec: +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH}
- name: origin
- branches:
- - refs/heads/${BRANCH}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - credentials-binding:
- - text:
- credential-id: LT_QCOM_KEY
- variable: LT_QCOM_KEY
- - credentials-binding:
- - text:
- credential-id: AUTH_TOKEN
- variable: AUTH_TOKEN
- - ssh-agent-credentials:
- users:
- - 'LT_QUALCOMM_PRIVATE_KEY_SSH'
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell:
- !include-raw: lt-qcom/install-gcc-toolchain.sh
- - inject:
- properties-file: gcc_toolchain_env
- - linaro-publish-token
- - shell:
- !include-raw: lt-qcom-bootloader/rb5/builders.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
diff --git a/lt-qcom-bootloader/dragonboard410c/builders.sh b/lt-qcom-bootloader/dragonboard410c/builders.sh
deleted file mode 100644
index 84ff1dfb31..0000000000
--- a/lt-qcom-bootloader/dragonboard410c/builders.sh
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/bin/bash
-set -ex
-
-sudo apt-get update
-sudo apt-get install -y zip gdisk
-
-# download the firmware packages
-wget -q ${QCOM_LINUX_FIRMWARE}
-echo "${QCOM_LINUX_FIRMWARE_MD5} $(basename ${QCOM_LINUX_FIRMWARE})" > MD5
-md5sum -c MD5
-
-unzip -j -d bootloaders-linux $(basename ${QCOM_LINUX_FIRMWARE}) "*/bootloaders-linux/*" "*/cdt-linux/*" "*/loaders/*" "*/efs-seed/*"
-
-# Get the Android compiler
-git clone ${LK_GCC_GIT} --depth 1 -b ${LK_GCC_REL} android-gcc
-
-# get the signing tools
-git clone --depth 1 https://git.linaro.org/landing-teams/working/qualcomm/signlk.git
-
-# Build all needed flavors of LK
-git clone --depth 1 ${LK_GIT_LINARO} -b ${LK_GIT_REL_SD_RESCUE} lk_sdrescue
-git clone --depth 1 ${LK_GIT_LINARO} -b ${LK_GIT_REL_SD_BOOT} lk_sd_boot
-git clone --depth 1 ${LK_GIT_LINARO} -b ${LK_GIT_REL_EMMC_BOOT} lk_emmc_boot
-
-for lk in lk_sdrescue lk_sd_boot lk_emmc_boot; do
- echo "Building LK in : $lk"
- cd $lk
- git log -1
- make -j4 msm8916 EMMC_BOOT=1 TOOLCHAIN_PREFIX=${WORKSPACE}/android-gcc/bin/arm-eabi-
- mv build-msm8916/emmc_appsboot.mbn build-msm8916/emmc_appsboot_unsigned.mbn
- ../signlk/signlk.sh -i=./build-msm8916/emmc_appsboot_unsigned.mbn -o=./build-msm8916/emmc_appsboot.mbn -d
- cd -
-done
-
-SDCARD_RESCUE=dragonboard-410c-sdcard-rescue-${BUILD_NUMBER}
-BOOTLOADER_SD_LINUX=dragonboard-410c-bootloader-sd-linux-${BUILD_NUMBER}
-BOOTLOADER_EMMC_LINUX=dragonboard-410c-bootloader-emmc-linux-${BUILD_NUMBER}
-BOOTLOADER_EMMC_AOSP=dragonboard-410c-bootloader-emmc-aosp-${BUILD_NUMBER}
-
-mkdir -p out/${SDCARD_RESCUE} \
- out/${BOOTLOADER_SD_LINUX} \
- out/${BOOTLOADER_EMMC_LINUX} \
- out/${BOOTLOADER_EMMC_AOSP}
-
-# get LICENSE file (for Linux BSP)
-unzip -j $(basename ${QCOM_LINUX_FIRMWARE}) "*/LICENSE"
-echo "${QCOM_LINUX_FIRMWARE_LICENSE_MD5} LICENSE" > MD5
-md5sum -c MD5
-
-# Create ptable and rawprogram/patch command files
-git clone --depth 1 https://git.linaro.org/landing-teams/working/qualcomm/partioning_tool.git ptool
-(cd ptool && git log -1)
-(mkdir ptool/linux && cd ptool/linux && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/dragonboard410c/linux/partition.xml)
-(mkdir ptool/aosp && cd ptool/aosp && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/dragonboard410c/aosp/partition.xml)
-
-# Empty/zero boot image file to clear boot partition
-dd if=/dev/zero of=boot-erase.img bs=1024 count=1024
-
-# bootloader_emmc_linux
-cp -a LICENSE \
- dragonboard410c/linux/flashall \
- lk_emmc_boot/build-msm8916/emmc_appsboot.mbn \
- bootloaders-linux/prog_emmc_firehose_8916.mbn \
- bootloaders-linux/{NON-HLOS.bin,rpm.mbn,sbl1.mbn,tz.mbn,hyp.mbn,sbc_1.0_8016.bin} \
- bootloaders-linux/fs_image_linux.tar.gz.mbn.img \
- ptool/linux/{rawprogram,patch}?.xml \
- ptool/linux/gpt_{main,backup,both}?.bin \
- ptool/linux/zeros_*.bin \
- boot-erase.img \
- out/${BOOTLOADER_EMMC_LINUX}
-
-# bootloader_emmc_aosp
-cp -a LICENSE \
- dragonboard410c/aosp/flashall \
- lk_emmc_boot/build-msm8916/emmc_appsboot.mbn \
- bootloaders-linux/{NON-HLOS.bin,rpm.mbn,sbl1.mbn,tz.mbn,hyp.mbn,sbc_1.0_8016.bin} \
- bootloaders-linux/fs_image_linux.tar.gz.mbn.img \
- ptool/aosp/{rawprogram,patch}?.xml \
- ptool/aosp/gpt_{main,backup,both}?.bin \
- ptool/aosp/zeros_*.bin \
- boot-erase.img \
- out/${BOOTLOADER_EMMC_AOSP}
-
-# bootloader_sd_linux
-cp -a LICENSE \
- lk_sd_boot/build-msm8916/emmc_appsboot.mbn \
- bootloaders-linux/{NON-HLOS.bin,rpm.mbn,sbl1.mbn,tz.mbn,hyp.mbn,sbc_1.0_8016.bin} \
- bootloaders-linux/fs_image_linux.tar.gz.mbn.img \
- out/${BOOTLOADER_SD_LINUX}
-
-# sdcard_rescue
-cp -a LICENSE out/${SDCARD_RESCUE}
-sudo ./mksdcard -x -p dragonboard410c/linux/sdrescue.txt \
- -o out/${SDCARD_RESCUE}/${SDCARD_RESCUE}.img \
- -i lk_sdrescue/build-msm8916/ \
- -i out/${BOOTLOADER_SD_LINUX}
-
-# Final preparation of archives for publishing
-mkdir ${WORKSPACE}/out2
-for i in ${SDCARD_RESCUE} \
- ${BOOTLOADER_SD_LINUX} \
- ${BOOTLOADER_EMMC_LINUX} \
- ${BOOTLOADER_EMMC_AOSP} ; do
- (cd out/$i && md5sum * > MD5SUMS.txt)
- (cd out && zip -r ${WORKSPACE}/out2/$i.zip $i)
-done
-
-# Create MD5SUMS file
-(cd ${WORKSPACE}/out2 && md5sum * > MD5SUMS.txt)
-
-# Build information
-cat > ${WORKSPACE}/out2/HEADER.textile << EOF
-
-h4. Bootloaders for Dragonboard 410c
-
-This page provides the bootloaders packages for the Dragonboard 410c. There are several packages:
-* *sdcard_rescue* : an SD card image that can be used to boot from SD card, and rescue a board when the onboard eMMC is empty or corrupted
-* *bootloader-emmc-linux* : includes the bootloaders and partition table (GPT) used when booting Linux images from onboard eMMC
-* *bootloader-emmc-aosp* : includes the bootloaders and partition table (GPT) used when booting AOSP based images from onboard eMMC
-* *bootloader-sd-linux* : includes the bootloaders and partition table (GPT) used when booting Linux images from SD card
-
-Build description:
-* Build URL: "$BUILD_URL":$BUILD_URL
-* Proprietary bootloaders can be found on "Qualcomm Developer Network":https://developer.qualcomm.com/hardware/dragonboard-410c/tools
-* Linux proprietary bootloaders package: $(basename ${QCOM_LINUX_FIRMWARE})
-* Little Kernel (LK) source code:
-** "SD rescue boot":$LK_GIT_LINARO/log/?h=$(echo $LK_GIT_REL_SD_RESCUE | sed -e 's/+/\%2b/g')
-** "SD Linux boot":$LK_GIT_LINARO/log/?h=$(echo $LK_GIT_REL_SD_BOOT | sed -e 's/+/\%2b/g')
-** "eMMC Linux boot":$LK_GIT_LINARO/log/?h=$(echo $LK_GIT_REL_EMMC_BOOT | sed -e 's/+/\%2b/g')
-* Tools version: "$GIT_COMMIT":$GIT_URL/commit/?id=$GIT_COMMIT
-* Partition table:
-** "Linux":$GIT_URL/tree/dragonboard410c/linux/partition.xml?id=$GIT_COMMIT
-** "AOSP":$GIT_URL/tree/dragonboard410c/aosp/partition.xml?id=$GIT_COMMIT
-EOF
-
-# Publish
-test -d ${HOME}/bin || mkdir ${HOME}/bin
-wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
-time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- ${WORKSPACE}/out2 ${PUB_DEST}
diff --git a/lt-qcom-bootloader/dragonboard820c/builders.sh b/lt-qcom-bootloader/dragonboard820c/builders.sh
deleted file mode 100644
index cd96976cf3..0000000000
--- a/lt-qcom-bootloader/dragonboard820c/builders.sh
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/bin/bash
-
-sudo apt-get update
-sudo apt-get install -y zip gdisk
-
-set -ex
-
-# download the firmware packages
-wget -q ${QCOM_LINUX_FIRMWARE}
-echo "${QCOM_LINUX_FIRMWARE_MD5} $(basename ${QCOM_LINUX_FIRMWARE})" > MD5
-md5sum -c MD5
-
-unzip -j -d bootloaders-linux $(basename ${QCOM_LINUX_FIRMWARE}) "*/bootloaders-linux/*" "*/cdt-linux/*" "*/loaders/*"
-
-# Get the Android compiler
-git clone ${LK_GCC_GIT} --depth 1 -b ${LK_GCC_REL} android-gcc
-
-# get the signing tools
-git clone --depth 1 https://git.linaro.org/landing-teams/working/qualcomm/signlk.git
-
-# Build all needed flavors of LK
-git clone --depth 1 ${LK_GIT_LINARO} -b ${LK_GIT_REL_SD_RESCUE} lk_sdrescue
-git clone --depth 1 ${LK_GIT_LINARO} -b ${LK_GIT_REL_UFS_BOOT} lk_ufs_boot
-
-for lk in lk_sdrescue lk_ufs_boot; do
- echo "Building LK in : $lk"
- cd $lk
- git log -1
- make -j4 msm8996 EMMC_BOOT=1 VERIFIED_BOOT=1 TOOLCHAIN_PREFIX=${WORKSPACE}/android-gcc/bin/arm-eabi-
- mv build-msm8996/emmc_appsboot.mbn build-msm8996/emmc_appsboot_unsigned.mbn
- ../signlk/signlk.sh -i=./build-msm8996/emmc_appsboot_unsigned.mbn -o=./build-msm8996/emmc_appsboot.mbn -d
- cd -
-done
-
-SDCARD_RESCUE=dragonboard-820c-sdcard-rescue-${BUILD_NUMBER}
-BOOTLOADER_UFS_LINUX=dragonboard-820c-bootloader-ufs-linux-${BUILD_NUMBER}
-BOOTLOADER_UFS_AOSP=dragonboard-820c-bootloader-ufs-aosp-${BUILD_NUMBER}
-
-mkdir -p out/${SDCARD_RESCUE} out/${BOOTLOADER_UFS_LINUX} out/${BOOTLOADER_UFS_AOSP}
-
-# get LICENSE file (for Linux BSP)
-unzip -j $(basename ${QCOM_LINUX_FIRMWARE}) "*/LICENSE"
-echo "${QCOM_LINUX_FIRMWARE_LICENSE_MD5} LICENSE" > MD5
-md5sum -c MD5
-
-# Create ptable and rawprogram/patch command files
-git clone --depth 1 https://git.linaro.org/landing-teams/working/qualcomm/partioning_tool.git ptool
-(cd ptool && git log -1)
-(mkdir ptool/linux && cd ptool/linux && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/dragonboard820c/linux/partition.xml)
-(mkdir ptool/aosp && cd ptool/aosp && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/dragonboard820c/aosp/partition.xml)
-
-# Empty/zero boot image file to clear boot partition
-dd if=/dev/zero of=boot-erase.img bs=1024 count=1024
-
-# bootloader_ufs_linux
-cp -a LICENSE \
- dragonboard820c/linux/flashall \
- lk_ufs_boot/build-msm8996/emmc_appsboot.mbn \
- bootloaders-linux/{cmnlib64.mbn,cmnlib.mbn,devcfg.mbn,hyp.mbn,keymaster.mbn,pmic.elf,rpm.mbn,sbc_1.0_8096.bin,tz.mbn,xbl.elf} \
- bootloaders-linux/prog_ufs_firehose_8996_ddr.elf \
- ptool/linux/{rawprogram,patch}?.xml \
- ptool/linux/gpt_{main,backup,both}?.bin \
- ptool/linux/zeros_*.bin \
- dragonboard820c/ufs-provision_toshiba.xml \
- boot-erase.img \
- out/${BOOTLOADER_UFS_LINUX}
-
-# bootloader_ufs_aosp
-cp -a LICENSE \
- dragonboard820c/aosp/flashall \
- lk_ufs_boot/build-msm8996/emmc_appsboot.mbn \
- bootloaders-linux/{cmnlib64.mbn,cmnlib.mbn,devcfg.mbn,hyp.mbn,keymaster.mbn,pmic.elf,rpm.mbn,sbc_1.0_8096.bin,tz.mbn,xbl.elf} \
- bootloaders-linux/prog_ufs_firehose_8996_ddr.elf \
- ptool/aosp/{rawprogram,patch}?.xml \
- ptool/aosp/gpt_{main,backup,both}?.bin \
- ptool/aosp/zeros_*.bin \
- dragonboard820c/ufs-provision_toshiba.xml \
- boot-erase.img \
- out/${BOOTLOADER_UFS_AOSP}
-
-# sdcard_rescue
-cp -a LICENSE out/${SDCARD_RESCUE}
-sudo ./mksdcard -x -p dragonboard820c/sdrescue.txt \
- -o out/${SDCARD_RESCUE}/${SDCARD_RESCUE}.img \
- -i lk_sdrescue/build-msm8996/ \
- -i bootloaders-sdboot/ \
- -i bootloaders-linux/
-
-# Final preparation of archives for publishing
-mkdir ${WORKSPACE}/out2
-for i in ${SDCARD_RESCUE} \
- ${BOOTLOADER_UFS_LINUX} \
- ${BOOTLOADER_UFS_AOSP} ; do
- (cd out/$i && md5sum * > MD5SUMS.txt)
- (cd out && zip -r ${WORKSPACE}/out2/$i.zip $i)
-done
-
-# Create MD5SUMS file
-(cd ${WORKSPACE}/out2 && md5sum * > MD5SUMS.txt)
-
-# Build information
-cat > ${WORKSPACE}/out2/HEADER.textile << EOF
-
-h4. Bootloaders for Dragonboard 820c
-
-This page provides the bootloaders packages for the Dragonboard 820c. There are several packages:
-* *sdcard_rescue* : an SD card image that can be used to boot from SD card, and rescue a board when the onboard UFS is empty or corrupted
-* *bootloader_ufs_linux* : includes the bootloaders and partition table (GPT) used when booting Linux images from onboard UFS
-* *bootloader_ufs_aosp* : includes the bootloaders and partition table (GPT) used when booting AOSP images from onboard UFS
-
-Build description:
-* Build URL: "$BUILD_URL":$BUILD_URL
-* Proprietary bootloaders are not published yet, and not available widely
-* Linux proprietary bootloaders package: $(basename ${QCOM_LINUX_FIRMWARE})
-* Little Kernel (LK) source code:
-** "SD rescue boot":$LK_GIT_LINARO/log/?h=$(echo $LK_GIT_REL_SD_RESCUE | sed -e 's/+/\%2b/g')
-** "UFS Linux boot":$LK_GIT_LINARO/log/?h=$(echo $LK_GIT_REL_UFS_BOOT | sed -e 's/+/\%2b/g')
-* Tools version: "$GIT_COMMIT":$GIT_URL/commit/?id=$GIT_COMMIT
-* Partition table:
-** "Linux":$GIT_URL/tree/dragonboard820c/linux/partition.xml?id=$GIT_COMMIT
-** "AOSP":$GIT_URL/tree/dragonboard820c/aosp/partition.xml?id=$GIT_COMMIT
-EOF
-
-# Publish
-test -d ${HOME}/bin || mkdir ${HOME}/bin
-wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
-time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- ${WORKSPACE}/out2 ${PUB_DEST}
diff --git a/lt-qcom-bootloader/dragonboard845c/builders.sh b/lt-qcom-bootloader/dragonboard845c/builders.sh
deleted file mode 100644
index a9f44e62b2..0000000000
--- a/lt-qcom-bootloader/dragonboard845c/builders.sh
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/bin/bash
-
-sudo apt-get update
-sudo apt-get install -y zip gdisk libncurses5
-
-set -ex
-
-if [ -z "${WORKSPACE}" ]; then
- WORKSPACE="$(pwd)"
- DB_BOOT_TOOLS_DIR="db-boot-tools"
-
- if [ ! -d "${WORKSPACE}/${DB_BOOT_TOOLS_DIR}" ]; then
- git clone "${DB_BOOT_TOOLS_GIT}" "${WORKSPACE}/${DB_BOOT_TOOLS_DIR}"
- fi
-else
- DB_BOOT_TOOLS_DIR="."
- LINARO_PUBLISH="True"
-fi
-
-# download the firmware packages
-wget -c -q ${QCOM_LINUX_FIRMWARE}
-echo "${QCOM_LINUX_FIRMWARE_MD5} $(basename ${QCOM_LINUX_FIRMWARE})" > MD5
-md5sum -c MD5
-
-unzip -j -d bootloaders-linux $(basename ${QCOM_LINUX_FIRMWARE}) \
- "*/02-firehose_prog/prog_firehose_ddr.elf" \
- "*/04-aop/aop.mbn" \
- "*/05-BTFM/BTFM.bin" \
- "*/06-cmnlib/cmnlib*" \
- "*/07-devcfg/devcfg.mbn" \
- "*/08-dspso/dspso.bin" \
- "*/09-hyp/hyp.mbn" \
- "*/10-imagefv/imagefv.elf" \
- "*/11-keymaster/keymaster64.mbn" \
- "*/13-sec/sec.dat" \
- "*/14-storsec/storsec.mbn" \
- "*/15-tz/tz.mbn" \
- "*/16-xbl/xbl.elf" \
- "*/16-xbl/xbl_config.elf" \
- "*/40-qupv3fw/qupv3fw.elf"
-
-BOOTLOADER_UFS_LINUX=dragonboard-845c-bootloader-ufs-linux-${BUILD_NUMBER}
-BOOTLOADER_UFS_AOSP=dragonboard-845c-bootloader-ufs-aosp-${BUILD_NUMBER}
-
-mkdir -p out/${BOOTLOADER_UFS_LINUX} out/${BOOTLOADER_UFS_AOSP}
-
-# get LICENSE file (for Linux BSP)
-unzip -j $(basename ${QCOM_LINUX_FIRMWARE}) "*/LICENSE.qcom.txt"
-mv LICENSE.qcom.txt LICENSE
-echo "${QCOM_LINUX_FIRMWARE_LICENSE_MD5} LICENSE" > MD5
-md5sum -c MD5
-
-# Create ptable and rawprogram/patch command files
-if [ ! -d "ptool" ]; then
- git clone --depth 1 https://git.linaro.org/landing-teams/working/qualcomm/partioning_tool.git ptool
-fi
-(cd ptool && git log -1)
-(mkdir -p ptool/linux && cd ptool/linux && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/${DB_BOOT_TOOLS_DIR}/dragonboard845c/linux/partition.xml)
-(mkdir -p ptool/aosp && cd ptool/aosp && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/${DB_BOOT_TOOLS_DIR}/dragonboard845c/aosp/partition.xml)
-
-# tcbindir from install-gcc-toolchain.sh
-export PATH=${tcbindir}:$PATH
-
-# Clang
-if [ ! -d "${WORKSPACE}/clang" ]; then
- git clone ${ABL_CLANG_GIT} --depth 1 -b ${ABL_CLANG_REL} ${WORKSPACE}/clang
-fi
-
-# get and build abl
-if [ ! -d "abl" ]; then
- git clone --depth 1 ${ABL_GIT_LINARO} -b ${ABL_GIT_REL} abl
-fi
-pushd abl
-ABL_GIT_COMMIT=$(git rev-parse HEAD)
-mkdir -p out/edk2
-make all \
- BOOTLOADER_OUT=out/edk2 \
- BUILD_SYSTEM_ROOT_IMAGE=0 \
- VERIFIED_BOOT=0 \
- VERIFIED_BOOT_2=0 \
- VERIFIED_BOOT_LE=0 \
- USER_BUILD_VARIANT=0 \
- DISABLE_PARALLEL_DOWNLOAD_FLASH=1 \
- ABL_USE_SDLLVM=false \
- ABL_SAFESTACK=false \
- AB_RETRYCOUNT_DISABLE=1 \
- CLANG_BIN=${WORKSPACE}/clang/clang-4691093/bin/ \
- CLANG_PREFIX="aarch64-none-linux-gnu-" \
- CLANG_GCC_TOOLCHAIN="${tcbindir}/aarch64-none-linux-gnu-gcc" \
- TARGET_ARCHITECTURE=AARCH64 \
- BOARD_BOOTLOADER_PRODUCT_NAME="SuperEDK2k"
-
-# get the signing tools, and sign
-# add SSH server signatures to known_hosts list.
-bash -c "ssh-keyscan dev-private-git.linaro.org >> ${HOME}/.ssh/known_hosts"
-bash -c "ssh-keyscan dev-private-review.linaro.org >> ${HOME}/.ssh/known_hosts"
-if [ ! -d "sectools" ]; then
- git clone --depth 1 ssh://git@dev-private-git.linaro.org/landing-teams/working/qualcomm/sectools.git
-fi
-
-python2 sectools/sectools.py secimage -v \
- -c sectools/config/sdm845/sdm845_secimage.xml \
- -g abl -i abl.elf -o out -sa
-popd
-
-# Empty/zero boot image file to clear boot partition
-dd if=/dev/zero of=boot-erase.img bs=1024 count=1024
-
-# bootloader_ufs_linux
-cp -a LICENSE \
- ${DB_BOOT_TOOLS_DIR}/dragonboard845c/linux/flashall \
- bootloaders-linux/* \
- abl/out/sdm845/abl/abl.elf \
- ptool/linux/{rawprogram?.xml,patch?.xml,gpt_main?.bin,gpt_backup?.bin,gpt_both?.bin} \
- boot-erase.img \
- out/${BOOTLOADER_UFS_LINUX}
-
-# bootloader_ufs_aosp
-cp -a LICENSE \
- ${DB_BOOT_TOOLS_DIR}/dragonboard845c/aosp/flashall \
- bootloaders-linux/* \
- abl/out/sdm845/abl/abl.elf \
- ptool/aosp/{rawprogram?.xml,patch?.xml,gpt_main?.bin,gpt_backup?.bin,gpt_both?.bin} \
- boot-erase.img \
- out/${BOOTLOADER_UFS_AOSP}
-
-# Final preparation of archives for publishing
-mkdir -p ${WORKSPACE}/out2
-for i in ${BOOTLOADER_UFS_LINUX} \
- ${BOOTLOADER_UFS_AOSP} ; do
- (cd out/$i && md5sum * > MD5SUMS.txt)
- (cd out && zip -r ${WORKSPACE}/out2/$i.zip $i)
-done
-
-# Create MD5SUMS file
-(cd ${WORKSPACE}/out2 && md5sum * > MD5SUMS.txt)
-
-# Build information
-cat > ${WORKSPACE}/out2/HEADER.textile << EOF
-
-h4. Bootloaders for Dragonboard 845c
-
-This page provides the bootloaders packages for the Dragonboard 845c. There are several packages:
-* *bootloader_ufs_linux* : includes the bootloaders and partition table (GPT) used when booting Linux images from onboard UFS
-* *bootloader_ufs_aosp* : includes the bootloaders and partition table (GPT) used when booting AOSP images from onboard UFS
-
-Build description:
-* Build URL: "$BUILD_URL":$BUILD_URL
-* Linux proprietary bootloaders package: $(basename ${QCOM_LINUX_FIRMWARE})
-* "ABL source code":$ABL_GIT_LINARO/commit/?id=$ABL_GIT_COMMIT
-* Partition table:
-** "Linux":$GIT_URL/tree/dragonboard845c/linux/partition.xml?id=$GIT_COMMIT
-** "AOSP":$GIT_URL/tree/dragonboard845c/aosp/partition.xml?id=$GIT_COMMIT
-EOF
-
-# Publish
-if [ "${LINARO_PUBLISH}" ]; then
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- ${WORKSPACE}/out2 ${PUB_DEST}
-fi
diff --git a/lt-qcom-bootloader/dragonboard845c/test_params b/lt-qcom-bootloader/dragonboard845c/test_params
deleted file mode 100644
index 2b40e8727c..0000000000
--- a/lt-qcom-bootloader/dragonboard845c/test_params
+++ /dev/null
@@ -1,11 +0,0 @@
-export BUILD_NUMBER=0
-export TOOLCHAIN_ARCH='arm64'
-export BRANCH='master'
-export QCOM_LINUX_FIRMWARE='https://releases.linaro.org/96boards/dragonboard845c/qualcomm/firmware/RB3_firmware_20190529180356-v4.zip'
-export QCOM_LINUX_FIRMWARE_MD5='ad69855a1275547b16d94a1b5405ac62'
-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/LE.UM.3.2.2.r1-02700-sdm845.0'
-export ABL_CLANG_GIT='https://source.codeaurora.org/quic/la/platform/prebuilts/clang/host/linux-x86'
-export ABL_CLANG_REL='LA.UM.7.9.r1-07300-sm6150.0'
-export DB_BOOT_TOOLS_GIT='https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git'
diff --git a/lt-qcom-bootloader/rb5/builders.sh b/lt-qcom-bootloader/rb5/builders.sh
deleted file mode 100644
index 33a7b489b5..0000000000
--- a/lt-qcom-bootloader/rb5/builders.sh
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/bin/bash
-
-sudo apt-get update
-sudo apt-get install -y zip gdisk libncurses5
-
-set -ex
-
-if [ -z "${WORKSPACE}" ]; then
- WORKSPACE="$(pwd)"
- DB_BOOT_TOOLS_DIR="db-boot-tools"
-
- if [ ! -d "${WORKSPACE}/${DB_BOOT_TOOLS_DIR}" ]; then
- git clone "${DB_BOOT_TOOLS_GIT}" "${WORKSPACE}/${DB_BOOT_TOOLS_DIR}"
- fi
-else
- DB_BOOT_TOOLS_DIR="."
- LINARO_PUBLISH="True"
-fi
-
-# download the firmware packages
-wget -c -q ${QCOM_LINUX_FIRMWARE}
-echo "${QCOM_LINUX_FIRMWARE_MD5} $(basename ${QCOM_LINUX_FIRMWARE})" > MD5
-md5sum -c MD5
-
-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" \
- "*/06-cmnlib/cmnlib64.mbn" \
- "*/07-devcfg/devcfg.mbn" \
- "*/08-dspso/dspso.bin" \
- "*/09-hyp/hyp.mbn" \
- "*/10-apdp/apdp.mbn" \
- "*/15-tz/tz.mbn" \
- "*/16-xbl/xbl.elf" \
- "*/16-xbl/xbl_config.elf" \
- "*/24-featenabler/featenabler.mbn" \
- "*/36-km4/km4.mbn" \
- "*/40-qupv3fw/qupv3fw.elf" \
- "*/44-multi_image/multi_image.mbn" \
- "*/50-spunvm/spunvm.bin" \
- "*/51-uefi_sec/uefi_sec.mbn"
-
-BOOTLOADER_UFS_LINUX=rb5-bootloader-ufs-linux-${BUILD_NUMBER}
-BOOTLOADER_UFS_AOSP=rb5-bootloader-ufs-aosp-${BUILD_NUMBER}
-
-mkdir -p out/${BOOTLOADER_UFS_LINUX} out/${BOOTLOADER_UFS_AOSP}
-
-# get LICENSE file (for Linux BSP)
-unzip -j $(basename ${QCOM_LINUX_FIRMWARE}) "*/LICENSE.qcom.txt"
-mv LICENSE.qcom.txt LICENSE
-echo "${QCOM_LINUX_FIRMWARE_LICENSE_MD5} LICENSE" > MD5
-md5sum -c MD5
-
-# Create ptable and rawprogram/patch command files
-if [ ! -d "ptool" ]; then
- git clone --depth 1 https://git.linaro.org/landing-teams/working/qualcomm/partioning_tool.git ptool
-fi
-(cd ptool && git log -1)
-rm -rf linux aosp
-(mkdir -p ptool/linux && cd ptool/linux && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/${DB_BOOT_TOOLS_DIR}/rb5/linux/partition.xml)
-(mkdir -p ptool/aosp && cd ptool/aosp && python2 ${WORKSPACE}/ptool/ptool.py -x ${WORKSPACE}/${DB_BOOT_TOOLS_DIR}/rb5/aosp/partition.xml)
-
-# tcbindir from install-gcc-toolchain.sh
-export PATH=${tcbindir}:$PATH
-
-# Clang
-if [ ! -d "${WORKSPACE}/clang" ]; then
- git clone ${ABL_CLANG_GIT} --depth 1 -b ${ABL_CLANG_REL} ${WORKSPACE}/clang
-fi
-
-# get and build abl
-if [ ! -d "abl" ]; then
- git clone --depth 1 ${ABL_GIT_LINARO} -b ${ABL_GIT_REL} abl
-fi
-pushd abl
-ABL_GIT_COMMIT=$(git rev-parse HEAD)
-mkdir -p out/edk2
-make all \
- BOOTLOADER_OUT=out/edk2 \
- BUILD_SYSTEM_ROOT_IMAGE=0 \
- VERIFIED_BOOT=0 \
- VERIFIED_BOOT_2=0 \
- VERIFIED_BOOT_LE=0 \
- USER_BUILD_VARIANT=0 \
- DISABLE_PARALLEL_DOWNLOAD_FLASH=1 \
- ABL_USE_SDLLVM=false \
- ABL_SAFESTACK=false \
- AB_RETRYCOUNT_DISABLE=1 \
- CLANG_BIN=${WORKSPACE}/clang/clang-4691093/bin/ \
- CLANG_PREFIX="aarch64-none-linux-gnu-" \
- CLANG_GCC_TOOLCHAIN="${tcbindir}/aarch64-none-linux-gnu-gcc" \
- TARGET_ARCHITECTURE=AARCH64 \
- BOARD_BOOTLOADER_PRODUCT_NAME="SuperEDK2k"
-
-# get the signing tools, and sign
-# add SSH server signatures to known_hosts list.
-bash -c "ssh-keyscan dev-private-git.linaro.org >> ${HOME}/.ssh/known_hosts"
-bash -c "ssh-keyscan dev-private-review.linaro.org >> ${HOME}/.ssh/known_hosts"
-if [ ! -d "sectools" ]; then
- git clone --depth 1 ssh://git@dev-private-git.linaro.org/landing-teams/working/qualcomm/sectools.git
-fi
-
-python2 sectools/sectools.py secimage -v \
- -c sectools/config/sm8250/sm8250_secimage.xml \
- -g abl -i abl.elf -o out -sa
-popd
-
-# Empty/zero boot image file to clear boot partition
-dd if=/dev/zero of=boot-erase.img bs=1024 count=1024
-
-# bootloader_ufs_linux
-cp -a LICENSE \
- ${DB_BOOT_TOOLS_DIR}/rb5/linux/flashall \
- bootloaders-linux/* \
- abl/out/sm8250/abl/abl.elf \
- ptool/linux/{rawprogram?.xml,patch?.xml,gpt_main?.bin,gpt_backup?.bin,gpt_both?.bin} \
- boot-erase.img \
- out/${BOOTLOADER_UFS_LINUX}
-
-# bootloader_ufs_aosp
-cp -a LICENSE \
- ${DB_BOOT_TOOLS_DIR}/rb5/aosp/flashall \
- bootloaders-linux/* \
- abl/out/sm8250/abl/abl.elf \
- ptool/aosp/{rawprogram?.xml,patch?.xml,gpt_main?.bin,gpt_backup?.bin,gpt_both?.bin} \
- boot-erase.img \
- out/${BOOTLOADER_UFS_AOSP}
-
-# Final preparation of archives for publishing
-mkdir -p ${WORKSPACE}/out2
-for i in ${BOOTLOADER_UFS_LINUX} \
- ${BOOTLOADER_UFS_AOSP} ; do
- (cd out/$i && md5sum * > MD5SUMS.txt)
- (cd out && zip -r ${WORKSPACE}/out2/$i.zip $i)
-done
-
-# Create MD5SUMS file
-(cd ${WORKSPACE}/out2 && md5sum * > MD5SUMS.txt)
-
-# Build information
-cat > ${WORKSPACE}/out2/HEADER.textile << EOF
-
-h4. Bootloaders for Qualcomm RB5
-
-This page provides the bootloaders packages for the Qualcomm RB5. There are several packages:
-* *bootloader_ufs_linux* : includes the bootloaders and partition table (GPT) used when booting Linux images from onboard UFS
-* *bootloader_ufs_aosp* : includes the bootloaders and partition table (GPT) used when booting AOSP images from onboard UFS
-
-Build description:
-* Build URL: "$BUILD_URL":$BUILD_URL
-* Linux proprietary bootloaders package: $(basename ${QCOM_LINUX_FIRMWARE})
-* "ABL source code":$ABL_GIT_LINARO/commit/?id=$ABL_GIT_COMMIT
-* Partition table:
-** "Linux":$GIT_URL/tree/rb5/linux/partition.xml?id=$GIT_COMMIT
-** "AOSP":$GIT_URL/tree/rb5/aosp/partition.xml?id=$GIT_COMMIT
-EOF
-
-# Publish
-if [ "${LINARO_PUBLISH}" ]; then
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- ${WORKSPACE}/out2 ${PUB_DEST}
-fi
diff --git a/lt-qcom-bootloader/rb5/test_params b/lt-qcom-bootloader/rb5/test_params
deleted file mode 100644
index f77244a1f7..0000000000
--- a/lt-qcom-bootloader/rb5/test_params
+++ /dev/null
@@ -1,11 +0,0 @@
-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.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'
-export ABL_CLANG_GIT='https://source.codeaurora.org/quic/la/platform/prebuilts/clang/host/linux-x86'
-export ABL_CLANG_REL='LA.UM.7.9.r1-07300-sm6150.0'
-export DB_BOOT_TOOLS_GIT='https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git'
diff --git a/lt-qcom-debian-images.yaml b/lt-qcom-debian-images.yaml
deleted file mode 100644
index e604f4cc4d..0000000000
--- a/lt-qcom-debian-images.yaml
+++ /dev/null
@@ -1,170 +0,0 @@
-- project:
- name: lt-qcom-debian-images
- jobs:
- - 'lt-qcom-debian-images-{machine}':
- device: 'dragonboard-410c'
- fai-class: 'DB410C'
- rootfs: 'developer,3G alip,4G installer,2G'
- bootimg-pagesize: 2048
- sdcard: 'developer,6G'
- dtbs: 'qcom/apq8016-sbc.dtb'
- name: 'Snapdragon 410'
- machine: 'dragonboard410c'
- - 'lt-qcom-debian-images-{machine}':
- device: 'dragonboard-820c'
- fai-class: 'DB820C'
- rootfs: 'developer,3G alip,4G'
- dtbs: 'qcom/apq8096-db820c.dtb'
- name: 'Snapdragon 820'
- machine: 'dragonboard820c'
- - 'lt-qcom-debian-images-{machine}':
- device: 'dragonboard-845c'
- fai-class: 'DB845C'
- rootfs: 'developer,3G gnome,5G'
- dtbs: 'qcom/sdm845-db845c.dtb'
- name: 'Snapdragon 845'
- cmdline: 'clk_ignore_unused pd_ignore_unused'
- machine: 'dragonboard845c'
- - 'lt-qcom-debian-images-{machine}':
- device: 'qrb5165-rb5'
- fai-class: 'RB5'
- rootfs: 'developer,3G gnome,5G'
- dtbs: 'qcom/qrb5165-rb5.dtb'
- name: 'Qualcomm RB5'
- cmdline: 'pcie_pme=nomsi'
- machine: 'qrb5165-rb5'
-
-- job-template:
- name: 'lt-qcom-debian-images-{machine}'
- # defaults
- bootimg-pagesize: 4096
- cmdline:
- sdcard:
-
- project-type: freestyle
- 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
- parameters:
- - string:
- name: DEVICE_TYPE
- default: '{device}'
- - string:
- name: LAVA_SERVER
- default: 'https://validation.linaro.org/RPC2/'
- - string:
- name: PMWG_LAVA_SERVER
- default: 'https://pmwg.validation.linaro.org/RPC2/'
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: VENDOR
- default: 'linaro'
- - string:
- name: OS_FLAVOUR
- default: 'sid'
- - string:
- name: PLATFORM_NAME
- default: '{device}'
- - string:
- name: FAI_BOARD_CLASS
- default: '{fai-class}'
- - string:
- name: ROOTFS
- default: '{rootfs}'
- - string:
- name: SDCARD
- default: '{sdcard}'
- - string:
- name: DTBS
- default: '{dtbs}'
- - string:
- name: SERIAL_CONSOLE
- default: 'ttyMSM0'
- - string:
- name: BOOTIMG_PAGESIZE
- default: '{bootimg-pagesize}'
- - string:
- name: BOOTIMG_BASE
- default: '0x80000000'
- - string:
- name: BOOTIMG_KERNEL_OFFSET
- default: '0x8000'
- - string:
- name: BOOTIMG_RAMDISK_OFFSET
- default: '0x1000000'
- - string:
- name: BOOTIMG_TAGS_OFFSET
- default: '0x100'
- - string:
- name: KERNEL_CMDLINE_PLATFORM
- default: '{cmdline}'
- - string:
- name: REPO_URL
- default: 'https://git.linaro.org/ci/fai.git'
- disabled: false
- node: docker-stretch-arm64
- display-name: 'Qualcomm Debian based images for {name}'
- scm:
- - git:
- url: '${{REPO_URL}}'
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${{BUILD_NUMBER}}'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - text:
- credential-id: ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- - ssh-agent-credentials:
- users:
- - 'LT_QUALCOMM_PRIVATE_KEY_SSH'
- builders:
- - shell: |
- #!/bin/bash
- echo "PUB_DEST=96boards/{machine}/${{VENDOR}}/debian/${{BUILD_NUMBER}}" >> parameters
- - inject:
- properties-file: parameters
- - linaro-publish-token
- - shell:
- !include-raw-escape: lt-qcom-debian-images/builders-fai.sh
- - shell:
- !include-raw-escape: lt-qcom-debian-images/installer.sh
- - shell:
- !include-raw-escape: lt-qcom-debian-images/sdcard.sh
- - linaro-publish-token
- - shell:
- !include-raw-escape: lt-qcom-debian-images/publishers.sh
- - shell:
- !include-raw-escape: lt-qcom-debian-images/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw-escape:
- - rpb-openembedded/postbuild.groovy
- - openembedded-lkft/postbuild.groovy
- - email-ext:
- recipients: 'nicolas.dechesne@linaro.org anibal.limon@linaro.org'
- failure: true
- still-failing: true
diff --git a/lt-qcom-debian-images/builders-fai.sh b/lt-qcom-debian-images/builders-fai.sh
deleted file mode 100644
index e6e1f8f721..0000000000
--- a/lt-qcom-debian-images/builders-fai.sh
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/bin/bash
-
-set -e
-
-trap cleanup_exit INT TERM EXIT
-
-cleanup_exit()
-{
- echo "INFO: umount ${WORKSPACE}/builddir"
- sudo umount ${WORKSPACE}/builddir
-}
-
-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="python-pip fai-server fai-setup-storage qemu-utils procps mtools pigz zip android-tools-fsutils android-tools-mkbootimg libpython2.7-dev dosfstools"
-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
-
-set -ex
-
-# Needed to use git commit/push on CI
-git config --global user.name "Linaro CI"
-git config --global user.email "ci_notify@linaro.org"
-git config --global core.sshCommand "ssh -F ${HOME}/qcom.sshconfig"
-
-cat << EOF > ${HOME}/qcom.sshconfig
-Host git.linaro.org
- User git
- UserKnownHostsFile /dev/null
- StrictHostKeyChecking no
-EOF
-chmod 0600 ${HOME}/qcom.sshconfig
-
-# Build information
-mkdir -p out
-cat > out/HEADER.textile << EOF
-
-h4. QCOM Landing Team - $BUILD_DISPLAY_NAME
-
-Build description:
-* Build URL: "$BUILD_URL":$BUILD_URL
-* OS flavour: $OS_FLAVOUR
-* FAI: "$GIT_URL":$GIT_URL
-* FAI commit: "$GIT_COMMIT":$GIT_URL/commit/?id=$GIT_COMMIT
-EOF
-
-# speed up FAI
-test -d builddir || mkdir builddir
-sudo mount -t tmpfs -o size=6G tmpfs builddir
-
-# dumb utility to parse dpkg -l output
-wget https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/lt-qcom-debian-images/debpkgdiff.py
-
-# Record build log changes in git tree
-git clone ssh://git.linaro.org/landing-teams/working/qualcomm/lt-ci.git -b debian/${PLATFORM_NAME}
-
-for rootfs in ${ROOTFS}; do
-
- rootfs_sz=$(echo $rootfs | cut -f2 -d,)
- rootfs=$(echo $rootfs | cut -f1 -d,)
-
- sudo fai-diskimage -v --cspace $(pwd) \
- --hostname linaro-${rootfs} \
- -S ${rootfs_sz} \
- --class $(echo SAVECACHE,${OS_FLAVOUR},DEBIAN,LINARO,QCOM,${rootfs},${FAI_BOARD_CLASS},RAW | tr '[:lower:]' '[:upper:]') \
- builddir/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.raw
-
- sudo cp /var/log/fai/linaro-${rootfs}/last/fai.log fai-${rootfs}.log
- if grep -E '^(ERROR:|WARNING: These unknown packages are removed from the installation list|Exit code task_)' fai-${rootfs}.log
- then
- echo "Errors during build"
- rm -rf out/
- exit 1
- fi
-
- rootfs_sz_real=$(du -h builddir/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.raw | cut -f1)
-
- # make sure that there are the same for all images, in case we build more than 1 image
- if [ -f MD5SUM ]; then
- md5sum -c MD5SUM
- else
- md5sum out/{vmlinuz-*,config-*,$(basename ${DTBS})} > MD5SUM
- fi
-
- img2simg builddir/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.raw out/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.img
- sudo rm -f builddir/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.raw
-
- # Compress image(s)
- pigz -9 out/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.img
-
- # dpkg -l output
- mv out/packages.txt out/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.packages
-
- # record changes since last build, if available
- if wget -q ${PUBLISH_SERVER}$(dirname ${PUB_DEST})/latest/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-*.packages -O last-build.packages; then
- echo -e "=== Packages changes for ${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}\n" >> out/build-changes.txt
- python debpkgdiff.py last-build.packages out/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.packages >> out/build-changes.txt
- echo >> out/build-changes.txt
- else
- echo "latest build published does not have packages list, skipping diff report"
- fi
-
- # record list of installed packages in git
- cp out/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.packages lt-ci/${VENDOR}-${OS_FLAVOUR}-${rootfs}.packages
-
- cat >> out/HEADER.textile << EOF
-* Linaro Debian ${rootfs}: size: ${rootfs_sz_real}
-EOF
-done
-
-# Record info about kernel, there can be multiple .packages files, but we have already checked that kernel version is the same. so pick one.
-kernel_binpkg=$(grep -h linux-image out/${VENDOR}-${OS_FLAVOUR}-*-${PLATFORM_NAME}-${BUILD_NUMBER}.packages | sed 's/\s\s*/ /g' | cut -d ' ' -f2 | uniq)
-kernel_pkgver=$(grep -h linux-image out/${VENDOR}-${OS_FLAVOUR}-*-${PLATFORM_NAME}-${BUILD_NUMBER}.packages | sed 's/\s\s*/ /g' | cut -d ' ' -f3 | uniq)
-
-# record kernel config changes since last build, if available
-if wget -q ${PUBLISH_SERVER}$(dirname ${PUB_DEST})/latest/config-* -O last-build.config; then
- echo -e "=== Changes for kernel config\n" >> out/build-changes.txt
- diff -su last-build.config out/config-* >> out/build-changes.txt || true
- echo >> out/build-changes.txt
-else
- echo "latest build published does not have kernel config, skipping diff report"
-fi
-
-# record kernel config changes in git
-cp out/config-* lt-ci/config
-
-# the space after pre.. tag is on purpose
-if [ -f out/build-changes.txt ]; then
- cat > out/README.textile << EOF
-
-h4. Build changes
-
-pre..
-EOF
- cat out/build-changes.txt >> out/README.textile
-else
- cat > out/README.textile << EOF
-
-h4. No build changes
-EOF
-fi
-
-cat >> out/HEADER.textile << EOF
-* Kernel package name: ${kernel_binpkg}
-* Kernel package version: ${kernel_pkgver}
-EOF
-
-# Commit build changes in lt-ci
-cd lt-ci
-git add -A
-git commit --allow-empty -m "Import build ${BUILD_NUMBER}"
-git push origin debian/${PLATFORM_NAME}
-cd ..
-
-# get ROOTFS from FAI config
-ROOTFS_PARTLABEL=$(grep --color=never -Po "^ROOTFS_PARTLABEL=\K.*" class/${FAI_BOARD_CLASS}.var)
-
-# Create boot image
-KERNEL_CMDLINE="root=PARTLABEL=${ROOTFS_PARTLABEL} console=tty0 console=${SERIAL_CONSOLE},115200n8 ${KERNEL_CMDLINE_PLATFORM}"
-cat out/vmlinuz-* out/$(basename ${DTBS}) > Image.gz+dtb
-mkbootimg \
- --kernel Image.gz+dtb \
- --ramdisk out/initrd.img-* \
- --output out/boot-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img \
- --pagesize "${BOOTIMG_PAGESIZE}" \
- --base "${BOOTIMG_BASE}" \
- --kernel_offset "${BOOTIMG_KERNEL_OFFSET}" \
- --ramdisk_offset "${BOOTIMG_RAMDISK_OFFSET}" \
- --tags_offset "${BOOTIMG_TAGS_OFFSET}" \
- --cmdline "${KERNEL_CMDLINE}"
-pigz -9 out/boot-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img
diff --git a/lt-qcom-debian-images/debpkgdiff.py b/lt-qcom-debian-images/debpkgdiff.py
deleted file mode 100644
index 7ca236332a..0000000000
--- a/lt-qcom-debian-images/debpkgdiff.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/python
-
-import re
-import sys
-
-def read_dpkgfile(file):
- d = {}
- with open(file) as f:
- for line in f:
- line = " ".join(line.split())
- m = re.search('^ii (\S+) (\S+).*', line)
- if m:
- d[m.group(1)] = m.group(2)
- return d
-
-def main():
-
- c = []
- r = []
- a = []
-
- d1 = read_dpkgfile(sys.argv[1])
- d2 = read_dpkgfile(sys.argv[2])
-
- for pkg in d1.keys():
- if pkg in d2:
- if d1[pkg] != d2[pkg]:
- c.append("%s from %s to %s" % (pkg, d1[pkg], d2[pkg]))
-
- del d2[pkg]
- else:
- r.append("%s (%s)" % (pkg, d1[pkg]))
-
- for pkg in d2.keys():
- a.append("%s (%s)" % (pkg, d2[pkg]))
-
- if len(a)+len(r)+len(c) == 0:
- print("Files %s and %s are identical" % (sys.argv[1], sys.argv[2]))
- else:
- if len(a):
- print("Added packages:")
- for line in sorted(a):
- print('\t'+line)
- print("")
- if len (c):
- print("Changed packages:")
- for line in sorted(c):
- print('\t'+line)
- print("")
- if len(r):
- print("Removed packages:")
- for line in sorted(r):
- print('\t'+line)
-
-if __name__ == "__main__":
- main()
diff --git a/lt-qcom-debian-images/installer.sh b/lt-qcom-debian-images/installer.sh
deleted file mode 100644
index f07e6aed85..0000000000
--- a/lt-qcom-debian-images/installer.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-trap cleanup_exit INT TERM EXIT
-
-cleanup_exit()
-{
- # cleanup here, only in case of error in this script
- # normal cleanup deferred to later
- [ $? = 0 ] && exit;
- cd ${WORKSPACE}
- sudo git clean -fdxq
-}
-
-# Installer is only supported in dragonboard-410c
-if ! echo "$ROOTFS" | grep "installer"; then
- exit 0
-fi
-
-# Create boot image for SD installer
-mkbootimg \
- --kernel Image.gz+dtb \
- --ramdisk out/initrd.img-* \
- --output out/boot-installer-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img \
- --pagesize "${BOOTIMG_PAGESIZE}" \
- --base "0x80000000" \
- --cmdline "root=/dev/mmcblk1p8 rw rootwait console=${SERIAL_CONSOLE},115200n8"
-gzip -9 out/boot-installer-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img
-
-rm -rf db-boot-tools
-git clone --depth 1 -b master https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git
-# record commit info in build log
-cd db-boot-tools
-git log -1
-
-# Get SD and EMMC bootloader package
-BL_BUILD_NUMBER=`wget -q --no-check-certificate -O - https://ci.linaro.org/jenkins/job/lt-qcom-bootloader-dragonboard410c/lastSuccessfulBuild/buildNumber`
-wget --progress=dot -e dotbytes=2M \
- http://snapshots.linaro.org/96boards/dragonboard410c/linaro/rescue/${BL_BUILD_NUMBER}/dragonboard-410c-bootloader-sd-linux-${BL_BUILD_NUMBER}.zip
-wget --progress=dot -e dotbytes=2M \
- http://snapshots.linaro.org/96boards/dragonboard410c/linaro/rescue/${BL_BUILD_NUMBER}/dragonboard-410c-bootloader-emmc-linux-${BL_BUILD_NUMBER}.zip
-
-unzip -jd out dragonboard-410c-bootloader-sd-linux-${BL_BUILD_NUMBER}.zip
-cp ${WORKSPACE}/out/boot-installer-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz out/boot.img.gz
-cp ${WORKSPACE}/out/${VENDOR}-${OS_FLAVOUR}-installer-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz out/rootfs.img.gz
-gunzip out/{boot,rootfs}.img.gz
-
-mkdir -p os/debian
-cp ${WORKSPACE}/out/boot-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz os/debian/boot.img.gz
-cp ${WORKSPACE}/out/${VENDOR}-${OS_FLAVOUR}-alip-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz os/debian/rootfs.img.gz
-gunzip os/debian/{boot,rootfs}.img.gz
-
-cat << EOF >> os/debian/os.json
-{
-"name": "Linaro Linux Desktop for DragonBoard 410c - Build #${BUILD_NUMBER}",
-"url": "http://releases.linaro.org/96boards/dragonboard410c",
-"version": "${BUILD_NUMBER}",
-"release_date": "`date +%Y-%m-%d`",
-"description": "Linaro Linux with LXQt desktop based on Debian (${OS_FLAVOUR}) for DragonBoard 410c"
-}
-EOF
-
-cp mksdcard flash os/
-cp dragonboard410c/linux/partitions.txt os/debian
-unzip -jd os/debian dragonboard-410c-bootloader-emmc-linux-${BL_BUILD_NUMBER}.zip
-
-# get size of OS partition
-size_os=$(du -sk os | cut -f1)
-size_os=$(((($size_os + 1024 - 1) / 1024) * 1024))
-size_os=$(($size_os + 200*1024))
-# pad for SD image size (including rootfs and bootloaders, as per partition table)
-size_pad=$(sudo ./mksdcard -p dragonboard410c/linux/installer.txt -n -g | grep "Create file with size" | cut -f7 -d' ')
-size_pad=$(((($size_pad + 1024 - 1) / 1024) * 1024))
-size_img=$(($size_os + $size_pad))
-
-# create OS image
-SDCARD=${PLATFORM_NAME}-sdcard-installer-${OS_FLAVOUR}-${BUILD_NUMBER}
-mkdir -p ${SDCARD}
-
-sudo rm -f out/os.img
-sudo mkfs.fat -a -F32 -n "OS" -C out/os.img $size_os
-mkdir -p mnt
-sudo mount -o loop out/os.img mnt
-sudo cp -r os/* mnt/
-sudo umount mnt
-sudo ./mksdcard -p dragonboard410c/linux/installer.txt -s $size_img -i out -o ${SDCARD}/${SDCARD}.img
-
-# create archive for publishing
-cp out/LICENSE ${SDCARD}/
-zip -r ${WORKSPACE}/out/${SDCARD}.zip ${SDCARD}
-cd ..
diff --git a/lt-qcom-debian-images/publishers.sh b/lt-qcom-debian-images/publishers.sh
deleted file mode 100644
index 2b05fce375..0000000000
--- a/lt-qcom-debian-images/publishers.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-set -ex
-trap cleanup_exit INT TERM EXIT
-cleanup_exit()
-{
- # cleanup here, only in case of error in this script
- # normal cleanup deferred to later
- [ $? = 0 ] && exit;
- sudo git clean -fdxq
-}
-
-# Create MD5SUMS file
-(cd out && md5sum * > MD5SUMS.txt)
-
-wget -q ${BUILD_URL}consoleText -O out/build-log-$(echo ${JOB_NAME}|sed -e 's/[^A-Za-z0-9._-]/_/g')-${BUILD_NUMBER}.txt
-
-# Publish to snapshots
-test -d ${HOME}/bin || mkdir ${HOME}/bin
-wget https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
-time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- out ${PUB_DEST}
diff --git a/lt-qcom-debian-images/sdcard.sh b/lt-qcom-debian-images/sdcard.sh
deleted file mode 100644
index 6cd7da28d6..0000000000
--- a/lt-qcom-debian-images/sdcard.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-trap cleanup_exit INT TERM EXIT
-
-cleanup_exit()
-{
- # cleanup here, only in case of error in this script
- # normal cleanup deferred to later
- [ $? = 0 ] && exit;
- cd ${WORKSPACE}
- sudo git clean -fdxq
-}
-
-# SDCard installer is only supported in dragonboard-410c
-if [ -z "$SDCARD" ]; then
- exit 0
-fi
-
-# get ROOTFS from FAI config
-ROOTFS_PARTLABEL=$(grep --color=never -Po "^ROOTFS_PARTLABEL=\K.*" class/${FAI_BOARD_CLASS}.var)
-
-# Create boot image for SD boot
-KERNEL_CMDLINE="root=PARTLABEL=${ROOTFS_PARTLABEL} console=tty0 console=${SERIAL_CONSOLE},115200n8 ${KERNEL_CMDLINE_PLATFORM}"
-mkbootimg \
- --kernel Image.gz+dtb \
- --ramdisk out/initrd.img-* \
- --output out/boot-sdcard-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img \
- --pagesize "${BOOTIMG_PAGESIZE}" \
- --base "0x80000000" \
- --cmdline "${KERNEL_CMDLINE}"
-gzip -9 out/boot-sdcard-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img
-
-rm -rf db-boot-tools
-git clone --depth 1 -b master https://git.linaro.org/landing-teams/working/qualcomm/db-boot-tools.git
-# record commit info in build log
-cd db-boot-tools
-git log -1
-
-# Get SD bootloader package
-BL_BUILD_NUMBER=`wget -q --no-check-certificate -O - https://ci.linaro.org/jenkins/job/lt-qcom-bootloader-dragonboard410c/lastSuccessfulBuild/buildNumber`
-wget --progress=dot -e dotbytes=2M \
- http://snapshots.linaro.org/96boards/dragonboard410c/linaro/rescue/${BL_BUILD_NUMBER}/dragonboard-410c-bootloader-sd-linux-${BL_BUILD_NUMBER}.zip
-
-unzip -jd out dragonboard-410c-bootloader-sd-linux-${BL_BUILD_NUMBER}.zip
-cp ${WORKSPACE}/out/boot-sdcard-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz out/boot.img.gz
-gunzip out/boot.img.gz
-
-for rootfs in ${SDCARD}; do
- sz=$(echo $rootfs | cut -f2 -d,)
- rootfs=$(echo $rootfs | cut -f1 -d,)
-
- rm -f out/rootfs.img out/rootfs.img.gz
- cp ${WORKSPACE}/out/${VENDOR}-${OS_FLAVOUR}-${rootfs}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz out/rootfs.img.gz
- gunzip out/rootfs.img.gz
-
- SDCARD=${PLATFORM_NAME}-sdcard-${rootfs}-${OS_FLAVOUR}-${BUILD_NUMBER}
- mkdir -p ${SDCARD}
- sudo ./mksdcard -p dragonboard410c/linux/sdcard.txt -s $sz -i out -o ${SDCARD}/${SDCARD}.img
-
- # create archive for publishing
- cp out/LICENSE ${SDCARD}/
- zip -r ${WORKSPACE}/out/${SDCARD}.zip ${SDCARD}
-done
-
-cd ..
diff --git a/lt-qcom-debian-images/submit_for_testing.sh b/lt-qcom-debian-images/submit_for_testing.sh
deleted file mode 100755
index 1bfc84527c..0000000000
--- a/lt-qcom-debian-images/submit_for_testing.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/bash
-
-if [ -z "${DRY_RUN}" ]; then
- rm -rf configs
- git clone --depth 1 http://git.linaro.org/ci/job/configs.git
-
- export CONFIG_PATH=$(realpath configs)
-
- # Install jinja2-cli and ruamel.yaml, required by submit_for_testing.py
- pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
-else
- export CONFIG_PATH=$(realpath ../)
-fi
-
-# main parameters
-export DEPLOY_OS=debian
-export OS_INFO=debian-${OS_FLAVOUR}
-if [ "${DEVICE_TYPE}" = "dragonboard-410c" ] || [ "${DEVICE_TYPE}" = "dragonboard-820c" ] || [ "${DEVICE_TYPE}" = "dragonboard-845c" ]; then
- export QA_SERVER_PROJECT=${DEPLOY_OS}-${DEVICE_TYPE}
-else
- echo "Device ${DEVICE_TYPE} not supported for testing"
- exit 0
-fi
-export BOOT_OS_PROMPT=\'root@linaro-alip:~#\'
-export LAVA_JOB_PRIORITY="medium"
-
-# boot and rootfs parameters
-export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/boot-${VENDOR}-${OS_FLAVOUR}-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz
-export BOOT_URL_COMP="gz"
-export LXC_BOOT_FILE=$(basename ${BOOT_URL} .gz)
-export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${VENDOR}-${OS_FLAVOUR}-alip-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz
-export ROOTFS_URL_COMP="gz"
-export LXC_ROOTFS_FILE=$(basename ${ROOTFS_URL} .gz)
-
-# Tests settings, thermal isn't work well in debian/db410c causes stall
-if [ "${DEVICE_TYPE}" = "dragonboard-410c" ]; then
- export PM_QA_TESTS="cpufreq cpuidle cpuhotplug cputopology"
- export WLAN_DEVICE="wlan0"
- export WLAN_TIME_DELAY="0s"
- export ETH_DEVICE="eth0"
-elif [ "${DEVICE_TYPE}" = "dragonboard-820c" ]; then
- export PM_QA_TESTS="cpufreq cputopology"
- export WLAN_DEVICE="wlp1s0"
- export WLAN_TIME_DELAY="15s"
- export ETH_DEVICE="enP2p1s0"
-elif [ "${DEVICE_TYPE}" = "dragonboard-845c" ]; then
- export WLAN_DEVICE="wlan0"
- export WLAN_TIME_DELAY="15s"
- export ETH_DEVICE="enx000ec6817901"
- export PM_QA_TESTS="cpufreq cpuidle cpuhotplug cputopology"
-
- export BOOT_OS_PROMPT=\'root@linaro-gnome:~#\'
- export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${VENDOR}-${OS_FLAVOUR}-gnome-${PLATFORM_NAME}-${BUILD_NUMBER}.img.gz
- export LXC_ROOTFS_FILE=$(basename ${ROOTFS_URL} .gz)
-else
- export WLAN_DEVICE="wlan0"
- export WLAN_TIME_DELAY="0s"
- export ETH_DEVICE="eth0"
- export PM_QA_TESTS="cpufreq cpuidle cpuhotplug thermal cputopology"
-fi
-export SMOKE_TESTS="pwd, lsb_release -a, uname -a, ip a, lscpu, vmstat, lsblk"
-
-LAVA_TEMPLATE_PATH=${CONFIG_PATH}/lt-qcom/lava-job-definitions
-cd ${LAVA_TEMPLATE_PATH}
-
-python ${CONFIG_PATH}/openembedded-lkft/submit_for_testing.py \
- --device-type ${DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team qcomlt \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --git-commit ${BUILD_NUMBER} \
- --template-path "${LAVA_TEMPLATE_PATH}" \
- --testplan-path "${LAVA_TEMPLATE_PATH}" \
- ${DRY_RUN} \
- --test-plan testplan/main.yaml testplan/wifi.yaml testplan/bt.yaml
-
-# Submit to PMWG Lava server because it has special hw to do energy probes
-python ${CONFIG_PATH}/openembedded-lkft/submit_for_testing.py \
- --device-type ${DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${PMWG_LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team qcomlt \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --git-commit ${BUILD_NUMBER} \
- --template-path "${LAVA_TEMPLATE_PATH}" \
- --testplan-path "${LAVA_TEMPLATE_PATH}" \
- ${DRY_RUN} \
- --test-plan testplan/pmwg.yaml
diff --git a/lt-qcom-debian-images/test_submit_for_testing.sh b/lt-qcom-debian-images/test_submit_for_testing.sh
deleted file mode 100755
index b89e384575..0000000000
--- a/lt-qcom-debian-images/test_submit_for_testing.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-virtualenv --python=$(which python2) .venv
-source .venv/bin/activate
-pip install Jinja2 requests urllib3 ruamel.yaml==0.16.13
-
-export BUILD_NUMBER=530
-export OS_FLAVOUR=sid
-export VENDOR=linaro
-export PLATFORM_NAME=dragonboard-410c
-export QA_SERVER="http://localhost:8000"
-export QA_REPORTS_TOKEN="secret"
-export LAVA_SERVER=https://validation.linaro.org/RPC2/
-export PMWG_LAVA_SERVER=https://pmwg.validation.linaro.org/RPC2/
-export ARTIFACTORIAL_TOKEN="nosecret"
-export DRY_RUN="--dry-run "
-
-export DEVICE_TYPE=dragonboard-410c
-export PUBLISH_SERVER=https://snapshots.linaro.org/
-export PUB_DEST=96boards/dragonboard410c/${VENDOR}/debian/${BUILD_NUMBER}
-bash submit_for_testing.sh
-
-# cleanup virtualenv
-deactivate
-rm -rf .venv
diff --git a/lt-qcom-linux-aic100.yaml b/lt-qcom-linux-aic100.yaml
deleted file mode 100644
index d93924a262..0000000000
--- a/lt-qcom-linux-aic100.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-- project:
- name: lt-qcom-linux-aic100
- jobs:
- - 'lt-qcom-linux-aic100-{distro}':
- distro: 'bionic'
- - 'lt-qcom-linux-aic100-{distro}':
- distro: 'centos7'
-- job-template:
- name: 'lt-qcom-linux-aic100-{distro}'
-
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro-landing-team-qualcomm-personnel:
- - job-build
- - job-cancel
- - build-discarder:
- artifact-num-to-keep: 10
- parameters:
- - string:
- name: DISTRO
- default: '{distro}'
- disabled: false
- node: docker-{distro}-amd64
- display-name: 'Linux kernel for Qualcomm AIC100 ({distro})'
- wrappers:
- - timestamps
- builders:
- - shell:
- !include-raw-escape: lt-qcom-linux/aic100.sh
- publishers:
- - archive:
- artifacts: 'out/*'
- - email-ext:
- recipients: 'nicolas.dechesne@linaro.org'
- always: true
diff --git a/lt-qcom-linux-aosp.yaml b/lt-qcom-linux-aosp.yaml
deleted file mode 100644
index afa3a574d9..0000000000
--- a/lt-qcom-linux-aosp.yaml
+++ /dev/null
@@ -1,123 +0,0 @@
-- job:
- name: lt-qcom-linux-aosp
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-build
- - job-cancel
- todor.tomov@linaro.org:
- - 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_CONFIGS_arm64
- default: 'qcom_defconfig android-base.config android-recommended.config'
- - string:
- name: KERNEL_BUILD_TARGET
- default: 'all'
- - string:
- name: REFERENCE_BUILD_URL
- default: 'http://snapshots.linaro.org/android/robher-aosp-gendev/413/db410c-userdebug/'
- - string:
- name: AOSP_BUILD_DB410C
- default: 'http://snapshots.linaro.org/96boards/dragonboard410c/linaro/aosp-master/latest/'
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_SERVER_PROJECT
- default: 'linaro-qcomlt-4.14-aosp'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: KERNEL_VERSION
- - string:
- name: KERNEL_BRANCH
- default: 'release/android/qcomlt-4.14'
- disabled: false
- node: master
- display-name: 'Qualcomm LT Linux kernel build for AOSP'
- axes:
- - axis:
- type: user-defined
- name: ARCH
- values:
- - arm64
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- execution-strategy:
- sequential: false
- 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}'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- - shell: |
- #!/bin/bash
- set -ex
- sudo apt-get update
- sudo apt-get install -y ccache bc kmod cpio python-pip
- pip install --user --force-reinstall ruamel.yaml==0.16.13
- pip install --user --force-reinstall Jinja2
- - shell:
- !include-raw: lt-qcom/install-gcc-toolchain.sh
- - inject:
- properties-file: gcc_toolchain_env
- - shell:
- !include-raw: lt-qcom-linux-aosp/fetch-configs.sh
- - shell:
- !include-raw: lt-qcom-linux/builders.sh
- - linaro-publish-token
- - shell:
- !include-raw: lt-qcom-linux-aosp/publisher_vars_db410c.sh
- - inject:
- properties-file: publisher_vars_db410c
- - shell:
- !include-raw: lt-qcom-linux/aosp_publishers.sh
- - shell:
- !include-raw: lt-qcom-linux-aosp/publisher_vars_db820c.sh
- - inject:
- properties-file: publisher_vars_db820c
- - shell:
- !include-raw: lt-qcom-linux/aosp_publishers.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - rpb-openembedded/postbuild.groovy
- - email-ext:
- recipients: 'nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
- matrix-trigger: only-parent
diff --git a/lt-qcom-linux-aosp/fetch-configs.sh b/lt-qcom-linux-aosp/fetch-configs.sh
deleted file mode 100644
index c776046f5b..0000000000
--- a/lt-qcom-linux-aosp/fetch-configs.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-cd ${WORKSPACE}/linux/kernel/configs/
-./android-fetch-configs.sh
diff --git a/lt-qcom-linux-aosp/lava-job-definitions/dragonboard410c/template-boot.yaml b/lt-qcom-linux-aosp/lava-job-definitions/dragonboard410c/template-boot.yaml
deleted file mode 100644
index 96fa31cf60..0000000000
--- a/lt-qcom-linux-aosp/lava-job-definitions/dragonboard410c/template-boot.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-device_type: db410c-android
-job_name: db410c-android
-
-timeouts:
- job:
- minutes: 540
- action:
- minutes: 15
- connection:
- minutes: 2
-priority: medium
-visibility: public
-
-metadata:
- android.build: "${BUILD_NUMBER}"
- android.name: "${JOB_NAME}"
- android.url: "${BUILD_URL}"
- git branch: "${KERNEL_BRANCH}"
- git repo: "${KERNEL_REPO}"
- git commit: "${KERNEL_COMMIT}"
- git describe: "${KERNEL_DESCRIBE}"
- build-url: "${BUILD_URL}"
- series: qcomlt
-
-protocols:
- lava-lxc:
- name: lxc-db410c-test
- distribution: ubuntu
- release: xenial
- arch: amd64
- verbose: true
-
-actions:
-- deploy:
- namespace: tlxc
- timeout:
- minutes: 15
- to: lxc
- packages:
- - wget
- - unzip
- os: debian
-
-- boot:
- namespace: tlxc
- prompts:
- - root@(.*):/#
- - :/
- timeout:
- minutes: 5
- method: lxc
-
-- test:
- namespace: tlxc
- timeout:
- minutes: 10
- definitions:
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/android-platform-tools/install.yaml
- name: install-android-platform-tools-r2600
- parameters:
- LINK: 'https://dl.google.com/android/repository/platform-tools_r26.0.0-linux.zip'
-
-- deploy:
- timeout:
- minutes: 15
- to: fastboot
- namespace: droid
- images:
- boot:
- url: ${DOWNLOAD_URL}/boot-db410c.img
- system:
- url: ${REFERENCE_BUILD_URL}/system.img
- userdata:
- url: ${REFERENCE_BUILD_URL}/userdata.img
- cache:
- url: ${REFERENCE_BUILD_URL}/cache.img
- os: debian
- protocols:
- lava-lxc:
- - action: fastboot-deploy
- request: pre-power-command
- timeout:
- minutes: 2
-
-- boot:
- namespace: droid
- prompts:
- - root@(.*):/#
- - :/
- timeout:
- minutes: 15
- method: fastboot
diff --git a/lt-qcom-linux-aosp/package-aosp-bootimage.sh b/lt-qcom-linux-aosp/package-aosp-bootimage.sh
deleted file mode 100644
index 9057d8ab6b..0000000000
--- a/lt-qcom-linux-aosp/package-aosp-bootimage.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash -xe
-
-cat ${WORKSPACE}/linux/arch/${ARCH}/boot/Image.gz ${WORKSPACE}/linux/arch/${ARCH}/boot/dts/qcom/apq8016-sbc.dtb > Image.gz-dtb
-wget -q https://android-git.linaro.org/platform/system/core.git/plain/mkbootimg/mkbootimg -O mkbootimg
-wget -q ${AOSP_BUILD_DB410C}/ramdisk.img -O ramdisk.img
-python mkbootimg --kernel Image.gz-dtb --ramdisk ramdisk.img --output boot-db410c.img --pagesize 2048 --base 0x80000000 --cmdline 'androidboot.selinux=permissive firmware_class.path=/system/vendor/firmware/'
diff --git a/lt-qcom-linux-aosp/publisher_vars_db410c.sh b/lt-qcom-linux-aosp/publisher_vars_db410c.sh
deleted file mode 100644
index d15dfaaadd..0000000000
--- a/lt-qcom-linux-aosp/publisher_vars_db410c.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-echo "KERNEL_DTBS=qcom/apq8016-sbc.dtb" >publisher_vars_db410c
-echo "PUB_DEST=96boards/dragonboard410c/linaro/aosp/kernel/${BUILD_NUMBER}" >>publisher_vars_db410c
diff --git a/lt-qcom-linux-aosp/publisher_vars_db820c.sh b/lt-qcom-linux-aosp/publisher_vars_db820c.sh
deleted file mode 100644
index 8dfe65ebc5..0000000000
--- a/lt-qcom-linux-aosp/publisher_vars_db820c.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-echo "KERNEL_DTBS=qcom/apq8096-db820c.dtb" >publisher_vars_db820c
-echo "PUB_DEST=96boards/dragonboard820c/linaro/aosp/kernel/${BUILD_NUMBER}" >>publisher_vars_db820c
diff --git a/lt-qcom-linux-aosp/submit_for_testing.sh b/lt-qcom-linux-aosp/submit_for_testing.sh
deleted file mode 100644
index 94a8c2bb88..0000000000
--- a/lt-qcom-linux-aosp/submit_for_testing.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# export VTS_URL=https://snapshots.linaro.org/${PUB_DEST}
-# export CTS_URL=https://snapshots.linaro.org/${PUB_DEST}
-export DEVICE_TYPE=dragonboard410c
-export LAVA_SERVER=https://validation.linaro.org/RPC2/
-export DOWNLOAD_URL=https://snapshots.linaro.org/96boards/dragonboard410c/linaro/aosp/kernel/${BUILD_NUMBER}
-export REFERENCE_BUILD_URL=${REFERENCE_BUILD_URL}
-export KERNEL_COMMIT=${KERNEL_VERSION}
-export KERNEL_BRANCH=${KERNEL_BRANCH}
-export KERNEL_REPO=${KERNEL_REPO_URL}
-export ANDROID_VERSION=aosp-master
-# export VTS_VERSION=$(echo $VTS_URL | awk -F"/" '{print$(NF-1)}')
-# export CTS_VERSION=$(echo $CTS_URL | awk -F"/" '{print$(NF-1)}')
-export QA_BUILD_VERSION=${BUILD_NUMBER}
-
-rm -rf configs
-git clone --depth 1 http://git.linaro.org/ci/job/configs.git
-
-python configs/openembedded-lkft/submit_for_testing.py \
- --device-type ${DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team qcomlt \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --git-commit ${QA_BUILD_VERSION} \
- --template-path configs/lt-qcom-linux-aosp/lava-job-definitions/ \
- --template-names template-boot.yaml \
- --quiet
diff --git a/lt-qcom-linux-automerge-repo-manifest/builders.sh b/lt-qcom-linux-automerge-repo-manifest/builders.sh
deleted file mode 100755
index 7124877bb1..0000000000
--- a/lt-qcom-linux-automerge-repo-manifest/builders.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-git config --global user.name "Linaro CI"
-git config --global user.email "ci_notify@linaro.org"
-git config --global core.sshCommand "ssh -F ${HOME}/qcom.sshconfig"
-
-cat << EOF > ${HOME}/qcom.sshconfig
-Host git.linaro.org
- User git
- UserKnownHostsFile /dev/null
- StrictHostKeyChecking no
-EOF
-chmod 0600 ${HOME}/qcom.sshconfig
-
-QCOMLT_CONFIG_PATH=${PWD}/$(basename ${QCOMLT_CONFIG_REPO_URL})
-git clone -v ${QCOMLT_CONFIG_REPO_URL} ${QCOMLT_CONFIG_PATH}
-
-cd ${QCOMLT_CONFIG_PATH}
-CURRENT_REVISION=$(git rev-parse --short HEAD)
-python ./bin/automerge2repo.py automerge-ci.conf automerge-ci.xml
-git add automerge-ci.xml
-
-git commit -s -m "automerge-ci.xml: Update based on rev ${CURRENT_REVISION}" automerge-ci.xml
-set +e
-diff_msg=$(git diff HEAD..origin/${QCOMLT_CONFIG_BRANCH} -- automerge-ci.xml)
-diff_status=$?
-set -e
-
-# only commit when is not branch previously created or a change exists into automerge-ci.xml
-if [ $diff_status -ne 0 ] || [ ! -z "$diff_msg" ]; then
- echo "Pusing new version of automerge-ci.xml to ${QCOMLT_CONFIG_REPO_URL} ${QCOMLT_CONFIG_BRANCH}..."
- git push ${QCOMLT_CONFIG_REPO_URL} master:${QCOMLT_CONFIG_BRANCH} -f
-fi
-
-exit 0
diff --git a/lt-qcom-linux-automerge.yaml b/lt-qcom-linux-automerge.yaml
deleted file mode 100644
index 867ff78dca..0000000000
--- a/lt-qcom-linux-automerge.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-- job:
- name: lt-qcom-linux-automerge
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- 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: AUTOMERGE_REPO_URL
- default: 'https://git.linaro.org/power/automerge.git'
- - string:
- name: AUTOMERGE_BRANCH
- default: 'master'
- - string:
- name: CONFIG_REPO_URL
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/configs.git'
- - string:
- name: CONFIG_BRANCH
- default: 'master'
- - string:
- name: KERNEL_REPO_URL
- default: 'git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'
- - string:
- name: INTEGRATION_REPO_URL
- default: 'ssh://git.linaro.org/landing-teams/working/qualcomm/kernel-integration.git'
- - string:
- name: INTEGRATION_BRANCH
- default: 'integration-linux-qcomlt'
- - string:
- name: KERNEL_CI_REPO_URL
- default: 'ssh://git.linaro.org/landing-teams/working/qualcomm/kernel.git'
- - string:
- name: KERNEL_CI_BRANCH
- default: 'integration-linux-qcomlt'
- - string:
- name: RERERE_REPO_URL
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/automerge-rrcache.git'
- disabled: false
- node: docker-buster-amd64
- display-name: 'Qualcomm LT Linux kernel Automerge build'
- wrappers:
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'LT_QUALCOMM_PRIVATE_KEY_SSH'
- builders:
- - shell:
- !include-raw: lt-qcom-linux/builders-deps.sh
- - shell:
- !include-raw: lt-qcom-linux-automerge/builders.sh
- - inject:
- properties-file: automerge_result_variables
- - shell:
- !include-raw: lt-qcom-linux-automerge/builders-kernel.sh
- - inject:
- properties-file: kernel-build_result_variables
- publishers:
- - email-ext:
- recipients: 'qcomlt-patches@lists.linaro.org'
- always: true
- failure: false
- body: |
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
-
- Automerge repo/branch: ${AUTOMERGE_REPO_URL} ${AUTOMERGE_BRANCH}
-
- Kernel upstream repository: ${KERNEL_REPO_URL}
- Integration repo/branch: ${INTEGRATION_REPO_URL} ${INTEGRATION_BRANCH}
- Kernel CI repo/branch: ${KERNEL_CI_REPO_URL} ${KERNEL_CI_BRANCH}
-
- ${AUTOMERGE_BRANCH_FAILED}
- Automerge configuration:
- ${AUTOMERGE_CONFIG}
-
- DTBS warnings:
- ${DTBS_WARNINGS}
- presend-script:
- !include-raw: lt-qcom-linux-automerge/presend-script.groovy
diff --git a/lt-qcom-linux-automerge/builders-kernel.sh b/lt-qcom-linux-automerge/builders-kernel.sh
deleted file mode 100755
index cba68d953a..0000000000
--- a/lt-qcom-linux-automerge/builders-kernel.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-function build_integration_kernel()
-{
- export ARCH=$1
- export KERNEL_CONFIGS=$2
-
- source install-gcc-toolchain.sh
- export CROSS_COMPILE="ccache $(basename $(ls -1 ${tcbindir}/*-gcc) gcc)"
- export PATH=${tcbindir}:$PATH
-
- make distclean
- make ${KERNEL_CONFIGS}
-
- # build QCOM DTBS with warnings
- if [ "$ARCH" = "arm64" ]; then
- make W=1 arch/$ARCH/boot/dts/qcom/ 2>&1 | tee -a qcom-dtbs.log
- elif [ "$ARCH" = "arm" ]; then
- make W=1 arch/$ARCH/boot/dts/ 2>&1 | tee -a qcom-dtbs.log
- fi
- make -j$(nproc)
-}
-
-if [ ${AUTOMERGE_EXIT_CODE} -ne 0 ]; then
- echo "ERROR: Automerge failed, returned ${AUTOMERGE_EXIT_CODE}"
- exit ${AUTOMERGE_EXIT_CODE}
-fi
-
-if [ ! -z "${AUTOMERGE_BRANCH_FAILED}" ]; then
- echo "ERROR: Automerge failed,"
- echo "${AUTOMERGE_BRANCH_FAILED}"
- exit 1
-fi
-
-pushd ${INTEGRATION_REPO_PATH}
-
-GIT_STATUS=$(git status -s)
-if [ ! -z "${GIT_STATUS}" ]; then
- echo "ERROR: Automerge repository isn't clean,"
- echo "${GIT_STATUS}"
- exit 1
-fi
-
-wget https://git.linaro.org/ci/job/configs.git/plain/lt-qcom/install-gcc-toolchain.sh
-build_integration_kernel "arm" "multi_v7_defconfig"
-build_integration_kernel "arm64" "defconfig"
-
-# record QCOM DTBS warnings, for all builds
-DTBS_WARNINGS=$(sed -n "s/.*: Warning (\(.*\)):.*/\1/p" qcom-dtbs.log | sort | uniq -c | sort -nr | sed ':a;N;$!ba;s/\n/\\n\\\n/g')
-
-if [ ! -z ${KERNEL_CI_REPO_URL} ]; then
- git push -f ${KERNEL_CI_REPO_URL} ${INTEGRATION_BRANCH}:${KERNEL_CI_BRANCH}
-fi
-
-popd
-
-echo "DTBS_WARNINGS=${DTBS_WARNINGS}" > kernel-build_result_variables
diff --git a/lt-qcom-linux-automerge/builders.sh b/lt-qcom-linux-automerge/builders.sh
deleted file mode 100755
index 98a0ccdf70..0000000000
--- a/lt-qcom-linux-automerge/builders.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/bin/bash
-
-echo "Starting ${JOB_NAME} with the following parameters:"
-echo "AUTOMERGE_REPO_URL: ${AUTOMERGE_REPO_URL}"
-echo "AUTOMERGE_BRANCH: ${AUTOMERGE_BRANCH}"
-echo "CONFIG_REPO_URL: ${CONFIG_REPO_URL}"
-echo "CONFIG_BRANCH: ${CONFIG_BRANCH}"
-echo "KERNEL_REPO_URL: ${KERNEL_REPO_URL}"
-echo "INTEGRATION_REPO_URL: ${INTEGRATION_REPO_URL}"
-echo "INTEGRATION_BRANCH: ${INTEGRATION_BRANCH}"
-echo "KERNEL_CI_REPO_URL: ${KERNEL_CI_REPO_URL}"
-echo "KERNEL_CI_BRANCH: ${KERNEL_CI_BRANCH}"
-
-set -ex
-
-git config --global user.name "Linaro CI"
-git config --global user.email "ci_notify@linaro.org"
-git config --global core.sshCommand "ssh -F ${HOME}/qcom.sshconfig"
-
-cat << EOF > ${HOME}/qcom.sshconfig
-Host git.linaro.org
- User git
- UserKnownHostsFile /dev/null
- StrictHostKeyChecking no
-EOF
-chmod 0600 ${HOME}/qcom.sshconfig
-
-# Use a persistent storage to avoid clone every time the integration repository
-PERSISTENT_PATH=${HOME}/srv/qcomlt/linux_automerge
-mkdir -p ${PERSISTENT_PATH}
-KERNEL_REPO_BARE_PATH=${PERSISTENT_PATH}/$(basename ${KERNEL_REPO_URL})
-if [ -d "${KERNEL_REPO_BARE_PATH}" ]; then
- echo "Updating kernel bare repo ..."
- pushd $(pwd)
- cd ${KERNEL_REPO_BARE_PATH}
- if [ -f "gc.log" ]; then
- cat gc.log
- git gc
- git prune
- rm -f gc.log
- fi
- git fetch --all -v
- git update-server-info
- popd
-else
- echo "Cloning integration bare repo ..."
- git clone --bare ${KERNEL_REPO_URL} ${KERNEL_REPO_BARE_PATH}
-fi
-INTEGRATION_REPO_PATH=$(pwd)/$(basename ${INTEGRATION_REPO_URL})
-echo "Cloning integration repo ..."
-git clone ${KERNEL_REPO_BARE_PATH} ${INTEGRATION_REPO_PATH}
-
-pushd $(pwd)
-export INTG_REMOTE=automerge-intg
-cd ${INTEGRATION_REPO_PATH}
-
-git remote add ${INTG_REMOTE} ${INTEGRATION_REPO_URL}
-git fetch ${INTG_REMOTE}
-set +e
-git branch -a | grep "remotes/${INTG_REMOTE}/${INTEGRATION_BRANCH}$"
-branch_exists=$?
-set -e
-if [ $branch_exists -ne 0 ]; then
- echo "Creating initial integration branch ..."
- git push ${INTG_REMOTE} HEAD:${INTEGRATION_BRANCH}
- git fetch -v ${INTG_REMOTE}
-fi
-git checkout -b ${INTEGRATION_BRANCH} ${INTG_REMOTE}/${INTEGRATION_BRANCH}
-popd
-
-echo "Initializing automerge execution ..."
-pushd $(pwd)
-AUTOMERGE_PATH=$(pwd)/automerge
-git clone ${AUTOMERGE_REPO_URL} -b ${AUTOMERGE_BRANCH} ${AUTOMERGE_PATH}
-export PATH=${AUTOMERGE_PATH}:$PATH
-
-cd ${AUTOMERGE_PATH}
-export CONFIG_PATH=''
-if [ ! -z ${CONFIG_REPO_URL} ]; then
- export CONFIG_REPO_PATH=${AUTOMERGE_PATH}/$(basename ${CONFIG_REPO_URL})
- git clone ${CONFIG_REPO_URL} -b ${CONFIG_BRANCH} ${CONFIG_REPO_PATH}
-
- if [ -f ${CONFIG_REPO_PATH}/automerge-ci.conf ]; then
- export CONFIG_PATH=${CONFIG_REPO_PATH}/automerge-ci.conf
- fi
-fi
-
-if [ -f ${CONFIG_PATH} ]; then
- echo "Using configuration from repository"
- cat ${CONFIG_PATH}
-else
- echo "Using default configuration"
- cat <<EOF > automerge-ci.conf
-baseline git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
-EOF
-
- export CONFIG_PATH=${AUTOMERGE_PATH}/automerge-ci.conf
-fi
-
-AUTOMERGE_CONFIG=$(sed ':a;N;$!ba;s/\n/\\n\\\n/g' ${CONFIG_PATH})
-
-# * Disable exit when fail to collect automerge_result_variables for builders-kernel.sh and email
-# * TODO: Add support in ci-merge to create a log (instead of use tee)
-set +e
-set -o pipefail
-ci-merge -l ${INTEGRATION_REPO_PATH} -r ${INTEGRATION_REPO_URL} -i ${INTEGRATION_BRANCH} -c ${RERERE_REPO_URL} | tee automerge.log
-AUTOMERGE_EXIT_CODE=$?
-set +o pipefail
-AUTOMERGE_BRANCH_FAILED=$(grep 'Merge failed' automerge.log | sed ':a;N;$!ba;s/\n/\\n\\\n/g')
-set -e
-popd
-
-echo "AUTOMERGE_CONFIG=${AUTOMERGE_CONFIG}" > automerge_result_variables
-echo "AUTOMERGE_BRANCH_FAILED=${AUTOMERGE_BRANCH_FAILED}" >> automerge_result_variables
-echo "AUTOMERGE_EXIT_CODE=${AUTOMERGE_EXIT_CODE}" >> automerge_result_variables
-echo "INTEGRATION_REPO_PATH=${INTEGRATION_REPO_PATH}" >> automerge_result_variables
diff --git a/lt-qcom-linux-automerge/presend-script.groovy b/lt-qcom-linux-automerge/presend-script.groovy
deleted file mode 100644
index 41b1cd02f3..0000000000
--- a/lt-qcom-linux-automerge/presend-script.groovy
+++ /dev/null
@@ -1,3 +0,0 @@
-automerge_config = sprintf(build.envVars["AUTOMERGE_CONFIG"])
-automerge_branch_failed = sprintf(build.envVars["AUTOMERGE_BRANCH_FAILED"])
-
diff --git a/lt-qcom-linux-build.yaml b/lt-qcom-linux-build.yaml
deleted file mode 100644
index dd37dd19a8..0000000000
--- 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 f8c67fb704..4651e22252 100644
--- a/lt-qcom-linux-integration.yaml
+++ b/lt-qcom-linux-test-integration.yaml
@@ -1,21 +1,22 @@
- job:
- name: lt-qcom-linux-integration
+ name: lt-qcom-linux-test-integration
project-type: matrix
defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
- job-workspace
- linaro-landing-team-qualcomm-personnel:
+ linaro-qualcomm-ci:
- 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: KERNEL_IMAGE_URL
@@ -34,10 +35,13 @@
default: 'noversion'
- string:
name: KERNEL_FLAVOR
- default: 'linux-integration'
+ default: 'integration'
+ - string:
+ name: KERNEL_TEST_FLAVOR
+ default: 'linux-${KERNEL_FLAVOR}'
- string:
name: KERNEL_REPO
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/kernel.git'
+ default: 'https://git.codelinaro.org/linaro/qcomlt/kernel.git'
- string:
name: KERNEL_COMMIT
default: ''
@@ -52,7 +56,7 @@
default: 'unknown'
- string:
name: PUB_DEST
- default: "member-builds/qcomlt/${KERNEL_FLAVOR}/${MACHINE}/${BUILD_NUMBER}"
+ default: "member-builds/qcomlt/${KERNEL_TEST_FLAVOR}/${MACHINE}/${BUILD_NUMBER}"
- string:
name: LAVA_SERVER
default: 'https://validation.linaro.org/RPC2/'
@@ -71,10 +75,9 @@
- string:
name: BOOTRR_GIT_BRANCH
default: 'master'
-
- disabled: false
+ disabled: true
node: master
- display-name: 'Qualcomm LT Linux Integration images build'
+ display-name: 'Qualcomm LT Linux test integration images build'
axes:
- axis:
type: user-defined
@@ -96,7 +99,7 @@
type: slave
name: label
values:
- - docker-stretch-amd64
+ - docker-buster-amd64
execution-strategy:
sequential: false
wrappers:
@@ -110,8 +113,8 @@
credential-id: QA_REPORTS_TOKEN
variable: QA_REPORTS_TOKEN
- text:
- credential-id: QCOMLT_KERNELCI_TOKEN
- variable: QCOMLT_KERNELCI_TOKEN
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: lt-qcom/builders-deps.sh
@@ -133,7 +136,7 @@
- rpb-openembedded/postbuild.groovy
- openembedded-lkft/postbuild.groovy
- email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
+ recipients: 'leonardo.sandoval@linaro.org dmitry.baryshkov@linaro.org'
failure: true
still-failing: true
matrix-trigger: only-parent
diff --git a/lt-qcom-linux-mainline.yaml b/lt-qcom-linux-test-mainline.yaml
index 5b825fcb57..4fee90b3c7 100644
--- a/lt-qcom-linux-mainline.yaml
+++ b/lt-qcom-linux-test-mainline.yaml
@@ -1,21 +1,22 @@
- job:
- name: lt-qcom-linux-mainline
+ name: lt-qcom-linux-test-mainline
project-type: matrix
defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
- job-workspace
- linaro-landing-team-qualcomm-personnel:
+ linaro-qualcomm-ci:
- 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: KERNEL_IMAGE_URL
@@ -34,16 +35,19 @@
default: 'noversion'
- string:
name: KERNEL_FLAVOR
- default: 'linux-mainline'
+ default: 'mainline'
+ - string:
+ name: KERNEL_TEST_FLAVOR
+ default: 'linux-${KERNEL_FLAVOR}'
- string:
name: KERNEL_REPO
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/kernel.git'
+ default: 'https://git.codelinaro.org/linaro/qcomlt/kernel.git'
- string:
name: KERNEL_COMMIT
default: ''
- string:
name: KERNEL_BRANCH
- default: 'integration-linux-qcomlt'
+ default: 'master'
- string:
name: KERNEL_DESCRIBE
default: ''
@@ -52,7 +56,7 @@
default: 'unknown'
- string:
name: PUB_DEST
- default: "member-builds/qcomlt/${KERNEL_FLAVOR}/${MACHINE}/${BUILD_NUMBER}"
+ default: "member-builds/qcomlt/${KERNEL_TEST_FLAVOR}/${MACHINE}/${BUILD_NUMBER}"
- string:
name: LAVA_SERVER
default: 'https://validation.linaro.org/RPC2/'
@@ -71,9 +75,9 @@
- string:
name: BOOTRR_GIT_BRANCH
default: 'master'
- disabled: false
+ disabled: true
node: master
- display-name: 'Qualcomm LT Linux Mainline images build'
+ display-name: 'Qualcomm LT Linux test mainline images build'
axes:
- axis:
type: user-defined
@@ -95,7 +99,7 @@
type: slave
name: label
values:
- - docker-stretch-amd64
+ - docker-buster-amd64
execution-strategy:
sequential: false
wrappers:
@@ -109,8 +113,8 @@
credential-id: QA_REPORTS_TOKEN
variable: QA_REPORTS_TOKEN
- text:
- credential-id: QCOMLT_KERNELCI_TOKEN
- variable: QCOMLT_KERNELCI_TOKEN
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: lt-qcom/builders-deps.sh
@@ -132,7 +136,7 @@
- rpb-openembedded/postbuild.groovy
- openembedded-lkft/postbuild.groovy
- email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
+ recipients: 'leonardo.sandoval@linaro.org dmitry.baryshkov@linaro.org'
failure: true
still-failing: true
matrix-trigger: only-parent
diff --git a/lt-qcom-linux-release.yaml b/lt-qcom-linux-test-release.yaml
index 9727979910..06c68e0362 100644
--- a/lt-qcom-linux-release.yaml
+++ b/lt-qcom-linux-test-release.yaml
@@ -1,21 +1,22 @@
- job:
- name: lt-qcom-linux-release
+ name: lt-qcom-linux-test-release
project-type: matrix
defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
- job-workspace
- linaro-landing-team-qualcomm-personnel:
+ linaro-qualcomm-ci:
- 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: MACHINES
@@ -37,16 +38,19 @@
default: 'noversion'
- string:
name: KERNEL_FLAVOR
- default: 'linux-release'
+ default: 'release'
+ - string:
+ name: KERNEL_TEST_FLAVOR
+ default: 'linux-${KERNEL_FLAVOR}'
- string:
name: KERNEL_REPO
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/kernel.git'
+ default: 'https://git.codelinaro.org/linaro/qcomlt/kernel.git'
- string:
name: KERNEL_COMMIT
default: ''
- string:
name: KERNEL_BRANCH
- default: 'integration-linux-qcomlt'
+ default: 'release/qcomlt-'
- string:
name: KERNEL_DESCRIBE
default: ''
@@ -54,11 +58,8 @@
name: KERNEL_TOOLCHAIN
default: 'unknown'
- string:
- name: RELEASE_NAME
- default: ''
- - string:
name: PUB_DEST
- default: "member-builds/qcomlt/${KERNEL_FLAVOR}/${RELEASE_NAME}/${MACHINE}/${BUILD_NUMBER}"
+ default: "member-builds/qcomlt/${KERNEL_TEST_FLAVOR}/${MACHINE}/${BUILD_NUMBER}"
- string:
name: LAVA_SERVER
default: 'https://validation.linaro.org/RPC2/'
@@ -77,9 +78,9 @@
- string:
name: BOOTRR_GIT_BRANCH
default: 'master'
- disabled: false
+ disabled: true
node: master
- display-name: 'Qualcomm LT Linux Release images build'
+ display-name: 'Qualcomm LT Linux test release images build'
axes:
- axis:
type: dynamic
@@ -103,9 +104,6 @@
- text:
credential-id: QA_REPORTS_TOKEN
variable: QA_REPORTS_TOKEN
- - text:
- credential-id: QCOMLT_KERNELCI_TOKEN
- variable: QCOMLT_KERNELCI_TOKEN
builders:
- shell:
!include-raw: lt-qcom/builders-deps.sh
@@ -127,7 +125,7 @@
- rpb-openembedded/postbuild.groovy
- openembedded-lkft/postbuild.groovy
- email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
+ recipients: 'leonardo.sandoval@linaro.org dmitry.baryshkov@linaro.org'
failure: true
still-failing: true
matrix-trigger: only-parent
diff --git a/lt-qcom-linux-test/builders.sh b/lt-qcom-linux-test/builders.sh
index 012e9b7c9e..8028658a11 100755
--- a/lt-qcom-linux-test/builders.sh
+++ b/lt-qcom-linux-test/builders.sh
@@ -202,7 +202,7 @@ case "${MACHINE}" in
./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/
+ ./configs/lt-qcom-linux-test/get_latest_testimage.py https://snapshots.linaro.org/member-builds/qcomlt/testimages/arm64/
;;
esac
RAMDISK_URL=$(cat output.log | grep RAMDISK_URL | cut -d= -f2)
@@ -368,7 +368,7 @@ if [[ ! -z "${BOOTRR_GIT_REPO}" ]]; then
fi
# Create boot image (bootrr), uses systemd autologin root
-boot_file=boot-${KERNEL_FLAVOR}-${KERNEL_VERSION}-${BUILD_NUMBER}-${MACHINE}.img
+boot_file=boot-${KERNEL_TEST_FLAVOR}-${KERNEL_VERSION}-${BUILD_NUMBER}-${MACHINE}.img
skales-mkbootimg \
--kernel $kernel_file \
--ramdisk $overlayed_ramdisk_file \
@@ -381,7 +381,7 @@ skales-mkbootimg \
# Create boot image (functional), sdm845-mtp requires an initramfs to mount the rootfs and then
# exec switch_rootfs, use the same method in other boards too
-boot_rootfs_file=boot-rootfs-${KERNEL_FLAVOR}-${KERNEL_VERSION}-${BUILD_NUMBER}-${MACHINE}.img
+boot_rootfs_file=boot-rootfs-${KERNEL_TEST_FLAVOR}-${KERNEL_VERSION}-${BUILD_NUMBER}-${MACHINE}.img
mkdir -p etc
initrd_release_file=etc/initrd-release
diff --git a/lt-qcom-linux-test/get_latest_testimage.py b/lt-qcom-linux-test/get_latest_testimage.py
index 684978a893..6b66da315f 100755
--- a/lt-qcom-linux-test/get_latest_testimage.py
+++ b/lt-qcom-linux-test/get_latest_testimage.py
@@ -32,21 +32,18 @@ def get_base_url(url, job_url):
return (page, base_url)
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_job_url='https://ci.linaro.org/job/lt-qcom-linux-testimages-desktop/',
output='output.log'):
(page, base_url) = get_base_url(url, job_url)
ramdisk_url = get_image_url(page, base_url, 'initramfs-test-image-.*\.rootfs\.cpio\.gz$')
validate_url(ramdisk_url)
- rootfs_url = get_image_url(page, base_url, 'rpb-console-image-test-.*\.rootfs\.img\.gz$')
+ rootfs_url = get_image_url(page, base_url, 'rpb-console-image-test-.*\.rootfs\.ext4\.gz$')
validate_url(rootfs_url)
print('RAMDISK_URL=%s' % ramdisk_url)
print('ROOTFS_URL=%s' % rootfs_url)
- (page, desktop_base_url) = get_base_url(desktop_url, desktop_job_url)
- rootfs_desktop_url = get_image_url(page, desktop_base_url, 'rpb-desktop-image-test-.*\.rootfs\.img\.gz$')
+ rootfs_desktop_url = get_image_url(page, base_url, 'rpb-desktop-image-test-.*\.rootfs\.ext4\.gz$')
validate_url(rootfs_desktop_url)
print('ROOTFS_DESKTOP_URL=%s' % rootfs_desktop_url)
diff --git a/lt-qcom-linux-test/kernelci.py b/lt-qcom-linux-test/kernelci.py
deleted file mode 100755
index 6d859d2591..0000000000
--- a/lt-qcom-linux-test/kernelci.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/python3
-
-import os
-import sys
-import requests
-import json
-
-from urllib.parse import urljoin
-
-BACKEND_URL = "https://api.kernelci.org"
-
-def main(token, job, arch, defconfig, output='output.log'):
- headers = {
- "Authorization": token
- }
-
- params = {
- "job": job,
- "arch": arch,
- "defconfig_full": defconfig,
- "date_range": 2,
- "status": "PASS",
- }
-
- url = urljoin(BACKEND_URL, "/builds")
- req = requests.get(url, params=params, headers=headers)
- if req.status_code != 200:
- raise Exception("Unable to download %s" % url)
-
- resp = req.json()
-
- os.makedirs(".builds", exist_ok=True)
- for build in resp['result']:
- status = '.builds/' + '_'.join([build[key] for key in ['job', 'git_describe', 'arch', 'defconfig_full']])
- if os.access(status, os.R_OK):
- continue
-
- workdir = '/'.join([build[key] for key in ['job', 'git_describe', 'arch', 'defconfig_full']])
- with open(status, 'w') as f:
- os.utime(status)
-
- print("Found something!")
- res_url = "https://storage.kernelci.org/" + build['file_server_resource'] + "/"
- print(res_url)
- with open(output, 'w') as f:
- f.write("KERNEL_IMAGE_URL=" + res_url + build['kernel_image'] + '\n')
- f.write("KERNEL_MODULES_URL=" + res_url + build['modules'] + '\n')
- f.write("KERNEL_DT_URL=" + res_url + build['dtb_dir'] + '\n')
- f.write("KERNEL_CONFIG=" + build['defconfig_full'] + '\n')
- f.write("KERNEL_VERSION=" + build['git_describe'] + '\n')
- f.write("KERNEL_REPO=" + build['git_url'] + '\n')
- f.write("KERNEL_COMMIT=" + build['git_commit'] + '\n')
- f.write("KERNEL_BRANCH=" + build['git_branch'] + '\n')
- f.write("KERNEL_DESCRIBE=" + build['git_describe'] + '\n')
- f.write("KERNEL_TOOLCHAIN=" + build['compiler_version_full'] + '\n')
-
- # let's quit, process one new job at max
- sys.exit(0)
-
- # nothing to do
- sys.exit(1)
-
-if __name__ == "__main__":
- main(*sys.argv[1:])
diff --git a/lt-qcom-linux-test/linaroci.py b/lt-qcom-linux-test/linaroci.py
deleted file mode 100755
index e21c23a2c8..0000000000
--- a/lt-qcom-linux-test/linaroci.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-import os
-import urllib.request
-import urllib.error
-import re
-import dateutil.parser
-
-from bs4 import BeautifulSoup, SoupStrainer
-
-kernel_info_vars = [ "KERNEL_REPO", "KERNEL_COMMIT", "KERNEL_BRANCH",
- "KERNEL_CONFIG", "KERNEL_VERSION", "KERNEL_DESCRIBE", "KERNEL_TOOLCHAIN" ]
-
-def _find_last_build_in_linaro_ci(url):
- last_build = -1
- rex = re.compile('(?P<last_build>\d+)')
- f = urllib.request.urlopen(url)
- page = f.read().decode("utf-8")
- soup = BeautifulSoup(page, "html.parser")
- div = soup.find(id="content")
- latest_found = False
- for tr in div.select('table > tr'):
- if latest_found:
- m = rex.search(tr.text)
- if m:
- last_build = int(m.group('last_build'))
- break
- if 'latest' in tr.text:
- latest_found = True
-
- return last_build
-
-
-def get_linaro_ci_build(url):
- last_build = _find_last_build_in_linaro_ci(url)
- if last_build == -1:
- print('ERROR: Unable to find last build (%s)' % url)
- sys.exit(1)
-
- url = '%s/%d/' % (url, last_build)
- f = urllib.request.urlopen(url)
- page = f.read().decode("utf-8")
-
- image_url = url + 'Image'
- dt_url = url + "dtbs"
- modules_url = url + 'kernel-modules.tar.xz'
-
- kernel_info = {}
- rex = re.compile("^(?P<name>.*): (?P<var>.*)$")
- soup = BeautifulSoup(page, "html.parser")
- div = soup.find(id="content")
- kernel_info = {}
- for li in div.select('p > ul > li'):
- m = rex.search(li.text)
- if m:
- for v in kernel_info_vars:
- if v == m.group('name'):
- kernel_info[v] = m.group('var')
-
- return (image_url, dt_url, modules_url, kernel_info)
-
-
-# XXX: When the Jenkins trigger detects a new build (URL change) dosen't mean that the kernel
-# defconfig build we are looking for is done so this check is needed to try in loop mode
-# until defconfig is available and not register the build as done.
-def validate_url(url):
- urllib.request.urlopen(url)
-
-
-def main():
- linaro_ci_base_url = os.environ.get('LINARO_CI_BASE_URL',
- 'https://snapshots.linaro.org/member-builds/qcomlt/kernel/')
-
- machines = os.environ.get('MACHINES', 'apq8016-sbc apq8096-db820c').split()
- builds_url = os.environ.get('BUILDS_URL',
- 'https://snapshots.linaro.org/member-builds/qcomlt/linux-integration/%s/')
-
- machine_avail = os.environ.get('KERNEL_BUILD_MACHINE_AVAIL', False)
-
- image_url = None
- modules_url = None
- dt_url = None
- kernel_info = None
-
- (image_url, dt_url, modules_url, kernel_info) = get_linaro_ci_build(linaro_ci_base_url)
-
- # Check that all DTBS exist, if machine_avail is set only remove from final
- # machine list.
- for m in machines[:]:
- dt_file_url = dt_url + "/qcom/%s.dtb" % m
- try:
- validate_url(dt_file_url)
- except urllib.error.HTTPError as err:
- if err.code == 404:
- if machine_avail:
- machines.remove(m)
- else:
- raise Exception("DTB not found: %s" % dt_file_url)
- else:
- raise
-
- if machine_avail and not machines:
- raise Exception("No machines available to build")
-
- print("KERNEL_IMAGE_URL=%s" % image_url)
- validate_url(image_url)
- print("KERNEL_MODULES_URL=%s" % modules_url)
- validate_url(modules_url)
- print("KERNEL_DT_URL=%s" % dt_url)
- for v in kernel_info.keys():
- print("%s=%s" % (v, kernel_info[v]))
-
- print("MACHINES=%s" % ' '.join(machines))
-
-
-if __name__ == '__main__':
- try:
- ret = main()
- except Exception:
- ret = 1
- import traceback
- traceback.print_exc()
- sys.exit(ret)
diff --git a/lt-qcom-linux-test/submit_for_testing.sh b/lt-qcom-linux-test/submit_for_testing.sh
index 24a8096df0..b82ee9d8c7 100755
--- a/lt-qcom-linux-test/submit_for_testing.sh
+++ b/lt-qcom-linux-test/submit_for_testing.sh
@@ -35,19 +35,8 @@ function create_testing_variables_file () {
EOF
}
-rm -rf lava-test-plans
-if [ "$LAVA_TEST_PLANS_GIT_REPO" ]; then
- git clone --depth 1 $LAVA_TEST_PLANS_GIT_REPO lava-test-plans
-else
- git clone --depth 1 https://github.com/Linaro/lava-test-plans.git
-fi
-export LAVA_TEST_CASES_PATH=$(realpath lava-test-plans)
-pip3 install -r "$LAVA_TEST_CASES_PATH/requirements.txt"
-
-SEND_TESTJOB=false
case "${MACHINE}" in
- apq8016-sbc|apq8096-db820c|sdm845-mtp|sdm845-db845c|qcs404-evb-4000)
- SEND_TESTJOB=true
+ apq8016-sbc|apq8096-db820c|sdm845-mtp|sdm845-db845c|qcs404-evb-4000|sm8150-mtp|sm8250-mtp|sm8350-mtp)
export SMOKE_TESTS="pwd, uname -a, ip a, vmstat, lsblk, lscpu"
export WLAN_DEVICE="wlan0"
@@ -66,13 +55,40 @@ case "${MACHINE}" in
export LAVA_DEVICE_TYPE="sdm845-mtp"
elif [ ${MACHINE} = "qcs404-evb-4000" ]; then
export LAVA_DEVICE_TYPE="qcs404-evb-4k"
+ else
+ export LAVA_DEVICE_TYPE="${MACHINE}"
fi
;;
*)
- echo "Skip LAVA_DEVICE_TYPE for ${MACHINE}"
+ echo "No LAVA test for ${MACHINE}"
+ exit
;;
esac
+rm -rf lava-test-plans
+if [ "$LAVA_TEST_PLANS_GIT_REPO" ]; then
+ git clone --depth 1 $LAVA_TEST_PLANS_GIT_REPO lava-test-plans
+else
+ git clone --depth 1 https://github.com/Linaro/lava-test-plans.git
+fi
+
+# lava-test-plans setup
+pushd lava-test-plans
+git rev-parse HEAD
+
+# TODO: workaround while project requirements file is created again
+if [ ! -f requirements.txt ]; then
+ cat << EOF > requirements.txt
+requests
+ruamel.yaml
+Jinja2
+docker
+configobj
+EOF
+fi
+pip3 install -r requirements.txt
+popd
+
# Select which testcases will be send to LAVA
# - bootrr on integration, mainline and release.
# - smoke on integration, mainline and release with Dragonboard machines.
@@ -84,13 +100,37 @@ case "${MACHINE}" in
;;
esac
-if [ $SEND_TESTJOB = true ]; then
- export LAVA_JOB_PRIORITY="high"
- export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_FILE}
+export LAVA_JOB_PRIORITY="high"
+export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_FILE}
+export BOOT_URL_COMP=
+export LXC_BOOT_FILE=$(basename ${BOOT_URL})
+
+create_testing_variables_file out/submit_for_testing_bootrr.yaml
+
+cd lava-test-plans
+./submit_for_testing.py \
+ --device-type ${LAVA_DEVICE_TYPE} \
+ --build-number ${KERNEL_DESCRIBE} \
+ --lava-server ${LAVA_SERVER} \
+ --qa-server ${QA_SERVER} \
+ --qa-server-team qcomlt \
+ --qa-server-project ${QA_SERVER_PROJECT} \
+ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \
+ ${DRY_RUN} \
+ --test-case testcases/kernel-bootrr.yaml \
+ --variables ../out/submit_for_testing_bootrr.yaml
+cd ..
+
+if [ $SMOKE_TEST_CASE = true ]; then
+ export LAVA_JOB_PRIORITY="medium"
+ export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_ROOTFS_FILE}
export BOOT_URL_COMP=
export LXC_BOOT_FILE=$(basename ${BOOT_URL})
+ export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_FILE}
+ export ROOTFS_URL_COMP="gz"
+ export LXC_ROOTFS_FILE=$(basename ${ROOTFS_FILE} .gz)
- create_testing_variables_file out/submit_for_testing_bootrr.yaml
+ create_testing_variables_file out/submit_for_testing_rootfs.yaml
cd lava-test-plans
./submit_for_testing.py \
@@ -100,79 +140,53 @@ if [ $SEND_TESTJOB = true ]; then
--qa-server ${QA_SERVER} \
--qa-server-team qcomlt \
--qa-server-project ${QA_SERVER_PROJECT} \
- --testplan-device-path projects/lt-qcom/devices \
+ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \
${DRY_RUN} \
- --test-case testcases/kernel-bootrr.yaml \
- --variables ../out/submit_for_testing_bootrr.yaml
+ --test-case testcases/kernel-smoke.yaml \
+ --variables ../out/submit_for_testing_rootfs.yaml
cd ..
+fi
+
+if [ $DESKTOP_TEST_CASE = true ] || [ $MULTIMEDIA_TEST_CASE = true ]; then
+ export LAVA_JOB_PRIORITY="medium"
+ export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_ROOTFS_FILE}
+ export BOOT_URL_COMP=
+ export LXC_BOOT_FILE=$(basename ${BOOT_URL})
+ export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_DESKTOP_FILE}
+ export ROOTFS_URL_COMP="gz"
+ export LXC_ROOTFS_FILE=$(basename ${ROOTFS_DESKTOP_FILE} .gz)
+
+ create_testing_variables_file out/submit_for_testing_rootfs_desktop.yaml
+fi
- if [ $SMOKE_TEST_CASE = true ]; then
- export LAVA_JOB_PRIORITY="medium"
- export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_ROOTFS_FILE}
- export BOOT_URL_COMP=
- export LXC_BOOT_FILE=$(basename ${BOOT_URL})
- export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_FILE}
- export ROOTFS_URL_COMP="gz"
- export LXC_ROOTFS_FILE=$(basename ${ROOTFS_FILE} .gz)
-
- create_testing_variables_file out/submit_for_testing_rootfs.yaml
-
- cd lava-test-plans
- ./submit_for_testing.py \
- --device-type ${LAVA_DEVICE_TYPE} \
- --build-number ${KERNEL_DESCRIBE} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team qcomlt \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --testplan-device-path projects/lt-qcom/devices \
- ${DRY_RUN} \
- --test-case testcases/kernel-smoke.yaml \
- --variables ../out/submit_for_testing_rootfs.yaml
- cd ..
- fi
-
- if [ $DESKTOP_TEST_CASE = true ] || [ $MULTIMEDIA_TEST_CASE = true ]; then
- export LAVA_JOB_PRIORITY="medium"
- export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_ROOTFS_FILE}
- export BOOT_URL_COMP=
- export LXC_BOOT_FILE=$(basename ${BOOT_URL})
- export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_DESKTOP_FILE}
- export ROOTFS_URL_COMP="gz"
- export LXC_ROOTFS_FILE=$(basename ${ROOTFS_DESKTOP_FILE} .gz)
-
- create_testing_variables_file out/submit_for_testing_rootfs_desktop.yaml
- fi
-
- if [ $DESKTOP_TEST_CASE = true ]; then
- cd lava-test-plans
- ./submit_for_testing.py \
- --device-type ${LAVA_DEVICE_TYPE} \
- --build-number ${KERNEL_DESCRIBE} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team qcomlt \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --testplan-device-path projects/lt-qcom/devices \
- ${DRY_RUN} \
- --test-case testcases/kernel-desktop.yaml \
- --variables ../out/submit_for_testing_rootfs_desktop.yaml
- cd ..
- fi
-
- if [ $MULTIMEDIA_TEST_CASE = true ]; then
- cd lava-test-plans
- ./submit_for_testing.py \
- --device-type ${LAVA_DEVICE_TYPE} \
- --build-number ${KERNEL_DESCRIBE} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team qcomlt \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --testplan-device-path projects/lt-qcom/devices \
- ${DRY_RUN} \
- --test-case testcases/kernel-multimedia.yaml \
- --variables ../out/submit_for_testing_rootfs_desktop.yaml
- cd ..
- fi
+if [ $DESKTOP_TEST_CASE = true ]; then
+ cd lava-test-plans
+ ./submit_for_testing.py \
+ --device-type ${LAVA_DEVICE_TYPE} \
+ --build-number ${KERNEL_DESCRIBE} \
+ --lava-server ${LAVA_SERVER} \
+ --qa-server ${QA_SERVER} \
+ --qa-server-team qcomlt \
+ --qa-server-project ${QA_SERVER_PROJECT} \
+ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \
+ ${DRY_RUN} \
+ --test-case testcases/kernel-desktop.yaml \
+ --variables ../out/submit_for_testing_rootfs_desktop.yaml
+ cd ..
+fi
+
+if [ $MULTIMEDIA_TEST_CASE = true ]; then
+ cd lava-test-plans
+ ./submit_for_testing.py \
+ --device-type ${LAVA_DEVICE_TYPE} \
+ --build-number ${KERNEL_DESCRIBE} \
+ --lava-server ${LAVA_SERVER} \
+ --qa-server ${QA_SERVER} \
+ --qa-server-team qcomlt \
+ --qa-server-project ${QA_SERVER_PROJECT} \
+ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \
+ ${DRY_RUN} \
+ --test-case testcases/kernel-multimedia.yaml \
+ --variables ../out/submit_for_testing_rootfs_desktop.yaml
+ cd ..
fi
diff --git a/lt-qcom-linux-test/test_submit_for_testing.sh b/lt-qcom-linux-test/test_submit_for_testing.sh
index 930b725d78..af137f3a53 100755
--- a/lt-qcom-linux-test/test_submit_for_testing.sh
+++ b/lt-qcom-linux-test/test_submit_for_testing.sh
@@ -10,7 +10,7 @@ export LAVA_TEST_PLANS_GIT_REPO=https://github.com/alimon/lava-test-plans.git
export BUILD_NUMBER=774
export BUILD_URL=https://ci.linaro.org/job/lt-qcom-linux-integration/774/MACHINE=apq8016-sbc,label=docker-stretch-amd64/
-export KERNEL_REPO=https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/
+export KERNEL_REPO=https://git.codelinaro.org/linaro/qcomlt/kernel.git/
export KERNEL_BRANCH=integration-linux-qcomlt
export KERNEL_COMMIT=d975b65255b62891a533fa57196a7bd1097a7825
export KERNEL_DESCRIBE=v5.11-439-gd975b65255b6
diff --git a/lt-qcom-linux-testimages-desktop.yaml b/lt-qcom-linux-testimages-desktop.yaml
deleted file mode 100644
index c4c3eb6208..0000000000
--- a/lt-qcom-linux-testimages-desktop.yaml
+++ /dev/null
@@ -1,112 +0,0 @@
-- job:
- name: lt-qcom-linux-testimages-desktop
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- parameters:
- - string:
- name: IMAGES
- default: 'rpb-desktop-image-test'
- - string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
- - string:
- name: MANIFEST_BRANCH_PREFIX
- default: 'qcom/'
- - string:
- name: MANIFEST_BRANCH
- default: 'master'
- - string:
- name: DISTRO
- default: 'rpb'
- - string:
- name: QCOM_USERSPACE_TOOLS
- default: 'fastrpc pd-mapper qrtr rmtfs tqftpserv'
- - string:
- name: BASE_URL
- default: 'https://snapshots.linaro.org/'
- disabled: false
- node: master
- display-name: 'Qualcomm LT User space for Desktop kernel testing'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'qemuarm64'
- - 'qemuarm'
- - 'qcom-armv8a'
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'OE_COMMIT_BOT_KEY'
- builders:
- - shell: |
- #!/bin/bash
- echo "PUB_DEST=member-builds/qcomlt/testimages-desktop/$(echo ${MACHINE} | sed 's/qemu//')/${BUILD_NUMBER}" > pub_dest_parameters
- # ensure that we generate the right image type, by default qemu* only generates .ext4, we need .ext4.gz
- echo "IMAGE_FSTYPES_remove = \"ext4\"" > auto.conf
- echo "IMAGE_FSTYPES_append = \" ext4.gz\"" >> auto.conf
- # enable mesa-dev to test freedreno using deqp
- echo "MESA_DEV = \"1\"" >> auto.conf
- echo "CORE_IMAGE_EXTRA_INSTALL += \"mesa-ci\"" >> auto.conf
- echo "PACKAGECONFIG_append_pn-mesa = \"freedreno xa\"" >> auto.conf
-
- if [ "${MACHINE}" = "qcom-armv8a" ]; then
- # install firmware
- echo "NO_RECOMMENDATIONS = \"\"" >> auto.conf
- # remove kernel and modules to beign installed
- echo "MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS_remove = \"kernel-modules\"" >> auto.conf
- echo "RDEPENDS_packagegroup-rpb_remove = \"kernel-modules\"" >> auto.conf
- echo "PACKAGE_EXCLUDE_append = \" kernel*\"" >> auto.conf
- else
- # configure serial in rpb-desktop-image-test
- echo "SERIAL_CONSOLES = \"115200;ttyMSM0\"" >> auto.conf
- # add ext4 block size to 4096, boards with UFS storage needs it
- echo "EXTRA_IMAGECMD_ext4 += \" -b 4096 \"" >> auto.conf
-
- # add machine dependent qcom services to initramfs and rpb images
- echo "CORE_IMAGE_EXTRA_INSTALL += \"${QCOM_USERSPACE_TOOLS}\"" >> auto.conf
- echo "PACKAGE_INSTALL_append = \" ${QCOM_USERSPACE_TOOLS}\"" >> auto.conf
- fi
- - inject:
- properties-file: pub_dest_parameters
- - shell:
- !include-raw: rpb-openembedded/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw: rpb-openembedded/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-testimages.yaml b/lt-qcom-linux-testimages.yaml
index ae28912213..bc5783621e 100644
--- a/lt-qcom-linux-testimages.yaml
+++ b/lt-qcom-linux-testimages.yaml
@@ -2,34 +2,31 @@
name: lt-qcom-linux-testimages
project-type: matrix
defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
- job-workspace
- linaro-landing-team-qualcomm-personnel:
+ linaro-qualcomm-ci:
- 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: IMAGES
- default: 'initramfs-tiny-image initramfs-test-image rpb-console-image-test'
+ default: 'initramfs-tiny-image initramfs-test-image rpb-console-image-test rpb-desktop-image-test'
- string:
name: MANIFEST_URL
default: 'https://github.com/96boards/oe-rpb-manifest.git'
- string:
- name: MANIFEST_BRANCH_PREFIX
- default: 'qcom/'
- - string:
name: MANIFEST_BRANCH
- default: 'master'
+ default: 'qcom/master'
- string:
name: DISTRO
default: 'rpb'
@@ -39,7 +36,7 @@
- string:
name: BASE_URL
default: 'https://snapshots.linaro.org/'
- disabled: false
+ disabled: true
node: master
display-name: 'Qualcomm LT User space for kernel testing'
axes:
@@ -50,15 +47,15 @@
- 'qemuarm64'
- 'qemuarm'
- 'qcom-armv8a'
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
execution-strategy:
sequential: false
wrappers:
- timestamps
+ - workspace-cleanup
+ - credentials-binding:
+ - text:
+ credential-id: TUXSUITE_TOKEN
+ variable: TUXSUITE_TOKEN
- ssh-agent-credentials:
users:
- 'OE_COMMIT_BOT_KEY'
@@ -66,36 +63,49 @@
- shell: |
#!/bin/bash
echo "PUB_DEST=member-builds/qcomlt/testimages/$(echo ${MACHINE} | sed 's/qemu//')/${BUILD_NUMBER}" > pub_dest_parameters
+
# ensure that we generate the right image type, by default qemu* only generates .ext4, we need .ext4.gz
- echo "IMAGE_FSTYPES_remove = \"ext4\"" > auto.conf
- echo "IMAGE_FSTYPES_append = \" ext4.gz\"" >> auto.conf
# enable mesa to test freedreno
- echo "PACKAGECONFIG_append_pn-mesa = \"freedreno xa\"" >> auto.conf
+ cat << EOF > local.conf.json
+ {"local_conf" : [
+ "IMAGE_FSTYPES:remove = 'ext4'",
+ "IMAGE_FSTYPES:append = ' ext4.gz'",
+ "PACKAGECONFIG:append:pn-mesa = 'freedreno xa'",
+ "PREFERRED_PROVIDER_virtual/kernel = 'linux-dummy'",
+ "PREFERRED_PROVIDER_android-tools-conf = 'android-tools-conf-configfs'"
+ ]}
+ EOF
if [ "${MACHINE}" = "qcom-armv8a" ]; then
# install firmware
- echo "NO_RECOMMENDATIONS = \"\"" >> auto.conf
# remove kernel and modules to beign installed
- echo "MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS_remove = \"kernel-modules\"" >> auto.conf
- echo "RDEPENDS_packagegroup-rpb_remove = \"kernel-modules\"" >> auto.conf
- echo "PACKAGE_EXCLUDE_append = \" kernel*\"" >> auto.conf
+ cat << EOF >> local.conf.json
+ {"local_conf" : [
+ "MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS:remove = 'kernel-modules'",
+ "RDEPENDS:packagegroup-rpb:remove = 'kernel-modules'",
+ "PACKAGE_EXCLUDE:append = ' kernel-modules'"
+ ]}
+ EOF
else
# configure serial in rpb-console-image-test
- echo "SERIAL_CONSOLES = \"115200;ttyMSM0\"" >> auto.conf
# add ext4 block size to 4096, boards with UFS storage needs it
- echo "EXTRA_IMAGECMD_ext4 += \" -b 4096 \"" >> auto.conf
-
# add machine dependent qcom services to initramfs and rpb images
- echo "CORE_IMAGE_EXTRA_INSTALL += \"${QCOM_USERSPACE_TOOLS}\"" >> auto.conf
- echo "PACKAGE_INSTALL_append = \" ${QCOM_USERSPACE_TOOLS}\"" >> auto.conf
+ cat << EOF >> local.conf.json
+ {"local_conf" : [
+ "SERIAL_CONSOLES = '115200;ttyMSM0'",
+ "EXTRA_IMAGECMD_ext4 += ' -b 4096 '",
+ "CORE_IMAGE_EXTRA_INSTALL += '${QCOM_USERSPACE_TOOLS}'",
+ "PACKAGE_INSTALL:append = ' ${QCOM_USERSPACE_TOOLS}'"
+ ]}
+ EOF
fi
- inject:
properties-file: pub_dest_parameters
+ - linaro-publish-token
- shell:
- !include-raw: rpb-openembedded/builders.sh
+ !include-raw: rpb-openembedded/builders-tux.sh
- inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
+ properties-file: parameters
- shell:
!include-raw: rpb-openembedded/publishers.sh
publishers:
@@ -104,7 +114,7 @@
!include-raw:
- rpb-openembedded/postbuild.groovy
- email-ext:
- recipients: 'nicolas.dechesne@linaro.org, anibal.limon@linaro.org'
+ recipients: 'leonardo.sandoval@linaro.org dmitry.baryshkov@linaro.org'
failure: true
still-failing: true
matrix-trigger: only-parent
diff --git a/lt-qcom-linux.yaml b/lt-qcom-linux.yaml
index 8f7eff87ea..d7eeb4468c 100644
--- a/lt-qcom-linux.yaml
+++ b/lt-qcom-linux.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro-landing-team-qualcomm-personnel:
+ linaro-qualcomm-ci:
- job-build
- job-cancel
- build-discarder:
@@ -18,7 +18,7 @@
parameters:
- string:
name: KERNEL_REPO_URL
- default: 'https://git.linaro.org/landing-teams/working/qualcomm/kernel.git'
+ default: 'https://git.codelinaro.org/linaro/qcomlt/kernel.git'
- string:
name: KERNEL_CONFIGS_arm64
default: 'defconfig distro.config'
@@ -35,6 +35,12 @@
- string:
name: KERNEL_BRANCH
- string:
+ name: KERNEL_FLAVOR
+ default: 'linux'
+ - string:
+ name: KERNEL_DEBIAN
+ default: ''
+ - string:
name: TARGET_REPO
default: 'linaro-overlay-sid'
- string:
@@ -54,10 +60,10 @@
type: slave
name: label
values:
- - docker-stretch-amd64
+ - docker-buster-amd64
execution-strategy:
sequential: false
- disabled: false
+ disabled: true
node: master
display-name: 'Qualcomm LT Dragonboard Linux kernel build'
scm:
@@ -75,6 +81,10 @@
- timestamps
- build-name:
name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
builders:
- shell:
!include-raw: lt-qcom-linux/builders-deps.sh
@@ -84,13 +94,24 @@
properties-file: gcc_toolchain_env
- shell:
!include-raw: lt-qcom-linux/builders.sh
+ - inject:
+ properties-file: kernel_parameters
+ - linaro-publish-token
+ - shell:
+ !include-raw: lt-qcom-linux/builders_linaro_ci.sh
+ - inject:
+ properties-file: pub_dest_parameters
+ - shell:
+ !include-raw: lt-qcom/publishers.sh
- trigger-builds:
+ - project: 'lt-qcom-linux-test-${KERNEL_FLAVOR}'
+ property-file: test_params
- project: 'build-package-obs'
property-file: params
block: true
publishers:
- email-ext:
- recipients: 'nicolas.dechesne@linaro.org anibal.limon@linaro.org'
+ recipients: 'leonardo.sandoval@linaro.org dmitry.baryshkov@linaro.org'
failure: true
still-failing: true
matrix-trigger: only-parent
diff --git a/lt-qcom-linux/aosp_publishers.sh b/lt-qcom-linux/aosp_publishers.sh
index 133760d666..1193e22715 100644
--- a/lt-qcom-linux/aosp_publishers.sh
+++ b/lt-qcom-linux/aosp_publishers.sh
@@ -29,7 +29,16 @@ wget -q ${BUILD_URL}consoleText -O out/build-log-$(echo ${JOB_NAME}|sed -e 's/[^
# Publish to snapshots
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
-time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- out ${PUB_DEST}
+
+if [[ -z ${CLO_MIGRATION} ]]; then
+ time python3 ${HOME}/bin/linaro-cp.py \
+ --link-latest \
+ out ${PUB_DEST}
+else
+ cd out
+ time ${HOME}/bin/jfrog rt u \
+ --flat=false --include-dirs=true --symlinks=true --detailed-summary \
+ --apikey ${LT_QCOM_CLO_API_KEY} \
+ --url ${PUBLISH_SERVER} \
+ "*" ${PUB_DEST}/
+fi
diff --git a/lt-qcom-linux/builders-deps.sh b/lt-qcom-linux/builders-deps.sh
index 8ac16aefe0..73f46b6256 100644
--- a/lt-qcom-linux/builders-deps.sh
+++ b/lt-qcom-linux/builders-deps.sh
@@ -3,4 +3,9 @@
set -ex
sudo apt-get update
-sudo apt-get install -y ccache bc kmod cpio chrpath gawk texinfo libsdl1.2-dev whiptail diffstat libssl-dev build-essential libgmp-dev libmpc-dev
+sudo apt-get install -y ccache bc kmod cpio chrpath gawk texinfo libsdl1.2-dev whiptail diffstat libssl-dev build-essential libgmp-dev libmpc-dev python3 python3-pip python3-setuptools yamllint libyaml-dev swig rsync python3-dev python3-setuptools-scm python3-wheel
+
+pip3 install --user dtschema
+
+# install jflog client tool, v1, used for publishing artifacts
+(mkdir -p $HOME/bin && cd $HOME/bin && curl -fL https://getcli.jfrog.io | sh)
diff --git a/lt-qcom-linux/builders.sh b/lt-qcom-linux/builders.sh
index 8e3f013e63..774ee11137 100644
--- a/lt-qcom-linux/builders.sh
+++ b/lt-qcom-linux/builders.sh
@@ -29,7 +29,7 @@ if [ -z "${KDEB_CHANGELOG_DIST}" ]; then
KDEB_CHANGELOG_DIST="unstable"
fi
if [ -z "${KERNEL_BUILD_TARGET}" ]; then
- KERNEL_BUILD_TARGET="all"
+ KERNEL_BUILD_TARGET="deb-pkg"
fi
KERNEL_CONFIGS=KERNEL_CONFIGS_$ARCH
@@ -65,18 +65,24 @@ if [ "${UPDATE_DEFCONFIG}" ]; then
cp defconfig arch/${ARCH}/configs
fi
-make KERNELRELEASE=${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
-cd ..
+# We only want to build deb OBS packages on release branches not in linux-integration and linux-mainline.
+if [ "${KERNEL_DEBIAN}" ]; then
+ make KERNELRELEASE=${SRCVERSION}-qcomlt-${ARCH} \
+ KDEB_SOURCENAME=${KERNEL_DEBIAN}-${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}
-cat > params <<EOF
-source=${JOB_URL}/ws/$(echo *.dsc)
-repo=${TARGET_REPO}
+ cat > ${WORKSPACE}/params <<EOF
+ source=${JOB_URL}/ws/$(echo ../*.dsc | sed 's/\.\.\///')
+ repo=${TARGET_REPO}
EOF
+else
+ make KERNELRELEASE=${SRCVERSION}-qcomlt-${ARCH} -j$(nproc)
+fi
+
+make KERNELRELEASE=${SRCVERSION}-qcomlt-${ARCH} -j$(nproc) INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=./INSTALL_MOD_PATH modules_install
+
+cd ..
diff --git a/lt-qcom-linux/builders_linaro_ci.sh b/lt-qcom-linux/builders_linaro_ci.sh
index 6ef642c05d..bdebed5a32 100644
--- a/lt-qcom-linux/builders_linaro_ci.sh
+++ b/lt-qcom-linux/builders_linaro_ci.sh
@@ -17,8 +17,7 @@ mkdir -p out
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
h4. QC LT kernel build
@@ -34,6 +33,24 @@ Build description:
* KERNEL_TOOLCHAIN: ${KERNEL_TOOLCHAIN}
EOF
-
+# Set publication destination into snapshots.linaro.org
BRANCH_NAME_URL=$(echo ${KERNEL_BRANCH} | sed -e 's/[^A-Za-z0-9._-]/_/g')
-echo "PUB_DEST=member-builds/qcomlt/kernel/${BRANCH_NAME_URL}/${BUILD_NUMBER}" > pub_dest_parameters
+PUBLISH_SERVER=https://snapshots.linaro.org/
+PUB_DEST="member-builds/qcomlt/kernel/${BRANCH_NAME_URL}/${BUILD_NUMBER}/${ARCH}"
+echo "PUB_DEST=${PUB_DEST}" > pub_dest_parameters
+
+# Create test_params to trigger lt-qcom-linux-test- builds only for arm64 builds
+if [ "${ARCH}" = "arm64" ]; then
+ cat > ${WORKSPACE}/test_params << EOF
+ KERNEL_IMAGE_URL=${PUBLISH_SERVER}${PUB_DEST}/Image
+ KERNEL_MODULES_URL=${PUBLISH_SERVER}${PUB_DEST}/kernel-modules.tar.xz
+ KERNEL_DT_URL=${PUBLISH_SERVER}${PUB_DEST}/dtbs
+ KERNEL_REPO=${KERNEL_REPO}
+ KERNEL_COMMIT=${KERNEL_COMMIT}
+ KERNEL_BRANCH=${KERNEL_BRANCH}
+ KERNEL_CONFIG=${KERNEL_CONFIG}
+ KERNEL_VERSION=${KERNEL_VERSION}
+ KERNEL_DESCRIBE=${KERNEL_DESCRIBE}
+ KERNEL_TOOLCHAIN=${KERNEL_TOOLCHAIN}
+EOF
+fi
diff --git a/lt-qcom-openembedded-meta-qcom-premerge.yaml b/lt-qcom-openembedded-meta-qcom-premerge.yaml
deleted file mode 100644
index e758405ed3..0000000000
--- a/lt-qcom-openembedded-meta-qcom-premerge.yaml
+++ /dev/null
@@ -1,103 +0,0 @@
-- project:
- name: lt-qcom-openembedded-meta-qcom-premerge
- jobs:
- - lt-qcom-openembedded-meta-qcom-premerge-{branch}:
- branch: 'master'
- machines: !!python/tuple
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - 'qrb5165-rb5'
- - 'qcom-armv8a'
- - 'sdx55-mtp'
- - lt-qcom-openembedded-meta-qcom-premerge-{branch}:
- branch: 'dunfell'
- machines: !!python/tuple
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - 'qrb5165-rb5'
- - 'qcom-armv8a'
-- job-template:
- name: lt-qcom-openembedded-meta-qcom-premerge-{branch}
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - github:
- url: https://github.com/ndechesne/meta-qcom
- parameters:
- - string:
- name: IMAGES
- default: 'core-image-base core-image-weston core-image-x11 initramfs-test-image'
- - string:
- name: POKY_URL
- default: 'http://git.yoctoproject.org/git/poky'
- - string:
- name: DISTRO
- default: 'poky'
- disabled: false
- node: master
- display-name: 'Premerge CI for meta-qcom Layer with Poky ({branch})'
- scm:
- - git:
- url: https://github.com/ndechesne/meta-qcom
- refspec: +refs/pull/*:refs/remotes/origin/pr/*
- name: origin
- basedir: meta-qcom
- branches:
- - ${{sha1}}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- triggers:
- - github-pull-request:
- github-hooks: true
- permit-all: true
- trigger-phrase: '.*(re)?run tests.*'
- cancel-builds-on-update: true
- white-list-target-branches:
- - '{branch}'
- auth-id: 'GITHUB_TOKEN'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values: '{machines}'
- - axis:
- type: user-defined
- name: TCLIBC
- values:
- - 'glibc'
- - 'musl'
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - timestamps
- - timeout:
- timeout: 300
- builders:
- - shell:
- !include-raw-escape: lt-qcom/meta-qcom.sh
- publishers:
- - email-ext:
- recipients: 'nicolas.dechesne@linaro.org'
- always: true
- failure: false
- matrix-trigger: only-parent
diff --git a/lt-qcom-openembedded-rpb-dunfell.yaml b/lt-qcom-openembedded-rpb-dunfell.yaml
deleted file mode 100644
index f96163642e..0000000000
--- a/lt-qcom-openembedded-rpb-dunfell.yaml
+++ /dev/null
@@ -1,124 +0,0 @@
-- job:
- name: lt-qcom-openembedded-rpb-dunfell
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- parameters:
- - string:
- name: IMAGES
- default: 'rpb-console-image rpb-console-image-test'
- - string:
- name: IMAGES_RPB
- default: 'rpb-desktop-image rpb-desktop-image-test'
- - string:
- name: IMAGES_RPB_WAYLAND
- default: 'rpb-weston-image rpb-weston-image-test'
- - string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
- - string:
- name: MANIFEST_BRANCH_PREFIX
- default: 'qcom/'
- - string:
- name: MANIFEST_BRANCH
- default: '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'
- disabled: false
- node: master
- display-name: 'Qualcomm OpenEmbedded RPB (dunfell)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'dragonboard-820c'
- - 'dragonboard-845c'
- - 'qrb5165-rb5'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - rpb-wayland
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - 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
-
- # some machine names we use on 96boards are slightly different
- case "${MACHINE}" in
- dragonboard-410c)
- MACHINE=dragonboard410c
- ;;
- dragonboard-820c)
- MACHINE=dragonboard820c
- ;;
- dragonboard-845c)
- MACHINE=dragonboard845c
- ;;
- esac
-
- echo "PUB_DEST=96boards/${MACHINE}/linaro/openembedded/${MANIFEST_BRANCH}/${BUILD_NUMBER}/${DISTRO}" > pub_dest_parameters
- - inject:
- properties-file: pub_dest_parameters
- - shell:
- !include-raw: rpb-openembedded/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw: rpb-openembedded/publishers.sh
- - shell:
- !include-raw: lt-qcom-openembedded/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - rpb-openembedded/postbuild.groovy
- - openembedded-lkft/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-openembedded-rpb-master.yaml b/lt-qcom-openembedded-rpb-master.yaml
deleted file mode 100644
index a216cf89a5..0000000000
--- a/lt-qcom-openembedded-rpb-master.yaml
+++ /dev/null
@@ -1,114 +0,0 @@
-- job:
- name: lt-qcom-openembedded-rpb-master
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- parameters:
- - string:
- name: IMAGES
- default: 'rpb-console-image'
- - string:
- name: IMAGES_RPB
- default: 'rpb-desktop-image'
- - string:
- name: IMAGES_RPB_WAYLAND
- default: 'rpb-weston-image'
- - string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
- - string:
- name: MANIFEST_BRANCH_PREFIX
- default: 'qcom/'
- - string:
- name: MANIFEST_BRANCH
- default: 'master'
- - string:
- name: BASE_URL
- default: 'https://snapshots.linaro.org/'
- disabled: false
- node: master
- display-name: 'Qualcomm OpenEmbedded RPB (master)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'dragonboard-820c'
- - 'dragonboard-845c'
- - 'qrb5165-rb5'
- - 'qcom-armv8a'
- - 'sdx55-mtp'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - rpb-wayland
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - 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
-
- # some machine names we use on 96boards are slightly different
- case "${MACHINE}" in
- dragonboard-410c)
- MACHINE=dragonboard410c
- ;;
- dragonboard-820c)
- MACHINE=dragonboard820c
- ;;
- dragonboard-845c)
- MACHINE=dragonboard845c
- ;;
- esac
-
- echo "PUB_DEST=96boards/${MACHINE}/linaro/openembedded/${MANIFEST_BRANCH}/${BUILD_NUMBER}/${DISTRO}" > pub_dest_parameters
- - inject:
- properties-file: pub_dest_parameters
- - shell:
- !include-raw: rpb-openembedded/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw: rpb-openembedded/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-openembedded/submit_for_testing.sh b/lt-qcom-openembedded/submit_for_testing.sh
deleted file mode 100755
index 8e849c9150..0000000000
--- a/lt-qcom-openembedded/submit_for_testing.sh
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/bash
-
-if [ -z "${DRY_RUN}" ]; then
- rm -rf configs
- git clone --depth 1 http://git.linaro.org/ci/job/configs.git
- export CONFIG_PATH=$(realpath configs)
-
- # Install jinja2-cli and ruamel.yaml, required by submit_for_testing.py
- pip install --user --force-reinstall jinja2-cli ruamel.yaml==0.16.13
-else
- export CONFIG_PATH=$(realpath ../)
-fi
-
-# main parameters
-export DEPLOY_OS=oe
-export OS_INFO=openembedded-${DISTRO}-${MANIFEST_BRANCH}
-
-# boot and rootfs parameters, BOOT_URL comes from builders.sh
-# and has not compression
-export BOOT_URL_COMP=
-export LXC_BOOT_FILE=$(basename ${BOOT_URL})
-
-export LAVA_JOB_PRIORITY="medium"
-
-case "${MACHINE}" in
- dragonboard-410c|dragonboard-820c|dragonboard-845c)
- export DEVICE_TYPE="${MACHINE}"
-
- # Tests settings, thermal fails in db410c
- export IGNORE_TESTS_REPO="https://git.linaro.org/landing-teams/working/qualcomm/configs.git"
- export GST_IGNORE_TESTS_REPO=${IGNORE_TESTS_REPO}
- export PIGLIT_IGNORE_TESTS_REPO=${IGNORE_TESTS_REPO}
- if [ ${DEVICE_TYPE} = "dragonboard-410c" ]; then
- export PM_QA_TESTS="cpufreq cpuidle cpuhotplug cputopology"
- export WLAN_DEVICE="wlan0"
- export WLAN_TIME_DELAY="0s"
- export ETH_DEVICE="eth0"
- export GST_IGNORE_TESTS_FILE="qa/gst-validate/db410c.ignore"
- export PIGLIT_IGNORE_TESTS_FILE="qa/piglit/db410c.ignore"
-
- export BOOT_OS_PROMPT=\'root@dragonboard-410c:~#\'
- elif [ ${DEVICE_TYPE} = "dragonboard-820c" ]; then
- export PM_QA_TESTS="cpufreq cputopology"
- export WLAN_DEVICE="wlp1s0"
- export WLAN_TIME_DELAY="15s"
- export ETH_DEVICE="enP2p1s0"
- export GST_IGNORE_TESTS_FILE="qa/gst-validate/db820c.ignore"
- export PIGLIT_IGNORE_TESTS_FILE="qa/piglit/db820c.ignore"
-
- export BOOT_OS_PROMPT=\'root@dragonboard-820c:~#\'
- elif [ ${DEVICE_TYPE} = "dragonboard-845c" ]; then
- export PM_QA_TESTS="cpufreq cpuidle cpuhotplug cputopology"
- export WLAN_DEVICE="wlan0"
- export WLAN_TIME_DELAY="15s"
- export ETH_DEVICE="enp1s0u3"
- export GST_IGNORE_TESTS_FILE="qa/gst-validate/db410c.ignore"
- export PIGLIT_IGNORE_TESTS_FILE="qa/piglit/db410c.ignore"
-
- export BOOT_OS_PROMPT=\'root@dragonboard-845c:~#\'
- fi
- export SMOKE_TESTS="pwd, uname -a, ip a, vmstat, lsblk"
- export PTEST_EXCLUDE="bluez5 libxml2 parted python strace"
-
- case "${DISTRO}" in
- rpb)
- export ROOTFS_URL=${ROOTFS_SPARSE_BUILD_URL}
- export ROOTFS_URL_COMP="gz"
- export LXC_ROOTFS_FILE=$(basename ${ROOTFS_URL} .gz)
-
- LAVA_TEMPLATE_PATH=${CONFIG_PATH}/lt-qcom/lava-job-definitions
- cd ${LAVA_TEMPLATE_PATH}
- python ${CONFIG_PATH}/openembedded-lkft/submit_for_testing.py \
- --device-type ${DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team qcomlt \
- --qa-server-project openembedded-rpb-${MANIFEST_BRANCH} \
- --env-suffix="-${DISTRO}" \
- --git-commit ${BUILD_NUMBER} \
- --template-path "${LAVA_TEMPLATE_PATH}" \
- --testplan-path "${LAVA_TEMPLATE_PATH}" \
- ${DRY_RUN} \
- --test-plan testplan/main.yaml testplan/wifi.yaml testplan/bt.yaml
- ;;
- rpb-wayland)
- echo "Currently no tests for rpb-wayland"
- ;;
- esac
- ;;
- *)
- echo "Skip DEVICE_TYPE for ${MACHINE}"
- ;;
-esac
diff --git a/lt-qcom-openembedded/test_submit_for_testing.sh b/lt-qcom-openembedded/test_submit_for_testing.sh
deleted file mode 100755
index 1b93eeeb0e..0000000000
--- a/lt-qcom-openembedded/test_submit_for_testing.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-virtualenv --python=$(which python2) .venv
-source .venv/bin/activate
-pip install Jinja2 requests urllib3 ruamel.yaml==0.16.13
-
-export BUILD_NUMBER=125
-export DISTRO=rpb
-export MANIFEST_BRANCH=thud
-export QA_SERVER="http://localhost:8000"
-export QA_REPORTS_TOKEN="secret"
-export LAVA_SERVER=https://validation.linaro.org/RPC2/
-export DRY_RUN="--dry-run "
-
-export MACHINE=dragonboard-410c
-export BOOT_URL=https://snapshots.linaro.org/96boards/dragonboard410c/linaro/openembedded/thud/125/rpb/boot--4.14-r0-dragonboard-410c-20190409213001-125.img
-export ROOTFS_SPARSE_BUILD_URL=https://snapshots.linaro.org/96boards/dragonboard410c/linaro/openembedded/thud/125/rpb/rpb-console-image-test-dragonboard-410c-20190409213001-125.rootfs.img.gz
-bash submit_for_testing.sh
-
-# cleanup virtualenv
-deactivate
-rm -rf .venv
diff --git a/lt-qcom-u-boot.yaml b/lt-qcom-u-boot.yaml
deleted file mode 100644
index 61e472d330..0000000000
--- a/lt-qcom-u-boot.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-- job:
- name: lt-qcom-u-boot
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- parameters:
- - string:
- name: UBOOT_REPO_URL
- default: 'https://gitlab.denx.de/u-boot/u-boot.git'
- - string:
- name: UBOOT_BRANCH
- default: 'master'
- - string:
- name: PUB_DEST
- default: '96boards/${MACHINE}/linaro/uboot/${BUILD_NUMBER}/'
- disabled: false
- node: master
- display-name: 'Qualcomm U-Boot build'
- scm:
- - git:
- url: ${UBOOT_REPO_URL}
- refspec: +refs/heads/${UBOOT_BRANCH}:refs/remotes/origin/${UBOOT_BRANCH}
- name: origin
- branches:
- - refs/heads/${UBOOT_BRANCH}
- basedir: uboot
- shallow-clone: true
- wipe-workspace: false
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard410c'
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell:
- !include-raw: lt-qcom/builders-deps.sh
- - shell:
- !include-raw: lt-qcom/install-gcc-toolchain.sh
- - inject:
- properties-file: gcc_toolchain_env
- - shell:
- !include-raw: lt-qcom-u-boot/builders.sh
- - 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-u-boot/builders.sh b/lt-qcom-u-boot/builders.sh
deleted file mode 100644
index 9e9dbf16a8..0000000000
--- a/lt-qcom-u-boot/builders.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-export PATH=${tcbindir}:$PATH
-UBOOT_DIR="${WORKSPACE}/uboot"
-OUT_DIR="out"
-
-CONFIG=""
-case "${MACHINE}" in
- dragonboard410c)
- CONFIG="dragonboard410c_defconfig"
- ;;
- *)
- echo "Machine "${MACHINE}" not supported."
- exit 1
- ;;
-esac
-
-make -C ${UBOOT_DIR} distclean
-make -j$(nproc) \
- -C ${UBOOT_DIR} \
- ARCH=arm \
- CROSS_COMPILE=aarch64-none-linux-gnu- \
- ${CONFIG}
-make -j$(nproc) \
- -C ${UBOOT_DIR} \
- ARCH=arm \
- CROSS_COMPILE=aarch64-none-linux-gnu-
-
-mkdir -p ${OUT_DIR}
-
-cat > out/HEADER.textile << EOF
-
-h4. QCOM Landing Team - $BUILD_DISPLAY_NAME
-
-Build description:
-* Build URL: "$BUILD_URL":$BUILD_URL
-* Uboot Repository: "$UBOOT_REPO_URL":$UBOOT_REPO_URL
-* Uboot Branch: $UBOOT_BRANCH
-* Uboot Revision: $GIT_COMMIT
-EOF
-
-git_short_rev="$(echo $GIT_COMMIT | cut -c1-8)"
-
-gzip -k uboot/u-boot.bin
-touch fake_rd.img
-skales-mkbootimg --kernel=uboot/u-boot.bin.gz --output=out/u-boot-$BUILD_NUMBER-$git_short_rev.img --dt=uboot/u-boot.dtb \
- --pagesize 2048 --base 0x80000000 --ramdisk=fake_rd.img --cmdline=""
-cp uboot/u-boot.bin.gz ${OUT_DIR}/u-boot-$BUILD_NUMBER-$git_short_rev.bin.gz
-cp uboot/u-boot.dtb ${OUT_DIR}/u-boot-$BUILD_NUMBER-$git_short_rev.dtb
diff --git a/lt-qcom-yocto-meta-qcom-master.yaml b/lt-qcom-yocto-meta-qcom-master.yaml
deleted file mode 100644
index 264e914768..0000000000
--- a/lt-qcom-yocto-meta-qcom-master.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- job:
- name: lt-qcom-yocto-meta-qcom-master
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- parameters:
- - string:
- name: IMAGES
- default: 'core-image-base core-image-weston core-image-x11 initramfs-test-image'
- - string:
- name: POKY_URL
- default: 'http://git.yoctoproject.org/git/poky'
- - string:
- name: BRANCH
- default: 'master'
- - string:
- name: DISTRO
- default: 'poky'
- disabled: false
- node: master
- display-name: 'Yocto Projet meta-qcom CI'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'dragonboard-820c'
- - 'dragonboard-845c'
- - axis:
- type: user-defined
- name: TCLIBC
- values:
- - 'glibc'
- - 'musl'
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'OE_COMMIT_BOT_KEY'
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- - shell:
- !include-raw: lt-qcom/meta-qcom.sh
- publishers:
- - email-ext:
- recipients: 'nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
- matrix-trigger: only-parent
diff --git a/lt-qcom/builders-deps.sh b/lt-qcom/builders-deps.sh
index 06d020b2ef..7ebdf99b75 100644
--- a/lt-qcom/builders-deps.sh
+++ b/lt-qcom/builders-deps.sh
@@ -20,3 +20,7 @@ export GZ=pigz
rm -rf configs
git clone --depth 1 http://git.linaro.org/ci/job/configs.git
pip3 install --user python-dateutil beautifulsoup4
+
+# install jflog client tool, v1, used for publishing artifacts
+(mkdir -p $HOME/bin && cd $HOME/bin && curl -fL https://getcli.jfrog.io | sh)
+
diff --git a/lt-qcom/lava-job-definitions/devices/dragonboard-410c b/lt-qcom/lava-job-definitions/devices/dragonboard-410c
deleted file mode 100644
index beafa918fc..0000000000
--- a/lt-qcom/lava-job-definitions/devices/dragonboard-410c
+++ /dev/null
@@ -1,13 +0,0 @@
-{% extends "lt-qcom-fastboot.jinja2" %}
-
-{% block device_type %}dragonboard-410c{% endblock %}
-{% block tags %}
-tags:
- - new-firmware
-{% endblock %}
-
-{% if QA_SERVER_PROJECT is defined and QA_SERVER_PROJECT == "linux-master" %}
-{% set video_devices = ({"/dev/video0": "venus-encoder", "/dev/video1": "venus-decoder"}) %}
-{% else %}
-{% set video_devices = ({"/dev/video0": "camss-0", "/dev/video1": "camss-1", "/dev/video2": "camss-2", "/dev/video3": "camss-3", "/dev/video4": "venus-encoder", "/dev/video5": "venus-decoder"}) %}
-{% endif %}
diff --git a/lt-qcom/lava-job-definitions/devices/dragonboard-820c b/lt-qcom/lava-job-definitions/devices/dragonboard-820c
deleted file mode 100644
index 7fa5afbf44..0000000000
--- a/lt-qcom/lava-job-definitions/devices/dragonboard-820c
+++ /dev/null
@@ -1,7 +0,0 @@
-{% extends "lt-qcom-fastboot.jinja2" %}
-
-{% block device_type %}dragonboard-820c{% endblock %}
-{% block tags %}
-{% endblock %}
-
-{% set video_devices = ({"/dev/video0": "venus-encoder", "/dev/video1": "venus-decoder"}) %}
diff --git a/lt-qcom/lava-job-definitions/devices/dragonboard-845c b/lt-qcom/lava-job-definitions/devices/dragonboard-845c
deleted file mode 100644
index 3ad71f5347..0000000000
--- a/lt-qcom/lava-job-definitions/devices/dragonboard-845c
+++ /dev/null
@@ -1,17 +0,0 @@
-{% extends "lt-qcom-fastboot.jinja2" %}
-
-{% block device_type %}dragonboard-845c{% endblock %}
-{% block tags %}
-{% endblock %}
-
-{% if QA_SERVER_PROJECT is defined and QA_SERVER_PROJECT == "linux-master" %}
-{% set fastboot_commands = ['oem select-display-panel none', 'reboot'] %}
-{% else %}
-{% set fastboot_commands = ['oem select-display-panel hdmi', 'reboot'] %}
-{% endif %}
-
-{% set partition = true %}
-{% set PARTITION_URL = "https://images.validation.linaro.org/snapshots.linaro.org/96boards/dragonboard845c/linaro/rescue/28/dragonboard-845c-bootloader-ufs-linux-28/gpt_both0.bin" %}
-{% set LXC_PARTITION_FILE = "gpt_both0.bin" %}
-
-{% set video_devices = ({"/dev/video0": "venus-encoder", "/dev/video1": "venus-decoder"}) %}
diff --git a/lt-qcom/lava-job-definitions/devices/qcs404-evb-1k b/lt-qcom/lava-job-definitions/devices/qcs404-evb-1k
deleted file mode 100644
index 6d05d8e254..0000000000
--- a/lt-qcom/lava-job-definitions/devices/qcs404-evb-1k
+++ /dev/null
@@ -1,11 +0,0 @@
-{% extends "lt-qcom-fastboot.jinja2" %}
-
-{% block device_type %}qcs404-evb-1k{% endblock %}
-{% block tags %}
-{% endblock %}
-
-{% set rootfs_label = 'userdata' %}
-{% set install_packages = false %}
-{% set install_fastboot = false %}
-{% set pre_power_command = false %}
-{% set pre_os_command = false %}
diff --git a/lt-qcom/lava-job-definitions/devices/qcs404-evb-4k b/lt-qcom/lava-job-definitions/devices/qcs404-evb-4k
deleted file mode 100644
index 2523d9d10b..0000000000
--- a/lt-qcom/lava-job-definitions/devices/qcs404-evb-4k
+++ /dev/null
@@ -1,11 +0,0 @@
-{% extends "lt-qcom-fastboot.jinja2" %}
-
-{% block device_type %}qcs404-evb-4k{% endblock %}
-{% block tags %}
-{% endblock %}
-
-{% set rootfs_label = 'userdata' %}
-{% set install_packages = false %}
-{% set install_fastboot = false %}
-{% set pre_power_command = false %}
-{% set pre_os_command = false %}
diff --git a/lt-qcom/lava-job-definitions/devices/sdm845-mtp b/lt-qcom/lava-job-definitions/devices/sdm845-mtp
deleted file mode 100644
index b39de437f8..0000000000
--- a/lt-qcom/lava-job-definitions/devices/sdm845-mtp
+++ /dev/null
@@ -1,11 +0,0 @@
-{% extends "lt-qcom-fastboot.jinja2" %}
-
-{% block device_type %}sdm845-mtp{% endblock %}
-{% block tags %}
-{% endblock %}
-
-{% set rootfs_label = 'userdata' %}
-{% set install_packages = false %}
-{% set install_fastboot = false %}
-{% set pre_power_command = false %}
-{% set pre_os_command = false %}
diff --git a/lt-qcom/lava-job-definitions/lkft-fastboot.jinja2 b/lt-qcom/lava-job-definitions/lkft-fastboot.jinja2
deleted file mode 120000
index 2c7c11f658..0000000000
--- a/lt-qcom/lava-job-definitions/lkft-fastboot.jinja2
+++ /dev/null
@@ -1 +0,0 @@
-../../openembedded-lkft/lava-job-definitions/lkft-fastboot.jinja2 \ No newline at end of file
diff --git a/lt-qcom/lava-job-definitions/lkft.jinja2 b/lt-qcom/lava-job-definitions/lkft.jinja2
deleted file mode 120000
index 01b54b780a..0000000000
--- a/lt-qcom/lava-job-definitions/lkft.jinja2
+++ /dev/null
@@ -1 +0,0 @@
-../../openembedded-lkft/lava-job-definitions/lkft.jinja2 \ No newline at end of file
diff --git a/lt-qcom/lava-job-definitions/lt-qcom-fastboot.jinja2 b/lt-qcom/lava-job-definitions/lt-qcom-fastboot.jinja2
deleted file mode 100644
index 4c8e1c2d2e..0000000000
--- a/lt-qcom/lava-job-definitions/lt-qcom-fastboot.jinja2
+++ /dev/null
@@ -1,239 +0,0 @@
-{% extends "lkft-fastboot.jinja2" %}
-
-{% if install_packages is undefined %}{% set install_packages = true %}{% endif %}
-{% if install_fastboot is undefined %}{% set install_fastboot = true %}{% endif %}
-{% if rootfs is undefined %}{% set rootfs = true %}{% endif %}
-{% if rootfs_label is undefined %}{% set rootfs_label = 'rootfs' %}{% endif %}
-{% if partition is undefined %}{% set partition = false %}{% endif %}
-{% if partition_label is undefined %}{% set partition_label = 'partition:0' %}{% endif %}
-{% if pre_power_command is undefined %}{% set pre_power_command = true %}{% endif %}
-{% if pre_os_command is undefined %}{% set pre_os_command = true %}{% endif %}
-{% if auto_login is undefined %}{% set auto_login = true %}{% endif %}
-{% if apply_overlay_bootimg is undefined %}{% set apply_overlay_bootimg = false %}{% endif %}
-
-
-{% block settings %}
- actions:
- finalize:
- seconds: 60
-{% endblock settings %}
-
-{% block protocols %}
-protocols:
- lava-lxc:
- name: lxc-target
- template: debian
- distribution: debian
- release: stretch
- arch: amd64
- mirror: http://deb.debian.org/debian
-{% endblock protocols %}
-
-{% block actions %}
-- deploy:
- namespace: tlxc
- timeout:
- minutes: 15
- to: lxc
-{% if install_packages == true %}
- packages:
- - wget
- - unzip
- - img2simg
- - simg2img
- - e2fsprogs
- - gzip
- - cpio
- - git
- - mktemp
- - abootimg
-{% endif %}
- os: debian
-
-- boot:
- namespace: tlxc
- prompts:
- - 'root@(.*):/#'
- timeout:
- minutes: 5
- method: lxc
-
-{% if install_fastboot == true %}
-- test:
- namespace: tlxc
- timeout:
- minutes: 10
- definitions:
- - repository: https://github.com/Linaro/test-definitions.git
- from: git
- path: automated/linux/android-platform-tools/install.yaml
- name: install-android-platform-tools-r2905
- parameters:
- LINK: 'https://dl.google.com/android/repository/platform-tools_r29.0.5-linux.zip'
-{% endif %}
-
-{% block deploy_target %}
-- deploy:
- timeout:
- minutes: 40
- to: download
- namespace: target
- images:
- boot:
- url: {{BOOT_URL}}
- compression: {{BOOT_URL_COMP}}
-{% if apply_overlay_bootimg == true %}
- apply-overlay: true
-{% endif %}
-{% if rootfs == true %}
-{% if partition == true %}
- "{{ partition_label }}":
- url: {{ PARTITION_URL }}
-{% endif %}
- {{ rootfs_label }}:
- url: {{ROOTFS_URL}}
- compression: {{ROOTFS_URL_COMP}}
-{% endif %}
- os: {{DEPLOY_OS}}
-
-{% if rootfs == true %}
-- test:
- namespace: tlxc
- timeout:
- minutes: 30
- definitions:
- - from: inline
- name: resize-rootfs
- path: inline/resize-rootfs.yaml
- repository:
- metadata:
- description: resize rootfs image for test overlay
- format: Lava-Test Test Definition 1.0
- name: resize-rootfs
- run:
- steps:
- - cd /lava-lxc
- - overlay_file=/lava-lxc/overlays/target/overlay.tar.gz
- - overlay_size=$(gzip -l $overlay_file | tail -1 | awk '{print $2}')
- - overlay_size=$(( $overlay_size / 1024 ))
- - simg2img {{LXC_ROOTFS_FILE}} {{LXC_ROOTFS_FILE}}.ext4
- - free_blocks=$(dumpe2fs -h {{LXC_ROOTFS_FILE}}.ext4 | grep "Free blocks" | awk '{print $3}')
- - block_size=$(dumpe2fs -h {{LXC_ROOTFS_FILE}}.ext4 | grep "Block size" | awk '{print $3}')
- - free_size=$(( $block_size * $free_blocks / 1024 ))
- - if [ "$free_size" -lt "$overlay_size" ]; then
- - block_count=$(dumpe2fs -h {{LXC_ROOTFS_FILE}}.ext4 | grep "Block count" | awk '{print $3}')
- - current_size=$(( $block_size * $block_count / 1024 ))
- - extra_size=32768
- - final_size=$(( $current_size + $overlay_size + $extra_size ))
- - fsck_code=$(e2fsck -y -f {{LXC_ROOTFS_FILE}}.ext4)
- - resize2fs {{LXC_ROOTFS_FILE}}.ext4 "$final_size"K
- - img2simg {{LXC_ROOTFS_FILE}}.ext4 {{LXC_ROOTFS_FILE}}
- - lava-test-case "resize_rootfs" --result "pass"
- - else
- - lava-test-case "resize_rootfs" --result "skip"
- - fi
-{% endif %}
-
-{% if apply_overlay_bootimg == true %}
-- test:
- namespace: tlxc
- timeout:
- minutes: 30
- definitions:
- - from: inline
- name: apply-test-overlay-bootimg
- path: inline/apply-test-overlay-bootimg.yaml
- repository:
- metadata:
- description: Apply test overlay to Andoid boot image ramdisk
- format: Lava-Test Test Definition 1.0
- name: apply-test-overlay-bootimg
- run:
- steps:
- - overlay_file=/lava-lxc/overlays/target/overlay.tar.gz
- - if [ -f $overlay_file ]
- - then
- - configs_dir=$(mktemp -d /tmp/configs.XXXX)
- - git clone --depth 1 http://git.linaro.org/ci/job/configs.git $configs_dir
- - $configs_dir/lt-qcom-linux-test/copy_test_overlay.sh /lava-lxc/{{LXC_BOOT_FILE}} $overlay_file
- - lava-test-case "apply_test_overlay_bootimg" --result "pass"
- - else
- - lava-test-case "apply_test_overlay_bootimg" --result "skip"
- - fi
-{% endif %}
-
-- deploy:
- timeout:
- minutes: 40
- to: fastboot
- namespace: target
- images:
- boot:
- url: lxc:///{{LXC_BOOT_FILE}}
-{% if rootfs == true %}
-{% if partition == true %}
- "{{ partition_label }}":
- url: lxc:///{{ LXC_PARTITION_FILE }}
-{% endif %}
- {{ rootfs_label }}:
- url: lxc:///{{LXC_ROOTFS_FILE}}
- apply-overlay: true
-{% endif %}
- os: {{DEPLOY_OS}}
-{% if pre_power_command == true %}
- protocols:
- lava-lxc:
- - action: fastboot-deploy
- request: pre-power-command
- timeout:
- minutes: 2
-{% endif %}
-{% endblock deploy_target %}
-
-{% block boot_target %}
-- boot:
- namespace: target
-{% if auto_login == true %}
- auto_login:
- login_prompt: 'login:'
- username: 'root'
-{% endif %}
- prompts:
- - 'root@(.*):[/~]#'
- - {{BOOT_OS_PROMPT}}
- timeout:
- minutes: 15
- method: fastboot
-{% if fastboot_commands is not undefined %}
- commands:
-{% for fcmd in fastboot_commands %}
- - {{ fcmd }}
-{% endfor %}
-{% endif %}
-{% if pre_os_command == true %}
- protocols:
- lava-lxc:
- - action: auto-login-action
- request: pre-os-command
- timeout:
- minutes: 2
-{% endif %}
-{% endblock boot_target %}
-
-{% block test_target %}
-- test:
- namespace: target
- timeout:
- minutes: {% if job_timeout is defined %}{{ job_timeout }}{% else %}60{% endif %}
- definitions:
-{% endblock test_target %}
-
-{% block test_lxc %}
-{% endblock test_lxc %}
-
-{% endblock actions %}
-
-{% block metadata %}
- source: https://git.linaro.org/ci/job/configs.git
- path: lt-qcom/lava-job-definitions/
-{% endblock metadata %}
diff --git a/lt-qcom/lava-job-definitions/master.jinja2 b/lt-qcom/lava-job-definitions/master.jinja2
deleted file mode 120000
index 08a69f0be9..0000000000
--- a/lt-qcom/lava-job-definitions/master.jinja2
+++ /dev/null
@@ -1 +0,0 @@
-../../openembedded-lkft/lava-job-definitions/master.jinja2 \ No newline at end of file
diff --git a/lt-qcom/lava-job-definitions/testplan/bt.yaml b/lt-qcom/lava-job-definitions/testplan/bt.yaml
deleted file mode 100644
index fb6dd8d132..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/bt.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 90 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-bt-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/hci-smoke/hci-smoke.yaml
- params:
- BOOT: auto
- name: linux-hci-smoke
- timeout:
- minutes: 5
-{% endblock test_target %}
diff --git a/lt-qcom/lava-job-definitions/testplan/desktop.yaml b/lt-qcom/lava-job-definitions/testplan/desktop.yaml
deleted file mode 100644
index b0965c8f63..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/desktop.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 190 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-desktop-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/glmark2/glmark2.yaml
- name: linux-glmark2
- timeout:
- minutes: 10
-
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/piglit/piglit.yaml
- name: linux-piglit
- params:
- OPTIONS: "-l dummy -x streaming-texture-leak -x glx -x tex3d-maxsize -x max-texture-size -1"
- IGNORE_TESTS_REPO: {{PIGLIT_IGNORE_TESTS_REPO}}
- IGNORE_TESTS_FILE: {{PIGLIT_IGNORE_TESTS_FILE}}
- timeout:
- minues: 145
-{% endblock test_target %}
diff --git a/lt-qcom/lava-job-definitions/testplan/gst-validate.yaml b/lt-qcom/lava-job-definitions/testplan/gst-validate.yaml
deleted file mode 100644
index 255e64ed46..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/gst-validate.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 150 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-gst-validate-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/gst-validate/gst-validate.yaml
- params:
- GST_IGNORE_TESTS_REPO: {{GST_IGNORE_TESTS_REPO}}
- GST_IGNORE_TESTS_FILE: {{GST_IGNORE_TESTS_FILE}}
- name: linux-gst-validate
- timeout:
- minutes: 120
-{% endblock test_target %}
diff --git a/lt-qcom/lava-job-definitions/testplan/main.yaml b/lt-qcom/lava-job-definitions/testplan/main.yaml
deleted file mode 100644
index 3ebd95cc95..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/main.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 120 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-main-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/smoke/smoke.yaml
- params:
- TESTS: {{SMOKE_TESTS}}
- name: linux-smoke
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/usb-smoke/usb-smoke-test.yaml
- name: linux-usb-smoke
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/toolchain-smoke/toolchain-smoke.yaml
- name: linux-toolchain-smoke
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/device-tree/device-tree.yaml
- name: linux-device-tree
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/meminfo/meminfo.yaml
- name: meminfo
-
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/dd-wr-speed/dd-wr-speed.yaml
- name: linux-dd-wr-speed
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/sysbench/sysbench.yaml
- params:
- NUM_THREADS: 4
- TESTS: cpu memory threads mutex
- name: linux-sysbench
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/device-read-perf/device-read-perf.yaml
- name: linux-device-read-perf
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/hackbench/hackbench.yaml
- name: linux-hackbench
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/linpack/linpack.yaml
- name: linux-linpack
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/openssl/openssl-speed.yaml
- name: linux-openssl-speed
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/stream/stream-uniprocessor.yaml
- name: linux-stream-uniprocessor
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/pi-stress/pi-stress.yaml
- name: linux-pi-stress
-
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/pm-qa/pm-qa.yaml
- name: linux-pm-qa
- params:
- TESTS: {{PM_QA_TESTS}}
-
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/docker/docker.yaml
- name: linux-containers
-{% endblock test_target %}
diff --git a/lt-qcom/lava-job-definitions/testplan/pmwg.yaml b/lt-qcom/lava-job-definitions/testplan/pmwg.yaml
deleted file mode 100644
index 3f42c3e437..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/pmwg.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 90 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-pmwg-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: ssh-enable-target-login
- description: "Enable SSH Root login on Target"
- run:
- steps:
- - echo -ne "linaro123\nlinaro123\n" | passwd root
- - echo PermitRootLogin yes >> /etc/ssh/sshd_config
- - systemctl restart ssh.service
- name: ssh-enable-target-login-inline
- path: inline/ssh-enable-target-login.yaml
- timeout:
- minutes: 5
-{% endblock test_target %}
-
-{% block test_lxc %}
-- test:
- namespace: tlxc
- timeout:
- minutes: {% if job_timeout is defined %}{{ job_timeout }}{% else %}60{% endif %}
- definitions:
- - repository: https://git.linaro.org/lava-team/refactoring.git
- from: git
- path: testdefs/arm-probe.yaml
- name: arm-probe
- timeout:
- minutes: 10
-
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: prep-tests
- description: "Download energy-probe-ext instrumentation"
- run:
- steps:
- - apt-get update
- - apt-get -y install trace-cmd git
- - cd /root
- - git clone https://git.linaro.org/power/energy-probe-ext.git /energy-probe-ext
- - export TARGET_IP=$(lava-target-ip)
- - echo $TARGET_IP lava-target-ip >> /etc/hosts
- name: prep-inline
- path: inline/prep.yaml
- timeout:
- minutes: 10
-
- - repository: https://github.com/Linaro/test-definitions.git
- from: git
- path: automated/linux/workload-automation/workload-automation.yaml
- params:
- CONFIG: config/generic-linux-remote.py
- AGENDA: agenda/qcomlt/linux-workloads-db410c.yaml
- WA_EXTENSION_PATHS: /energy-probe-ext
- ARTIFACTORIAL_URL: https://archive.validation.linaro.org/artifacts/team/qcomlt/
- SKIP_UPGRADE_PIP_SETUPTOOLS: "True"
- WA_TAG: "v2.7.0"
- DEVLIB_TAG: "v1.1.2"
- name: linux-pmwg
- timeout:
- minutes: 60
-{% endblock test_lxc %}
-
-{% block visibility %}
- group:
- - linaro
-{% endblock visibility %}
-
-{% block settings %}
-{{ super() }}
-secrets:
- ARTIFACTORIAL_TOKEN: "{{ARTIFACTORIAL_TOKEN}}"
-{% endblock settings %}
diff --git a/lt-qcom/lava-job-definitions/testplan/ptest.yaml b/lt-qcom/lava-job-definitions/testplan/ptest.yaml
deleted file mode 100644
index a279b8405f..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/ptest.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 160 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-ptest-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/ptest/ptest.yaml
- name: linux-ptest
- params:
- EXCLUDE: {{PTEST_EXCLUDE}}
- timeout:
- minutes: 160
-{% endblock test_target %}
diff --git a/lt-qcom/lava-job-definitions/testplan/stress.yaml b/lt-qcom/lava-job-definitions/testplan/stress.yaml
deleted file mode 100644
index bbe983ec96..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/stress.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 320 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-stress-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/24h-stress-test/24h-stress-test.yaml
- params:
- TEST: "stress_ng"
- DURATION: "5400"
- name: linux-stress-cpu
-
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/24h-stress-test/24h-stress-test.yaml
- params:
- TEST: "stress_oom"
- DURATION: "5400"
- name: linux-stress-oom
-
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/24h-stress-test/24h-stress-test.yaml
- params:
- TEST: "stress_network"
- DURATION: "5400"
- INTERFACE: {{ETH_DEVICE}}
- LINK: "http://testdata.validation.linaro.org/stress/stress-network.img"
- MD5: "e5c834fbdaa6bfd8eac5eb9404eefdd4"
- name: linux-stress-network
-{% endblock test_target %}
diff --git a/lt-qcom/lava-job-definitions/testplan/wifi.yaml b/lt-qcom/lava-job-definitions/testplan/wifi.yaml
deleted file mode 100644
index d366869737..0000000000
--- a/lt-qcom/lava-job-definitions/testplan/wifi.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-{% extends device_type %}
-
-{% set job_timeout = 90 %}
-{% block metadata %}
- {{ super() }}
-{% endblock metadata %}
-
-{% block job_name %}lt-qcom-{{OS_INFO}}-wifi-{{BUILD_NUMBER}}{% endblock job_name %}
-
-{% block test_target %}
- {{ super() }}
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/wlan-smoke/wlan-smoke.yaml
- params:
- DEVICE: {{WLAN_DEVICE}}
- name: linux-wlan-smoke
- timeout:
- minutes: 5
-
- - repository: https://git.linaro.org/qa/test-definitions.git
- from: git
- path: automated/linux/wlan-download/wlan-download.yaml
- params:
- DEVICE: {{WLAN_DEVICE}}
- ETHERNET_DEVICE: {{ETH_DEVICE}}
- SSID_NAME: LAVATESTX
- SSID_PASSWORD: NepjqGbq
- FILE_URL: http://testdata.validation.linaro.org/stress/stress-network.img
- FILE_CHECKSUM: e5c834fbdaa6bfd8eac5eb9404eefdd4
- TIME_DELAY: {{WLAN_TIME_DELAY}}
- name: linux-wlan-download
- timeout:
- minutes: 20
-{% endblock test_target %}
diff --git a/lt-qcom/meta-qcom.sh b/lt-qcom/meta-qcom.sh
deleted file mode 100644
index 9a97a2e2d0..0000000000
--- a/lt-qcom/meta-qcom.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-
-set -e
-
-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="python-pip chrpath cpio diffstat gawk libmagickwand-dev libmath-prime-util-perl libsdl1.2-dev libssl-dev python-requests texinfo vim-tiny"
-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
-
-set -ex
-
-# When testing a Github PR, use the appropriate target branch
-if [ "${ghprbPullId}" ]; then
-BRANCH=${ghprbTargetBranch}
-fi
-
-git clone --depth=1 ${POKY_URL} -b ${BRANCH}
-
-cd poky
-
-source oe-init-build-env
-
-mkdir -p ${HOME}/srv/oe/downloads ${HOME}/srv/oe/sstate-cache-${DISTRO}-${BRANCH}
-ln -s ${HOME}/srv/oe/downloads
-ln -s ${HOME}/srv/oe/sstate-cache-${DISTRO}-${BRANCH} sstate-cache
-
-# get build stats to make sure that we use sstate properly
-cat << EOF >> conf/auto.conf
-INHERIT += "buildstats buildstats-summary"
-MACHINE := "${MACHINE}"
-DISTRO := "${DISTRO}"
-TCLIBC := "${TCLIBC}"
-EOF
-
-# When testing a PR, use the already checkout meta-qcom, it contains the PR to test
-if [ "${ghprbPullId}" ]; then
- cat >> conf/bblayers.conf <<EOF
-BBLAYERS += "${WORKSPACE}/meta-qcom"
-EOF
-
-# otherwise get layer information from the layer index
-else
- bitbake-layers layerindex-fetch -s -b ${BRANCH} meta-qcom
-fi
-
-bitbake ${IMAGES}
diff --git a/lt-qcom/publishers.sh b/lt-qcom/publishers.sh
index e9be48df14..d3008421dd 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)
@@ -10,7 +15,7 @@ wget -q ${BUILD_URL}consoleText -O out/build-log-$(echo ${JOB_NAME}|sed -e 's/[^
# Publish to snapshots
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
+
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
--link-latest \
out ${PUB_DEST}
diff --git a/ml-benchmarks.yaml b/ml-benchmarks.yaml
index f623570c85..c43eca3093 100644
--- a/ml-benchmarks.yaml
+++ b/ml-benchmarks.yaml
@@ -9,7 +9,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/mmwg-openembedded-dunfell.yaml b/mmwg-openembedded-dunfell.yaml
index 70e0d9b3e7..b3318f317a 100644
--- a/mmwg-openembedded-dunfell.yaml
+++ b/mmwg-openembedded-dunfell.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/mmwg-openembedded-widevine-dunfell.yaml b/mmwg-openembedded-widevine-dunfell.yaml
index e3dd88dd2b..eddd4a4be9 100644
--- a/mmwg-openembedded-widevine-dunfell.yaml
+++ b/mmwg-openembedded-widevine-dunfell.yaml
@@ -4,7 +4,7 @@
defaults: global
properties:
- authorization:
- linaro:
+ everyone-flat:
- job-read
private-security-widevine:
- job-read
diff --git a/openembedded-armv8-ilp32.yaml b/openembedded-armv8-ilp32.yaml
index d2f12afd58..83f3e1b063 100644
--- a/openembedded-armv8-ilp32.yaml
+++ b/openembedded-armv8-ilp32.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/openembedded-armv8-luv-netboot-next.yaml b/openembedded-armv8-luv-netboot-next.yaml
index 2ccacb08a3..c726ead16f 100644
--- a/openembedded-armv8-luv-netboot-next.yaml
+++ b/openembedded-armv8-luv-netboot-next.yaml
@@ -11,7 +11,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-armv8-luvos-master.yaml b/openembedded-armv8-luvos-master.yaml
index 4ea6bca61d..fe9bd81818 100644
--- a/openembedded-armv8-luvos-master.yaml
+++ b/openembedded-armv8-luvos-master.yaml
@@ -11,7 +11,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-armv8-luvos-next.yaml b/openembedded-armv8-luvos-next.yaml
index d3f96dc6fe..c52d15d01d 100644
--- a/openembedded-armv8-luvos-next.yaml
+++ b/openembedded-armv8-luvos-next.yaml
@@ -11,7 +11,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-android-common-4.4-n-release.yaml b/openembedded-lkft-android-common-4.4-n-release.yaml
index 7553c893d5..11925acef4 100644
--- a/openembedded-lkft-android-common-4.4-n-release.yaml
+++ b/openembedded-lkft-android-common-4.4-n-release.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-android-common-4.4-n.yaml b/openembedded-lkft-android-common-4.4-n.yaml
index c740f41256..c5a83e6ed9 100644
--- a/openembedded-lkft-android-common-4.4-n.yaml
+++ b/openembedded-lkft-android-common-4.4-n.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-android-common-4.4-o-release.yaml b/openembedded-lkft-android-common-4.4-o-release.yaml
index f32905a33a..d81a4f2bc8 100644
--- a/openembedded-lkft-android-common-4.4-o-release.yaml
+++ b/openembedded-lkft-android-common-4.4-o-release.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-android-common-4.4-o.yaml b/openembedded-lkft-android-common-4.4-o.yaml
index 41cc0ff660..00c191a258 100644
--- a/openembedded-lkft-android-common-4.4-o.yaml
+++ b/openembedded-lkft-android-common-4.4-o.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-android-common-4.9-o-release.yaml b/openembedded-lkft-android-common-4.9-o-release.yaml
index 80bbb23869..5bdaa1ec6d 100644
--- a/openembedded-lkft-android-common-4.9-o-release.yaml
+++ b/openembedded-lkft-android-common-4.9-o-release.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-android-common-4.9-o.yaml b/openembedded-lkft-android-common-4.9-o.yaml
index 26bdb34444..eafb103bd1 100644
--- a/openembedded-lkft-android-common-4.9-o.yaml
+++ b/openembedded-lkft-android-common-4.9-o.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-dlezcano-4.14.yaml b/openembedded-lkft-dlezcano-4.14.yaml
index 7764a5ae23..8b5edd6d11 100644
--- a/openembedded-lkft-dlezcano-4.14.yaml
+++ b/openembedded-lkft-dlezcano-4.14.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-linaro-hikey-stable-4.4.yaml b/openembedded-lkft-linaro-hikey-stable-4.4.yaml
index 4696a68353..3d541dec6e 100644
--- a/openembedded-lkft-linaro-hikey-stable-4.4.yaml
+++ b/openembedded-lkft-linaro-hikey-stable-4.4.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml b/openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml
deleted file mode 100644
index 135eaa3ed1..0000000000
--- a/openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml
+++ /dev/null
@@ -1,162 +0,0 @@
-- job:
- name: openembedded-lkft-linaro-hikey-stable-rc-4.4
- 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: ''
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- - string:
- name: KERNEL_VERSION_OVERRIDE
- default: '${KERNEL_VERSION}'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-hikey-lts-rc'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/lkft/arm64-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}/linaro-hikey-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: 'linaro-hikey-stable-rc-4.4-oe'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '71'
- - string:
- name: SANITY_LAVA_JOB_PRIORITY
- default: '80'
- - string:
- name: TEST_SUITES
- default: 'all'
- disabled: false
- node: master
- display-name: 'LKFT - Linux Stable RC 4.4 + HiKey (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'hikey'
- - 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
- ;;
- 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'
- matrix-trigger: only-configurations
- 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-linux-developer.yaml b/openembedded-lkft-linux-developer.yaml
deleted file mode 100644
index 4e4691e398..0000000000
--- a/openembedded-lkft-linux-developer.yaml
+++ /dev/null
@@ -1,260 +0,0 @@
-- job:
- name: openembedded-lkft-linux-developer
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- artifact-num-to-keep: 1
- description: |
- <h1>LKFT Developer Build</h1>
- <p>This Jenkins job can build your <b>kernel</b> along with the rest of the
- <b>OpenEmbedded</b> filesystem. It will be <b>published</b> automatically
- and can be <b>tested</b> the same way <b>LKFT</b> runs on the regular
- builds.</p>
- <p>You can compare your test results with existing runs on actual hardware:
- <b>arm (X15)</b>, <b>arm64 (Juno)</b> and <b>x86 (Xeon
- E3-1220)</b>. A description of the hardware can be found
- <a href="https://lkft.linaro.org/boards/">here</a>.</p>
- <p>This is more or less how it goes:
- <ul>
- <li>Jenkins will have the kernel and filesystem built here.</li>
- <li>The filesystem, kernel, and all other artifacts will be published
- in the snapshots server.</li>
- <li>If so desired, Jenkins will pass this information along to the
- qa-reports server, which will in turn send it to LAVA.</li>
- <li>Once test jobs complete in LAVA, test results will get
- consolidated in the qa-reports server.</li>
- </ul>
- </p>
- <p>Links will appear on your build job to point to:
- <ul>
- <li>the published artifacts</li>
- <li>each and every one of the tests submitted</li>
- </ul>
- </p>
- <p>You can start by clicking on <b>Build with Parameters</b>, right here on the left
- pane. Just provide a kernel (Git repo and revision) and we'll take care
- of the rest!<br/>
- (Please note that you need to log-in to Jenkins first if you haven't.)</p>
- <p>Note that these config fragments are added to your defconfig:
- <ul>
- <li><a href="https://github.com/Linaro/meta-lkft/blob/sumo/recipes-kernel/linux/files/distro-overrides.config">distro</a></li>
- <li><a href="https://github.com/Linaro/meta-lkft/blob/sumo/recipes-kernel/linux/files/systemd.config">systemd</a></li>
- <li><a href="https://github.com/Linaro/meta-lkft/blob/sumo/recipes-kernel/linux/files/lkft.config">lkft</a></li>
- <li><a href="https://github.com/torvalds/linux/blob/master/Makefile#L1182">kselftest-merge</a></li>
- </ul>
- </p>
- parameters:
- - string:
- name: KERNEL_REPO
- default: 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'
- description: |
- <b>[MANDATORY]</b> Kernel repository URL
- - string:
- name: KERNEL_REV
- default: 'master'
- description: |
- <b>[MANDATORY]</b> Kernel branch, tag, or commit ID to checkout.<br/>
- Available trees are:<br/>
- <ul>
- <li>origin (the tree you provide)</li>
- <li>torvalds (Linus' mainline tree)</li>
- <li>linux-stable (GKH's stable tree)</li>
- <li>linux-stable-rc (GKH's stable RC tree)</li>
- </ul>
- You can specifiy any valid Git reference from those trees, such as <tt>origin/myworkbranch</tt>,
- <tt>linux-stable-rc/linux-4.18.y</tt>, <tt>b4dc0ffee</tt>, <tt>v4.9.131</tt>, etc.
- - choice:
- name: TARGET_MACHINE
- choices:
- - 'juno'
- - 'x15'
- - 'x86_64'
- - 'i386'
- description: |
- <b>[MANDATORY]</b> Target machine. Can be juno (arm64), x15 (arm), x86_64, or i386 (32-bits).
- - string:
- name: KERNEL_CONFIG
- default: ''
- description: |
- <b>[OPTIONAL]</b> Kernel config file<br/>
- File to use from arch/${ARCH}/configs/ as base kernel configuration. If ommited the default
- kernel config will be used:<br/>
- - defconfig on Juno<br/>
- - multi_v7_defconfig on X15<br/>
- - x86_64_defconfig on x86_64<br/>
- - i386_defconfig on i386<br/>
- Note: Additional config fragments are added to all defconfigs to ensure build is functional. See
- <a href="https://ci.linaro.org/job/openembedded-lkft-linux-developer/">the status page</a> for
- more information.
- - extended-choice:
- name: TEST_SUITES
- description: |
- [OPTIONAL] Test suites to run<br/>
- Any combination of the following can be chosen:<br/>
- - kselftests<br/>
- - libhugetlbfs<br/>
- - ltp<br/>
- - perf<br/>
- Build artifacts will be published regardless of selection here.
- type: checkbox
- value: 'kselftests,libhugetlbfs,ltp,perf'
- multi-select-delimiter: ' '
- - extended-choice:
- name: USE_KSELFTEST_RELEASE
- description: |
- [OPTIONAL] Use latest released version of Kselftests. Useful for Linux Stable branches.
- - mainline<br/>
- type: checkbox
- value: 'mainline'
- multi-select-delimiter: ' '
- - string:
- name: NOTIFICATION_EMAIL
- default: ''
- description: |
- <b>[OPTIONAL]</b> Notification email<br/>
- If provided, a notification on the build/test results will be
- sent to this email.
- disabled: false
- node: docker-buster-lkft
- display-name: 'LKFT - Linux Developer Builder (OpenEmbedded/sumo)'
- wrappers:
- - timeout:
- timeout: 180
- - timestamps
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- builders:
- - shell: |
- CI_MAIL_RECIPIENTS="daniel.diaz@linaro.org"
- for email in ${NOTIFICATION_EMAIL}; do
- CI_MAIL_RECIPIENTS="${CI_MAIL_RECIPIENTS},${email}"
- done
- echo "CI_MAIL_RECIPIENTS=${CI_MAIL_RECIPIENTS}" > mail_parameters
- - inject:
- properties-file: mail_parameters
- - shell:
- !include-raw: openembedded-lkft/kernel-versions.sh
- - inject:
- properties-file: linux_versions
- - shell: |
- #!/bin/bash -e
-
- # Target machine is just an user friendly name.
- # Mapping for TARGET_MACHINE -> MACHINE/DEVICE_TYPE
- # Set a default config if it isn't given
- case "${TARGET_MACHINE}" in
- juno)
- MACHINE=juno
- DEVICE_TYPE=juno-r2
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=defconfig
- ;;
- x15)
- MACHINE=am57xx-evm
- DEVICE_TYPE=x15
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=multi_v7_defconfig
- ;;
- x86_64)
- MACHINE=intel-corei7-64
- DEVICE_TYPE=x86
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=x86_64_defconfig
- ;;
- i386)
- MACHINE=intel-core2-32
- DEVICE_TYPE=i386
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=i386_defconfig
- ;;
- esac
-
- # Convert Git repo to Bitbake's Git URI format
- kernel_repo=$(echo ${KERNEL_REPO} | sed -e 's#\(ssh://\|https\?://\)#git://#')
- # Determine Git connection protocol to use
- kernel_protocol=$(echo ${KERNEL_REPO} | grep -o '.*://' | sed -e 's#://##')
-
- cat << EOF > ${WORKSPACE}/custom-kernel-info.inc.tmp
- KERNEL_COMMIT = "${KERNEL_SRCREV}"
- KERNEL_REPO = "${kernel_repo}"
- KERNEL_PROTOCOL = "${kernel_protocol}"
- KERNEL_CONFIG_aarch64 = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_arm = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_x86-64 = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_x86 = "${KERNEL_CONFIG}"
- EOF
-
- KSELFTEST_PATH="/opt/kselftests/default-in-kernel/"
- [ -n "${USE_KSELFTEST_RELEASE}" ] && KSELFTEST_PATH="/opt/kselftests/mainline/"
- [ -z "${TEST_SUITES}" ] && TEST_SUITES="none"
-
- echo "IMAGES=rpb-console-image-lkft" > parameters
- echo "MANIFEST_URL=https://github.com/96boards/oe-rpb-manifest.git" >> parameters
- echo "MANIFEST_BRANCH=lkft/sumo" >> parameters
- echo "DISTRO=lkft" >> parameters
- echo "MACHINE=${MACHINE}" >> parameters
- echo "DEVICE_TYPE=${DEVICE_TYPE}" >> parameters
- echo "LAVA_SERVER=https://lkft.validation.linaro.org/RPC2/" >> parameters
- echo "LAVA_JOB_PRIORITY=79" >> parameters
- echo "PUB_DEST=openembedded/lkft/sumo/generic/lkft/linux-developer/${BUILD_NUMBER}" >> parameters
- echo "QA_SERVER=https://qa-reports.linaro.org" >> parameters
- echo "QA_SERVER_PROJECT=linux-developer-oe" >> parameters
- echo "KERNEL_SRCREV=${KERNEL_SRCREV}" >> parameters
- echo "KERNEL_RECIPE=linux-generic" >> parameters
- echo "KSELFTEST_PATH=${KSELFTEST_PATH}" >> parameters
- echo "TEST_SUITES=${TEST_SUITES}" >> parameters
- echo "KERNEL_DESCRIBE_SUFFIX=-b${BUILD_NUMBER}" >> parameters
- cat parameters
-
- echo "#${BUILD_NUMBER}-${KERNEL_SRCREV:0:8}" > ${WORKSPACE}/version.txt
- - build-name-setter:
- name: 'version.txt'
- file: true
- - inject:
- properties-file: 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/qareports.groovy
- - openembedded-lkft/postbuild.groovy
- - email-ext:
- recipients: '${CI_MAIL_RECIPIENTS}'
- matrix-trigger: only-configurations
- subject: '[CI] Developer/${KERNEL_DESCRIBE}: ${BUILD_STATUS}'
- body: |
- Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
- Log: ${PROJECT_URL}${BUILD_NUMBER}/console
- Parsed warnings/errors: ${PROJECT_URL}${BUILD_NUMBER}/parsed_console
- Git URL: ${KERNEL_REPO}
- Git describe: ${KERNEL_DESCRIBE}
- Git commit: ${KERNEL_COMMIT}
-
- Errors:
- ${BUILD_LOG_REGEX, regex="^ERROR:.* ", linesBefore=0, linesAfter=0, showTruncatedLines=false}
diff --git a/openembedded-lkft-linux-generic.yaml b/openembedded-lkft-linux-generic.yaml
deleted file mode 100644
index 56dfc7d104..0000000000
--- a/openembedded-lkft-linux-generic.yaml
+++ /dev/null
@@ -1,143 +0,0 @@
-- job:
- name: openembedded-lkft-linux-generic
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- 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: KERNEL_REPO
- default: 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'
- description: |
- <b>[MANDATORY]</b> Kernel repository URL
- - string:
- name: KERNEL_BRANCH
- default: 'master'
- description: |
- <b>[MANDATORY]</b> Kernel branch
- - choice:
- name: KERNEL_ARCH
- choices:
- - 'arm64'
- - 'arm'
- - 'x86'
- description: |
- <b>[MANDATORY]</b> Kernel architecture
- - string:
- name: KERNEL_CONFIG
- default: 'defconfig'
- description: |
- <b>[OPTIONAL]</b> Kernel config<br>
- If ommited the default kernel config will use<br>
- - defconfig on arm64<br>
- - multi_v7_defconfig on arm<br>
- - x86_64_defconfig on x86<br>
- Note: an additional config fragment is added to ensure systemd is functional
- - string:
- name: KERNEL_COMMIT
- default: ''
- description: |
- <b>[OPTIONAL]</b> Kernel commit<br>
- If ommited TIP will be used<br>
- e.g.: 0adb32858b0bddf4ada5f364a84ed60b196dbcda
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/rocko/generic/rpb/linux-custom/${BUILD_NUMBER}'
- description: |
- <b>[MANDATORY]</b> Publishing destination path on https://snapshots.linaro.org
-# FIXME we don't submit LAVA jobs for now
-# - string:
-# name: QA_SERVER
-# default: 'https://qa-reports.linaro.org'
-# - string:
-# name: QA_SERVER_PROJECT
-# default: 'linux-custom-oe'
- - bool:
- name: SKIP_LAVA
- default: 'true'
- disabled: false
- node: docker-lkft
- display-name: 'LKFT - Linux Generic/Custom kernel builder (OpenEmbedded/rocko)'
- wrappers:
- - timeout:
- timeout: 180
- - timestamps
-# - credentials-binding:
-# - text:
-# credential-id: QA_REPORTS_TOKEN
-# variable: QA_REPORTS_TOKEN
- builders:
- - shell: |
- #!/bin/bash -e
-
- # Mapping for ARCH -> MACHINE/DEVICE_TYPE
- # Set a default config if it isn't given
- case "${KERNEL_ARCH}" in
- arm64)
- MACHINE=juno
- DEVICE_TYPE=juno-r2
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=defconfig
- ;;
- arm)
- MACHINE=am57xx-evm
- DEVICE_TYPE=x15
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=multi_v7_defconfig
- ;;
- x86)
- MACHINE=intel-core2-32
- DEVICE_TYPE=x86
- [ -z "${KERNEL_CONFIG}" ] && KERNEL_CONFIG=x86_64_defconfig
- ;;
- esac
-
- # Determine the kernel commit if it isn't given
- [ -z "${KERNEL_COMMIT}" ] && KERNEL_COMMIT=$(git ls-remote --heads ${KERNEL_REPO} ${KERNEL_BRANCH} | cut -f1)
-
- cat << EOF > ${WORKSPACE}/custom-kernel-info.inc.tmp
- KERNEL_COMMIT = "${KERNEL_COMMIT}"
- KERNEL_REPO = "${KERNEL_REPO/http*:/git:}"
- KERNEL_BRANCH = "${KERNEL_BRANCH}"
- KERNEL_CONFIG_aarch64 = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_arm = "${KERNEL_CONFIG}"
- KERNEL_CONFIG_x86-64 = "${KERNEL_CONFIG}"
- EOF
-
- echo "IMAGES=rpb-console-image-lkft" > parameters
- echo "MANIFEST_URL=https://github.com/96boards/oe-rpb-manifest.git" >> parameters
- echo "MANIFEST_BRANCH=rocko" >> parameters
- echo "DISTRO=rpb" >> parameters
- echo "MACHINE=${MACHINE}" >> parameters
- echo "DEVICE_TYPE=${DEVICE_TYPE}" >> parameters
- echo "KERNEL_RECIPE=linux-generic" >> parameters
- cat parameters
-
- echo "#${BUILD_NUMBER}-${KERNEL_COMMIT:0:8}" > ${WORKSPACE}/version.txt
- - build-name-setter:
- name: 'version.txt'
- file: true
- - inject:
- properties-file: parameters
- - shell:
- !include-raw: openembedded-lkft/builders-generic.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw: openembedded-lkft/publishers.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - rpb-openembedded/postbuild.groovy
diff --git a/openembedded-lkft-linux-mainline.yaml b/openembedded-lkft-linux-mainline.yaml
deleted file mode 100644
index df3c1e9baa..0000000000
--- a/openembedded-lkft-linux-mainline.yaml
+++ /dev/null
@@ -1,190 +0,0 @@
-- job:
- name: openembedded-lkft-linux-mainline
- 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: 'master'
- - string:
- name: KERNEL_VERSION
- default: 'git'
- - string:
- name: KERNEL_VERSION_OVERRIDE
- default: 'mainline'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-mainline'
- - string:
- name: KERNEL_REPO
- default: 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.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-mainline/${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-mainline-master'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/default-in-kernel/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '25'
- - 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 Mainline (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
- ;;
- dragonboard-845c)
- DEVICE_TYPE=dragonboard-845c
- ;;
- 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'
- matrix-trigger: only-configurations
- aborted: true
- subject: '[CI] ${MACHINE}: ${KERNEL_VERSION_OVERRIDE} {{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-linux-next.yaml b/openembedded-lkft-linux-next.yaml
deleted file mode 100644
index 5910af689a..0000000000
--- a/openembedded-lkft-linux-next.yaml
+++ /dev/null
@@ -1,186 +0,0 @@
-- job:
- name: openembedded-lkft-linux-next
- 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: 'master'
- - string:
- name: KERNEL_VERSION
- default: 'git'
- - string:
- name: KERNEL_VERSION_OVERRIDE
- default: 'next'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-next'
- - string:
- name: KERNEL_REPO
- default: 'https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.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-next/${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-next-master'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/default-in-kernel/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '26'
- - string:
- name: SANITY_LAVA_JOB_PRIORITY
- default: '30'
- - string:
- name: TEST_SUITES
- default: 'all'
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: false
- node: master
- display-name: 'LKFT - Linux Next (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'beaglebone'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 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'
- matrix-trigger: only-configurations
- aborted: true
- subject: '[CI] ${MACHINE}: ${KERNEL_VERSION_OVERRIDE} {{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-linux-stable-rc-4.14.yaml b/openembedded-lkft-linux-stable-rc-4.14.yaml
deleted file mode 100644
index 32d38a3e7a..0000000000
--- a/openembedded-lkft-linux-stable-rc-4.14.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-4.14
- 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-4.14.y'
- - string:
- name: KERNEL_VERSION
- default: '4.14'
- - 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-4.14.y'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '73'
- - 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 4.14.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 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-linux-stable-rc-4.17.yaml b/openembedded-lkft-linux-stable-rc-4.17.yaml
deleted file mode 100644
index 36793cb65f..0000000000
--- a/openembedded-lkft-linux-stable-rc-4.17.yaml
+++ /dev/null
@@ -1,172 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-4.17
- 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: KERNEL_BRANCH
- default: 'linux-4.17.y'
- - string:
- name: KERNEL_VERSION
- default: '4.17'
- - 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-4.17-oe'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '75'
- - string:
- name: SANITY_LAVA_JOB_PRIORITY
- default: '80'
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: false
- node: master
- display-name: 'LKFT - Linux Stable RC 4.17.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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
- - 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-linux-stable-rc-4.18.yaml b/openembedded-lkft-linux-stable-rc-4.18.yaml
deleted file mode 100644
index 8e04086a71..0000000000
--- a/openembedded-lkft-linux-stable-rc-4.18.yaml
+++ /dev/null
@@ -1,172 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-4.18
- 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: KERNEL_BRANCH
- default: 'linux-4.18.y'
- - string:
- name: KERNEL_VERSION
- default: '4.18'
- - 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-4.18-oe'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '75'
- - string:
- name: SANITY_LAVA_JOB_PRIORITY
- default: '80'
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: false
- node: master
- display-name: 'LKFT - Linux Stable RC 4.18.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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
- - 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-linux-stable-rc-4.19.yaml b/openembedded-lkft-linux-stable-rc-4.19.yaml
deleted file mode 100644
index e5d878feda..0000000000
--- a/openembedded-lkft-linux-stable-rc-4.19.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-4.19
- 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-4.19.y'
- - string:
- name: KERNEL_VERSION
- default: '4.19'
- - 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-4.19.y'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '74'
- - 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 4.19.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 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-linux-stable-rc-4.20.yaml b/openembedded-lkft-linux-stable-rc-4.20.yaml
deleted file mode 100644
index 9b6fecabb6..0000000000
--- a/openembedded-lkft-linux-stable-rc-4.20.yaml
+++ /dev/null
@@ -1,181 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-4.20
- 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: KERNEL_BRANCH
- default: 'linux-4.20.y'
- - string:
- name: KERNEL_VERSION
- default: '4.20'
- - 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-4.20-oe'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '72'
- - 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 4.20.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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
- - 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-linux-stable-rc-4.4.yaml b/openembedded-lkft-linux-stable-rc-4.4.yaml
deleted file mode 100644
index 4d3ee77e0a..0000000000
--- a/openembedded-lkft-linux-stable-rc-4.4.yaml
+++ /dev/null
@@ -1,177 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-4.4
- 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-4.4.y'
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- - 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-4.4.y'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '71'
- - 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 4.4.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 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
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- am57xx-evm)
- DEVICE_TYPE=x15
- ;;
- 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-linux-stable-rc-4.9.yaml b/openembedded-lkft-linux-stable-rc-4.9.yaml
deleted file mode 100644
index ce7189271d..0000000000
--- a/openembedded-lkft-linux-stable-rc-4.9.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-4.9
- 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-4.9.y'
- - string:
- name: KERNEL_VERSION
- default: '4.9'
- - 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-4.9.y'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '72'
- - 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 4.9.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 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-linux-stable-rc-5.0.yaml b/openembedded-lkft-linux-stable-rc-5.0.yaml
deleted file mode 100644
index bcff21e3a6..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.0.yaml
+++ /dev/null
@@ -1,182 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.0
- 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: KERNEL_BRANCH
- default: 'linux-5.0.y'
- - string:
- name: KERNEL_VERSION
- default: '5.0'
- - 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-5.0-oe'
- - 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.0.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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-linux-stable-rc-5.1.yaml b/openembedded-lkft-linux-stable-rc-5.1.yaml
deleted file mode 100644
index ae28c38edc..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.1.yaml
+++ /dev/null
@@ -1,182 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.1
- 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: KERNEL_BRANCH
- default: 'linux-5.1.y'
- - string:
- name: KERNEL_VERSION
- default: '5.1'
- - 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-5.1-oe'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '72'
- - 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.1.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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-linux-stable-rc-5.10.yaml b/openembedded-lkft-linux-stable-rc-5.10.yaml
deleted file mode 100644
index 07d8c4f0a4..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.10.yaml
+++ /dev/null
@@ -1,187 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.10
- 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.10.y'
- - string:
- name: KERNEL_VERSION
- default: '5.10'
- - 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.10.y'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '76'
- - 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.10.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-linux-stable-rc-5.11.yaml b/openembedded-lkft-linux-stable-rc-5.11.yaml
deleted file mode 100644
index d8197fe9f4..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.11.yaml
+++ /dev/null
@@ -1,187 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.11
- 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.11.y'
- - string:
- name: KERNEL_VERSION
- default: '5.11'
- - 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.11.y'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '77'
- - 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.11.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-linux-stable-rc-5.12.yaml b/openembedded-lkft-linux-stable-rc-5.12.yaml
deleted file mode 100644
index 25b9031294..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.12.yaml
+++ /dev/null
@@ -1,187 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.12
- 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.12.y'
- - string:
- name: KERNEL_VERSION
- default: '5.12'
- - 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.12.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.12.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-linux-stable-rc-5.2.yaml b/openembedded-lkft-linux-stable-rc-5.2.yaml
deleted file mode 100644
index 7da75f9e90..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.2.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.2
- 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.2.y'
- - string:
- name: KERNEL_VERSION
- default: '5.2'
- - 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-5.2-oe'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '72'
- - 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.2.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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-linux-stable-rc-5.3.yaml b/openembedded-lkft-linux-stable-rc-5.3.yaml
deleted file mode 100644
index 44e0f9d249..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.3.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.3
- 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.3.y'
- - string:
- name: KERNEL_VERSION
- default: '5.3'
- - 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-5.3-oe'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '72'
- - 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.3.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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-linux-stable-rc-5.4.yaml b/openembedded-lkft-linux-stable-rc-5.4.yaml
deleted file mode 100644
index 6053e80681..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.4.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.4
- 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.4.y'
- - string:
- name: KERNEL_VERSION
- default: '5.4'
- - 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.4.y'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '75'
- - 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.4.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'dragonboard-410c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 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-linux-stable-rc-5.5.yaml b/openembedded-lkft-linux-stable-rc-5.5.yaml
deleted file mode 100644
index 188ebaddd7..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.5.yaml
+++ /dev/null
@@ -1,186 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.5
- 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.5.y'
- - string:
- name: KERNEL_VERSION
- default: '5.5'
- - 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-5.5-oe'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: ''
- - string:
- name: LAVA_JOB_PRIORITY
- default: '77'
- - 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.5.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - '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-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-linux-stable-rc-5.6.yaml b/openembedded-lkft-linux-stable-rc-5.6.yaml
deleted file mode 100644
index ff5faa70ca..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.6.yaml
+++ /dev/null
@@ -1,188 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.6
- 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.6.y'
- - string:
- name: KERNEL_VERSION
- default: '5.6'
- - 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-5.6-oe'
- - 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.6.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'beaglebone'
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 'ls2088ardb'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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-linux-stable-rc-5.7.yaml b/openembedded-lkft-linux-stable-rc-5.7.yaml
deleted file mode 100644
index 5e1ce829ce..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.7.yaml
+++ /dev/null
@@ -1,188 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.7
- 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.7.y'
- - string:
- name: KERNEL_VERSION
- default: '5.7'
- - 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-5.7-oe'
- - 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.7.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'beaglebone'
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 'ls2088ardb'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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-linux-stable-rc-5.8.yaml b/openembedded-lkft-linux-stable-rc-5.8.yaml
deleted file mode 100644
index 1948e74e7b..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.8.yaml
+++ /dev/null
@@ -1,188 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.8
- 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.8.y'
- - string:
- name: KERNEL_VERSION
- default: '5.8'
- - 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.8.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.8.y (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'beaglebone'
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - 'hikey'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- - 'juno'
- - 'ls2088ardb'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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-linux-stable-rc-5.9.yaml b/openembedded-lkft-linux-stable-rc-5.9.yaml
deleted file mode 100644
index 4b6e7be163..0000000000
--- a/openembedded-lkft-linux-stable-rc-5.9.yaml
+++ /dev/null
@@ -1,187 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rc-5.9
- 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.9.y'
- - string:
- name: KERNEL_VERSION
- default: '5.9'
- - 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.9.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.9.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-linux-stable-rc-rocko.yaml b/openembedded-lkft-linux-stable-rc-rocko.yaml
index 77039a7181..aa70433b92 100644
--- a/openembedded-lkft-linux-stable-rc-rocko.yaml
+++ b/openembedded-lkft-linux-stable-rc-rocko.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-linux-stable-rc-thud.yaml b/openembedded-lkft-linux-stable-rc-thud.yaml
index a25eeb025b..66fc32b98d 100644
--- a/openembedded-lkft-linux-stable-rc-thud.yaml
+++ b/openembedded-lkft-linux-stable-rc-thud.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/openembedded-lkft-linux-stable-rt-4.4.yaml b/openembedded-lkft-linux-stable-rt-4.4.yaml
deleted file mode 100644
index 12126363a6..0000000000
--- a/openembedded-lkft-linux-stable-rt-4.4.yaml
+++ /dev/null
@@ -1,176 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rt-4.4
- 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: KERNEL_BRANCH
- default: 'v4.4-rt'
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- - string:
- name: KERNEL_VERSION_OVERRIDE
- default: '${KERNEL_VERSION}'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-stable-rt'
- - string:
- name: KERNEL_REPO
- default: 'https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.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-rt-${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: 'TBD'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: '1'
- - string:
- name: LAVA_JOB_PRIORITY
- default: '60'
- - 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 RT 4.4 (OpenEmbedded/rocko)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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
- - email-ext:
- recipients: 'lkft-maintainers@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-linux-stable-rt-4.9.yaml b/openembedded-lkft-linux-stable-rt-4.9.yaml
deleted file mode 100644
index 0fae2e2cc9..0000000000
--- a/openembedded-lkft-linux-stable-rt-4.9.yaml
+++ /dev/null
@@ -1,176 +0,0 @@
-- job:
- name: openembedded-lkft-linux-stable-rt-4.9
- 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: KERNEL_BRANCH
- default: 'v4.9-rt'
- - string:
- name: KERNEL_VERSION
- default: '4.9'
- - string:
- name: KERNEL_VERSION_OVERRIDE
- default: '${KERNEL_VERSION}'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-stable-rt'
- - string:
- name: KERNEL_REPO
- default: 'https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.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-rt-${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: 'TBD'
- - string:
- name: KSELFTEST_PATH
- default: '/opt/kselftests/mainline/'
- - string:
- name: SKIP_LAVA
- default: '1'
- - string:
- name: LAVA_JOB_PRIORITY
- default: '60'
- - 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 RT 4.9 (OpenEmbedded/rocko)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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
- - email-ext:
- recipients: 'lkft-maintainers@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-lsk-4.14-rt-test.yaml b/openembedded-lkft-lsk-4.14-rt-test.yaml
deleted file mode 100644
index 6b84be729b..0000000000
--- a/openembedded-lkft-lsk-4.14-rt-test.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.14-rt-test
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.14-rt-test'
- - string:
- name: KERNEL_VERSION
- default: '4.14'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-rt-test'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-rt-test/${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: 'lsk-4.14-rt-test-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.14-rt.yaml b/openembedded-lkft-lsk-4.14-rt.yaml
deleted file mode 100644
index 254a43a811..0000000000
--- a/openembedded-lkft-lsk-4.14-rt.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.14-rt
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.14-rt'
- - string:
- name: KERNEL_VERSION
- default: '4.14'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-rt'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-rt/${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: 'lsk-4.14-rt-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.14-test.yaml b/openembedded-lkft-lsk-4.14-test.yaml
deleted file mode 100644
index b7a0a18406..0000000000
--- a/openembedded-lkft-lsk-4.14-test.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.14-test
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.14-test'
- - string:
- name: KERNEL_VERSION
- default: '4.14'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-test'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-test/${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: 'lsk-4.14-test-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.14.yaml b/openembedded-lkft-lsk-4.14.yaml
deleted file mode 100644
index 36b01b95e8..0000000000
--- a/openembedded-lkft-lsk-4.14.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.14
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.14'
- - string:
- name: KERNEL_VERSION
- default: '4.14'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${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: 'lsk-4.14-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.4-rt-test.yaml b/openembedded-lkft-lsk-4.4-rt-test.yaml
deleted file mode 100644
index e4900cee41..0000000000
--- a/openembedded-lkft-lsk-4.4-rt-test.yaml
+++ /dev/null
@@ -1,145 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.4-rt-test
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.4-rt-test'
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-rt-test'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-rt-test/${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: 'lsk-4.4-rt-test-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.4-rt.yaml b/openembedded-lkft-lsk-4.4-rt.yaml
deleted file mode 100644
index ddd5808e7c..0000000000
--- a/openembedded-lkft-lsk-4.4-rt.yaml
+++ /dev/null
@@ -1,145 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.4-rt
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.4-rt'
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-rt'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-rt/${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: 'lsk-4.4-rt-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.4-test.yaml b/openembedded-lkft-lsk-4.4-test.yaml
deleted file mode 100644
index 4f3461dc90..0000000000
--- a/openembedded-lkft-lsk-4.4-test.yaml
+++ /dev/null
@@ -1,160 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.4-test
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.4-test'
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-test'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-test/${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: 'lsk-4.4-test-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
-
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.4.yaml b/openembedded-lkft-lsk-4.4.yaml
deleted file mode 100644
index fa9c333713..0000000000
--- a/openembedded-lkft-lsk-4.4.yaml
+++ /dev/null
@@ -1,145 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.4
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.4'
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${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: 'lsk-4.4-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.9-rt-test.yaml b/openembedded-lkft-lsk-4.9-rt-test.yaml
deleted file mode 100644
index 3fa3c15c51..0000000000
--- a/openembedded-lkft-lsk-4.9-rt-test.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.9-rt-test
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.9-rt-test'
- - string:
- name: KERNEL_VERSION
- default: '4.9'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-rt-test'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-rt-test/${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: 'lsk-4.9-rt-test-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.9-rt.yaml b/openembedded-lkft-lsk-4.9-rt.yaml
deleted file mode 100644
index 8da63e5b21..0000000000
--- a/openembedded-lkft-lsk-4.9-rt.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.9-rt
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.9-rt'
- - string:
- name: KERNEL_VERSION
- default: '4.9'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-rt'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-rt/${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: 'lsk-4.9-rt-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.9-test.yaml b/openembedded-lkft-lsk-4.9-test.yaml
deleted file mode 100644
index e344d1b199..0000000000
--- a/openembedded-lkft-lsk-4.9-test.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.9-test
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.9-test'
- - string:
- name: KERNEL_VERSION
- default: '4.9'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk-test'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${KERNEL_VERSION}-test/${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: 'lsk-4.9-test-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-lsk-4.9.yaml b/openembedded-lkft-lsk-4.9.yaml
deleted file mode 100644
index ed95131f42..0000000000
--- a/openembedded-lkft-lsk-4.9.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-- job:
- name: openembedded-lkft-lsk-4.9
- 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: KERNEL_BRANCH
- default: 'linux-linaro-lsk-v4.9'
- - string:
- name: KERNEL_VERSION
- default: '4.9'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lsk'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/kernel/linux-linaro-stable.git'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image-lkft'
- - string:
- name: MANIFEST_BRANCH
- default: 'lkft/rocko'
- - string:
- name: PUB_DEST
- default: 'openembedded/lkft/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/lsk-${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: 'lsk-4.9-oe'
- - string:
- name: QA_SERVER_TEAM
- default: 'lsk'
- - string:
- name: SKIP_LAVA
- default: ''
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: true
- node: master
- display-name: 'DELETE ME'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- 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
- ;;
- dragonboard-410c)
- DEVICE_TYPE=dragonboard-410c
- ;;
- intel-core2-32)
- DEVICE_TYPE=i386
- ;;
- intel-corei7-64)
- DEVICE_TYPE=x86
- ;;
- juno)
- DEVICE_TYPE=juno-r2
- ;;
- 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
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org'
- matrix-trigger: only-configurations
- 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-sdk.yaml b/openembedded-lkft-sdk.yaml
deleted file mode 100644
index a963be3afa..0000000000
--- a/openembedded-lkft-sdk.yaml
+++ /dev/null
@@ -1,148 +0,0 @@
-- job:
- name: openembedded-lkft-sdk
- 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: KERNEL_RECIPE
- default: 'linux-dummy'
- - string:
- name: IMAGES
- default: 'meta-toolchain'
- - 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/sdk/sumo/${MACHINE}/${BUILD_NUMBER}'
- - matrix-combinations:
- name: MATRIX_COMBINATIONS
- disabled: false
- node: master
- display-name: 'LKFT - SDK (OpenEmbedded/sumo)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'am57xx-evm'
- - 'intel-corei7-64'
- - 'juno'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - lkft
- - axis:
- type: slave
- name: label
- values:
- - docker-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
-
- set -ex
-
- sudo mkdir -p /srv/oe
- sudo chown buildslave:buildslave /srv/oe
- cd /srv/oe
-
- if [ -f "${HOME}/bin/repo" ]; then
- chmod a+x "${HOME}/bin/repo"
- fi
- export PATH="${HOME}/bin:${PATH}"
-
- # initialize repo if not done already
- export MANIFEST_URL="${MANIFEST_URL:-https://github.com/96boards/oe-rpb-manifest.git}"
- if [ ! -e ".repo/manifest.xml" ]; then
- repo init -u "${MANIFEST_URL}" -b "${MANIFEST_BRANCH}"
-
- mkdir -p "${HOME}/srv/oe/downloads" "${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH}"
- mkdir -p build
- ln -s "${HOME}/srv/oe/downloads" .
- ln -s "${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH}" sstate-cache
- fi
-
- repo sync
-
- rm -rf conf build
-
- # Accept EULA if/when needed
- export EULA_dragonboard410c=1
-
- source setup-environment build
-
- # add useful debug info
- for f in conf/{site,auto,local,lkft-kernel}.conf; do
- if [ -f ${f} ]; then
- echo "=== content of ${f} ==="
- cat ${f}
- else
- echo "=== not existent: ${f} ==="
- fi
- done
-
- time bitbake ${IMAGES}
-
- DEPLOY_DIR_IMAGE="$(bitbake -e | grep "^DEPLOY_DIR="| cut -d'=' -f2 | tr -d '"')/sdk"
-
- echo "DEPLOY_DIR_IMAGE=${DEPLOY_DIR_IMAGE}" >> "${WORKSPACE}/parameters"
- - inject:
- properties-file: parameters
- - linaro-publish-token
- - shell:
- !include-raw: openembedded-lkft/publishers.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - rpb-openembedded/postbuild.groovy
- - email-ext:
- recipients: 'daniel.diaz@linaro.org'
- matrix-trigger: only-configurations
- aborted: true
- subject: '[SDK] ${MACHINE}: ${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 d7fd611046..5594b9087f 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 libmpc-dev libyaml-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/lava-job-definitions/devices/dragonboard-410c b/openembedded-lkft/lava-job-definitions/devices/dragonboard-410c
index c52e046d6d..78be778c43 100644
--- a/openembedded-lkft/lava-job-definitions/devices/dragonboard-410c
+++ b/openembedded-lkft/lava-job-definitions/devices/dragonboard-410c
@@ -11,32 +11,26 @@ tags:
timeout:
minutes: 25
to: fastboot
- namespace: target
- connection: lxc
+ docker:
+ image: linaro/kir
images:
boot:
- url: lxc:///boot.img
+ url: downloads://boot.img
rootfs:
- url: lxc:///rpb-console-image-lkft.rootfs.img
+ url: downloads://rpb-console-image-lkft.rootfs.img
apply-overlay: true
os: oe
- protocols:
- lava-lxc:
- - action: fastboot-deploy
- request: pre-power-command
- timeout:
- minutes: 2
+- command:
+ name: pre_os_command
+- command:
+ name: pre_power_command
{% endblock deploy_target %}
{% block boot_target %}
- boot:
- namespace: target
auto_login:
login_prompt: 'login:'
- username: linaro
- login_commands:
- # Become super user to run tests
- - su
+ username: root
prompts:
- 'root@(.*):/#'
- 'root@dragonboard-410c:~#'
diff --git a/openembedded-lkft/lava-job-definitions/devices/hi6220-hikey b/openembedded-lkft/lava-job-definitions/devices/hi6220-hikey
index 2c7780d564..a4f5496fd7 100644
--- a/openembedded-lkft/lava-job-definitions/devices/hi6220-hikey
+++ b/openembedded-lkft/lava-job-definitions/devices/hi6220-hikey
@@ -7,36 +7,30 @@
timeout:
minutes: 15
to: fastboot
- namespace: target
- connection: lxc
+ docker:
+ image: linaro/kir
images:
ptable:
- url: lxc:///ptable-linux-8g.img
+ url: downloads://ptable-linux-8g.img
reboot: hard-reset
boot:
- url: lxc:///boot.img
+ url: downloads://boot.img
reboot: hard-reset
system:
- url: lxc:///rpb-console-image-lkft.rootfs.img
+ url: downloads://rpb-console-image-lkft.rootfs.img
apply-overlay: true
os: oe
- protocols:
- lava-lxc:
- - action: fastboot-deploy
- request: pre-power-command
- timeout:
- minutes: 2
+- command:
+ name: pre_os_command
+- command:
+ name: pre_power_command
{% endblock deploy_target %}
{% block boot_target %}
- boot:
- namespace: target
auto_login:
login_prompt: 'login:'
- username: linaro
- login_commands:
- # Become super user to run tests
- - su
+ username: root
prompts:
- 'hikey:~'
- 'hikey:/home/linaro#'
@@ -44,14 +38,8 @@
timeout:
minutes: 10
method: grub
- commands: installed
- protocols:
- lava-lxc:
- # other action could be boot-fastboot
- - action: grub-sequence-action
- request: pre-os-command
- timeout:
- minutes: 2
+- command:
+ name: pre_os_command
{% endblock boot_target %}
{% block test_target %}
diff --git a/openembedded-lkft/lava-job-definitions/devices/x15 b/openembedded-lkft/lava-job-definitions/devices/x15
index 1df35ccb94..7dab5c8c5d 100644
--- a/openembedded-lkft/lava-job-definitions/devices/x15
+++ b/openembedded-lkft/lava-job-definitions/devices/x15
@@ -9,18 +9,17 @@
timeout:
minutes: 25
to: fastboot
- namespace: target
- connection: lxc
+ docker:
+ image: linaro/kir
images:
super:
- url: lxc:///rpb-console-image-lkft.rootfs.img
+ url: downloads://rpb-console-image-lkft.rootfs.img
apply-overlay: true
os: oe
{% endblock deploy_target %}
{% block boot_target %}
- boot:
- namespace: target
auto_login:
login_prompt: 'am57xx-evm login:'
username: root
diff --git a/openembedded-lkft/lava-job-definitions/lkft-fastboot.jinja2 b/openembedded-lkft/lava-job-definitions/lkft-fastboot.jinja2
index 6b8485a5c9..c5f8707978 100644
--- a/openembedded-lkft/lava-job-definitions/lkft-fastboot.jinja2
+++ b/openembedded-lkft/lava-job-definitions/lkft-fastboot.jinja2
@@ -4,63 +4,14 @@
{{ super() }}
context:
test_character_delay: 10
+reboot_to_fastboot: false
{% endblock global_settings %}
-{% block protocols %}
-protocols:
- lava-lxc:
- name: lxc-target
- template: debian
- distribution: debian
- release: buster
- arch: amd64
- mirror: http://deb.debian.org/debian
-{% endblock protocols %}
-
{% block actions %}
- deploy:
- namespace: tlxc
- timeout:
- minutes: 15
- to: lxc
- packages:
- - --no-install-recommends
- - cpio
- - curl
- - file
- - git
- - img2simg
- - libguestfs-tools
- - linux-image-amd64
- - mkbootimg
- - xz-utils
- os: debian
-
-- boot:
- namespace: tlxc
- prompts:
- - 'root@(.*):/#'
- timeout:
- minutes: 5
- method: lxc
-
-- test:
- namespace: tlxc
- timeout:
- minutes: 10
- definitions:
- - repository: https://github.com/Linaro/test-definitions.git
- from: git
- path: automated/linux/android-platform-tools/install.yaml
- name: install-android-platform-tools-r2600
- parameters:
- LINK: 'https://dl.google.com/android/repository/platform-tools_r26.0.0-linux.zip'
-
-- deploy:
timeout:
minutes: 40
- to: download
- namespace: target
+ to: downloads
images:
{%- if DEVICE_TYPE == "hi6220-hikey" %}
ptable:
@@ -76,29 +27,24 @@ protocols:
url: {{KERNEL_URL}}
modules:
url: {{MODULES_URL}}
+ compression: gz
+{%- if DEVICE_TYPE == 'dragonboard-410c' %}
rootfs:
+{%- elif DEVICE_TYPE == 'hi6220-hikey' %}
+ system:
+{%- elif DEVICE_TYPE == 'x15' %}
+ super:
+{%- endif %}
url: {{EXT4_IMAGE_URL}}
+ format: ext4
+ compression: gz
apply-overlay: true
os: oe
-- test:
- namespace: tlxc
- timeout:
- minutes: 30
- definitions:
- - from: inline
- name: resize-rootfs
- path: inline/resize-rootfs.yaml
- repository:
- metadata:
- description: resize rootfs image for test overlay
- format: Lava-Test Test Definition 1.0
- name: resize-rootfs
- run:
- steps:
- - pwd
- - cd /lava-lxc
- - git clone -b 20200115 https://github.com/linaro/kir.git
- - ./kir/lava/board_setup.sh {{DEVICE_TYPE}}
+ postprocess:
+ docker:
+ image: linaro/kir
+ steps:
+ - /kir/lava/board_setup.sh {{DEVICE_TYPE}}
{% block deploy_target %}
{% endblock deploy_target %}
@@ -108,7 +54,6 @@ protocols:
{% block test_target %}
- test:
- namespace: target
timeout:
minutes: {% if job_timeout is defined %}{{ job_timeout }}{% else %}60{% endif %}
definitions:
diff --git a/openembedded-lkft/lava-job-definitions/testplan/kselftests-lkdtm.yaml b/openembedded-lkft/lava-job-definitions/testplan/kselftests-lkdtm.yaml
deleted file mode 100644
index 95a8632936..0000000000
--- a/openembedded-lkft/lava-job-definitions/testplan/kselftests-lkdtm.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-{% extends "master/template-kselftest.yaml.jinja2" %}
-
-{% set testnames = ['lkdtm'] %}
-{% set job_timeout = 10 %}
diff --git a/openembedded-lkft/submit_for_testing.sh b/openembedded-lkft/submit_for_testing.sh
index 2ad625386e..1ebca5d4a2 100755
--- a/openembedded-lkft/submit_for_testing.sh
+++ b/openembedded-lkft/submit_for_testing.sh
@@ -174,6 +174,11 @@ 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-stable-rc-linux-5.14.y::dragonboard-410c
+ linux-stable-rc-linux-5.15.y::dragonboard-410c
+ linux-stable-rc-linux-5.16.y::dragonboard-410c
+ linux-stable-rc-linux-5.17.y::dragonboard-410c
linux-mainline-master::hi6220-hikey
linux-next-master::hi6220-hikey
linux-stable-rc-linux-4.9.y::hi6220-hikey
@@ -188,6 +193,11 @@ 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-stable-rc-linux-5.14.y::hi6220-hikey
+ linux-stable-rc-linux-5.15.y::hi6220-hikey
+ linux-stable-rc-linux-5.16.y::hi6220-hikey
+ linux-stable-rc-linux-5.17.y::hi6220-hikey
linux-mainline-master::juno-r2
linux-next-master::juno-r2
linux-stable-rc-linux-4.4.y::juno-r2
@@ -203,6 +213,11 @@ 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-stable-rc-linux-5.14.y::juno-r2
+ linux-stable-rc-linux-5.15.y::juno-r2
+ linux-stable-rc-linux-5.16.y::juno-r2
+ linux-stable-rc-linux-5.17.y::juno-r2
linux-mainline-master::i386
linux-next-master::i386
linux-stable-rc-linux-4.4.y::i386
@@ -218,6 +233,11 @@ 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-stable-rc-linux-5.14.y::i386
+ linux-stable-rc-linux-5.15.y::i386
+ linux-stable-rc-linux-5.16.y::i386
+ linux-stable-rc-linux-5.17.y::i386
linux-mainline-master::x15
linux-next-master::x15
linux-stable-rc-linux-4.4.y::x15
@@ -233,6 +253,11 @@ 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-stable-rc-linux-5.14.y::x15
+ linux-stable-rc-linux-5.15.y::x15
+ linux-stable-rc-linux-5.16.y::x15
+ linux-stable-rc-linux-5.17.y::x15
linux-mainline-master::x86
linux-next-master::x86
linux-stable-rc-linux-4.4.y::x86
@@ -248,6 +273,11 @@ 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
+ linux-stable-rc-linux-5.14.y::x86
+ linux-stable-rc-linux-5.15.y::x86
+ linux-stable-rc-linux-5.16.y::x86
+ linux-stable-rc-linux-5.17.y::x86
)
this_combo="${QA_SERVER_PROJECT}::${DEVICE_TYPE}"
@@ -282,7 +312,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 +349,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 +364,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/openembedded-rootfs-external-toolchain.yaml b/openembedded-rootfs-external-toolchain.yaml
index b300930a4c..ba4fb1dc57 100644
--- a/openembedded-rootfs-external-toolchain.yaml
+++ b/openembedded-rootfs-external-toolchain.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
parameters:
diff --git a/optee-build.yaml b/optee-build.yaml
index 62c3fcf43d..a1e7093b02 100644
--- a/optee-build.yaml
+++ b/optee-build.yaml
@@ -14,7 +14,7 @@
- job-build
- job-cancel
- job-configure
- linaro:
+ everyone-flat:
- job-build
- build-discarder:
days-to-keep: 90
diff --git a/optee-os.yaml b/optee-os.yaml
index 80110fd53c..8d38967612 100644
--- a/optee-os.yaml
+++ b/optee-os.yaml
@@ -14,7 +14,7 @@
- job-build
- job-cancel
- job-configure
- linaro:
+ everyone-flat:
- job-build
- build-discarder:
days-to-keep: 90
diff --git a/pfalcon-test.yaml b/pfalcon-test.yaml
index ec392aa8ae..0528ddb419 100644
--- a/pfalcon-test.yaml
+++ b/pfalcon-test.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/qa-test-definitions-sanity-check.yaml b/qa-test-definitions-sanity-check.yaml
deleted file mode 100644
index 7641a2bd80..0000000000
--- a/qa-test-definitions-sanity-check.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-- job:
- name: qa-test-definitions-sanity-check
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- disabled: false
- node: docker-stretch-amd64
- display-name: 'QA test definitions sanity check'
- triggers:
- - gerrit:
- server-name: 'review.linaro.org'
- override-votes: true
- gerrit-build-successful-verified-value: 1
- gerrit-build-failed-verified-value: -1
- gerrit-build-successful-codereview-value: 1
- gerrit-build-failed-codereview-value: -1
- readable-message: true
- successful-message: 'Sanity check OK'
- failure-message: '[OUTPUT]:'
- failure-message-file: 'build-error.txt'
- trigger-for-unreviewed-patches: true
- projects:
- - project-compare-type: 'ANT'
- project-pattern: 'qa/test-definitions'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: 'master'
- wrappers:
- - timestamps
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- sudo apt-get update
- sudo apt-get install -y shellcheck python3-pycodestyle python3-yaml php-cli
-
- echo ""
- echo "########################################################################"
- echo " Gerrit Environment"
- env |grep GERRIT
- echo "########################################################################"
-
- echo "#${BUILD_NUMBER}-${GERRIT_PATCHSET_REVISION:0:8}" > ${WORKSPACE}/version.txt
-
- git clone -b ${GERRIT_BRANCH} --depth 1 https://git.linaro.org/${GERRIT_PROJECT}
- cd $(basename ${GERRIT_PROJECT})
- git fetch https://review.linaro.org/${GERRIT_PROJECT} ${GERRIT_REFSPEC}
- git checkout -q FETCH_HEAD
-
- python3 validate.py -r ${WORKSPACE}/build-error.txt -g -s SC1091
- - build-name-setter:
- name: 'version.txt'
- file: true
diff --git a/qclt.yaml b/qclt.yaml
new file mode 100644
index 0000000000..052bfd4b3f
--- /dev/null
+++ b/qclt.yaml
@@ -0,0 +1,15 @@
+# Jenkins view for various QCLT CI jobs
+- view:
+ name: qclt
+ view-type: list
+ regex: '.*lt-qcom-.*'
+
+- view:
+ name: qclt-linux
+ view-type: list
+ regex: '.*lt-qcom-linux.*'
+
+- view:
+ name: qclt-oe
+ view-type: list
+ regex: '.*lt-qcom-(openembedded|yocto).*'
diff --git a/rpb-debian-iot/hwpacks/linaro-hikey b/rpb-debian-iot/hwpacks/linaro-hikey
deleted file mode 100644
index f0c491639a..0000000000
--- a/rpb-debian-iot/hwpacks/linaro-hikey
+++ /dev/null
@@ -1,59 +0,0 @@
-format: '3.0'
-name: linaro-hikey
-architectures:
-- arm64
-origin: Linaro
-maintainer: Linaro Platform <linaro-dev@lists.linaro.org>
-support: supported
-serial_tty: ttyAMA3
-kernel_addr: '0x60000000'
-initrd_addr: '0x62000000'
-load_addr: '0x60008000'
-dtb_addr: '0x61000000'
-partition_layout: bootfs16_rootfs
-mmc_id: '0:1'
-kernel_file: boot/vmlinuz-*
-initrd_file: boot/initrd.img-*
-dtb_file: usr/lib/linux-image-*/hisilicon/hi6220-hikey.dtb
-boot_script: boot.scr
-boot_min_size: 65
-extra_serial_options:
-- console=tty0
-- console=ttyAMA3,115200n8
-assume_installed:
-- adduser
-- apt
-- apt-utils
-- debconf-i18n
-- debian-archive-keyring
-- gnupg
-- ifupdown
-- initramfs-tools
-- iproute2
-- irqbalance
-- isc-dhcp-client
-- kmod
-- netbase
-- udev
-- libpcap0.8
-- libnl-3-200
-- libnl-genl-3-200
-- init-system-helpers
-- logrotate
-- lsb-base
-packages:
-- grub-efi-arm64
-- firmware-linux
-- firmware-ti-connectivity
-- ti-calibrator
-- ti-wlconf
-- linux-image-reference-arm64
-- tcpdump
-- tinyproxy
-- mosquitto
-- jq
-- stm32flash
-sources:
- debian: http://http.debian.net/debian/ stretch main contrib non-free
- repo: http://repo.linaro.org/ubuntu/linaro-overlay stretch main
- rsalveti: http://repo.linaro.org/ubuntu/rsalveti stretch main
diff --git a/rpb-kernel-enterprise-deb/build.sh b/rpb-kernel-enterprise-deb/build.sh
deleted file mode 100644
index 16680ca759..0000000000
--- a/rpb-kernel-enterprise-deb/build.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-echo "deb http://deb.debian.org/debian stretch-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
-
-sudo apt-get update -q=2
-sudo apt-get install -q -y ccache python-requests quilt cpio rsync dh-exec kernel-wedge/stretch-backports
-sudo apt upgrade -q -y
-
-# Checkout source code
-git clone --depth 1 -b ${DEBIAN_GIT_BRANCH} ${DEBIAN_GIT_URL} debian-pkg
-
-# Export the kernel packaging version
-cd ${WORKSPACE}/linux
-
-kernel_version=$(make kernelversion)
-kernel_deb_pkg_version=$(echo ${kernel_version} | sed -e 's/\.0-rc/~rc/')
-export KDEB_PKGVERSION="${kernel_deb_pkg_version}.dfsg.${BUILD_NUMBER}-1"
-git tag -f v${kernel_deb_pkg_version//\~/-}
-
-# Build the debian source kernel
-cd ${WORKSPACE}/debian-pkg
-
-# Show top revision
-git log -1
-
-# Use build number as ABI
-sed -i "s/^abiname:.*/abiname: ${BUILD_NUMBER}/g" debian/config/defines
-
-cat << EOF > debian/changelog
-linux ($KDEB_PKGVERSION) unstable; urgency=medium
-
- * Auto build:
- - URL: ${GIT_URL}
- - Branch: ${GIT_BRANCH}
- - Commit: ${GIT_COMMIT}
-
- -- enterprise <rp-enterprise@linaro.org>> $(date -R)
-
-EOF
-
-debian/rules clean || true
-/usr/bin/make -f debian/rules debian/control-real || true # no need to patch packaging
-debian/bin/genorig.py ../linux
-debian/rules orig
-fakeroot debian/rules source
-debuild -S -uc -us -d
-cd ..
-
-cat > ${WORKSPACE}/build-package-params <<EOF
-source=${BUILD_URL}/artifact/$(echo *.dsc)
-repo=${TARGET_REPO}
-EOF
-
-# Final preparation for publishing
-mkdir out
-rm *.orig.tar.xz
-cp -a orig/*.orig.tar.xz ${WORKSPACE}/
-cp -a *.dsc *.changes *.debian.tar.xz *.orig.tar.xz out/
-
-# Create MD5SUMS file
-(cd out && md5sum * > MD5SUMS.txt)
-
-# Build information
-cat > out/HEADER.textile << EOF
-
-h4. Reference Platform - Linux Kernel
-
-Linux Kernel build consumed by the Reference Platform Enterprise Builds
-
-Build Description:
-* Build URL: "${BUILD_URL}":${BUILD_URL}
-* Git tree: "${GIT_URL}":${GIT_URL}
-* Git branch: ${GIT_BRANCH}
-* Git commit: ${GIT_COMMIT}
-* Kernel version: ${kernel_version}
-* Kernel deb version: ${KDEB_PKGVERSION}
-EOF
-
-# Publish
-test -d ${HOME}/bin || mkdir ${HOME}/bin
-wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
-time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- out reference-platform/components/linux/enterprise/${BUILD_NUMBER}/
-
diff --git a/rpb-openembedded-dunfell-params.yaml.inc b/rpb-openembedded-dunfell-params.yaml.inc
deleted file mode 100644
index b6268cbe6e..0000000000
--- a/rpb-openembedded-dunfell-params.yaml.inc
+++ /dev/null
@@ -1,27 +0,0 @@
-- string:
- name: IMAGES_RPB
- default: 'rpb-console-image rpb-console-image-test rpb-desktop-image rpb-desktop-image-test'
-- string:
- name: IMAGES_RPB_WAYLAND
- default: 'rpb-console-image rpb-console-image-test rpb-weston-image rpb-weston-image-test'
-- string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
-- string:
- name: MANIFEST_BRANCH
- default: 'dunfell'
-- string:
- name: BASE_URL
- default: 'http://snapshots.linaro.org/'
-- string:
- name: LAVA_SERVER
- default: 'validation.linaro.org/RPC2/'
-- string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
-- string:
- name: QA_SERVER_PROJECT
- default: 'rpb-oe'
-- string:
- name: QA_SERVER_TEAM
- default: 'rpb'
diff --git a/rpb-openembedded-gerrit-premerge-ci.yaml b/rpb-openembedded-gerrit-premerge-ci.yaml
deleted file mode 100644
index 8120c65f02..0000000000
--- a/rpb-openembedded-gerrit-premerge-ci.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
-- project:
- name: rpb-openembedded-gerrit-premerge-ci
- jobs:
- - 'rpb-openembedded-gerrit-premerge-ci-{branch}':
- branch: 'master'
- - 'rpb-openembedded-gerrit-premerge-ci-{branch}':
- branch: 'dunfell'
-
-- job-template:
- name: 'rpb-openembedded-gerrit-premerge-ci-{branch}'
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- parameters:
- !include: rpb-openembedded-{branch}-params.yaml.inc
- disabled: false
- node: master
- display-name: 'Premerge CI for meta-linaro and meta-backports Layers in Reference Platform - OpenEmbedded ({branch})'
- triggers:
- - gerrit:
- server-name: 'review.linaro.org'
- trigger-on:
- - patchset-created-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'openembedded/meta-linaro'
- branches:
- - branch-pattern: '{branch}'
- - project-compare-type: 'PLAIN'
- project-pattern: 'openembedded/meta-backports'
- branches:
- - branch-pattern: '{branch}'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - rpb-wayland
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- 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
- PUB_DEST="reference-platform/embedded/premerge-ci/${{MANIFEST_BRANCH}}/${{MACHINE}}/${{BUILD_NUMBER}}/${{DISTRO}}"
- echo "PUB_DEST=${{PUB_DEST}}" > pub_dest_parameters
- - inject:
- properties-file: pub_dest_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/device_type.sh
- - inject:
- properties-file: device_type_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw-escape: rpb-openembedded/publishers.sh
- - shell:
- !include-raw-escape: rpb-openembedded/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw-escape:
- - openembedded-lkft/postbuild.groovy
-# We can only archive files that are located in the workspace
-# - archive:
-# artifacts: 'build/tmp-*glibc/deploy/images/${{MACHINE}}/*'
- - email-ext:
- recipients: 'fathi.boudra@linaro.org, nicolas.dechesne@linaro.org, anibal.limon@linaro.org'
- always: true
- matrix-trigger: only-parent
diff --git a/rpb-openembedded-master-params.yaml.inc b/rpb-openembedded-master-params.yaml.inc
deleted file mode 100644
index 8202a2defb..0000000000
--- a/rpb-openembedded-master-params.yaml.inc
+++ /dev/null
@@ -1,27 +0,0 @@
-- string:
- name: IMAGES_RPB
- default: 'rpb-console-image rpb-console-image-test rpb-desktop-image rpb-desktop-image-test'
-- string:
- name: IMAGES_RPB_WAYLAND
- default: 'rpb-console-image rpb-console-image-test rpb-weston-image rpb-weston-image-test'
-- string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
-- string:
- name: MANIFEST_BRANCH
- default: 'master'
-- string:
- name: BASE_URL
- default: 'http://snapshots.linaro.org/'
-- string:
- name: LAVA_SERVER
- default: 'validation.linaro.org/RPC2/'
-- string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
-- string:
- name: QA_SERVER_PROJECT
- default: 'rpb-oe'
-- string:
- name: QA_SERVER_TEAM
- default: 'rpb'
diff --git a/rpb-openembedded-meta-96boards-premerge-ci.yaml b/rpb-openembedded-meta-96boards-premerge-ci.yaml
deleted file mode 100644
index 54c0707f50..0000000000
--- a/rpb-openembedded-meta-96boards-premerge-ci.yaml
+++ /dev/null
@@ -1,114 +0,0 @@
-- project:
- name: rpb-openembedded-meta-96boards-premerge-ci'
- jobs:
- - 'rpb-openembedded-meta-96boards-premerge-ci-{branch}':
- branch: master
- - 'rpb-openembedded-meta-96boards-premerge-ci-{branch}':
- branch: dunfell
-
-- job-template:
- name: 'rpb-openembedded-meta-96boards-premerge-ci-{branch}'
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - github:
- url: https://github.com/96boards/meta-96boards
- parameters:
- !include: rpb-openembedded-{branch}-params.yaml.inc
- disabled: false
- node: master
- display-name: 'Premerge CI for meta-96boards Layer in Reference Platform - OpenEmbedded ({branch})'
- scm:
- - git:
- url: https://github.com/96boards/meta-96boards
- refspec: +refs/pull/*:refs/remotes/origin/pr/*
- name: origin
- branches:
- - ${{sha1}}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- triggers:
- - github-pull-request:
- github-hooks: true
- permit-all: true
- white-list-target-branches:
- - 'master'
- auth-id: 'GITHUB_TOKEN'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - rpb-wayland
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- 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
- PUB_DEST="reference-platform/embedded/premerge-ci/${{MANIFEST_BRANCH}}/${{MACHINE}}/${{JOB_NAME}}/${{BUILD_NUMBER}}/${{DISTRO}}"
- echo "PUB_DEST=${{PUB_DEST}}" > pub_dest_parameters
- - inject:
- properties-file: pub_dest_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/device_type.sh
- - inject:
- properties-file: device_type_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw-escape: rpb-openembedded/publishers.sh
- - shell:
- !include-raw-escape: rpb-openembedded/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw-escape:
- - openembedded-lkft/postbuild.groovy
-# We can only archive files that are located in the workspace
-# - archive:
-# artifacts: 'build/tmp-*glibc/deploy/images/${{MACHINE}}/*'
- - email-ext:
- recipients: 'fathi.boudra@linaro.org, nicolas.dechesne@linaro.org, anibal.limon@linaro.org'
- always: true
- matrix-trigger: only-parent
diff --git a/rpb-openembedded-meta-rpb-premerge-ci.yaml b/rpb-openembedded-meta-rpb-premerge-ci.yaml
deleted file mode 100644
index c24dca8e9a..0000000000
--- a/rpb-openembedded-meta-rpb-premerge-ci.yaml
+++ /dev/null
@@ -1,114 +0,0 @@
-- project:
- name: rpb-openembedded-meta-rpb-premerge-ci
- jobs:
- - 'rpb-openembedded-meta-rpb-premerge-ci-{branch}':
- branch: 'master'
- - 'rpb-openembedded-meta-rpb-premerge-ci-{branch}':
- branch: 'dunfell'
-
-- job-template:
- name: 'rpb-openembedded-meta-rpb-premerge-ci-{branch}'
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - github:
- url: https://github.com/96boards/meta-rpb
- parameters:
- !include: rpb-openembedded-{branch}-params.yaml.inc
- disabled: false
- node: master
- display-name: 'Premerge CI for meta-rpb Layer in Reference Platform - OpenEmbedded ({branch})'
- scm:
- - git:
- url: https://github.com/96boards/meta-rpb
- refspec: +refs/pull/*:refs/remotes/origin/pr/*
- name: origin
- branches:
- - ${{sha1}}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- triggers:
- - github-pull-request:
- github-hooks: true
- permit-all: true
- white-list-target-branches:
- - '{branch}'
- auth-id: 'GITHUB_TOKEN'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - rpb-wayland
- - axis:
- type: slave
- name: label
- values:
- - docker-buster-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 240
- - 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
- PUB_DEST="reference-platform/embedded/premerge-ci/${{MANIFEST_BRANCH}}/${{MACHINE}}/${{JOB_NAME}}/${{BUILD_NUMBER}}/${{DISTRO}}"
- echo "PUB_DEST=${{PUB_DEST}}" > pub_dest_parameters
- - inject:
- properties-file: pub_dest_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/device_type.sh
- - inject:
- properties-file: device_type_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw-escape: rpb-openembedded/publishers.sh
- - shell:
- !include-raw-escape: rpb-openembedded/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw-escape:
- - openembedded-lkft/postbuild.groovy
-# We can only archive files that are located in the workspace
-# - archive:
-# artifacts: 'build/tmp-*glibc/deploy/images/${{MACHINE}}/*'
- - email-ext:
- recipients: 'fathi.boudra@linaro.org, nicolas.dechesne@linaro.org, anibal.limon@linaro.org'
- always: true
- matrix-trigger: only-parent
diff --git a/rpb-openembedded-warrior-params.yaml.inc b/rpb-openembedded-warrior-params.yaml.inc
deleted file mode 100644
index da86823728..0000000000
--- a/rpb-openembedded-warrior-params.yaml.inc
+++ /dev/null
@@ -1,30 +0,0 @@
-- string:
- name: IMAGES
- default: 'rpb-console-image rpb-console-image-test'
-- string:
- name: IMAGES_RPB
- default: 'rpb-desktop-image rpb-desktop-image-test'
-- string:
- name: IMAGES_RPB_WAYLAND
- default: 'rpb-weston-image rpb-weston-image-test'
-- string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
-- string:
- name: MANIFEST_BRANCH
- default: 'warrior'
-- string:
- name: BASE_URL
- default: 'http://snapshots.linaro.org/'
-- string:
- name: LAVA_SERVER
- default: 'validation.linaro.org/RPC2/'
-- string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
-- string:
- name: QA_SERVER_PROJECT
- default: 'rpb-oe'
-- string:
- name: QA_SERVER_TEAM
- default: 'rpb'
diff --git a/rpb-openembedded-zeus-params.yaml.inc b/rpb-openembedded-zeus-params.yaml.inc
deleted file mode 100644
index e505ac0751..0000000000
--- a/rpb-openembedded-zeus-params.yaml.inc
+++ /dev/null
@@ -1,30 +0,0 @@
-- string:
- name: IMAGES
- default: 'rpb-console-image rpb-console-image-test'
-- string:
- name: IMAGES_RPB
- default: 'rpb-desktop-image rpb-desktop-image-test'
-- string:
- name: IMAGES_RPB_WAYLAND
- default: 'rpb-weston-image rpb-weston-image-test'
-- string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
-- string:
- name: MANIFEST_BRANCH
- default: 'zeus'
-- string:
- name: BASE_URL
- default: 'http://snapshots.linaro.org/'
-- string:
- name: LAVA_SERVER
- default: 'validation.linaro.org/RPC2/'
-- string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
-- string:
- name: QA_SERVER_PROJECT
- default: 'rpb-oe'
-- string:
- name: QA_SERVER_TEAM
- default: 'rpb'
diff --git a/rpb-openembedded.yaml b/rpb-openembedded.yaml
deleted file mode 100644
index 356bc6c45a..0000000000
--- a/rpb-openembedded.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-- project:
- name: rpb-openembedded-template
- jobs:
- - 'rpb-openembedded-{branch}':
- branch: 'master'
- machines: !!python/tuple
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- - 'intel-core2-32'
- - 'intel-corei7-64'
- slave-label: 'docker-buster-amd64'
- - 'rpb-openembedded-{branch}':
- branch: 'dunfell'
- machines: !!python/tuple
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- slave-label: 'docker-buster-amd64'
- - 'rpb-openembedded-{branch}':
- branch: 'zeus'
- machines: !!python/tuple
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- slave-label: 'docker-stretch-amd64'
- - 'rpb-openembedded-{branch}':
- branch: 'warrior'
- machines: !!python/tuple
- - 'dragonboard-410c'
- - 'dragonboard-845c'
- slave-label: 'docker-stretch-amd64'
-
-- job-template:
- name: 'rpb-openembedded-{branch}'
- project-type: matrix
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- artifactNumToKeep: 1
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- parameters:
- !include: 'rpb-openembedded-{branch}-params.yaml.inc'
- disabled: false
- node: master
- display-name: 'Reference Platform - OpenEmbedded ({branch})'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values: '{machines}'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - rpb-wayland
- - axis:
- type: slave
- name: label
- values:
- - '{slave-label}'
- execution-strategy:
- combination-filter: |
- !(DISTRO=="rpb" && MACHINE=="imx8mqevk")
- sequential: false
- wrappers:
- - timeout:
- timeout: 500
- - 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
- PUB_DEST="reference-platform/embedded/${{MANIFEST_BRANCH}}/${{MACHINE}}/${{BUILD_NUMBER}}/${{DISTRO}}"
- echo "PUB_DEST=${{PUB_DEST}}" > pub_dest_parameters
- - inject:
- properties-file: pub_dest_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/device_type.sh
- - inject:
- properties-file: device_type_parameters
- - shell:
- !include-raw-escape: rpb-openembedded/builders.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell:
- !include-raw-escape: rpb-openembedded/publishers.sh
- - shell:
- !include-raw-escape: rpb-openembedded/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw-escape:
- - openembedded-lkft/postbuild.groovy
- - email-ext:
- recipients: 'fathi.boudra@linaro.org, nicolas.dechesne@linaro.org, anibal.limon@linaro.org'
- failure: true
- still-failing: true
- matrix-trigger: only-parent
diff --git a/rpb-openembedded/builders-tux.sh b/rpb-openembedded/builders-tux.sh
new file mode 100644
index 0000000000..d3e11f4655
--- /dev/null
+++ b/rpb-openembedded/builders-tux.sh
@@ -0,0 +1,121 @@
+#!/bin/bash
+
+set -ex
+
+# install jflog client tool, v1, used for publishing artifacts
+(mkdir -p $HOME/bin && cd $HOME/bin && curl -fL https://getcli.jfrog.io | sh)
+
+# Get tuxsuite
+virtualenv --python=$(which python3) .venv
+source .venv/bin/activate
+pip install tuxsuite
+tuxsuite --version
+
+
+[ "${DISTRO}" = "rpb" ] && IMAGES+=" ${IMAGES_RPB}"
+[ "${DISTRO}" = "rpb-wayland" ] && IMAGES+=" ${IMAGES_RPB_WAYLAND}"
+
+# These machines only build the basic rpb-console-image
+case "${MACHINE}" in
+ am57xx-evm|intel-core2-32|intel-corei7-64)
+ IMAGES="rpb-console-image"
+ ;;
+esac
+
+# Default value for BB_OVERRIDE is set to new syntax
+if [ -z "${BB_OVERRIDE}" ]; then
+ BB_OVERRIDE=':'
+fi
+
+# Create Tux Job file
+cat << EOF > tux.json
+{
+ "sources": {
+ "repo": {
+ "url": "${MANIFEST_URL}",
+ "branch": "${MANIFEST_BRANCH}",
+ "manifest": "default.xml"
+ }
+ },
+ "container": "ubuntu-20.04",
+ "envsetup": "setup-environment",
+ "distro": "${DISTRO}",
+ "machine": "${MACHINE}",
+ "target": "${IMAGES}",
+ "artifacts": [],
+ "environment": {
+ },
+ "local_conf": [
+ "INHERIT += 'buildstats buildstats-summary'",
+ "INHERIT${BB_OVERRIDE}remove = 'rm_work'",
+ "IMAGE_NAME${BB_OVERRIDE}append = '-${BUILD_NUMBER}'",
+ "KERNEL_IMAGE_NAME${BB_OVERRIDE}append = '-${BUILD_NUMBER}'",
+ "MODULE_TARBALL_NAME${BB_OVERRIDE}append = '-${BUILD_NUMBER}'",
+ "DT_IMAGE_BASE_NAME${BB_OVERRIDE}append = '-${BUILD_NUMBER}'",
+ "BOOT_IMAGE_BASE_NAME${BB_OVERRIDE}append = '-${BUILD_NUMBER}'"
+ ]
+}
+EOF
+
+# Process top level job extra local.conf
+# This jq script will take the main JSON file and merge local_conf data
+if [ -f "${WORKSPACE}/local.conf.json" ]; then
+ cp tux.json tux.orig.json
+ jq 'reduce inputs.local_conf as $s (.; .local_conf += $s)' tux.orig.json "${WORKSPACE}/local.conf.json" > tux.json
+fi
+
+# Build, do not report tuxsuite return code, since we want to process json out
+tuxsuite bake submit --json-out status.json tux.json || true
+
+# cleanup virtualenv
+deactivate
+
+if [ ! -f status.json ]; then
+ echo "tux suite failed, infrastructure error, status.json does not exist"
+ exit 1
+fi
+
+url=$(cat status.json | jq -r ".download_url")
+state=$(cat status.json | jq -r ".state")
+result=$(cat status.json | jq -r ".result")
+
+if [ "$state" != "finished" ]; then
+ echo "tuxsuite failed, with an unexpected reason"
+ exit 1
+fi
+
+wget $url/build.log
+cat build.log
+
+echo "TUXBUILD_URL=$url" > parameters
+
+if [ "$result" != "pass" ]; then
+ echo "tuxsuite build failed"
+ exit 2
+fi
+
+# Prepare files to publish, if needed
+if [ -z "${PUBLISH_SERVER}" ]; then
+ exit 0
+fi
+
+DEPLOY_DIR_IMAGE=${PWD}/deploy_dir_images
+echo "DEPLOY_DIR_IMAGE=${DEPLOY_DIR_IMAGE}" >> parameters
+
+# files to download
+wget $url/?export=json -O root.json
+wget $url/images/${MACHINE}/?export=json -O images.json
+
+mkdir ${DEPLOY_DIR_IMAGE} && pushd ${DEPLOY_DIR_IMAGE}
+
+for j in ${WORKSPACE}/root.json ${WORKSPACE}/images.json; do
+ for f in $(cat $j | jq -r .files[].Url); do
+ wget $f
+ done
+done
+popd
+
+# Create MD5SUMS file
+find ${DEPLOY_DIR_IMAGE} -type f | xargs md5sum > MD5SUMS.txt
+sed -i "s|${DEPLOY_DIR_IMAGE}/||" MD5SUMS.txt
+mv MD5SUMS.txt ${DEPLOY_DIR_IMAGE}
diff --git a/rpb-openembedded/builders.sh b/rpb-openembedded/builders.sh
index e26cc634c3..bde6b0a6d3 100755
--- a/rpb-openembedded/builders.sh
+++ b/rpb-openembedded/builders.sh
@@ -1,6 +1,9 @@
#!/bin/bash
-set -e
+set -ex
+
+# install jflog client tool, v1, used for publishing artifacts
+(mkdir -p $HOME/bin && cd $HOME/bin && curl -fL https://getcli.jfrog.io | sh)
# workaround EDK2 is confused by the long path used during the build
# and truncate files name expected by VfrCompile
@@ -30,7 +33,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="python-pip $android_tools chrpath cpio diffstat gawk libmagickwand-dev libmath-prime-util-perl libsdl1.2-dev libssl-dev python-requests texinfo vim-tiny whiptail pigz"
+pkg_list="python-pip python3-pip python3-setuptools $android_tools chrpath cpio diffstat gawk libmagickwand-dev libmath-prime-util-perl libsdl1.2-dev libssl-dev lz4 python-requests texinfo vim-tiny whiptail pigz zstd"
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
@@ -38,7 +41,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
@@ -51,20 +55,23 @@ export PATH=${HOME}/bin:${PATH}
if [ ! -e ".repo/manifest.xml" ]; then
repo init -u ${MANIFEST_URL} -b ${MANIFEST_BRANCH_PREFIX}${MANIFEST_BRANCH}
- # link to shared downloads on persistent disk
- # our builds config is expecting downloads and sstate-cache, here.
- # DL_DIR = "${OEROOT}/sources/downloads"
- # SSTATE_DIR = "${OEROOT}/build/sstate-cache"
- mkdir -p ${HOME}/srv/oe/downloads ${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH}
- mkdir -p build
- ln -s ${HOME}/srv/oe/downloads
- ln -s ${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH} sstate-cache
+ # When set skip persistent disk space, useful for debug
+ if [ "${SKIP_PERSIST}" != "True" ]; then
+ # link to shared downloads on persistent disk
+ # our builds config is expecting downloads and sstate-cache, here.
+ # DL_DIR = "${OEROOT}/sources/downloads"
+ # SSTATE_DIR = "${OEROOT}/build/sstate-cache"
+ mkdir -p ${HOME}/srv/oe/downloads-${MANIFEST_BRANCH} ${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH}
+ mkdir -p build
+ ln -s ${HOME}/srv/oe/downloads-${MANIFEST_BRANCH} downloads
+ ln -s ${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH} sstate-cache
+ fi
fi
if [ "${ghprbPullId}" ]; then
echo "Applying Github pull-request #${ghprbPullId} from ${ghprbGhRepository}"
- sed -i -e "s|name=\"${ghprbGhRepository}\"|name=\"${ghprbGhRepository}\" revision=\"refs/pull/${ghprbPullId}/head\"|" .repo/manifest.xml
+ sed -i -e "s|name=\"${ghprbGhRepository}\"|name=\"${ghprbGhRepository}\" revision=\"refs/pull/${ghprbPullId}/head\"|" .repo/manifests/default.xml
fi
repo sync
@@ -74,7 +81,7 @@ MANIFEST_COMMIT=$(cd .repo/manifests && git rev-parse --short HEAD)
# XXX: Disable manifest diff because at this moment link latest is not working so not latest pinned-manifest is available
# record changes since last build, if available
-#if wget -q ${BASE_URL}${PUB_DEST/\/${BUILD_NUMBER}\//\/latest\/}/pinned-manifest.xml -O pinned-manifest-latest.xml; then
+#if wget -q ${PUBLISH_SERVER}${PUB_DEST/\/${BUILD_NUMBER}\//\/latest\/}/pinned-manifest.xml -O pinned-manifest-latest.xml; then
# # https://github.com/96boards/oe-rpb-manifest/commit/0be354483a124903982103dc937f9e5c1a094a3a
# if grep -q ".*linkfile.*\.\./\.\./\.repo/manifests/setup-environment" pinned-manifest-latest.xml ; then
# echo "detected old style symlink with relative path, skipping diff report"
@@ -107,6 +114,13 @@ export EULA_dragonboard410c=1
export EULA_stih410b2260=1
source setup-environment build
+# Support both pre-honister and honister+ override syntax
+if grep -q 'CONF_VERSION.*"1"' conf/local.conf ; then
+ BB_OVERRIDE='_'
+else
+ BB_OVERRIDE=':'
+fi
+
# Accept freescale EULA
cat << EOF >> conf/local.conf
ACCEPT_FSL_EULA = "1"
@@ -114,11 +128,11 @@ 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}"
-DT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
-BOOT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
+IMAGE_NAME${BB_OVERRIDE}append = "-${BUILD_NUMBER}"
+KERNEL_IMAGE_NAME${BB_OVERRIDE}append = "-${BUILD_NUMBER}"
+MODULE_TARBALL_NAME${BB_OVERRIDE}append = "-${BUILD_NUMBER}"
+DT_IMAGE_BASE_NAME${BB_OVERRIDE}append = "-${BUILD_NUMBER}"
+BOOT_IMAGE_BASE_NAME${BB_OVERRIDE}append = "-${BUILD_NUMBER}"
EOF
# get build stats to make sure that we use sstate properly
@@ -128,7 +142,7 @@ EOF
# Make sure we don't use rm_work in CI slaves since they are non persistent build nodes
cat << EOF >> conf/auto.conf
-INHERIT_remove = "rm_work"
+INHERIT${BB_OVERRIDE}remove = "rm_work"
EOF
# allow the top level job to append to auto.conf
@@ -149,9 +163,38 @@ case "${MACHINE}" in
;;
esac
+# allow top level job to run a preprocessing command
+if [ -x ${WORKSPACE}/bitbake-pre ]; then
+ ${WORKSPACE}/bitbake-pre
+fi
+
time bitbake ${IMAGES}
+# allow top level job to run a postprocessing command
+if [ -x ${WORKSPACE}/bitbake-post ]; then
+ ${WORKSPACE}/bitbake-post
+fi
+
+set +x
DEPLOY_DIR_IMAGE=$(bitbake -e | grep "^DEPLOY_DIR_IMAGE="| cut -d'=' -f2 | tr -d '"')
+set -x
+
+if [ "${BUILD_SDK}" ]; then
+ time bitbake ${BUILD_SDK} -c populate_sdk
+ set +x
+ SDK_DEPLOY=$(bitbake -e ${BUILD_SDK} -c populate_sdk | grep "^SDK_DEPLOY="| cut -d'=' -f2 | tr -d '"')
+ set -x
+
+ cp $SDK_DEPLOY/* $DEPLOY_DIR_IMAGE/
+fi
+
+# Get Kernel repo, branch and revision
+set +x
+KERNEL_ENV=$(bitbake -e virtual/kernel)
+KERNEL_REPO=$(echo "$KERNEL_ENV" | awk 'match($0, /^SRC_URI=(.*)/, a) {print a[1]}' | cut -d';' -f 1 | tr -d '"')
+KERNEL_BRANCH=$(echo "$KERNEL_ENV" | grep "^SRC_URI=" | awk 'match($0, /branch=(.*)/, a) {print a[1]}' | tr -d '"')
+KERNEL_COMMIT=$(echo "$KERNEL_ENV" | awk 'match($0, /^SRCREV=(.*)/, a) {print a[1]}' | tr -d '"')
+set -x
# Prepare files to publish
rm -f ${DEPLOY_DIR_IMAGE}/*.txt
@@ -210,7 +253,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)
@@ -237,21 +280,24 @@ case "${MACHINE}" in
esac
# Note: the main job script allows to override the default value for
-# BASE_URL and PUB_DEST, typically used for OE RPB builds
+# PUBLISH_SERVER and PUB_DEST, typically used for OE RPB builds
cat << EOF > ${WORKSPACE}/post_build_lava_parameters
DEPLOY_DIR_IMAGE=${DEPLOY_DIR_IMAGE}
MANIFEST_COMMIT=${MANIFEST_COMMIT}
-BOOT_URL=${BASE_URL}${PUB_DEST}/${BOOT_IMG}
-ROOTFS_BUILD_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_EXT4_IMG}
-ROOTFS_SPARSE_BUILD_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_IMG}
-ROOTFS_DESKTOP_SPARSE_BUILD_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_DESKTOP_IMG}
-SYSTEM_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_EXT4_IMG}
-KERNEL_URL=${BASE_URL}${PUB_DEST}/${KERNEL_IMG}
-DTB_URL=${BASE_URL}${PUB_DEST}/${DTB_IMG}
-NFSROOTFS_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_TARXZ_IMG}
-RECOVERY_IMAGE_URL=${BASE_URL}${PUB_DEST}/juno-oe-uboot.zip
+BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_IMG}
+ROOTFS_BUILD_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_EXT4_IMG}
+ROOTFS_SPARSE_BUILD_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_IMG}
+ROOTFS_DESKTOP_SPARSE_BUILD_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_DESKTOP_IMG}
+SYSTEM_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_EXT4_IMG}
+KERNEL_URL=${PUBLISH_SERVER}${PUB_DEST}/${KERNEL_IMG}
+DTB_URL=${PUBLISH_SERVER}${PUB_DEST}/${DTB_IMG}
+NFSROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_TARXZ_IMG}
+RECOVERY_IMAGE_URL=${PUBLISH_SERVER}${PUB_DEST}/juno-oe-uboot.zip
LXC_BOOT_IMG=${BOOT_IMG}
LXC_ROOTFS_IMG=$(basename ${ROOTFS_IMG} .gz)
INITRD_URL="${INITRD_URL}"
KERNEL_ARGS=""
+KERNEL_REPO=$KERNEL_REPO
+KERNEL_BRANCH=$KERNEL_BRANCH
+KERNEL_COMMIT=$KERNEL_COMMIT
EOF
diff --git a/rpb-openembedded/lava-job-definitions/qemuarm64_atf_fip/template-boot.yaml b/rpb-openembedded/lava-job-definitions/qemuarm64_atf_fip/template-boot.yaml
index 9b98f3060c..2d9cf3bd4b 100644
--- a/rpb-openembedded/lava-job-definitions/qemuarm64_atf_fip/template-boot.yaml
+++ b/rpb-openembedded/lava-job-definitions/qemuarm64_atf_fip/template-boot.yaml
@@ -12,7 +12,7 @@ priority: 25
visibility: public
context:
- arch: arm64
+ arch: aarch64
machine: virt,secure=on
cpu: cortex-a57
guestfs_interface: virtio
diff --git a/rpb-openembedded/lava-job-definitions/qemuarm64uefi/template-boot.yaml b/rpb-openembedded/lava-job-definitions/qemuarm64uefi/template-boot.yaml
index 5b36eb6058..4e99992e48 100644
--- a/rpb-openembedded/lava-job-definitions/qemuarm64uefi/template-boot.yaml
+++ b/rpb-openembedded/lava-job-definitions/qemuarm64uefi/template-boot.yaml
@@ -12,7 +12,7 @@ priority: 25
visibility: public
context:
- arch: arm64
+ arch: aarch64
netdevice: user
machine: virt
cpu: cortex-a57
diff --git a/rpb-openembedded/publishers.sh b/rpb-openembedded/publishers.sh
index ae0f6035a0..ba9df1e935 100755
--- a/rpb-openembedded/publishers.sh
+++ b/rpb-openembedded/publishers.sh
@@ -1,17 +1,18 @@
#!/bin/bash
+set -ex
+
if [ -f ${WORKSPACE}/BUILD-INFO.txt ];then
BUILD_INFO="--build-info ${WORKSPACE}/BUILD-INFO.txt"
else
BUILD_INFO=""
fi
-if [ -z "${DEPLOY_DIR_IMAGE}" ] || [ -z "${PUB_DEST}" ] || [ -z "${PUBLISH_SERVER}" ]
+if [ -z "${DEPLOY_DIR_IMAGE}" ] || [ -z "${PUB_DEST}" ]
then
echo "== missing publishing variables =="
echo "DEPLOY_DIR_IMAGE = ${DEPLOY_DIR_IMAGE}"
echo "PUB_DEST = ${PUB_DEST}"
- echo "PUBLISH_SERVER = ${PUBLISH_SERVER}"
exit 1
fi
@@ -19,9 +20,8 @@ fi
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- ${BUILD_INFO} \
- ${DEPLOY_DIR_IMAGE}/ ${PUB_DEST}
+ ${BUILD_INFO} \
+ ${DEPLOY_DIR_IMAGE}/ ${PUB_DEST}
# Some (most?) of our OE jobs publish images in a $DISTRO subfolder, so we need
# to strip the folder when we create the 'latest' link
@@ -30,12 +30,11 @@ time python3 ${HOME}/bin/linaro-cp.py \
# Warning. Bashism here. But we use bash, so.. use Bash regexp to catch if PUB_DEST
# ends with BUILD_NUMBER or not, and we catch trailing '/' just in case it's there
+
if [[ "$PUB_DEST" =~ ^.*/${BUILD_NUMBER}/?$ ]]; then
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --make-link ${PUB_DEST}
+ --make-link ${PUB_DEST}
else
time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --make-link $(dirname ${PUB_DEST})
+ --make-link $(dirname ${PUB_DEST})
fi
diff --git a/run-jjb.py b/run-jjb.py
index a7a41bb4d3..62b200b1d6 100755
--- a/run-jjb.py
+++ b/run-jjb.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import shutil
@@ -10,19 +10,38 @@ import xml.etree.ElementTree
from distutils.spawn import find_executable
+# provide a convenience wrapper for running a command. If command
+# fails for any reason, it should raise a ValueError and let caller
+# handle it
+def safe_run(args, check=True):
+ try:
+ proc = subprocess.run(
+ args,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ check=check)
+ except(OSError, ValueError) as e:
+ raise ValueError("command '%s' failed: %s" % (" ".join(args), e))
+ except(subprocess.CalledProcessError) as e:
+ raise ValueError("command '%s' failed with %s:\n%s" % (
+ e.cmd, e.returncode, e.output.decode()))
+ except(Exception) as e:
+ raise ValueError("unknown error running command '%s':\n%s" %
+ (" ".join(args), e))
+
+ return proc
+
+
def findparentfiles(fname):
filelist = []
newlist = []
args = ['grep', '-rl', '--exclude-dir=.git', fname]
- proc = subprocess.Popen(args,
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- universal_newlines=False,
- preexec_fn=lambda:
- signal.signal(signal.SIGPIPE, signal.SIG_DFL))
- data = proc.communicate()[0]
- if proc.returncode != 0:
- return filelist
+
+ # Set False for the check argument to subprocess run... we don't care
+ # if grep doesn't find any files
+ proc = safe_run(args, False)
+ data = proc.stdout.decode()
+
for filename in data.splitlines():
if filename.endswith('.yaml') and '/' not in filename:
filelist.append(filename)
@@ -69,19 +88,11 @@ try:
git_args = ['git', 'diff', '--raw',
os.environ.get('GIT_PREVIOUS_COMMIT'),
os.environ.get('GIT_COMMIT')]
- proc = subprocess.Popen(git_args,
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- universal_newlines=False,
- preexec_fn=lambda:
- signal.signal(signal.SIGPIPE, signal.SIG_DFL))
-except (OSError, ValueError) as e:
+ proc = safe_run(git_args)
+ data = proc.stdout.decode()
+except (ValueError) as e:
raise ValueError("%s" % e)
-data = proc.communicate()[0]
-if proc.returncode != 0:
- raise ValueError("command has failed with code '%s'" % proc.returncode)
-
filelist = []
deletelist = []
files = []
@@ -124,42 +135,18 @@ for conf_filename in filelist:
LAVA_TOKEN=os.environ.get('LAVA_TOKEN'))
with open('template.yaml', 'w') as f:
f.write(buffer)
- try:
- proc = subprocess.Popen(jjb_args,
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- universal_newlines=False,
- preexec_fn=lambda:
- signal.signal(signal.SIGPIPE, signal.SIG_DFL))
- except (OSError, ValueError) as e:
- raise ValueError("%s" % e)
- data = proc.communicate()[0]
- if proc.returncode != 0:
- raise ValueError("command has failed with code '%s'" % proc.returncode)
+ proc = safe_run(jjb_args)
+ data = proc.stdout.decode()
try:
shutil.rmtree('out/', ignore_errors=True)
- proc = subprocess.Popen(jjb_test_args,
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- universal_newlines=False,
- preexec_fn=lambda:
- signal.signal(signal.SIGPIPE, signal.SIG_DFL))
- data = proc.communicate()[0]
- if proc.returncode != 0:
- raise ValueError("command has failed with code '%s'" % proc.returncode)
-
- proc = subprocess.Popen(['ls', 'out/'],
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- universal_newlines=False,
- preexec_fn=lambda:
- signal.signal(signal.SIGPIPE, signal.SIG_DFL))
- data = proc.communicate()[0]
- if proc.returncode != 0:
- raise ValueError("command has failed with code '%s'" % proc.returncode)
+ proc = safe_run(jjb_test_args)
+ data = proc.stdout.decode()
+
+ proc = safe_run(['ls', 'out/'])
+ data = proc.stdout.decode()
for filename in data.splitlines():
# old job conf might have been removed because the job is now generated through the template
@@ -182,7 +169,7 @@ for conf_filename in filelist:
except:
continue
- deletelist.append(conf_name)
+ deletelist.append(filename)
except (OSError, ValueError) as e:
raise ValueError("%s" % e)
@@ -194,20 +181,11 @@ for conf_filename in filelist:
for deletejob in deletelist:
delete_args = list(jjb_delete_args)
delete_args.extend([deletejob])
- try:
- proc = subprocess.Popen(delete_args,
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- universal_newlines=False,
- preexec_fn=lambda:
- signal.signal(signal.SIGPIPE, signal.SIG_DFL))
- data = proc.communicate()[0]
- if proc.returncode != 0:
- raise ValueError("command has failed with code '%s'" % proc.returncode)
- print data
- except (OSError, ValueError) as e:
- raise ValueError("%s" % e)
+
+ proc = safe_run(delete_args)
+ data = proc.stdout.decode()
+
+ print(data)
if os.path.exists('jenkins_jobs.ini'):
os.remove('jenkins_jobs.ini')
-
diff --git a/schneider-openembedded-dunfell-4.19.yaml b/schneider-openembedded-dunfell-4.19.yaml
index 637bd3bee9..a51adf2d71 100644
--- a/schneider-openembedded-dunfell-4.19.yaml
+++ b/schneider-openembedded-dunfell-4.19.yaml
@@ -17,11 +17,6 @@
- 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
@@ -94,7 +89,7 @@
values:
- docker-buster-amd64
execution-strategy:
- sequential: false
+ sequential: true
wrappers:
- timestamps
- ssh-agent-credentials:
diff --git a/schneider-openembedded-dunfell-5.4-test.yaml b/schneider-openembedded-dunfell-5.10.yaml
index d91efb1103..b8d0a3fa93 100644
--- a/schneider-openembedded-dunfell-5.4-test.yaml
+++ b/schneider-openembedded-dunfell-5.10.yaml
@@ -1,5 +1,5 @@
- job:
- name: schneider-openembedded-dunfell-5.4-test
+ name: schneider-openembedded-dunfell-5.10
project-type: matrix
defaults: global
logrotate:
@@ -17,11 +17,6 @@
- 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
@@ -42,13 +37,13 @@
default: ''
- string:
name: DISTRO_URL_BASE
- default: 'ssh://git@dev-private-git.linaro.org/schneider'
+ default: 'ssh://git@github.com/SE-DeviceIntelligence'
- string:
name: DISTRO_DIR
default: 'DIP-Yocto-Linux-Distro'
- string:
name: MANIFEST_BRANCH
- default: 'integration-branch'
+ default: 'linaro-dunfell'
- string:
name: BASE_URL
default: 'https://snapshots.linaro.org/'
@@ -66,21 +61,22 @@
default: 'schneider'
- string:
name: QA_SERVER_PROJECT
- default: 'dunfell-5.4'
+ default: 'dunfell-5.10'
- string:
name: KERNEL_VERSION_PATCHLEVEL
- default: '5.4'
+ default: '5.10'
- string:
name: TEST_LEVEL
default: 'normal'
disabled: false
node: master
- display-name: 'Schneider OpenEmbedded Test (dunfell 5.4)'
+ display-name: 'Schneider OpenEmbedded (dunfell 5.10)'
axes:
- axis:
type: user-defined
name: MACHINE
values:
+ - 'am64x'
- 'rzn1d'
- 'soca9'
- axis:
@@ -94,12 +90,13 @@
values:
- docker-buster-amd64
execution-strategy:
- sequential: false
+ sequential: true
wrappers:
- timestamps
- ssh-agent-credentials:
users:
- '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ - '4840cea9-f64c-4d03-82d6-bd773f5229ae'
- credentials-binding:
- text:
credential-id: QA_REPORTS_TOKEN
@@ -112,14 +109,14 @@
- inject:
properties-file: pub_dest_parameters
- shell:
- !include-raw: schneider-openembedded/builders-test.sh
+ !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_test.sh
+ !include-raw: schneider-openembedded/submit_for_testing.sh
publishers:
- archive:
artifacts: 'cve-*.txt, base-cve-*.txt'
diff --git a/schneider-openembedded-dunfell-5.4.yaml b/schneider-openembedded-dunfell-5.4.yaml
index 4220e7be51..d9b4359f28 100644
--- a/schneider-openembedded-dunfell-5.4.yaml
+++ b/schneider-openembedded-dunfell-5.4.yaml
@@ -17,11 +17,6 @@
- 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
diff --git a/schneider-openembedded-sumo.yaml b/schneider-openembedded-sumo.yaml
index e2e6ade1cc..2f654a568a 100644
--- a/schneider-openembedded-sumo.yaml
+++ b/schneider-openembedded-sumo.yaml
@@ -17,11 +17,6 @@
- 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
@@ -121,7 +116,7 @@
- rpb-openembedded/postbuild.groovy
- openembedded-lkft/postbuild.groovy
- email-ext:
- recipients: 'fathi.boudra@linaro.org, ralph.siemsen@linaro.org, ryan.harkin@linaro.org'
+ recipients: 'fathi.boudra@linaro.org, ralph.siemsen@linaro.org'
always: true
failure: false
matrix-trigger: only-parent
diff --git a/aes-openembedded-rpb-sumo.yaml b/schneider-openembedded-test-am64x.yaml
index 9a8f6c1e15..0c99f8165b 100644
--- a/aes-openembedded-rpb-sumo.yaml
+++ b/schneider-openembedded-test-am64x.yaml
@@ -1,5 +1,5 @@
- job:
- name: aes-openembedded-rpb-sumo
+ name: schneider-openembedded-test-am64x
project-type: matrix
defaults: global
logrotate:
@@ -12,12 +12,12 @@
- job-read
- job-extended-read
- job-workspace
- loic.poulain@linaro.org:
+ ralph.siemsen@linaro.org:
- job-read
- job-extended-read
- job-build
- job-cancel
- ryan.harkin@linaro.org:
+ schneider-linaro-git:
- job-read
- job-extended-read
- job-build
@@ -25,7 +25,10 @@
parameters:
- string:
name: IMAGES
- default: 'rpb-console-image-aes rpb-console-image-aes-dev'
+ default: 'prod-image dev-image'
+ - string:
+ name: SUBMODULES
+ default: 'all'
- string:
name: IMAGES_RPB
default: ''
@@ -33,14 +36,14 @@
name: IMAGES_RPB_WAYLAND
default: ''
- string:
- name: MANIFEST_URL
- default: 'https://github.com/96boards/oe-rpb-manifest.git'
+ name: DISTRO_URL_BASE
+ default: 'ssh://git@github.com/SE-DeviceIntelligence'
- string:
- name: MANIFEST_BRANCH_PREFIX
- default: 'aes/'
+ name: DISTRO_DIR
+ default: 'DIP-Yocto-Linux-Distro'
- string:
name: MANIFEST_BRANCH
- default: 'sumo'
+ default: 'rfs-ti-am64xx'
- string:
name: BASE_URL
default: 'https://snapshots.linaro.org/'
@@ -54,27 +57,36 @@
name: QA_SERVER
default: 'https://qa-reports.linaro.org'
- string:
- name: AUTH_GROUPS
- default: 'linaro, sse-team, aes-team'
+ 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: 'AES OpenEmbedded RPB (sumo)'
+ display-name: 'Schneider OpenEmbedded (AM64x test)'
axes:
- axis:
type: user-defined
name: MACHINE
values:
- - 'aes410'
+ - 'am64x'
- axis:
type: user-defined
name: DISTRO
values:
- - rpb
+ - dip
- axis:
type: slave
name: label
values:
- - docker-stretch-amd64
+ - docker-buster-amd64
execution-strategy:
sequential: false
wrappers:
@@ -82,6 +94,7 @@
- ssh-agent-credentials:
users:
- '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ - '4840cea9-f64c-4d03-82d6-bd773f5229ae'
- credentials-binding:
- text:
credential-id: QA_REPORTS_TOKEN
@@ -90,37 +103,47 @@
- shell: |
#!/bin/bash
- # some machine names we use on 96boards are slightly different
- case "${MACHINE}" in
- dragonboard-410c)
- MACHINE=dragonboard410c
- ;;
- dragonboard-820c)
- MACHINE=dragonboard820c
- ;;
- esac
-
- echo "PUB_DEST=openembedded/aes/${MANIFEST_BRANCH}/${MACHINE}/${BUILD_NUMBER}/${DISTRO}" > pub_dest_parameters
+ 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: rpb-openembedded/builders.sh
+ !include-raw: schneider-openembedded/builders.sh
- inject:
properties-file: post_build_lava_parameters
- linaro-publish-token
- shell:
- !include-raw: rpb-openembedded/buildinfo-protected.sh
- - shell:
!include-raw: rpb-openembedded/publishers.sh
- shell:
- !include-raw: lt-qcom-openembedded/submit_for_testing.sh
+ !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, loic.poulain@linaro.org, ryan.harkin@linaro.org'
+ 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-test-notify.yaml b/schneider-openembedded-test-notify.yaml
index 9e69ef21a5..47e003b677 100644
--- a/schneider-openembedded-test-notify.yaml
+++ b/schneider-openembedded-test-notify.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/schneider-openembedded-warrior-4.19.yaml b/schneider-openembedded-warrior-4.19.yaml
index 38360c8740..d837aa9e6a 100644
--- a/schneider-openembedded-warrior-4.19.yaml
+++ b/schneider-openembedded-warrior-4.19.yaml
@@ -17,11 +17,6 @@
- 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
@@ -142,7 +137,7 @@
- openembedded-lkft/postbuild.groovy
- schneider-openembedded/postbuild.groovy
- email-ext:
- recipients: 'fathi.boudra@linaro.org, ralph.siemsen@linaro.org, ryan.harkin@linaro.org'
+ recipients: 'fathi.boudra@linaro.org, ralph.siemsen@linaro.org'
always: true
failure: false
matrix-trigger: only-parent
diff --git a/schneider-openembedded-warrior-4.9.yaml b/schneider-openembedded-warrior-4.9.yaml
index f9c9590017..5d44ebb513 100644
--- a/schneider-openembedded-warrior-4.9.yaml
+++ b/schneider-openembedded-warrior-4.9.yaml
@@ -17,11 +17,6 @@
- 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
@@ -127,7 +122,7 @@
- rpb-openembedded/postbuild.groovy
- openembedded-lkft/postbuild.groovy
- email-ext:
- recipients: 'fathi.boudra@linaro.org, ralph.siemsen@linaro.org, ryan.harkin@linaro.org'
+ recipients: 'fathi.boudra@linaro.org, ralph.siemsen@linaro.org'
always: true
failure: false
matrix-trigger: only-parent
diff --git a/schneider-openembedded/builders-test.sh b/schneider-openembedded/builders-test.sh
deleted file mode 100755
index 2dc449bee2..0000000000
--- a/schneider-openembedded/builders-test.sh
+++ /dev/null
@@ -1,509 +0,0 @@
-#!/bin/bash
-set -e
-
-# workaround EDK2 is confused by the long path used during the build
-# and truncate files name expected by VfrCompile
-sudo mkdir -p /srv/oe
-sudo chown buildslave:buildslave /srv/oe
-cd /srv/oe
-
-trap cleanup_exit INT TERM EXIT
-
-cleanup_exit()
-{
- echo "Running cleanup_exit..."
-}
-
-replace_dmverity_var()
-{
- local variable
- local localconf
- local newvalue
-
- variable="DM_VERITY_IMAGE_NAME"
- localconf="conf/local.conf"
- newvalue="${1}"
-
- sed -i 's/'${variable}' ?=.*/'${variable}' ?= "'${newvalue}'"/' ${localconf}
- grep ${variable} ${localconf} || true
-}
-
-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="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"
-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
-
-# Install ruamel.yaml (version pinned for Python-2.7 compat)
-pip install --user --force-reinstall 'ruamel.yaml<0.17'
-
-set -ex
-
-#DEL mkdir -p ${HOME}/bin
-#DEL curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
-#DEL chmod a+x ${HOME}/bin/repo
-#DEL export PATH=${HOME}/bin:${PATH}
-
-# initialize repo if not done already
-if [ ! -e ".repo/manifest.xml" ]; then
- #DEL repo init -u ${MANIFEST_URL} -b ${MANIFEST_BRANCH_PREFIX}${MANIFEST_BRANCH}
-
- # link to shared downloads on persistent disk
- # our builds config is expecting downloads and sstate-cache, here.
- # DL_DIR = "${OEROOT}/sources/downloads"
- # SSTATE_DIR = "${OEROOT}/build/sstate-cache"
- sstatecache=${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH}
- if [[ "${IMAGES}" == *clean* ]]; then
- rm -rf ${sstatecache}
- fi
- mkdir -p ${HOME}/srv/oe/downloads ${sstatecache}
- #DEL mkdir -p build
- #DEL ln -s ${HOME}/srv/oe/downloads
- #DEL ln -s ${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH} sstate-cache
-fi
-
-
-#DEL if [ "${ghprbPullId}" ]; then
-#DEL echo "Applying Github pull-request #${ghprbPullId} from ${ghprbGhRepository}"
-#DEL sed -i -e "s|name=\"${ghprbGhRepository}\"|name=\"${ghprbGhRepository}\" revision=\"refs/pull/${ghprbPullId}/head\"|" .repo/manifest.xml
-#DEL fi
-
-#DEL repo sync
-#DEL cp .repo/manifest.xml source-manifest.xml
-#DEL repo manifest -r -o pinned-manifest.xml
-#DEL MANIFEST_COMMIT=$(cd .repo/manifests && git rev-parse --short HEAD)
-
-#DEL record changes since last build, if available
-#DEL if wget -q ${BASE_URL}${PUB_DEST/\/${BUILD_NUMBER}\//\/latest\/}/pinned-manifest.xml -O pinned-manifest-latest.xml; then
-#DEL repo diffmanifests ${PWD}/pinned-manifest-latest.xml ${PWD}/pinned-manifest.xml > manifest-changes.txt
-#DEL else
-#DEL echo "latest build published does not have pinned-manifest.xml, skipping diff report"
-#DEL fi
-
-#DEL if [ -n "$GERRIT_PROJECT" ] && [ $GERRIT_EVENT_TYPE == "patchset-created" ]; then
-#DEL GERRIT_URL="http://${GERRIT_HOST}/${GERRIT_PROJECT}"
-#DEL cd `grep -rni $GERRIT_PROJECT\" .repo/manifest.xml | grep -Po 'path="\K[^"]*'`
-#DEL if git pull ${GERRIT_URL} ${GERRIT_REFSPEC} | grep -q "Automatic merge failed"; then
-#DEL git reset --hard
-#DEL echo "Error: *** Error patch merge failed"
-#DEL exit 1
-#DEL fi
-#DEL cd -
-#DEL fi
-
-git clone ${DISTRO_URL_BASE}/${DISTRO_DIR} -b ${MANIFEST_BRANCH}
-cd ${DISTRO_DIR}
-git log -1
-git submodule init
-git submodule update
-
-# the setup-environment will create auto.conf and site.conf
-# make sure we get rid of old config.
-# let's remove the previous TMPDIR as well.
-# we want to preserve build/buildhistory though.
-#DEL rm -rf conf build/conf build/tmp/
-
-# Accept EULA if/when needed
-#DEL export EULA_dragonboard410c=1
-#DEL export EULA_stih410b2260=1
-#DEL source setup-environment build
-
-# Set the machine to the value expected by the Yocto environment
-# We set it back again later
-machine_orig=${MACHINE}
-case "${MACHINE}" in
- *rzn1*)
- MACHINE=rzn1d400-bestla
- ;;
- *soca9*)
- MACHINE=snarc-soca9
- ;;
-esac
-
-# SUBMODULES is set to:
-# none no update
-# '' update default set in setup-env...
-# all tell setup-env... to update all submodules
-# '<something>' pass the variable to submodule update
-if [[ ${MANIFEST_BRANCH} == linaro-* ]];
-then
- if [[ "${SUBMODULES}" != "none" ]]; then
- ./setup-environment -s build-${machine_orig}/
- fi
-fi
-
-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
-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}"
-EOF
-
-# get build stats to make sure that we use sstate properly
-cat << EOF >> conf/auto.conf
-INHERIT += "buildstats buildstats-summary"
-EOF
-
-# Make sure we don't use rm_work in CI slaves since they are non persistent build nodes
-cat << EOF >> conf/auto.conf
-INHERIT_remove = "rm_work"
-EOF
-
-# allow the top level job to append to auto.conf
-if [ -f ${WORKSPACE}/auto.conf ]; then
- cat ${WORKSPACE}/auto.conf >> conf/auto.conf
-fi
-
-# add useful debug info
-cat conf/auto.conf
-
-[ "${DISTRO}" = "rpb" ] && IMAGES+=" ${IMAGES_RPB}"
-[ "${DISTRO}" = "rpb-wayland" ] && IMAGES+=" ${IMAGES_RPB_WAYLAND}"
-
-# These machines only build the basic rpb-console-image
-case "${MACHINE}" in
- am57xx-evm|intel-core2-32|intel-corei7-64)
- IMAGES="rpb-console-image"
- ;;
-esac
-
-postfile=$(mktemp /tmp/postfile.XXXXX.conf)
-echo KERNEL_VERSION_PATCHLEVEL = \"${KERNEL_VERSION_PATCHLEVEL}\" > ${postfile}
-echo PREFERRED_VERSION_linux-rzn1 = \"${KERNEL_VERSION_PATCHLEVEL}.%\" >> ${postfile}
-echo PREFERRED_VERSION_linux-socfpga = \"${KERNEL_VERSION_PATCHLEVEL}.%\" >> ${postfile}
-cat ${postfile}
-bbopt="-R ${postfile}"
-
-if [ "${clean_packages}" != "" ]; then
- bitbake ${bbopt} -c cleansstate ${clean_packages}
- bitbake ${bbopt} ${build_packages}
-fi
-
-# Build all ${IMAGES}
-dipimg="prod-image"
-devimg="dev-image"
-sdkimg="sdk-image"
-
-DEPLOY_DIR_IMAGE=$(bitbake -e | grep "^DEPLOY_DIR_IMAGE="| cut -d'=' -f2 | tr -d '"')
-
-if [[ "${IMAGES}" == *"${dipimg}"* ]]; then
- replace_dmverity_var "${dipimg}"
-
- grep -c ^processor /proc/cpuinfo
- grep ^cpu\\scores /proc/cpuinfo | uniq | awk '{print $4}'
-
- time bitbake ${bbopt} ${dipimg}
-
- case "${MACHINE}" in
- *rzn1*)
- cat tmp/work-shared/${MACHINE}/dm-verity/prod-image.squashfs-lzo.verity.env || true
- ;;
- esac
-
- # Generate pn-buildlist containing names of recipes, for CVE check below
- time bitbake ${bbopt} ${dipimg} -g
-
- ls -al ${DEPLOY_DIR_IMAGE} || true
- ls -al ${DEPLOY_DIR_IMAGE}/optee || true
- ls -al ${DEPLOY_DIR_IMAGE}/cm3 || true
- ls -al ${DEPLOY_DIR_IMAGE}/u-boot || true
- ls -al ${DEPLOY_DIR_IMAGE}/fsbl || true
-
- # Copy license and manifest information into the deploy dir
- cp -aR ./tmp/deploy/licenses/prod-image-*/*.manifest ${DEPLOY_DIR_IMAGE}
-fi
-
-if [[ "${IMAGES}" == *"${devimg}"* ]]; then
- replace_dmverity_var ""
- time bitbake ${bbopt} ${devimg}
-
- ls -al ${DEPLOY_DIR_IMAGE} || true
- ls -al ${DEPLOY_DIR_IMAGE}/cm3 || true
- ls -al ${DEPLOY_DIR_IMAGE}/u-boot || true
- ls -al ${DEPLOY_DIR_IMAGE}/fsbl || true
- ls -al ${DEPLOY_DIR_IMAGE}/optee || true
-
- time bitbake ${bbopt} ${sdkimg}
- DEPLOY_DIR_SDK=$(bitbake -e | grep "^DEPLOY_DIR="| cut -d'=' -f2 | tr -d '"')/sdk
- cp -aR ${DEPLOY_DIR_SDK} ${DEPLOY_DIR_IMAGE}
-fi
-
-# Prepare files to publish
-rm -f ${DEPLOY_DIR_IMAGE}/*.txt
-find ${DEPLOY_DIR_IMAGE} -type l -delete
-#DEL mv /srv/oe/{source,pinned}-manifest.xml ${DEPLOY_DIR_IMAGE}
-#DEL cat ${DEPLOY_DIR_IMAGE}/pinned-manifest.xml
-
-### Begin CVE check
-
-# Combine CVE reports for the recipes used in prod-image task.
-CVE_CHECK_DIR=$(bitbake -e | grep "^CVE_CHECK_DIR="| cut -d'=' -f2 | tr -d '"')
-if [ -e pn-buildlist ] && [ -e "${CVE_CHECK_DIR}" ]; then
- sort pn-buildlist | while read r ; do
- cat ${CVE_CHECK_DIR}/${r} 2>/dev/null || true
- done >cve-${MACHINE}.new
-
- # Generate CVE listing with a fixed filename, so it can be retrieved
- # from snapshots.linaro.org by subsequent builds using a known URL.
- cp cve-${MACHINE}.new ${DEPLOY_DIR_IMAGE}/prod-image-${MACHINE}.rootfs.cve
-
- # Fetch previous CVE report
- LATEST_DEST=$(echo $PUB_DEST | sed -e "s#/$BUILD_NUMBER/#/latest/#")
- rm -f cve-${MACHINE}.old
- wget -nv -O cve-${MACHINE}.old ${BASE_URL}/${LATEST_DEST}/prod-image-${MACHINE}.rootfs.cve || true
-
- # Download may fail (404 error), or might not contain the report (auth error)
- if ! grep -q "PACKAGE NAME" cve-${MACHINE}.old 2>/dev/null; then
- # Use current CVE list, to avoid diff-against-nothing
- cp cve-${MACHINE}.new cve-${MACHINE}.old
- # Append a fake entry that will appear in the diff
- cat <<-EOF >>cve-${MACHINE}.old
- PACKAGE NAME: failed-to-download-previous-CVEs
- PACKAGE VERSION: 0.0
- CVE: CVE-xxxx-yyyy
- CVE STATUS: Unpatched
- CVE SUMMARY: Unable to download CVE results for previous build. Comparison disabled.
- CVSS v2 BASE SCORE: 0.0
- CVSS v3 BASE SCORE: 0.0
- VECTOR: LOCAL
- MORE INFORMATION: none
- EOF
- fi
-
- if [ -e cve-${MACHINE}.old ]; then
- # Do diffs between old and current CVE report.
- wget -nv -O diff-cve https://git.linaro.org/ci/job/configs.git/plain/schneider-openembedded/diff-cve
- gawk -f diff-cve cve-${MACHINE}.old cve-${MACHINE}.new | tee ${WORKSPACE}/cve-${MACHINE}.txt
-
- # Same thing, but against arbitrary (but fixed) baseline
- case "${MACHINE}" in
- *rzn1*)
- wget -nv -O cve-${MACHINE}.base https://releases.linaro.org/members/schneider/openembedded/2020.09-dunfell/rzn1d-5.4/dip-image-rzn1-snarc.rootfs.cve
- ;;
- *soca9*)
- wget -nv -O cve-${MACHINE}.base https://releases.linaro.org/members/schneider/openembedded/2020.09-dunfell/soca9-5.4/dip-image-snarc-soca9.rootfs.cve
- ;;
- esac
- gawk -f diff-cve cve-${MACHINE}.base cve-${MACHINE}.new > ${WORKSPACE}/base-cve-${MACHINE}.txt
- else
- echo "CVE check skipped because no previous build was found"
- fi
- ### End CVE check
-fi
-
-# FIXME: IMAGE_FSTYPES_remove doesn't work
-rm -f ${DEPLOY_DIR_IMAGE}/*.rootfs.ext4 \
- ${DEPLOY_DIR_IMAGE}/*.rootfs.iso \
- ${DEPLOY_DIR_IMAGE}/*.iso \
- ${DEPLOY_DIR_IMAGE}/*.jffs* \
- ${DEPLOY_DIR_IMAGE}/*.cpio.gz \
- ${DEPLOY_DIR_IMAGE}/*.stimg
-
-# FIXME: Sparse images here, until it gets done by OE
-case "${MACHINE}" in
- *rzn1*)
- pushd ${DEPLOY_DIR_IMAGE}
- rm -f uImage*
- popd
- ;;
- *soca9*)
- # re-create the SoCA9 DTB with a shorter filename
- pushd ${DEPLOY_DIR_IMAGE}
- mv zImage-*soca9*_bestla_512m*.dtb zImage-soca9_qspi_micronN25Q_bestla_512m.dtb || true
- mv zImage-*soca9*.dtb zImage-soca9_qspi_micronN25Q_bestla_512m.dtb || true
- rm -f *[12]G*.dtb || true
- rm -f *freja*.dtb || true
- rm -f *socfpga_cyclone5_socdk*.dtb || true
- popd
- ;;
- juno|stih410-b2260|orangepi-i96)
- ;;
- *)
- for rootfs in $(find ${DEPLOY_DIR_IMAGE} -type f -name *.rootfs.ext4.gz); do
- gunzip -k ${rootfs}
- sudo ext2simg -v ${rootfs%.gz} ${rootfs%.ext4.gz}.img
- rm -f ${rootfs%.gz}
- gzip -9 ${rootfs%.ext4.gz}.img
- done
- ;;
-esac
-
-ls -al ${DEPLOY_DIR_IMAGE}/*
-
-# Create MD5SUMS file
-find ${DEPLOY_DIR_IMAGE} -type f | xargs md5sum > MD5SUMS.txt
-sed -i "s|${DEPLOY_DIR_IMAGE}/||" MD5SUMS.txt
-mv MD5SUMS.txt ${DEPLOY_DIR_IMAGE}
-
-# Build information
-cat > ${DEPLOY_DIR_IMAGE}/HEADER.textile << EOF
-
-h4. Reference Platform Build - CE OpenEmbedded
-
-Build description:
-* Build URL: "$BUILD_URL":$BUILD_URL
-* Manifest URL: "${MANIFEST_URL}":${MANIFEST_URL}
-* Manifest branch: ${MANIFEST_BRANCH_PREFIX}${MANIFEST_BRANCH}
-* Manifest commit: "${MANIFEST_COMMIT}":${MANIFEST_URL/.git/\/commit}/${MANIFEST_COMMIT}
-EOF
-
-if [ -e "/srv/oe/manifest-changes.txt" ]; then
- # the space after pre.. tag is on purpose
- cat > ${DEPLOY_DIR_IMAGE}/README.textile << EOF
-
-h4. Manifest changes
-
-pre..
-EOF
- cat /srv/oe/manifest-changes.txt >> ${DEPLOY_DIR_IMAGE}/README.textile
- mv /srv/oe/manifest-changes.txt ${DEPLOY_DIR_IMAGE}
-fi
-
-# Identify snapshots as public
-touch ${DEPLOY_DIR_IMAGE}/OPEN-EULA.txt
-
-# Need different files for each machine
-ROOTFS_EXT4_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-test-*rzn1*-*-${BUILD_NUMBER}.rootfs.ext4.gz" | xargs -r basename)
-ROOTFS_TARXZ_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-test-*rzn1*-*-${BUILD_NUMBER}.rootfs.tar.xz" | xargs -r basename)
-ROOTFS_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-test-*rzn1*-*-${BUILD_NUMBER}.rootfs.img.gz" | xargs -r basename)
-ROOTFS_DESKTOP_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-desktop-image-test-*rzn1*-*-${BUILD_NUMBER}.rootfs.img.gz" | xargs -r basename)
-KERNEL_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "zImage-*-*rzn1*-*-${BUILD_NUMBER}.bin" | xargs -r basename)
-case "${MACHINE}" in
- am57xx-evm)
- # LAVA image is too big for am57xx-evm
- ROOTFS_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.img.gz" | xargs -r basename)
- # FIXME: several dtb files case
- ;;
- intel-core2-32|intel-corei7-64)
- # No LAVA testing on intel-core* machines
- ROOTFS_TARXZ_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "rpb-console-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.tar.xz" | xargs -r basename)
- ;;
- juno)
- # FIXME: several dtb files case
- ;;
- *rzn1*)
- ROOTFS_TAR_BZ2=$(find ${DEPLOY_DIR_IMAGE} -type f -name "prod-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.tar.bz2" | xargs -r basename)
- ROOTFS_DEV_TAR_BZ2=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.tar.bz2" | xargs -r basename)
- WIC_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-rzn1*-${BUILD_NUMBER}.rootfs.wic.bz2" | xargs -r basename)
- 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_IMG=$(basename ${UBOOT})
- UBOOT_FIT=$(find ${DEPLOY_DIR_IMAGE}/u-boot -type f -name "u-boot-${MACHINE}-*.itb")
- UBOOT_FIT_IMG=$(basename ${UBOOT_FIT})
- DTB=$(find ${DEPLOY_DIR_IMAGE} -type f -name "*rzn1*bestla*.dtb")
- DTB_IMG=$(basename ${DTB})
- KERNEL=$(find ${DEPLOY_DIR_IMAGE} -type f -name "zImage--*rzn1*.bin")
- 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_IMG=$(basename ${FSBL})
- OPTEE_FIT=$(find ${DEPLOY_DIR_IMAGE}/optee -type f -name "optee-os-${MACHINE}-*.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})
- WIC_DEV=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.wic.bz2")
- WIC_DEV_IMG=$(basename ${WIC_DEV})
- WIC_DEV_BMAP=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.wic.bmap" | xargs -r basename)
- ;;
- *soca9*)
- ROOTFS_TAR_BZ2=$(find ${DEPLOY_DIR_IMAGE} -type f -name "prod-image-snarc-soca9-*-${BUILD_NUMBER}.rootfs.tar.bz2" | xargs -r basename)
- ROOTFS_DEV_TAR_BZ2=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-snarc-soca9*-${BUILD_NUMBER}.rootfs.tar.bz2" | xargs -r basename)
- 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_IMG=$(basename ${UBOOT})
- DTB=$(find ${DEPLOY_DIR_IMAGE} -type f -name "*soca9*_qspi_micronN25Q_bestla_512m.dtb")
- DTB_IMG=$(basename ${DTB})
- KERNEL=$(find ${DEPLOY_DIR_IMAGE} -type f -name "zImage--*soca9*.bin")
- KERNEL_IMG=$(basename ${KERNEL})
- WIC=$(find ${DEPLOY_DIR_IMAGE} -type f -name "prod-image-snarc-soca9-*-${BUILD_NUMBER}.rootfs.wic.bz2")
- WIC_IMG=$(basename ${WIC})
- WIC_DEV=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-snarc-soca9-*-${BUILD_NUMBER}.rootfs.wic.bz2")
- WIC_DEV_IMG=$(basename ${WIC_DEV})
- WIC_DEV_BMAP=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-snarc-soca9-*-${BUILD_NUMBER}.rootfs.wic.bmap" | xargs -r basename)
- ;;
- *)
- DTB_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "*-${MACHINE}-*-${BUILD_NUMBER}.dtb" | xargs -r basename)
- ;;
-esac
-
-# Set MACHINE back to the origin value
-MACHINE=${machine_orig}
-
-send_image_size_to_squad()
-{
- local metric=$1
- local filename=$2
- local image_size=0
-
- # get file size
- if [ ! -z "{filename}" ] && [ -e "${filename}" ]; then
- image_size=$(stat --printf="%s" ${filename})
- fi
-
- echo metric=$metric
- echo filename=$(basename $filename)
- echo image_size=$image_size
-
- # send the metric to SQUAD
- curl --header "Auth-Token: ${QA_REPORTS_TOKEN}" --form metrics='{"'${metric}'": "'${image_size}'"}' ${QA_SERVER}/api/submit/${QA_SERVER_TEAM}/${QA_SERVER_PROJECT}/${BUILD_NUMBER}/${MACHINE}
-}
-
-# Send image sizes to SQUAD
-# note: we specifically want to report a zero image size if the image doesn't exist
-# this works around a SQUAD bug and allows metrics graphs showing multiple
-# boards to look sane when one of those boards has no values for the metric
-send_image_size_to_squad "IMG_SIZE_UBOOT" "${UBOOT}"
-send_image_size_to_squad "IMG_SIZE_UBOOT_FIT" "${UBOOT_FIT}"
-send_image_size_to_squad "IMG_SIZE_DTB" "${DTB}"
-send_image_size_to_squad "IMG_SIZE_KERNEL" "${KERNEL}"
-send_image_size_to_squad "IMG_SIZE_KERNEL_FIT" "${KERNEL_FIT}"
-send_image_size_to_squad "IMG_SIZE_FSBL" "${FSBL}"
-send_image_size_to_squad "IMG_SIZE_OPTEE_FIT" "${OPTEE_FIT}"
-send_image_size_to_squad "IMG_SIZE_UBI" "${UBI}"
-send_image_size_to_squad "IMG_SIZE_WIC" "${WIC}"
-send_image_size_to_squad "IMG_SIZE_WIC_DEV" "${WIC_DEV}"
-
-# Note: the main job script allows to override the default value for
-# BASE_URL and PUB_DEST, typically used for OE RPB builds
-cat << EOF > ${WORKSPACE}/post_build_lava_parameters
-DEPLOY_DIR_IMAGE=${DEPLOY_DIR_IMAGE}
-MANIFEST_COMMIT=${BUILD_NUMBER}
-ROOTFS_BUILD_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_EXT4_IMG}
-ROOTFS_SPARSE_BUILD_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_IMG}
-ROOTFS_DESKTOP_SPARSE_BUILD_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_DESKTOP_IMG}
-SYSTEM_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_EXT4_IMG}
-OPTEE_ITB_URL=${BASE_URL}${PUB_DEST}/optee/${OPTEE_FIT_IMG}
-FSBL_URL=${BASE_URL}${PUB_DEST}/fsbl/${FSBL_IMG}
-UBOOT_ITB_URL=${BASE_URL}${PUB_DEST}/u-boot/${UBOOT_FIT_IMG}
-KERNEL_FIT_URL=${BASE_URL}${PUB_DEST}/${KERNEL_FIT_IMG}
-KERNEL_ZIMAGE_URL=${BASE_URL}${PUB_DEST}/${KERNEL_IMG}
-WIC_IMAGE_URL=${BASE_URL}${PUB_DEST}/${WIC_IMG}
-WIC_BMAP_URL=${BASE_URL}${PUB_DEST}/${WIC_BMAP}
-WIC_DEV_IMAGE_URL=${BASE_URL}${PUB_DEST}/${WIC_DEV_IMG}
-WIC_DEV_BMAP_URL=${BASE_URL}${PUB_DEST}/${WIC_DEV_BMAP}
-UBI_IMAGE_URL=${BASE_URL}${PUB_DEST}/${UBI_IMG}
-DTB_URL=${BASE_URL}${PUB_DEST}/${DTB_IMG}
-NFSROOTFS_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_TAR_BZ2}
-NFSROOTFS_DEV_URL=${BASE_URL}${PUB_DEST}/${ROOTFS_DEV_TAR_BZ2}
-RECOVERY_IMAGE_URL=${BASE_URL}${PUB_DEST}/juno-oe-uboot.zip
-LXC_ROOTFS_IMG=$(basename ${ROOTFS_IMG} .gz)
-DEVICE_TYPE=${MACHINE}
-EOF
diff --git a/schneider-openembedded/builders.sh b/schneider-openembedded/builders.sh
index aeb399d307..ff174923f0 100755
--- a/schneider-openembedded/builders.sh
+++ b/schneider-openembedded/builders.sh
@@ -33,7 +33,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="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"
+pkg_list="python-pip android-tools-fsutils chrpath cpio diffstat gawk gfortran libmagickwand-dev libmath-prime-util-perl libsdl1.2-dev libssl-dev python-requests texinfo vim-tiny whiptail"
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
@@ -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
@@ -62,7 +63,7 @@ if [ ! -e ".repo/manifest.xml" ]; then
if [[ "${IMAGES}" == *clean* ]]; then
rm -rf ${sstatecache}
fi
- mkdir -p ${HOME}/srv/oe/downloads ${sstatecache}
+ mkdir -p ${HOME}/srv/oe/downloads-${MANIFEST_BRANCH} ${sstatecache}
#DEL mkdir -p build
#DEL ln -s ${HOME}/srv/oe/downloads
#DEL ln -s ${HOME}/srv/oe/sstate-cache-${DISTRO}-${MANIFEST_BRANCH} sstate-cache
@@ -127,6 +128,9 @@ case "${MACHINE}" in
*soca9*)
MACHINE=snarc-soca9
;;
+ *am64x*)
+ MACHINE=am64xx-evm
+ ;;
esac
# SUBMODULES is set to:
@@ -138,21 +142,28 @@ if [[ ${MANIFEST_BRANCH} == linaro-* ]];
then
if [[ "${SUBMODULES}" != "none" ]]; then
./setup-environment -s build-${machine_orig}/
+
+ # Temporary 2021/12/07 go back to pinned version of tensorflow
+ # due to upstream switch to cmake, conflicts with our local fix
+ # for segfaults on LCES2 due to incorrect VFP mode
+ git submodule update sources/meta-tensorflow-lite
+
+ # Also avoid updating meta-ti layer for two reasons:
+ # 1) want to use older tagged version to avoid SPL boot failure
+ # 2) latest version is not compatible with dunfell branch
+ git submodule update sources/meta-ti
fi
fi
source ./setup-environment build-${machine_orig}/
-ln -s ${HOME}/srv/oe/downloads
+ln -s ${HOME}/srv/oe/downloads-${MANIFEST_BRANCH} 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
@@ -187,6 +198,7 @@ postfile=$(mktemp /tmp/postfile.XXXXX.conf)
echo KERNEL_VERSION_PATCHLEVEL = \"${KERNEL_VERSION_PATCHLEVEL}\" > ${postfile}
echo PREFERRED_VERSION_linux-rzn1 = \"${KERNEL_VERSION_PATCHLEVEL}.%\" >> ${postfile}
echo PREFERRED_VERSION_linux-socfpga = \"${KERNEL_VERSION_PATCHLEVEL}.%\" >> ${postfile}
+echo PREFERRED_VERSION_linux-ti-staging = \"${KERNEL_VERSION_PATCHLEVEL}.%\" >> ${postfile}
cat ${postfile}
bbopt="-R ${postfile}"
@@ -195,6 +207,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"
@@ -208,7 +229,13 @@ if [[ "${IMAGES}" == *"${dipimg}"* ]]; then
grep -c ^processor /proc/cpuinfo
grep ^cpu\\scores /proc/cpuinfo | uniq | awk '{print $4}'
- time bitbake ${bbopt} ${dipimg}
+ time bitbake ${bbopt} ${dipimg} || true
+ ls -ld tmp/*/*/edgeagent downloads/git2/*EdgeAgent* downloads/git2/*cmocka* downloads/git2/*Azure* downloads/git2/*Microsoft* downloads/git2/*kgabis* || true
+
+ # Make a copy of the CVE report using a fixed filename, because:
+ # 1) later invocations of bitbake may overwrite the report, and
+ # 2) facilitate later retrieval from snapshots.linaro.org via "latest" link.
+ cp ${DEPLOY_DIR_IMAGE}/${dipimg}-${MACHINE}.cve ${DEPLOY_DIR_IMAGE}/${dipimg}-${MACHINE}.rootfs.cve
case "${MACHINE}" in
*rzn1*)
@@ -216,9 +243,6 @@ if [[ "${IMAGES}" == *"${dipimg}"* ]]; then
;;
esac
- # Generate pn-buildlist containing names of recipes, for CVE check below
- time bitbake ${bbopt} ${dipimg} -g
-
ls -al ${DEPLOY_DIR_IMAGE} || true
ls -al ${DEPLOY_DIR_IMAGE}/optee || true
ls -al ${DEPLOY_DIR_IMAGE}/cm3 || true
@@ -231,7 +255,11 @@ fi
if [[ "${IMAGES}" == *"${devimg}"* ]]; then
replace_dmverity_var ""
- time bitbake ${bbopt} ${devimg}
+ time bitbake ${bbopt} ${devimg} || true
+ ls -ld tmp/*/*/edgeagent downloads/git2/*EdgeAgent* downloads/git2/*cmocka* downloads/git2/*Azure* downloads/git2/*Microsoft* downloads/git2/*kgabis* || true
+
+ # Make a copy of the CVE report using a fixed filename
+ cp ${DEPLOY_DIR_IMAGE}/${devimg}-${MACHINE}.cve ${DEPLOY_DIR_IMAGE}/${devimg}-${MACHINE}.rootfs.cve
ls -al ${DEPLOY_DIR_IMAGE} || true
ls -al ${DEPLOY_DIR_IMAGE}/cm3 || true
@@ -240,6 +268,10 @@ if [[ "${IMAGES}" == *"${devimg}"* ]]; then
ls -al ${DEPLOY_DIR_IMAGE}/optee || true
time bitbake ${bbopt} ${sdkimg}
+
+ # Make a copy of the CVE report using a fixed filename
+ cp ${DEPLOY_DIR_IMAGE}/${sdkimg}-${MACHINE}.cve ${DEPLOY_DIR_IMAGE}/${sdkimg}-${MACHINE}.rootfs.cve
+
DEPLOY_DIR_SDK=$(bitbake -e | grep "^DEPLOY_DIR="| cut -d'=' -f2 | tr -d '"')/sdk
cp -aR ${DEPLOY_DIR_SDK} ${DEPLOY_DIR_IMAGE}
fi
@@ -252,16 +284,10 @@ find ${DEPLOY_DIR_IMAGE} -type l -delete
### Begin CVE check
-# Combine CVE reports for the recipes used in prod-image task.
-CVE_CHECK_DIR=$(bitbake -e | grep "^CVE_CHECK_DIR="| cut -d'=' -f2 | tr -d '"')
-if [ -e pn-buildlist ] && [ -e "${CVE_CHECK_DIR}" ]; then
- sort pn-buildlist | while read r ; do
- cat ${CVE_CHECK_DIR}/${r} 2>/dev/null || true
- done >cve-${MACHINE}.new
+if [ -e ${DEPLOY_DIR_IMAGE}/${dipimg}-${MACHINE}.rootfs.cve ] ; then
- # Generate CVE listing with a fixed filename, so it can be retrieved
- # from snapshots.linaro.org by subsequent builds using a known URL.
- cp cve-${MACHINE}.new ${DEPLOY_DIR_IMAGE}/prod-image-${MACHINE}.rootfs.cve
+ # Get the current CVE report
+ cp ${DEPLOY_DIR_IMAGE}/${dipimg}-${MACHINE}.rootfs.cve cve-${MACHINE}.new
# Fetch previous CVE report
LATEST_DEST=$(echo $PUB_DEST | sed -e "s#/$BUILD_NUMBER/#/latest/#")
@@ -286,27 +312,30 @@ if [ -e pn-buildlist ] && [ -e "${CVE_CHECK_DIR}" ]; then
EOF
fi
- if [ -e cve-${MACHINE}.old ]; then
- # Do diffs between old and current CVE report.
- wget -nv -O diff-cve https://git.linaro.org/ci/job/configs.git/plain/schneider-openembedded/diff-cve
- gawk -f diff-cve cve-${MACHINE}.old cve-${MACHINE}.new | tee ${WORKSPACE}/cve-${MACHINE}.txt
+ # Do diffs between old and current CVE report.
+ wget -nv -O diff-cve https://git.linaro.org/ci/job/configs.git/plain/schneider-openembedded/diff-cve
+ gawk -f diff-cve cve-${MACHINE}.old cve-${MACHINE}.new | tee ${WORKSPACE}/cve-${MACHINE}.txt
- # Same thing, but against arbitrary (but fixed) baseline
- case "${MACHINE}" in
- *rzn1*)
- wget -nv -O cve-${MACHINE}.base https://releases.linaro.org/members/schneider/openembedded/2020.09-dunfell/rzn1d-5.4/dip-image-rzn1-snarc.rootfs.cve
- ;;
- *soca9*)
- wget -nv -O cve-${MACHINE}.base https://releases.linaro.org/members/schneider/openembedded/2020.09-dunfell/soca9-5.4/dip-image-snarc-soca9.rootfs.cve
- ;;
- esac
- gawk -f diff-cve cve-${MACHINE}.base cve-${MACHINE}.new > ${WORKSPACE}/base-cve-${MACHINE}.txt
- else
- echo "CVE check skipped because no previous build was found"
- fi
- ### End CVE check
+ # Same thing, but against arbitrary (but fixed) baseline
+ case "${MACHINE}" in
+ *rzn1*)
+ wget -nv -O cve-${MACHINE}.base https://releases.linaro.org/members/schneider/openembedded/2021.08.dunfell/rzn1d-5.10/prod-image-rzn1d400-bestla.rootfs.cve
+ ;;
+ *soca9*)
+ wget -nv -O cve-${MACHINE}.base https://releases.linaro.org/members/schneider/openembedded/2021.08.dunfell/soca9-5.10/prod-image-snarc-soca9.rootfs.cve
+ ;;
+ *am64x*)
+ # TODO: update this URL for baseline on am64x.
+ #wget -nv -O cve-${MACHINE}.base https://releases.linaro.org/members/schneider/openembedded/2021.08.dunfell/soca9-5.10/prod-image-snarc-soca9.rootfs.cve
+ # For now just copy the current report as the baseline
+ cp cve-${MACHINE}.new cve-${MACHINE}.base
+ ;;
+ esac
+ gawk -f diff-cve cve-${MACHINE}.base cve-${MACHINE}.new > ${WORKSPACE}/base-cve-${MACHINE}.txt
fi
+### End CVE check
+
# FIXME: IMAGE_FSTYPES_remove doesn't work
rm -f ${DEPLOY_DIR_IMAGE}/*.rootfs.ext4 \
${DEPLOY_DIR_IMAGE}/*.rootfs.iso \
@@ -332,6 +361,11 @@ case "${MACHINE}" in
rm -f *socfpga_cyclone5_socdk*.dtb || true
popd
;;
+ *am64x*)
+ pushd ${DEPLOY_DIR_IMAGE}
+ # TODO delete unnecessary files
+ popd
+ ;;
juno|stih410-b2260|orangepi-i96)
;;
*)
@@ -404,9 +438,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 +448,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 +464,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})
@@ -442,6 +476,33 @@ case "${MACHINE}" in
WIC_DEV_IMG=$(basename ${WIC_DEV})
WIC_DEV_BMAP=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-snarc-soca9-${BUILD_NUMBER}.rootfs.wic.bmap" | xargs -r basename)
;;
+ *am64x*)
+ ROOTFS_TAR_BZ2=$(find ${DEPLOY_DIR_IMAGE} -type f -name "prod-image-${MACHINE}-${BUILD_NUMBER}.rootfs.tar.bz2" | xargs -r basename)
+ ROOTFS_DEV_TAR_BZ2=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-${BUILD_NUMBER}.rootfs.tar.bz2" | xargs -r basename)
+ WIC_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-${BUILD_NUMBER}.rootfs.wic.bz2" | xargs -r basename)
+ WIC_BMAP=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-${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-${MACHINE}-*.img")
+ UBOOT_IMG=$(basename ${UBOOT})
+ #UBOOT_FIT=$(find ${DEPLOY_DIR_IMAGE}/u-boot -type f -name "u-boot-${MACHINE}-*.img")
+ #UBOOT_FIT_IMG=$(basename ${UBOOT_FIT})
+ DTB=$(find ${DEPLOY_DIR_IMAGE} -type f -name "k3-am642-evm-*.dtb")
+ DTB_IMG=$(basename ${DTB})
+ KERNEL=$(find ${DEPLOY_DIR_IMAGE} -type f -name "Image-*.bin")
+ 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}-${BUILD_NUMBER}.spkg")
+ #FSBL_IMG=$(basename ${FSBL})
+ OPTEE_FIT=$(find ${DEPLOY_DIR_IMAGE}/optee -type f -name "bl32.bin")
+ 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})
+ WIC_DEV=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-${BUILD_NUMBER}.rootfs.wic.bz2")
+ WIC_DEV_IMG=$(basename ${WIC_DEV})
+ WIC_DEV_BMAP=$(find ${DEPLOY_DIR_IMAGE} -type f -name "dev-image-${MACHINE}-${BUILD_NUMBER}.rootfs.wic.bmap" | xargs -r basename)
+ ;;
*)
DTB_IMG=$(find ${DEPLOY_DIR_IMAGE} -type f -name "*-${MACHINE}-*-${BUILD_NUMBER}.dtb" | xargs -r basename)
;;
diff --git a/schneider-openembedded/cve-summary.sh b/schneider-openembedded/cve-summary.sh
index 73954a2836..1dc0d4cfb2 100755
--- a/schneider-openembedded/cve-summary.sh
+++ b/schneider-openembedded/cve-summary.sh
@@ -11,8 +11,9 @@ set -e
# files: cve-rzn1d400-bestla.txt, cve-snarc-soca9.txt
#
if ! test \
--e $JENKINS_HOME/jobs/$JOB_NAME/configurations/axis-DISTRO/dip/axis-MACHINE/rzn1d/axis-label/docker-buster-amd64/builds/$BUILD_NUMBER/archive/cve-rzn1d400-bestla.txt -a \
--e $JENKINS_HOME/jobs/$JOB_NAME/configurations/axis-DISTRO/dip/axis-MACHINE/soca9/axis-label/docker-buster-amd64/builds/$BUILD_NUMBER/archive/cve-snarc-soca9.txt
+-e $JENKINS_HOME/jobs/$JOB_NAME/configurations/axis-DISTRO/dip/axis-MACHINE/rzn1d/axis-label/docker-buster-amd64/builds/$BUILD_NUMBER/archive/cve-rzn1d400-bestla.txt -o \
+-e $JENKINS_HOME/jobs/$JOB_NAME/configurations/axis-DISTRO/dip/axis-MACHINE/soca9/axis-label/docker-buster-amd64/builds/$BUILD_NUMBER/archive/cve-snarc-soca9.txt -o \
+-e $JENKINS_HOME/jobs/$JOB_NAME/configurations/axis-DISTRO/dip/axis-MACHINE/am64x/axis-label/docker-buster-amd64/builds/$BUILD_NUMBER/archive/cve-am64xx-evm.txt
then
echo '<h1>Build failed, no CVE check done</h1>' > cve.html
echo 'Build failed, no CVE check done' > cve.sum
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/dev-image.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/dev-image.yaml
deleted file mode 100644
index 0c42d1e73a..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/dev-image.yaml
+++ /dev/null
@@ -1,465 +0,0 @@
-device_type: rzn1d
-tags:
-- tpm
-
-job_name: SE ${MACHINE} dev-image (nfs,wic) ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER}
-
-timeouts:
- job:
- minutes: 180
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-actions:
-
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- name: set_boot_to_nand
-
-- boot:
- namespace: dfu-firmware
- method: dfu
- timeout:
- minutes: 10
-
-- command:
- namespace: test
- name: set_boot_to_qspi
-
-##########################
-# Configure ethernet ports
-##########################
-- command:
- namespace: test
- name: j17_off
-- command:
- namespace: test
- name: j21_on
-- command:
- namespace: test
- name: j22_off
-- command:
- namespace: test
- name: j23_off
-- command:
- namespace: test
- name: j24_off
-
-###############
-# TFTP/NFS
-###############
-- deploy:
- namespace: test-nfs
- timeout:
- minutes: 15
- to: tftp
- os: oe
- kernel:
- url: ${KERNEL_ZIMAGE_URL}
- type: zimage
- dtb:
- url: ${DTB_URL}
- nfsrootfs:
- url: ${NFSROOTFS_DEV_URL}
- compression: bz2
-
-- boot:
- namespace: test-nfs
- connection-namespace: dfu-firmware
- timeout:
- minutes: 20
- method: u-boot
- commands:
- - setenv autoload no
- - dhcp
- - dhcp
- - env print
- - 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'"
- - '{BOOTX}'
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
-
-- test:
- namespace: test-nfs
- timeout:
- minutes: 40
- interactive:
- - name: basic-cmds-tftp
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: memstat
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: which docker
-
-- test:
- namespace: test-nfs
- timeout:
- minutes: 40
- definitions:
-
- - name: smoke-tests-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/smoke/smoke.yaml
- parameters:
- SKIP_INSTALL: True
- TESTS: "pwd, uname -a, cat /etc/os-release, ip a, lscpu, vmstat, lsblk, ps aux --sort -rss, free -h, mount"
-
- - name: ethernet-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ethernet/ethernet.yaml
- parameters:
- INTERFACE: eth1
-
- - name: meminfo-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/meminfo/meminfo.yaml
-
- - name: badblocks-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/badblocks/badblocks.yaml
- parameters:
- SKIP_INSTALL: True
-
- - name: memtester-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/memtester/memtester.yaml
- parameters:
- SKIP_INSTALL: True
-
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i eth1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-- test:
- namespace: test-wic
- timeout:
- minutes: 40
- interactive:
- - name: basic-cmds-wic
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: mount
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: memstat
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: ping -c 3 github.com
- - command: which docker
-
-
-##################
-# Functional Tests
-##################
-- test:
- namespace: test-wic
- timeout:
- minutes: 100
- definitions:
-
- - name: files-exist
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/files-exist/files-exist.yaml
- parameters:
- SKIP_INSTALL: true
- EXTRA_FILES: '/etc/os-release'
-
- - name: ethernet
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ethernet/ethernet.yaml
- parameters:
- INTERFACE: eth1
-
- - name: meminfo
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/meminfo/meminfo.yaml
-
- - name: badblocks
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/badblocks/badblocks.yaml
- parameters:
- SKIP_INSTALL: True
-
- - name: memtester
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/memtester/memtester.yaml
- parameters:
- SKIP_INSTALL: True
-
- - name: yepkit-list
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- LIST: true
-
- - name: yepkit-down-all
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_DOWN: a
-
- - name: yepkit-get-1
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_GET: 1
- - name: yepkit-get-2
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_GET: 2
- - name: yepkit-get-3
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_GET: 3
-
- - name: yepkit-up-port-2
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_UP: 2
- PORT_DEVICE: /dev/sda
-
- - name: block-device-sda
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/block-device/block-device.yaml
- parameters:
- SKIP_INSTALL: 'true'
- DEVICE: /dev/sda
- FORMAT_DEVICE: 'true'
-
- - name: zero-sda
- from: inline
- path: inline/zero-sda.yaml
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: zero-sda
- description: write zeros to device sda
- run:
- steps:
- - dd if=/dev/zero of=/dev/sda bs=1M count=1024
-
- - name: device-read-perf
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/device-read-perf/device-read-perf.yaml
- parameters:
- SKIP_INSTALL: 'true'
- DEVICE: sda mmcblk0
-
- - name: yepkit-down-port-2
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_DOWN: 2
- PORT_DEVICE: /dev/sda
-
- - name: spi-eeprom
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/eeprom/eeprom.yaml
- parameters:
- SKIP_INSTALL: 'true'
- EEPROM: '/sys/bus/spi/devices/spi0.1/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
-
- - name: optee-xtest
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/optee/optee-xtest.yaml
-
- - name: cryptotest
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/cryptotest/cryptotest.yaml
-
- - name: tpm
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/tpm/tpm.yaml
-
-metadata:
- machine: ${MACHINE}
- manifest branch: ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL}
- manifest commit: ${MANIFEST_COMMIT}
- build url: ${BUILD_URL}
- build location: ${PUBLISH_SERVER}${PUB_DEST}
-
-notify:
- recipients:
- - to:
- method: email
- email: milan.stevanovic@se.com
- criteria:
- status: incomplete
- verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j17.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j17.yaml
deleted file mode 100644
index dd79f145d3..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j17.yaml
+++ /dev/null
@@ -1,551 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} eth1/J17
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i eth1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J17
-#################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j17
- parameters:
- CMD: configure-interface
- ETH: eth1
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j17
- parameters:
- CMD: daemon
- ETH: eth1
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j17
- parameters:
- CMD: configure-interface
- ETH: eth1
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j17
- parameters:
- CMD: request-server-address
- ETH: eth1
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j17
- parameters:
- CMD: scp-target-to-host
- ETH: eth1
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j17
- parameters:
- CMD: scp-host-to-target
- ETH: eth1
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j17
- parameters:
- CMD: ssh-host-to-target
- ETH: eth1
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j17
- parameters:
- CMD: iperf3-server
- ETH: eth1
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j17
- parameters:
- CMD: iperf3-client
- ETH: eth1
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j17
- parameters:
- CMD: iperf3-client
- ETH: eth1
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J17 (eth1) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j17_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j17
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J17 (eth1) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j17_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j17
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j17
- parameters:
- ETH: eth1
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j21.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j21.yaml
deleted file mode 100644
index 93b6e42a1d..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j21.yaml
+++ /dev/null
@@ -1,528 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} eth1/J21
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i eth1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j21
- parameters:
- CMD: configure-interface
- ETH: eth1
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j21
- parameters:
- CMD: daemon
- ETH: eth1
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j21
- parameters:
- CMD: configure-interface
- ETH: eth1
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j21
- parameters:
- CMD: request-server-address
- ETH: eth1
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j21
- parameters:
- CMD: scp-target-to-host
- ETH: eth1
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j21
- parameters:
- CMD: scp-host-to-target
- ETH: eth1
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j21
- parameters:
- CMD: ssh-host-to-target
- ETH: eth1
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j21
- parameters:
- CMD: iperf3-server
- ETH: eth1
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j21
- parameters:
- CMD: iperf3-client
- ETH: eth1
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j21
- parameters:
- CMD: iperf3-client
- ETH: eth1
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J21 (eth1) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j21_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j21
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J21 (eth1) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j21_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j21
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j21
- parameters:
- ETH: eth1
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml
deleted file mode 100644
index fa886b29e2..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22-mtu1508.yaml
+++ /dev/null
@@ -1,684 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan0/J22 MTU 1508
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i lan0 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J22
-#################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j22-mtu1508
- parameters:
- CMD: daemon
- ETH: lan0
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1508
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j22-mtu1508
- parameters:
- CMD: request-server-address
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j22-mtu1508
- parameters:
- CMD: scp-target-to-host
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j22-mtu1508
- parameters:
- CMD: scp-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j22-mtu1508
- parameters:
- CMD: ssh-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j22-mtu1508
- parameters:
- CMD: iperf3-server
- ETH: lan0
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j22-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j22-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J22 (lan0) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j22_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J22 (lan0) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j22_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "auto"
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j22-mtu1508
- parameters:
- ETH: lan0
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22.yaml
deleted file mode 100644
index bb6e6ef165..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j22.yaml
+++ /dev/null
@@ -1,684 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan0/J22
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i lan0 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J22
-#################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j22
- parameters:
- CMD: daemon
- ETH: lan0
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j22
- parameters:
- CMD: request-server-address
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j22
- parameters:
- CMD: scp-target-to-host
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j22
- parameters:
- CMD: scp-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j22
- parameters:
- CMD: ssh-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j22
- parameters:
- CMD: iperf3-server
- ETH: lan0
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j22
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j22
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J22 (lan0) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j22_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J22 (lan0) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j22_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j22
- parameters:
- ETH: lan0
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml
deleted file mode 100644
index 8c5e3a1a71..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23-mtu1508.yaml
+++ /dev/null
@@ -1,685 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan1/J23 MTU 1508
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i lan1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J23
-#################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1508
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j23-mtu1508
- parameters:
- CMD: daemon
- ETH: lan1
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1508
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j23-mtu1508
- parameters:
- CMD: request-server-address
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j23-mtu1508
- parameters:
- CMD: scp-target-to-host
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j23-mtu1508
- parameters:
- CMD: scp-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j23-mtu1508
- parameters:
- CMD: ssh-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j23-mtu1508
- parameters:
- CMD: iperf3-server
- ETH: lan1
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j23-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j23-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J23 (lan1) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j23_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J23 (lan1) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j23_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "auto"
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j23-mtu1508
- parameters:
- ETH: lan1
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23.yaml
deleted file mode 100644
index 4b6a86bdf2..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j23.yaml
+++ /dev/null
@@ -1,684 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan1/J23
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i lan1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J23
-#################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j23
- parameters:
- CMD: daemon
- ETH: lan1
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j23
- parameters:
- CMD: request-server-address
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j23
- parameters:
- CMD: scp-target-to-host
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j23
- parameters:
- CMD: scp-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j23
- parameters:
- CMD: ssh-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j23
- parameters:
- CMD: iperf3-server
- ETH: lan1
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j23
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j23
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J23 (lan1) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j23_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J23 (lan1) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j23_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j23
- parameters:
- ETH: lan1
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml
deleted file mode 100644
index 381cb6cc58..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24-mtu1508.yaml
+++ /dev/null
@@ -1,684 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan2/J24 MTU 1508
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i lan2 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J24
-#################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j24-mtu1508
- parameters:
- CMD: daemon
- ETH: lan2
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1508
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j24-mtu1508
- parameters:
- CMD: request-server-address
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j24-mtu1508
- parameters:
- CMD: scp-target-to-host
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j24-mtu1508
- parameters:
- CMD: scp-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j24-mtu1508
- parameters:
- CMD: ssh-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j24-mtu1508
- parameters:
- CMD: iperf3-server
- ETH: lan2
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j24-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j24-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J24 (lan2) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j24_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J24 (lan2) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j24_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "auto"
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j24-mtu1508
- parameters:
- ETH: lan2
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24.yaml
deleted file mode 100644
index 51c6413610..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/lava-multinode-rzn1d-j24.yaml
+++ /dev/null
@@ -1,684 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan2/J24
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: rzn1d
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- name: set_boot_to_nand
-- boot:
- namespace: dfu-firmware
- role:
- - daemon
- - dut
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: set_boot_to_qspi
-
-##################
-# all ports off - except J21
-##################
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- role:
- - daemon
- - dut
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i lan2 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- namespace: test-wic
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J24
-#################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- namespace: test-wic
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j24
- parameters:
- CMD: daemon
- ETH: lan2
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j24
- parameters:
- CMD: request-server-address
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j24
- parameters:
- CMD: scp-target-to-host
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j24
- parameters:
- CMD: scp-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j24
- parameters:
- CMD: ssh-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j24
- parameters:
- CMD: iperf3-server
- ETH: lan2
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j24
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j24
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J24 (lan2) off
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j24_off
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J24 (lan2) back on again
- #################################
-- command:
- namespace: test-wic
- role:
- - dut
- name: j24_on
-
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- namespace: test-wic
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j24
- parameters:
- ETH: lan2
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- namespace: test-wic
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/ltp-ptest.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/ltp-ptest.yaml
deleted file mode 100644
index 486c6e90ab..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/ltp-ptest.yaml
+++ /dev/null
@@ -1,366 +0,0 @@
-device_type: rzn1d
-job_name: SE ${MACHINE} dev-image (LTP/PTEST) ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER}
-
-timeouts:
- job:
- minutes: 700
- action:
- minutes: 70
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-actions:
-
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- name: set_boot_to_nand
-
-- boot:
- namespace: dfu-firmware
- method: dfu
- timeout:
- minutes: 10
-
-- command:
- namespace: test
- name: set_boot_to_qspi
-
-##########################
-# Configure ethernet ports
-##########################
-- command:
- namespace: test
- name: j17_off
-- command:
- namespace: test
- name: j21_on
-- command:
- namespace: test
- name: j22_off
-- command:
- namespace: test
- name: j23_off
-- command:
- namespace: test
- name: j24_off
-
-###################
-# dev-image.wic
-###################
-- deploy:
- namespace: test-wic
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-- boot:
- namespace: test-wic
- connection-namespace: dfu-firmware
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
- transfer_overlay:
- download_command: udhcpc -i eth1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-- test:
- namespace: test-wic
- timeout:
- minutes: 10
- interactive:
- - name: basic-cmds-wic
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: mount
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: memstat
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: ping -c 3 github.com
- - command: which docker
-
-
-##################
-# Functional Tests
-##################
-- test:
- namespace: test-wic
- timeout:
- minutes: 600
- definitions:
-
- - name: meminfo
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/meminfo/meminfo.yaml
-
- - name: ltp-syscalls-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'syscalls'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-math-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'math'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-timers-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'timers'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-fcntl-locktests-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'fcntl-locktests'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-ipc-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'ipc'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-fsx-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'fsx'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-fs-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'fs'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-hugetlb-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'hugetlb'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-io-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'io'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-nptl-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'nptl'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-pty-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'pty'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-fs_bind-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'fs_bind'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-filecaps-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'filecaps'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-admin_tools-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'admin_tools'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: ltp-connectors-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- TST_CMDFILES: 'connectors'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: linux-ptest
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ptest/ptest.yaml
- params:
- EXCLUDE: 'bluez5 bzip2 containerd e2fsprogs libxml2 parted python strace openssh openssl perl'
-
-metadata:
- machine: ${MACHINE}
- manifest branch: ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL}
- manifest commit: ${MANIFEST_COMMIT}
- build url: ${BUILD_URL}
- build location: ${PUBLISH_SERVER}${PUB_DEST}
-
-notify:
- recipients:
- - to:
- method: email
- email: ryan.harkin@linaro.org
- criteria:
- status: incomplete
- verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions-test/rzn1d/prod-image.yaml b/schneider-openembedded/lava-job-definitions-test/rzn1d/prod-image.yaml
deleted file mode 100644
index 3f6ee2d2ce..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/rzn1d/prod-image.yaml
+++ /dev/null
@@ -1,405 +0,0 @@
-device_type: rzn1d
-job_name: SE ${MACHINE} prod-image (u-boot,ubi) ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER}
-
-timeouts:
- job:
- minutes: 100
- action:
- minutes: 70
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-actions:
-
-####################
-# Deploy QSPI images
-####################
-- deploy:
- namespace: dfu-firmware
- to: tmpfs
- images:
- sf_fsbl:
- image_arg: --alt sf_fsbl --download {sf_fsbl}
- url: ${FSBL_URL}
- sf_trustedfw0:
- image_arg: --alt sf_trustedfw0 --download {sf_trustedfw0}
- url: ${OPTEE_ITB_URL}
- sf_trustedfw1:
- image_arg: --alt sf_trustedfw1 --download {sf_trustedfw1}
- url: ${OPTEE_ITB_URL}
- sf_uboot0:
- image_arg: --alt sf_uboot0 --download {sf_uboot0}
- url: ${UBOOT_ITB_URL}
- sf_uboot1:
- image_arg: --alt sf_uboot1 --download {sf_uboot1}
- url: ${UBOOT_ITB_URL}
-
-- command:
- namespace: dfu-firmware
- name: set_boot_to_nand
-
-- boot:
- namespace: dfu-firmware
- method: dfu
- timeout:
- minutes: 10
-
-- command:
- namespace: test
- name: set_boot_to_qspi
-
-##########################
-# Configure ethernet ports
-##########################
-- command:
- namespace: test
- name: j17_off
-- command:
- namespace: test
- name: j21_on
-- command:
- namespace: test
- name: j22_off
-- command:
- namespace: test
- name: j23_off
-- command:
- namespace: test
- name: j24_off
-
-###############
-# u-boot
-###############
-- deploy:
- namespace: test-uboot
- timeout:
- minutes: 15
- to: tftp
- kernel:
- # This is a known kernel image used for CRC checks only
- url: https://releases.linaro.org/members/schneider/openembedded/2019.09-warrior/soca9/zImage--4.19.72+git0+7549a49ae5-r0-snarc-soca9-20191003145415.bin
- type: zimage
-
-- boot:
- namespace: test-uboot
- connection-namespace: dfu-firmware
- timeout:
- minutes: 20
- method: bootloader
- bootloader: u-boot
- commands: []
- prompts: ["=>"]
-
-# Run some U-Boot tests
-- test:
- namespace: test-uboot
- timeout:
- minutes: 5
- interactive:
- - name: uboot-tests
- prompts: ["=> ", "/ # "]
- script:
- - command: echo "u-boot echo test"
- name: echo
- successes:
- - message: "u-boot echo test"
- - command: version
- name: version
- successes:
- - message: "U-Boot"
- - command: help test
- name: help
- successes:
- - message: "test - minimal test like /bin/sh"
- # saveenv and printenv
- - command: setenv test_var test123
- - command: printenv
- name: setenv-and-printenv
- successes:
- - message: "test_var=test123"
- - name: memory-test
- prompts: ["=> ", "/ # "]
- script:
- # memory test
- # base - print or set address offset
- - command: base
- name: print-default-base-address-offset
- successes:
- - message: "Base Address: 0x"
- - command: base 80000000
- name: set-address-offset-0x80000000
- successes:
- - message: "Base Address: 0x80000000"
- - command: base
- name: check-address-offset-0x80000000
- successes:
- - message: "Base Address: 0x80000000"
- # crc32 - checksum calculation
- - command: mw.b 00000000 aa 400
- - command: crc32 -v 80000000 400 3c6f327d
- - command: echo return code $$?
- name: compute-CRC32-checksum
- successes:
- - message: "return code 0"
- # mw - memory write
- # md - memory display
- - command: mw 100000 aabbccdd 10
- - command: md 100000 10
- name: mw-md-100000
- successes:
- - message: "aabbccdd"
- # md - memory display
- # cp - memory copy
- - command: cp 100000 200000 10
- - command: md 200000 10
- name: cp-md-200000
- successes:
- - message: "aabbccdd"
- # cmp - memory compare
- - command: cmp 100000 200000 10
- name: cmp-100000-200000-10
- successes:
- - message: "Total of 16 word\\(s\\) were the same"
- - name: dhcp-cmds
- prompts: ["=> ", "/ # "]
- script:
- # dhcp
- - command: setenv autoload no ; dhcp ; dhcp
- name: dhcp
- successes:
- - message: "DHCP client bound to address"
- - name: ping-cmds
- prompts: ["=> ", "/ # "]
- script:
- # ping
- - command: ping {SERVER_IP}
- name: ping
- successes:
- - message: "is alive"
- - name: tftp-cmds
- prompts: ["=> ", "/ # "]
- script:
- # TFTP
- - command: setenv serverip {SERVER_IP} ; tftp {KERNEL_ADDR} {KERNEL}
- name: tftp
- successes:
- - message: "Bytes transferred = 6752784"
- - command: crc32 -v {KERNEL_ADDR} 670a10 ca050911
- - command: echo return code $$?
- successes:
- - message: "return code 0"
- - name: nand-commands
- prompts: ["=> ", "/ # "]
- script:
- # nand
- - command: nand info
- name: nand-info
- successes:
- - message: nand0, sector size 128 KiB
-
-###############
-# prod-image.ubi
-###############
-- deploy:
- namespace: test-ubi
- to: tmpfs
- images:
- n_fs1:
- image_arg: --alt n_fs1 --download {n_fs1}
- url: ${UBI_IMAGE_URL}
-
-- command:
- namespace: test-ubi
- name: set_boot_to_nand
-- boot:
- namespace: test-ubi
- method: dfu
- timeout:
- minutes: 10
-- command:
- namespace: test-ubi
- name: set_boot_to_qspi
-
-- boot:
- namespace: test-ubi
- connection-namespace: test-ubi
- timeout:
- minutes: 20
- method: u-boot
- commands:
- - run linux_bestla
- auto_login:
- login_prompt: "login:"
- username: root
- password_prompt: "Password:"
- password: "P@ssword-1"
- login_commands:
- - "P@ssword-1"
- - "azertAZERT12345"
- - "azertAZERT12345"
- - "azertAZERT12345"
- prompts:
- - "Current password: "
- - "New password: "
- - "Retype new password: "
- - "root@rzn1d400-bestla:"
-
-- test:
- namespace: test-ubi
- connection-namespace: test-ubi
- timeout:
- minutes: 60
- interactive:
- - name: basic-cmds-ubi
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - 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
-
-
-##################
-# Reboot/Poweroff Tests
-##################
-- test:
- namespace: test-reboot
- connection-namespace: test-ubi
- timeout:
- minutes: 5
- interactive:
- - name: reboot-cmds-1
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla", "=> "]
- script:
- - command: reboot ; sleep 10
-
-# Trigger 2nd boot
-- boot:
- namespace: test-reboot
- connection-namespace: test-ubi
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_bestla
- auto_login:
- login_prompt: "login:"
- username: root
- password_prompt: "Password:"
- password: azertAZERT12345
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
-
-- test:
- namespace: test-reboot
- connection-namespace: test-ubi
- timeout:
- minutes: 5
- interactive:
- - name: check-1st-reboot
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla"]
- script:
- - command: echo "We came back from a reboot"
-
-
-# Reboot the board a 2nd time
-- test:
- namespace: test-reboot-2
- connection-namespace: test-ubi
- timeout:
- minutes: 5
- interactive:
- - name: reboot-cmds-2
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla", "=> "]
- script:
- - command: reboot ; sleep 10
-
-# Trigger a new boot
-- boot:
- namespace: test-reboot-2
- connection-namespace: test-ubi
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_bestla
- auto_login:
- login_prompt: "login:"
- username: root
- password_prompt: "Password:"
- password: "azertAZERT12345"
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1d400-bestla:"
-
-- test:
- namespace: test-reboot-2
- connection-namespace: test-ubi
- timeout:
- minutes: 5
- interactive:
- - name: check-2nd-reboot
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla", "=> "]
- script:
- - command: echo "We came back from the 2nd reboot"
-
-# Test poweroff
-- test:
- namespace: test-poweroff
- connection-namespace: test-ubi
- timeout:
- minutes: 5
- interactive:
- - name: poweroff-cmds
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla", "=> "]
- script:
- - command: poweroff ; sleep 10
-
-# Check we are in u-boot after poweroff
-- test:
- namespace: test-poweroff
- connection-namespace: test-ubi
- timeout:
- minutes: 5
- interactive:
- - name: check-poweroff
- prompts: ["=> "]
- script:
- - command: version
- successes:
- - message: "U-Boot"
-
-metadata:
- machine: ${MACHINE}
- manifest branch: ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL}
- manifest commit: ${MANIFEST_COMMIT}
- build url: ${BUILD_URL}
- build location: ${PUBLISH_SERVER}${PUB_DEST}
-
-notify:
- recipients:
- - to:
- method: email
- email: ryan.harkin@linaro.org
- criteria:
- status: incomplete
- verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/dev-image.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/dev-image.yaml
deleted file mode 100644
index 55982c9569..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/dev-image.yaml
+++ /dev/null
@@ -1,415 +0,0 @@
-device_type: soca9
-job_name: SE ${MACHINE} dev-image (nfs,wic) ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER}
-
-timeouts:
- job:
- minutes: 180
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-actions:
-
-##################
-# Deploy WIC image
-##################
-- deploy:
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-##########################
-# Configure ethernet ports
-##########################
-- command:
- name: j17_off
-- command:
- name: j21_on
-- command:
- name: j22_off
-- command:
- name: j23_off
-- command:
- name: j24_off
-
-###############
-# TFTP/NFS
-###############
-- deploy:
- timeout:
- minutes: 15
- to: tftp
- os: oe
- kernel:
- url: ${KERNEL_ZIMAGE_URL}
- type: zimage
- dtb:
- url: ${DTB_URL}
- nfsrootfs:
- url: ${NFSROOTFS_DEV_URL}
- compression: bz2
-
-- boot:
- timeout:
- minutes: 20
- method: u-boot
- commands:
- - run FPGA_INIT
- - setenv autoload no
- - dhcp
- - dhcp
- - env print
- - setenv serverip {SERVER_IP}
- - tftp {KERNEL_ADDR} {KERNEL}
- - tftp 0x1000 {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'"
- - bootz 0x01000000 - 0x00001000
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
-
-- test:
- timeout:
- minutes: 40
- interactive:
- - name: basic-cmds-tftp
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: memstat
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: which docker
-
-- test:
- timeout:
- minutes: 40
- definitions:
-
- - name: smoke-tests-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/smoke/smoke.yaml
- parameters:
- SKIP_INSTALL: True
- TESTS: "pwd, uname -a, cat /etc/os-release, ip a, lscpu, vmstat, lsblk, ps aux --sort -rss, free -h, mount"
-
- - name: ethernet-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ethernet/ethernet.yaml
- parameters:
- INTERFACE: eth1
-
- - name: meminfo-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/meminfo/meminfo.yaml
-
- - name: badblocks-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/badblocks/badblocks.yaml
- parameters:
- SKIP_INSTALL: True
-
- - name: memtester-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/memtester/memtester.yaml
- parameters:
- SKIP_INSTALL: True
-
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i eth1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-- test:
- timeout:
- minutes: 40
- interactive:
- - name: basic-cmds-wic
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: mount
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: memstat
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: ping -c 3 github.com
- - command: which docker
-
-
-##################
-# Functional Tests
-##################
-- test:
- timeout:
- minutes: 100
- definitions:
-
- - name: files-exist
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/files-exist/files-exist.yaml
- parameters:
- SKIP_INSTALL: true
- EXTRA_FILES: '/etc/os-release'
-
- - name: ethernet
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ethernet/ethernet.yaml
- parameters:
- INTERFACE: eth1
-
- - name: meminfo
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/meminfo/meminfo.yaml
-
- - name: badblocks
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/badblocks/badblocks.yaml
- parameters:
- SKIP_INSTALL: True
-
- - name: memtester
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/memtester/memtester.yaml
- parameters:
- SKIP_INSTALL: True
-
- - name: yepkit-list
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- LIST: true
-
- - name: yepkit-down-all
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_DOWN: a
-
- - name: yepkit-get-1
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_GET: 1
- - name: yepkit-get-2
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_GET: 2
- - name: yepkit-get-3
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_GET: 3
-
- - name: yepkit-up-port-1
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_UP: 1
- PORT_DEVICE: /dev/ttyUSB0
-
- - name: uart-loopback-forward
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/uart-loopback/uart-loopback.yaml
- parameters:
- SKIP_INSTALL: 'true'
- UART0: /dev/ttyUSB0
- UART1: /dev/ttyS1
- - name: uart-loopback-reverse
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/uart-loopback/uart-loopback.yaml
- parameters:
- SKIP_INSTALL: 'true'
- UART0: /dev/ttyS1
- UART1: /dev/ttyUSB0
-
- - name: yepkit-down-port-1
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_DOWN: 1
- PORT_DEVICE: /dev/ttyUSB0
-
- - name: yepkit-up-port-2
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_UP: 2
- PORT_DEVICE: /dev/sda
-
- - name: block-device-sda
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/block-device/block-device.yaml
- parameters:
- SKIP_INSTALL: 'true'
- DEVICE: /dev/sda
- FORMAT_DEVICE: 'true'
-
- - name: zero-sda
- from: inline
- path: inline/zero-sda.yaml
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: zero-sda
- description: write zeros to device sda
- run:
- steps:
- - dd if=/dev/zero of=/dev/sda bs=1M count=1024
-
- - name: device-read-perf
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/device-read-perf/device-read-perf.yaml
- parameters:
- SKIP_INSTALL: 'true'
- DEVICE: sda mmcblk0
-
- - name: yepkit-down-port-2
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/yepkit/yepkit.yaml
- parameters:
- PORT_DOWN: 2
- PORT_DEVICE: /dev/sda
-
- - name: spi-eeprom
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/eeprom/eeprom.yaml
- parameters:
- SKIP_INSTALL: 'true'
- EEPROM: '/sys/bus/spi/devices/spi0.0/eeprom'
-
-
-metadata:
- machine: ${MACHINE}
- manifest branch: ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL}
- manifest commit: ${MANIFEST_COMMIT}
- build url: ${BUILD_URL}
- build location: ${PUBLISH_SERVER}${PUB_DEST}
-
-notify:
- recipients:
- - to:
- method: email
- email: ryan.harkin@linaro.org
- criteria:
- status: incomplete
- verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j17.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j17.yaml
deleted file mode 100644
index 0e9f7e7c70..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j17.yaml
+++ /dev/null
@@ -1,614 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} eth2/J17
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i eth2 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J17
-#################################
-- command:
- role:
- - daemon
- - dut
- name: j17_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j17
- parameters:
- CMD: configure-interface
- ETH: eth2
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j17
- parameters:
- CMD: daemon
- ETH: eth2
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j17
- parameters:
- CMD: configure-interface
- ETH: eth2
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j17
- parameters:
- CMD: request-server-address
- ETH: eth2
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j17
- parameters:
- CMD: scp-target-to-host
- ETH: eth2
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j17
- parameters:
- CMD: scp-host-to-target
- ETH: eth2
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j17
- parameters:
- CMD: ssh-host-to-target
- ETH: eth2
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j17
- parameters:
- CMD: iperf3-server
- ETH: eth2
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j17
- parameters:
- CMD: iperf3-client
- ETH: eth2
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j17
- parameters:
- CMD: iperf3-client
- ETH: eth2
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J17 (eth2) off
- #################################
-- command:
- role:
- - dut
- name: j17_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j17
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth2
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J17 (eth2) back on again
- #################################
-- command:
- role:
- - dut
- name: j17_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j17
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j17
- parameters:
- CMD: link-settings
- ETH: eth2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j17
- parameters:
- CMD: link-settings
- ETH: eth2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j17
- parameters:
- CMD: link-settings
- ETH: eth2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j17
- parameters:
- CMD: link-settings
- ETH: eth2
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j17
- parameters:
- CMD: ping-request
- ETH: eth2
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j17
- parameters:
- ETH: eth2
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j21.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j21.yaml
deleted file mode 100644
index 32636de051..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j21.yaml
+++ /dev/null
@@ -1,593 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} eth1/J21
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i eth1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j21
- parameters:
- CMD: configure-interface
- ETH: eth1
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j21
- parameters:
- CMD: daemon
- ETH: eth1
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j21
- parameters:
- CMD: configure-interface
- ETH: eth1
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j21
- parameters:
- CMD: request-server-address
- ETH: eth1
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j21
- parameters:
- CMD: scp-target-to-host
- ETH: eth1
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j21
- parameters:
- CMD: scp-host-to-target
- ETH: eth1
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j21
- parameters:
- CMD: ssh-host-to-target
- ETH: eth1
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j21
- parameters:
- CMD: iperf3-server
- ETH: eth1
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j21
- parameters:
- CMD: iperf3-client
- ETH: eth1
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j21
- parameters:
- CMD: iperf3-client
- ETH: eth1
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J21 (eth1) off
- #################################
-- command:
- role:
- - dut
- name: j21_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j21
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J21 (eth1) back on again
- #################################
-- command:
- role:
- - dut
- name: j21_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j21
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j21
- parameters:
- CMD: link-settings
- ETH: eth1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j21
- parameters:
- CMD: link-settings
- ETH: eth1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j21
- parameters:
- CMD: link-settings
- ETH: eth1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j21
- parameters:
- CMD: link-settings
- ETH: eth1
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j21
- parameters:
- CMD: ping-request
- ETH: eth1
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j21
- parameters:
- ETH: eth1
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22-mtu1508.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22-mtu1508.yaml
deleted file mode 100644
index cd1610f63b..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22-mtu1508.yaml
+++ /dev/null
@@ -1,617 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan0/J22 MTU 1508
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i lan0 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J22
-#################################
-- command:
- role:
- - daemon
- - dut
- name: j22_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j22-mtu1508
- parameters:
- CMD: daemon
- ETH: lan0
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1508
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j22-mtu1508
- parameters:
- CMD: request-server-address
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j22-mtu1508
- parameters:
- CMD: scp-target-to-host
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j22-mtu1508
- parameters:
- CMD: scp-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j22-mtu1508
- parameters:
- CMD: ssh-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j22-mtu1508
- parameters:
- CMD: iperf3-server
- ETH: lan0
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j22-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j22-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J22 (lan0) off
- #################################
-- command:
- role:
- - dut
- name: j22_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J22 (lan0) back on again
- #################################
-- command:
- role:
- - dut
- name: j22_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j22-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "auto"
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j22-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j22-mtu1508
- parameters:
- ETH: lan0
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22.yaml
deleted file mode 100644
index 75df15c04c..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j22.yaml
+++ /dev/null
@@ -1,617 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan0/J22
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i lan0 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J22
-#################################
-- command:
- role:
- - daemon
- - dut
- name: j22_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j22
- parameters:
- CMD: daemon
- ETH: lan0
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j22
- parameters:
- CMD: configure-interface
- ETH: lan0
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j22
- parameters:
- CMD: request-server-address
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j22
- parameters:
- CMD: scp-target-to-host
- ETH: lan0
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j22
- parameters:
- CMD: scp-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j22
- parameters:
- CMD: ssh-host-to-target
- ETH: lan0
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j22
- parameters:
- CMD: iperf3-server
- ETH: lan0
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j22
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j22
- parameters:
- CMD: iperf3-client
- ETH: lan0
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J22 (lan0) off
- #################################
-- command:
- role:
- - dut
- name: j22_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J22 (lan0) back on again
- #################################
-- command:
- role:
- - dut
- name: j22_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j22
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j22
- parameters:
- CMD: link-settings
- ETH: lan0
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j22
- parameters:
- CMD: ping-request
- ETH: lan0
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j22
- parameters:
- ETH: lan0
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23-mtu1508.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23-mtu1508.yaml
deleted file mode 100644
index dd786e533c..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23-mtu1508.yaml
+++ /dev/null
@@ -1,617 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan1/J23 MTU 1508
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i lan1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J23
-#################################
-- command:
- role:
- - daemon
- - dut
- name: j23_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j23-mtu1508
- parameters:
- CMD: daemon
- ETH: lan1
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1508
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j23-mtu1508
- parameters:
- CMD: request-server-address
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j23-mtu1508
- parameters:
- CMD: scp-target-to-host
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j23-mtu1508
- parameters:
- CMD: scp-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j23-mtu1508
- parameters:
- CMD: ssh-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j23-mtu1508
- parameters:
- CMD: iperf3-server
- ETH: lan1
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j23-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j23-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J23 (lan1) off
- #################################
-- command:
- role:
- - dut
- name: j23_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J23 (lan1) back on again
- #################################
-- command:
- role:
- - dut
- name: j23_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j23-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "auto"
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j23-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j23-mtu1508
- parameters:
- ETH: lan1
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23.yaml
deleted file mode 100644
index 3a49ee897c..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j23.yaml
+++ /dev/null
@@ -1,617 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan1/J23
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i lan1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J23
-#################################
-- command:
- role:
- - daemon
- - dut
- name: j23_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j23
- parameters:
- CMD: daemon
- ETH: lan1
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j23
- parameters:
- CMD: configure-interface
- ETH: lan1
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j23
- parameters:
- CMD: request-server-address
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j23
- parameters:
- CMD: scp-target-to-host
- ETH: lan1
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j23
- parameters:
- CMD: scp-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j23
- parameters:
- CMD: ssh-host-to-target
- ETH: lan1
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j23
- parameters:
- CMD: iperf3-server
- ETH: lan1
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j23
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j23
- parameters:
- CMD: iperf3-client
- ETH: lan1
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J23 (lan1) off
- #################################
-- command:
- role:
- - dut
- name: j23_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J23 (lan1) back on again
- #################################
-- command:
- role:
- - dut
- name: j23_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j23
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j23
- parameters:
- CMD: link-settings
- ETH: lan1
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j23
- parameters:
- CMD: ping-request
- ETH: lan1
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j23
- parameters:
- ETH: lan1
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24-mtu1508.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24-mtu1508.yaml
deleted file mode 100644
index 79d6239c59..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24-mtu1508.yaml
+++ /dev/null
@@ -1,617 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan2/J24 MTU 1508
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i lan2 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J24
-#################################
-- command:
- role:
- - daemon
- - dut
- name: j24_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j24-mtu1508
- parameters:
- CMD: daemon
- ETH: lan2
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24-mtu1508
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1508
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j24-mtu1508
- parameters:
- CMD: request-server-address
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j24-mtu1508
- parameters:
- CMD: scp-target-to-host
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j24-mtu1508
- parameters:
- CMD: scp-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j24-mtu1508
- parameters:
- CMD: ssh-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j24-mtu1508
- parameters:
- CMD: iperf3-server
- ETH: lan2
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j24-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j24-mtu1508
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J24 (lan2) off
- #################################
-- command:
- role:
- - dut
- name: j24_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J24 (lan2) back on again
- #################################
-- command:
- role:
- - dut
- name: j24_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24-mtu1508
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1508
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j24-mtu1508
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "auto"
- MTU: 1508
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j24-mtu1508
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j24-mtu1508
- parameters:
- ETH: lan2
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24.yaml
deleted file mode 100644
index 72b295589d..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/lava-multinode-soca9-j24.yaml
+++ /dev/null
@@ -1,617 +0,0 @@
-job_name: SE ${MACHINE} network-test ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER} lan2/J24
-timeouts:
- job:
- minutes: 1800
- action:
- minutes: 120
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-
-protocols:
- lava-multinode:
- roles:
- dut:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
- daemon:
- device_type: soca9
- count: 1
- timeout:
- minutes: 30
-
-
-
-actions:
-##################
-# Deploy WIC image
-##################
-- deploy:
- role:
- - daemon
- - dut
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##################
-# all ports off - except J21
-##################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
-
-
-###################
-# dev-image.wic
-###################
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- role:
- - daemon
- - dut
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i lan2 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-
-########################################################
-# Turn off all Yepkit USB devices and network interfaces
-########################################################
-- test:
- role:
- - daemon
- - dut
- timeout:
- minutes: 60
- definitions:
- - from: inline
- repository:
- metadata:
- format: Lava-Test Test Definition 1.0
- name: yepkit-down-all
- description: yepkit test
- run:
- steps:
- - git clone https://github.com/Yepkit/ykush
- - cd ykush
- - make
- - bin/ykushcmd -d a
- - sleep 3
- - ifconfig eth0 down || true
- - ifconfig eth1 down || true
- - ifconfig eth2 down || true
- - ifconfig lan0 down || true
- - ifconfig lan1 down || true
- - ifconfig lan2 down || true
- name: yepkit-down-all
- path: inline/yepkit-test.yaml
-
-
-#############################
-# We're finished with J21 now
-#############################
-- command:
- role:
- - daemon
- - dut
- name: j21_off
-
-
-#################################
-# All nodes use J24
-#################################
-- command:
- role:
- - daemon
- - dut
- name: j24_on
-
-
-
-
-
-#################################
-# Daemon
-#################################
-
-- test:
- role:
- - daemon
- timeout:
- minutes: 300
- definitions:
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
-
- #################################
- # Start daemon
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: daemon-j24
- parameters:
- CMD: daemon
- ETH: lan2
- SWITCH_IF: eth0
-
-
-#################################
-# DUT
-#################################
-
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
-
-
-
- #################################
- # configure-interface
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: configure-interface-j24
- parameters:
- CMD: configure-interface
- ETH: lan2
- SWITCH_IF: eth0
- EXPECTED_RESULT: pass
- MTU: 1500
-
-
-
-
- #################################
- # PING - before we mess with link-settings
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-default-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # Request server IP address
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: request-server-address-j24
- parameters:
- CMD: request-server-address
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Target to Host
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-target-to-host-j24
- parameters:
- CMD: scp-target-to-host
- ETH: lan2
-
-
-
-
- #################################
- # SCP from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: scp-host-to-target-j24
- parameters:
- CMD: scp-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # SSH from Host to Target
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: ssh-host-to-target-j24
- parameters:
- CMD: ssh-host-to-target
- ETH: lan2
-
-
-
-
- #################################
- # iperf
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-server-j24
- parameters:
- CMD: iperf3-server
- ETH: lan2
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-j24
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: iperf-reverse-j24
- parameters:
- CMD: iperf3-client
- ETH: lan2
- TIME: 60
- REVERSE: "-R"
-
-
-
-
- #################################
- # Switch port J24 (lan2) off
- #################################
-- command:
- role:
- - dut
- name: j24_off
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping fails
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-off-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: fail
-
-
-
- #################################
- # Switch port J24 (lan2) back on again
- #################################
-- command:
- role:
- - dut
- name: j24_on
-
-- test:
- role:
- - dut
- timeout:
- minutes: 10
- interactive:
- - name: sleep-j24
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: sleep 5
-
-
- #################################
- # Check that ping succeeds
- #################################
-- test:
- role:
- - dut
- timeout:
- minutes: 300
- definitions:
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-on-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/half/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: half
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-half-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings off/100/full/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "manual"
- LINKSPEED: 100
- DUPLEX: full
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-100-full-2-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
- #################################
- # link-settings on/?/?/1500
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-j24
- parameters:
- CMD: link-settings
- ETH: lan2
- AUTONEG: "auto"
- MTU: 1500
-
-
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: link-settings-autoneg-ping-j24
- parameters:
- CMD: ping-request
- ETH: lan2
- EXPECTED_RESULT: pass
-
-
-
-
-
-
-
-
- #################################
- # Finished
- #################################
- - repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- from: git
- history: false
- path: automated/linux/network-test/network-test.yaml
- name: finished-j24
- parameters:
- ETH: lan2
- CMD: finished
-
-
- #################################
- # Reset the port status
- #################################
-- command:
- role:
- - daemon
- - dut
- name: j17_off
-
-- command:
- role:
- - daemon
- - dut
- name: j21_on
-
-- command:
- role:
- - daemon
- - dut
- name: j22_off
-
-- command:
- role:
- - daemon
- - dut
- name: j23_off
-
-- command:
- role:
- - daemon
- - dut
- name: j24_off
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/ltp-ptest.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/ltp-ptest.yaml
deleted file mode 100644
index 53c0c08f20..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/ltp-ptest.yaml
+++ /dev/null
@@ -1,134 +0,0 @@
-device_type: soca9
-job_name: SE ${MACHINE} dev-image (LTP/PTEST) ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER}
-
-timeouts:
- job:
- minutes: 700
- action:
- minutes: 70
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-actions:
-
-###################
-# dev-image.wic
-###################
-- deploy:
- timeout:
- minutes: 100
- to: flasher
- images:
- image:
- url: ${WIC_DEV_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_DEV_BMAP_URL}
-
-
-##########################
-# Configure ethernet ports
-##########################
-- command:
- name: j17_off
-- command:
- name: j21_on
-- command:
- name: j22_off
-- command:
- name: j23_off
-- command:
- name: j24_off
-
-- boot:
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- prompts:
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
- transfer_overlay:
- download_command: udhcpc -i eth1 -n; wget
- unpack_command: tar --touch -C / -xzf
-
-- test:
- timeout:
- minutes: 10
- interactive:
- - name: basic-cmds-wic
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: mount
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: memstat
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: ping -c 3 github.com
- - command: which docker
-
-##################
-# Functional Tests
-##################
-- test:
- timeout:
- minutes: 600
- definitions:
-
- - name: meminfo
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/meminfo/meminfo.yaml
-
- - name: ltp-default-tests
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ltp/ltp.yaml
- parameters:
- SKIP_INSTALL: 'true'
- SKIPFILE: 'skipfile-lkft.yaml'
- BOARD: ${MACHINE}
- TIMEOUT_MULTIPLIER: 3
-
- - name: linux-ptest
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ptest/ptest.yaml
- params:
- EXCLUDE: 'bluez5 bzip2 containerd e2fsprogs libxml2 parted python strace openssh openssl perl dbus-test'
-
-metadata:
- machine: ${MACHINE}
- manifest branch: ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL}
- manifest commit: ${MANIFEST_COMMIT}
- build url: ${BUILD_URL}
- build location: ${PUBLISH_SERVER}${PUB_DEST}
-
-notify:
- recipients:
- - to:
- method: email
- email: ryan.harkin@linaro.org
- criteria:
- status: incomplete
- verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions-test/soca9/prod-image.yaml b/schneider-openembedded/lava-job-definitions-test/soca9/prod-image.yaml
deleted file mode 100644
index 457600c993..0000000000
--- a/schneider-openembedded/lava-job-definitions-test/soca9/prod-image.yaml
+++ /dev/null
@@ -1,347 +0,0 @@
-device_type: soca9
-job_name: SE ${MACHINE} prod-image (u-boot,nfs,wic) ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL} ${BUILD_NUMBER}
-
-timeouts:
- job:
- minutes: 100
- action:
- minutes: 70
- connection:
- minutes: 20
-priority: medium
-visibility: public
-
-actions:
-
-##################
-# Deploy WIC image
-##################
-- deploy:
- timeout:
- minutes: 20
- to: flasher
- images:
- image:
- url: ${WIC_IMAGE_URL}
- compression: bz2
- layout:
- url: ${WIC_BMAP_URL}
-
-
-##########################
-# Configure ethernet ports
-##########################
-- command:
- name: j17_off
-- command:
- name: j21_on
-- command:
- name: j22_off
-- command:
- name: j23_off
-- command:
- name: j24_off
-
-###############
-# u-boot
-###############
-- deploy:
- timeout:
- minutes: 15
- to: tftp
- kernel:
- # This is a known kernel image used for CRC checks only
- url: https://releases.linaro.org/members/schneider/openembedded/2019.09-warrior/soca9/zImage--4.19.72+git0+7549a49ae5-r0-snarc-soca9-20191003145415.bin
- type: zimage
-
-- boot:
- timeout:
- minutes: 20
- method: bootloader
- bootloader: u-boot
- commands: []
- prompts: ["=>"]
-
-# Run some U-Boot tests
-- test:
- timeout:
- minutes: 5
- interactive:
- - name: uboot-tests
- prompts: ["=> ", "/ # "]
- script:
- - command: echo "u-boot echo test"
- name: echo
- successes:
- - message: "u-boot echo test"
- - command: version
- name: version
- successes:
- - message: "U-Boot"
- - command: help test
- name: help
- successes:
- - message: "test - minimal test like /bin/sh"
- # saveenv and printenv
- - command: setenv test_var test123
- - command: printenv
- name: setenv-and-printenv
- successes:
- - message: "test_var=test123"
- - name: memory-test
- prompts: ["=> ", "/ # "]
- script:
- # memory test
- # base - print or set address offset
- - command: base
- name: print-default-base-address-offset
- successes:
- - message: "Base Address: 0x"
- - command: base 00000000
- name: set-address-offset-0x00000000
- successes:
- - message: "Base Address: 0x00000000"
- - command: base
- name: check-address-offset-0x00000000
- successes:
- - message: "Base Address: 0x00000000"
- # crc32 - checksum calculation
- - command: mw.b 00000000 aa 400
- - command: crc32 -v 0 400 3c6f327d
- - command: echo return code $$?
- name: compute-CRC32-checksum
- successes:
- - message: "return code 0"
- # mw - memory write
- # md - memory display
- - command: mw 100000 aabbccdd 10
- - command: md 100000 10
- name: mw-md-100000
- successes:
- - message: "aabbccdd"
- # md - memory display
- # cp - memory copy
- - command: cp 100000 200000 10
- - command: md 200000 10
- name: cp-md-200000
- successes:
- - message: "aabbccdd"
- # cmp - memory compare
- - command: cmp 100000 200000 10
- name: cmp-100000-200000-10
- successes:
- - message: "Total of 16 word\\(s\\) were the same"
- - name: fpga-check-cmds
- prompts: ["=> ", "/ # "]
- script:
- # FPGA checksum and dump start and end of image
- - command: mw.b 0x01000000 0 0x700000
- - command: run scan_dev_for_fpga
- - command: crc32 0x01000000 006aebe4
- - command: '#'
- - command: md.b 0x01000000 100
- - command: '#'
- - command: md.b 016aea10 200
- - command: '#'
- - name: dhcp-cmds
- prompts: ["=> ", "/ # "]
- script:
- # dhcp
- - command: run FPGA_INIT
- successes:
- - message: "FPGA updated to correct revision."
- name: fpga_init
- - command: setenv autoload no ; dhcp ; dhcp
- name: dhcp
- successes:
- - message: "DHCP client bound to address"
- - name: ping-cmds
- prompts: ["=> ", "/ # "]
- script:
- # ping
- - command: ping {SERVER_IP}
- name: ping
- successes:
- - message: "is alive"
- - name: tftp-cmds
- prompts: ["=> ", "/ # "]
- script:
- # TFTP
- - command: setenv serverip {SERVER_IP} ; tftp {KERNEL_ADDR} {KERNEL}
- name: tftp
- successes:
- - message: "Bytes transferred = 6752784"
- - command: crc32 -v {KERNEL_ADDR} 670a10 ca050911
- - command: echo return code $$?
- successes:
- - message: "return code 0"
-
-
-###############
-# TFTP/NFS
-###############
-- deploy:
- timeout:
- minutes: 15
- to: tftp
- os: oe
- kernel:
- url: ${KERNEL_ZIMAGE_URL}
- type: zimage
- dtb:
- url: ${DTB_URL}
- nfsrootfs:
- url: ${NFSROOTFS_URL}
- compression: bz2
-
-- boot:
- timeout:
- minutes: 20
- method: u-boot
- commands:
- - run FPGA_INIT
- - setenv autoload no
- - dhcp
- - dhcp
- - env print
- - setenv serverip {SERVER_IP}
- - tftp {KERNEL_ADDR} {KERNEL}
- - tftp 0x1000 {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'"
- - bootz 0x01000000 - 0x00001000
- auto_login:
- login_prompt: "login:"
- username: root
- password_prompt: "Password:"
- password: "P@ssword-1"
- login_commands:
- - "P@ssword-1"
- - "azertAZERT12345"
- - "azertAZERT12345"
- - "azertAZERT12345"
- prompts:
- - "Current password: "
- - "New password: "
- - "Retype new password: "
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
-
-- test:
- timeout:
- minutes: 10
- interactive:
- - name: basic-cmds-tftp
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: ping -c 3 github.com
- - command: which docker
-
-- test:
- timeout:
- minutes: 20
- definitions:
-
- - name: smoke-tests-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/smoke/smoke.yaml
- parameters:
- SKIP_INSTALL: True
- TESTS: "pwd, uname -a, cat /etc/os-release, ip a, lscpu, vmstat, lsblk, ps aux --sort -rss, free -h, mount"
-
- - name: ethernet-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/ethernet/ethernet.yaml
- parameters:
- INTERFACE: eth1
-
- - name: meminfo-tftp
- from: git
- history: false
- repository: https://git.linaro.org/landing-teams/working/schneider/test-definitions.git
- branch: master
- path: automated/linux/meminfo/meminfo.yaml
-
-
-###############
-# prod-image.wic
-###############
-# We already flashed the SDcard WIC image in the deploy step at the begging of this test run
-- boot:
- timeout:
- minutes: 10
- method: u-boot
- commands:
- - run linux_sd
- auto_login:
- login_prompt: "login:"
- username: root
- password_prompt: "Password:"
- password: "P@ssword-1"
- login_commands:
- - "P@ssword-1"
- - "azertAZERT12345"
- - "azertAZERT12345"
- - "azertAZERT12345"
- prompts:
- - "Current password: "
- - "New password: "
- - "Retype new password: "
- - "root@snarc-soca9:"
- - "root@rzn1-snarc:"
-
-- test:
- timeout:
- minutes: 10
- interactive:
- - name: basic-cmds-wic
- prompts: ["root@snarc-soca9", "root@rzn1-snarc"]
- script:
- - command: uname -a
- - command: cat /proc/device-tree/model ; echo ""
- - command: mount
- - command: ps aux --sort -rss
- - command: cat /proc/meminfo
- - command: cat /proc/cpuinfo
- - command: free -h
- - command: sysctl -a | grep vm.min_free_kbytes
- - command: mount
- - command: systemctl --no-pager status systemd-resolved
- - command: systemctl --no-pager restart systemd-resolved
- - command: systemctl --no-pager status systemd-resolved
- - command: ifconfig -a
- - command: ping -c 3 github.com
- - command: which docker
-
-metadata:
- machine: ${MACHINE}
- manifest branch: ${MANIFEST_BRANCH}-${KERNEL_VERSION_PATCHLEVEL}
- manifest commit: ${MANIFEST_COMMIT}
- build url: ${BUILD_URL}
- build location: ${PUBLISH_SERVER}${PUB_DEST}
-
-notify:
- recipients:
- - to:
- method: email
- email: ryan.harkin@linaro.org
- criteria:
- status: incomplete
- verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/dev-image.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/dev-image.yaml
index 0c42d1e73a..9c622f80f5 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 dd79f145d3..0f8bdb95f6 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 93b6e42a1d..ac0caa82fd 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 fa886b29e2..07e9a84a63 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 bb6e6ef165..3f08d561b7 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 8c5e3a1a71..e7070e1000 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 4b6a86bdf2..de1af32973 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 381cb6cc58..c88bfbeff1 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 51c6413610..fff4c2a19f 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 486c6e90ab..1d4f3bcf27 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:"
@@ -360,7 +361,7 @@ notify:
recipients:
- to:
method: email
- email: ryan.harkin@linaro.org
+ email: ralph.siemsen@linaro.org
criteria:
status: incomplete
verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml b/schneider-openembedded/lava-job-definitions/rzn1d/prod-image.yaml
index 3f6ee2d2ce..eec9afc2a7 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:"
@@ -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:"
@@ -370,23 +373,23 @@ actions:
minutes: 5
interactive:
- name: poweroff-cmds
- prompts: ["root@snarc-soca9", "root@rzn1d400-bestla", "=> "]
+ prompts: ["root@snarc-soca9", "root@rzn1d400-bestla", "=> ", "reboot: Power down"]
script:
- command: poweroff ; sleep 10
# Check we are in u-boot after poweroff
-- test:
- namespace: test-poweroff
- connection-namespace: test-ubi
- timeout:
- minutes: 5
- interactive:
- - name: check-poweroff
- prompts: ["=> "]
- script:
- - command: version
- successes:
- - message: "U-Boot"
+# - test:
+# namespace: test-poweroff
+# connection-namespace: test-ubi
+# timeout:
+# minutes: 5
+# interactive:
+# - name: check-poweroff
+# prompts: ["=> "]
+# script:
+# - command: version
+# successes:
+# - message: "U-Boot"
metadata:
machine: ${MACHINE}
@@ -399,7 +402,7 @@ notify:
recipients:
- to:
method: email
- email: ryan.harkin@linaro.org
+ email: ralph.siemsen@linaro.org
criteria:
status: incomplete
verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml b/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml
index 3c1d4e5991..4eb79f1d60 100644
--- a/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml
+++ b/schneider-openembedded/lava-job-definitions/soca9/dev-image.yaml
@@ -430,7 +430,7 @@ notify:
recipients:
- to:
method: email
- email: ryan.harkin@linaro.org
+ email: ralph.siemsen@linaro.org
criteria:
status: incomplete
verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions/soca9/ltp-ptest.yaml b/schneider-openembedded/lava-job-definitions/soca9/ltp-ptest.yaml
index 53c0c08f20..364953272b 100644
--- a/schneider-openembedded/lava-job-definitions/soca9/ltp-ptest.yaml
+++ b/schneider-openembedded/lava-job-definitions/soca9/ltp-ptest.yaml
@@ -128,7 +128,7 @@ notify:
recipients:
- to:
method: email
- email: ryan.harkin@linaro.org
+ email: ralph.siemsen@linaro.org
criteria:
status: incomplete
verbosity: verbose
diff --git a/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml b/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml
index 9817fd5114..576f088c0b 100644
--- a/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml
+++ b/schneider-openembedded/lava-job-definitions/soca9/prod-image.yaml
@@ -347,7 +347,7 @@ notify:
recipients:
- to:
method: email
- email: ryan.harkin@linaro.org
+ email: ralph.siemsen@linaro.org
criteria:
status: incomplete
verbosity: verbose
diff --git a/schneider-openembedded/submit_for_testing.sh b/schneider-openembedded/submit_for_testing.sh
index 9532eaf69a..36e986a690 100755
--- a/schneider-openembedded/submit_for_testing.sh
+++ b/schneider-openembedded/submit_for_testing.sh
@@ -52,17 +52,28 @@ templates_rzn1d_network=( \
)
templates_rzn1d_full=( ${templates_rzn1d_network[@]} )
-if [ "${DEVICE_TYPE}" == "rzn1d" ]; then
+case "${DEVICE_TYPE}" in
+ rzn1d)
templates_minimal=( ${templates_common_minimal[@]} ${templates_rzn1d_minimal[@]} )
templates_normal=( ${templates_common_normal[@]} ${templates_rzn1d_normal[@]} )
templates_network=( ${templates_common_network[@]} ${templates_rzn1d_network[@]} )
templates_full=( ${templates_common_full[@]} ${templates_rzn1d_full[@]} )
-else
+ ;;
+ soca9)
templates_minimal=( ${templates_common_minimal[@]} ${templates_soca9_minimal[@]} )
templates_normal=( ${templates_common_normal[@]} ${templates_soca9_normal[@]} )
templates_network=( ${templates_common_network[@]} ${templates_soca9_network[@]} )
templates_full=( ${templates_common_full[@]} ${templates_soca9_full[@]} )
-fi
+ ;;
+ am64x)
+ echo "No LAVA tests for am64x"
+ exit 0
+ ;;
+ *)
+ echo "unknown DEVICE_TYPE in submit_for_testing.sh"
+ exit 1
+ ;;
+esac
case $TEST_LEVEL in
"none" | "0")
diff --git a/schneider-openembedded/submit_for_testing_test.sh b/schneider-openembedded/submit_for_testing_test.sh
deleted file mode 100755
index 6dd4b146b9..0000000000
--- a/schneider-openembedded/submit_for_testing_test.sh
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/bash
-
-rm -rf configs
-git clone --depth 1 http://git.linaro.org/ci/job/configs.git
-pushd configs
-git log -1
-popd
-
-# Used by DB410C's template:
-export RESIZE_ROOTFS=${RESIZE_ROOTFS:-}
-
-templates_common_minimal=( prod-image.yaml )
-templates_common_normal=( ${templates_common_minimal[@]} )
-if [[ "${IMAGES}" == *dev-image* ]]; then
-templates_common_normal=( ${templates_common_normal[@]} dev-image.yaml )
-fi
-templates_common_network=( ${templates_common_normal[@]} )
-templates_common_full=( ${templates_common_network[@]} ltp-ptest.yaml )
-
-templates_soca9_minimal=
-templates_soca9_normal=( \
- ${templates_soca9_minimal[@]}
- lava-multinode-soca9-j21.yaml
- lava-multinode-soca9-j24-mtu1508.yaml
-)
-templates_soca9_network=( \
- ${templates_soca9_normal[@]}
- lava-multinode-soca9-j17.yaml
- lava-multinode-soca9-j22.yaml
- lava-multinode-soca9-j23.yaml
- lava-multinode-soca9-j24.yaml
- lava-multinode-soca9-j22-mtu1508.yaml
- lava-multinode-soca9-j23-mtu1508.yaml
-)
-templates_soca9_full=( ${templates_soca9_network[@]} )
-
-templates_rzn1d_minimal=
-templates_rzn1d_normal=( \
- ${templates_rzn1d_minimal[@]}
- lava-multinode-rzn1d-j21.yaml
- lava-multinode-rzn1d-j24-mtu1508.yaml
-)
-
-templates_rzn1d_network=( \
- ${templates_rzn1d_normal[@]}
- lava-multinode-rzn1d-j17.yaml
- lava-multinode-rzn1d-j22.yaml
- lava-multinode-rzn1d-j23.yaml
- lava-multinode-rzn1d-j24.yaml
- lava-multinode-rzn1d-j22-mtu1508.yaml
- lava-multinode-rzn1d-j23-mtu1508.yaml
-)
-templates_rzn1d_full=( ${templates_rzn1d_network[@]} )
-
-if [ "${DEVICE_TYPE}" == "rzn1d" ]; then
- templates_minimal=( ${templates_common_minimal[@]} ${templates_rzn1d_minimal[@]} )
- templates_normal=( ${templates_common_normal[@]} ${templates_rzn1d_normal[@]} )
- templates_network=( ${templates_common_network[@]} ${templates_rzn1d_network[@]} )
- templates_full=( ${templates_common_full[@]} ${templates_rzn1d_full[@]} )
-else
- templates_minimal=( ${templates_common_minimal[@]} ${templates_soca9_minimal[@]} )
- templates_normal=( ${templates_common_normal[@]} ${templates_soca9_normal[@]} )
- templates_network=( ${templates_common_network[@]} ${templates_soca9_network[@]} )
- templates_full=( ${templates_common_full[@]} ${templates_soca9_full[@]} )
-fi
-
-case $TEST_LEVEL in
- "none" | "0")
- templates=()
- ;;
- "minimal" | "minimum" | "min" | "1")
- templates=( ${templates_minimal[@]} )
- ;;
- "normal" | "2")
- templates=( ${templates_normal[@]} )
- ;;
- "network" | "3")
- templates=( ${templates_network[@]} )
- ;;
- *)
- templates=( ${templates_full[@]} )
- ;;
-esac
-
-for template in ${templates[@]};
-do
- python configs/openembedded-lkft/submit_for_testing.py \
- --device-type ${DEVICE_TYPE} \
- --build-number ${BUILD_NUMBER} \
- --lava-server ${LAVA_SERVER} \
- --qa-server ${QA_SERVER} \
- --qa-server-team ${QA_SERVER_TEAM} \
- --qa-server-project ${QA_SERVER_PROJECT} \
- --git-commit ${MANIFEST_COMMIT} \
- --template-path configs/schneider-openembedded/lava-job-definitions-test/ \
- --template-names ${template}
-done
-
diff --git a/sumits-oe.yaml b/sumits-oe.yaml
deleted file mode 100644
index 4c36f94f27..0000000000
--- a/sumits-oe.yaml
+++ /dev/null
@@ -1,160 +0,0 @@
-- job:
- name: sumits-oe
- 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: KERNEL_BRANCH
- default: 'hikey-new-rebase-trial'
- description: '<font color="red"><b>[mandatory]</b></font> git branch to use'
- - string:
- name: KERNEL_VERSION
- default: '4.4'
- description: '<font color="red"><b>[mandatory]</b></font> kernel version to use, matching the kernel used'
- - string:
- name: KERNEL_RECIPE
- default: 'linux-generic-lts'
- description: '<font color="red"><b>[mandatory]</b></font> kernel recipe to use, matching the kernel version'
- - string:
- name: KERNEL_REPO
- default: 'https://git.linaro.org/people/sumit.semwal/linux-3.x.git'
- description: '<font color="red"><b>[mandatory]</b></font> git repository to use'
- - string:
- name: KERNEL_DESCRIBE
- - string:
- name: SRCREV_kernel
- description: '<font color="red"><b>[mandatory]</b></font> git commit to use'
- - string:
- name: MAKE_KERNELVERSION
- - string:
- name: IMAGES
- default: 'rpb-console-image'
- - string:
- name: MANIFEST_BRANCH
- default: 'morty'
- - string:
- name: PUB_DEST
- default: 'people/sumits/oe/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${KERNEL_VERSION}/${BUILD_NUMBER}'
- description: '<font color="red"><b>[mandatory]</b></font> publishing destination path'
- - 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: 'linaro-hikey-stable-4.4-oe'
- - string:
- name: SKIP_LAVA
- default: '1'
- - string:
- name: LAVA_JOB_PRIORITY
- default: 'low'
- disabled: false
- node: master
- display-name: 'Sumit Semwal (OpenEmbedded/morty)'
- axes:
- - axis:
- type: user-defined
- name: MACHINE
- values:
- - 'hikey'
- - axis:
- type: user-defined
- name: DISTRO
- values:
- - rpb
- - axis:
- type: slave
- name: label
- values:
- - docker-stretch-amd64
- execution-strategy:
- sequential: false
- wrappers:
- - 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
- ;;
- esac
-
- echo "DEVICE_TYPE=${DEVICE_TYPE}" > device_type_parameters
-
- if [ -z "${SRCREV_kernel}" ]; then
- SRCREV_kernel=$(git ls-remote --heads ${KERNEL_REPO} ${KERNEL_BRANCH} | cut -f1)
- fi
-
- 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-sumits.sh
- - inject:
- properties-file: post_build_lava_parameters
- - linaro-publish-token
- - shell: |
- #!/bin/bash
-
- # Publish
- test -d ${HOME}/bin || mkdir ${HOME}/bin
- wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
- time python3 ${HOME}/bin/linaro-cp.py \
- --server ${PUBLISH_SERVER} \
- --link-latest \
- ${DEPLOY_DIR_IMAGE}/ ${PUB_DEST}
- - shell:
- !include-raw: openembedded-lkft/submit_for_testing.sh
- publishers:
- - groovy-postbuild:
- script:
- !include-raw:
- - rpb-openembedded/postbuild.groovy
- - openembedded-lkft/postbuild.groovy
- - email-ext:
- recipients: 'sumit.semwal@linaro.org'
- matrix-trigger: only-configurations
- 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/swarm-demo-factory.yaml b/swarm-demo-factory.yaml
index d59deca06e..d414c7ec5e 100644
--- a/swarm-demo-factory.yaml
+++ b/swarm-demo-factory.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/swarm-demo.yaml b/swarm-demo.yaml
index 703af7ba5b..554508a196 100644
--- a/swarm-demo.yaml
+++ b/swarm-demo.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/systems-diagnostics-amd64.yaml b/systems-diagnostics-amd64.yaml
new file mode 100644
index 0000000000..08fb60b302
--- /dev/null
+++ b/systems-diagnostics-amd64.yaml
@@ -0,0 +1,49 @@
+- job:
+ name: systems-diagnostics-amd64
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-discover
+ everyone-flat:
+ - job-build
+ - job-read
+ - job-extended-read
+ - job-workspace
+ - build-discarder:
+ days-to-keep: 5
+ num-to-keep: 10
+ disabled: false
+ node: docker-bionic-amd64
+ display-name: 'Systems Diagnostics - AMD64'
+
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/systems/diag-protected.git
+ branches:
+ - origin/master
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ skip-tag: true
+ shallow-clone: true
+ git-tool: jgit
+
+ triggers:
+ - pollscm: 'H/5 * * * *'
+
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 500
+ - ssh-agent-credentials:
+ users:
+ - '768c1ba1-6052-4b97-a531-7e4fabda6979'
+
+
+ builders:
+ - shell: |
+ bash -ex diag.sh
+
+ publishers:
+ - email:
+ recipients: 'kelley.spoon@linaro.org'
diff --git a/trigger-private-lt-qcom-ci-job-configs.yaml b/systems-diagnostics-controller.yaml
index 92b516712b..cb87627bb6 100644
--- a/trigger-private-lt-qcom-ci-job-configs.yaml
+++ b/systems-diagnostics-controller.yaml
@@ -1,36 +1,24 @@
- job:
- name: trigger-private-lt-qcom-ci-job-configs
+ name: systems-diagnostics-controller
project-type: freestyle
defaults: global
properties:
- authorization:
anonymous:
- job-discover
- vishal.bhoj@linaro.org:
+ everyone-flat:
- job-build
- job-read
- job-extended-read
- job-configure
- job-cancel
- linaro-landing-team-qualcomm-personnel:
- - job-read
- - job-extended-read
- build-discarder:
- days-to-keep: 30
- num-to-keep: 200
+ days-to-keep: 5
+ num-to-keep: 10
disabled: false
- node: triggers
- display-name: 'CI job configs deployment for Qualcomm LT Private Jobs'
- triggers:
- - gerrit:
- server-name: 'dev-private-review.linaro.org'
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'landing-teams/working/qualcomm/ci/job/configs'
- branches:
- - branch-pattern: 'master'
+ node: master
+ display-name: 'Systems Diagnostics - Controller'
+
wrappers:
- timestamps
- credentials-binding:
@@ -51,24 +39,21 @@
variable: LAVA_TOKEN
- credentials-binding:
- text:
- credential-id: LT_QCOM_KEY
- variable: LT_QCOM_KEY
+ credential-id: DEV_PRIVATE_KEY
+ variable: DEV_PRIVATE_KEY
- credentials-binding:
- text:
credential-id: AUTH_TOKEN
variable: AUTH_TOKEN
- ssh-agent-credentials:
users:
- - 'LT_QUALCOMM_PRIVATE_KEY_SSH'
+ - '768c1ba1-6052-4b97-a531-7e4fabda6979'
builders:
- shell: |
#!/bin/bash -e
- echo "#${BUILD_NUMBER}-${GERRIT_PATCHSET_REVISION:0:8}" > ${WORKSPACE}/version.txt
- - build-name-setter:
- name: 'version.txt'
- file: true
- - shell:
- !include-raw: trigger-private-ci-job-configs/poll-jobs.sh
+ curl -o ./diag.sh https://people.linaro.org/~kelley.spoon/diag.sh
+ /bin/bash ./diag.sh
+ rm -f ./diag.sh
publishers:
- email:
- recipients: 'nicolas.dechesne@linaro.org luis.machado@linaro.org'
+ recipients: 'kelley.spoon@linaro.org'
diff --git a/systems-diagnostics-linarocp.yaml b/systems-diagnostics-linarocp.yaml
new file mode 100644
index 0000000000..491812a777
--- /dev/null
+++ b/systems-diagnostics-linarocp.yaml
@@ -0,0 +1,49 @@
+- job:
+ name: systems-diagnostics-linarocp
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-discover
+ everyone-flat:
+ - job-build
+ - job-read
+ - job-extended-read
+ - job-workspace
+ - build-discarder:
+ days-to-keep: 5
+ num-to-keep: 10
+ disabled: false
+ node: docker-focal-amd64
+ display-name: 'Systems Diagnostics - linaro-cp'
+
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 500
+ # needed to publish to snapshots
+ - credentials-binding:
+ - text:
+ credential-id: snapshots-api-key
+ variable: PUBLISH_KEY
+
+ builders:
+ - shell: |
+
+ NOW=$(date +%Y-%m-%d)
+ mkdir -p ./systems-test/$NOW
+ echo "hello" > systems-test/$NOW/hello.txt
+
+ # Publish
+ test -d ${HOME}/bin || mkdir ${HOME}/bin
+ wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
+ # --server defaults to https://snapshots.linaro.org
+ # Should pull in credential from $PUBLISH_KEY set in bindings above
+ time python3 ${HOME}/bin/linaro-cp.py \
+ --api_version 3 \
+ systems-test/$NOW test/$NOW
+
+ publishers:
+ - email:
+ recipients: 'kelley.spoon@linaro.org'
diff --git a/tcwg-abe-extended.yaml b/tcwg-abe-extended.yaml
index 4f6a306849..2b7f313a45 100644
--- a/tcwg-abe-extended.yaml
+++ b/tcwg-abe-extended.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -28,7 +28,7 @@
description: 'Distro image to use'
- string:
name: test_list
- default: 'canadian_cross_build_gcc5 cross_linux_build_check_gcc4_9 cross_linux_build_check_gcc6 cross_bare_build_check_gcc6 cross_qemu_build_check_gcc6 native_build_check_gcc6 abe-testsuite abe-tests-arm-linux-gnueabihf abe-tests-arm-none-eabi abe-tests-aarch64-linux-gnu abe-tests-aarch64_be-elf abe-tests-checkout'
+ default: 'cross_linux_build_check_gcc cross_bare_build_check_gcc cross_qemu_build_check_gcc native_build_check_gcc abe-testsuite abe-tests-arm-linux-gnueabihf abe-tests-arm-none-eabi abe-tests-aarch64-linux-gnu abe-tests-aarch64_be-elf abe-tests-checkout'
description: 'List of tests to perform'
- bool:
name: dryrun
diff --git a/tcwg-abe-extended/builders.sh b/tcwg-abe-extended/builders.sh
index 5fc4a6928f..50091c014a 100755
--- a/tcwg-abe-extended/builders.sh
+++ b/tcwg-abe-extended/builders.sh
@@ -17,6 +17,14 @@ gccnum=$(echo ${testname} | sed 's/.*_gcc//') # eg 6
gccversionname=gcc${gccnum}ver # eg gccversionname=gcc6ver
gccversion=$(eval echo \$$gccversionname) # eg gccversion=gcc=gcc.git~linaro-6.1-2016.08
+# IF we provide no version number shortcut, use latest-rel
+if [ "$gccnum" = "" ]; then
+ gccconfig=""
+ gccversion=""
+else
+ gccconfig="--extraconfigdir ../config/gcc${gccnum}"
+fi
+
ret=0
case "$testname" in
@@ -34,12 +42,12 @@ case "$testname" in
echo "Configure error: ${ret}"
exit $ret
fi
- ${BUILD_SHELL} ${WORKSPACE}/abe.sh --target ${target} --extraconfigdir ../config/gcc${gccnum} --build all $gccversion || ret=$?
+ ${BUILD_SHELL} ${WORKSPACE}/abe.sh --target ${target} $gccconfig --build all $gccversion || ret=$?
if test ${ret} -ne 0; then
echo "First build error: ${ret}"
exit $ret
fi
- ${BUILD_SHELL} ${WORKSPACE}/abe.sh --target ${target} --extraconfigdir ../config/gcc${gccnum} --build all $gccversion --host i686-w64-mingw32 || ret=$?
+ ${BUILD_SHELL} ${WORKSPACE}/abe.sh --target ${target} $gccconfig --build all $gccversion --host i686-w64-mingw32 || ret=$?
if test ${ret} -ne 0; then
echo "Second build error: ${ret}"
exit $ret
@@ -72,7 +80,7 @@ case "$testname" in
esac
# Build and check a linux target
- ${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir `pwd` --target ${target} ${bootstrap} ${testcontainer_opt} --runtests --excludecheck gdb --override "--extraconfigdir ../config/gcc${gccnum} $gccversion" || ret=$?
+ ${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir `pwd` --target ${target} ${bootstrap} ${testcontainer_opt} --runtests --excludecheck gdb --override "$gccconfig $gccversion" || ret=$?
#FIXME: check validation results (against a known baseline)
#FIXME: validate the manifest
;;
diff --git a/tcwg-abe-test.yaml b/tcwg-abe-test.yaml
index b2d56f40aa..099fff8848 100644
--- a/tcwg-abe-test.yaml
+++ b/tcwg-abe-test.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -129,11 +129,11 @@
. ./test-container.sh
trap "build_container_cleanup; test_container_cleanup" EXIT HUP INT QUIT TRAP KILL PIPE TERM
- ${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir ${WORKSPACE} --target arm-linux-gnueabihf --testcontainer ${test_container_host}:${test_container_port} --runtests --excludecheck gdb --override '--extraconfigdir ../config/gcc7'
+ ${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir ${WORKSPACE} --target arm-linux-gnueabihf --testcontainer ${test_container_host}:${test_container_port} --runtests --excludecheck gdb
status=$?
;;
native_build)
- ${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir ${WORKSPACE} --target native --runtests --bootstrap --excludecheck gdb --override '--extraconfigdir ../config/gcc6'
+ ${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir ${WORKSPACE} --target native --runtests --bootstrap --excludecheck gdb
status=$?
;;
testsuite)
diff --git a/tcwg-abe-tested.yaml b/tcwg-abe-tested.yaml
index 66949980d3..11526d09a7 100644
--- a/tcwg-abe-tested.yaml
+++ b/tcwg-abe-tested.yaml
@@ -2,48 +2,45 @@
name: abe
scm:
- git:
- url: ssh://tcwg-buildslave@review.linaro.org:29418/toolchain/abe.git
- # tcwg-buildslave user id
- credentials-id: 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- name: gerrit
+ url: https://git.linaro.org/toolchain/abe.git
+ refspec: +refs/heads/master:refs/remotes/origin/master
branches:
- - refs/heads/master
+ - master
basedir: abe
skip-tag: true
- shallow-clone: false
wipe-workspace: false
clean:
before: true
+ prune: true
- scm:
name: jenkins-scripts
scm:
- git:
- url: ssh://tcwg-buildslave@review.linaro.org:29418/toolchain/jenkins-scripts.git
- # tcwg-buildslave user id
- credentials-id: 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- name: gerrit
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ refspec: +refs/heads/master:refs/remotes/origin/master
branches:
- - refs/heads/master
+ - master
basedir: jenkins-scripts
skip-tag: true
- shallow-clone: false
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
wipe-workspace: false
clean:
before: true
+ prune: true
- scm:
name: dockerfiles
scm:
- git:
url: https://git.linaro.org/ci/dockerfiles.git
- name: origin
+ refspec: +refs/heads/master:refs/remotes/origin/master
branches:
- - refs/heads/master
+ - master
basedir: dockerfiles
skip-tag: true
- shallow-clone: false
wipe-workspace: false
clean:
before: true
+ prune: true
- job:
name: tcwg-abe-tested
project-type: multijob
@@ -53,7 +50,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-backport.yaml b/tcwg-backport.yaml
index 3700d6791a..467b26dd52 100644
--- a/tcwg-backport.yaml
+++ b/tcwg-backport.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-benchmark-compare.yaml b/tcwg-benchmark-compare.yaml
deleted file mode 100644
index ca300cea78..0000000000
--- a/tcwg-benchmark-compare.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-- job:
- name: tcwg-benchmark-compare
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 100
- parameters:
- - string:
- name: resultsref
- default: <hw_type>/tcwg-benchmark-<build_num>
- description: 'Rsync-friendly for reference results. Use the results_id value of the reference build.'
- - string:
- name: resultseval
- default: <hw_type>/tcwg-benchmark-<build_num>
- description: 'Rsync-friendly for results to compare to reference. Use the results_id value of the build.'
- - bool:
- name: peak
- default: false
- description: 'Use peak performance instead of median'
- - 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-bkp-01
- concurrent: true
- display-name: 'TCWG BBB Benchmark Compare'
- 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: false
- clean:
- before: true
- - 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
- shallow-clone: true
- wipe-workspace: false
- clean:
- before: true
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'tcwg-benchmark'
- builders:
- - shell: |
- #!/bin/bash
- set -e -u -o pipefail
- refboard=$(dirname ${resultsref})
- evalboard=$(dirname ${resultseval})
- refnumber=$(basename ${resultsref} | sed 's/tcwg-benchmark-//')
- evalnumber=$(basename ${resultseval} | sed 's/tcwg-benchmark-//')
- peakstr=""
- $peak && peakstr=-peak
- echo "#${BUILD_NUMBER}-${refboard}-${refnumber}-${evalboard}-${evalnumber}${peakstr}" > ${WORKSPACE}/version.txt
- - build-name-setter:
- name: 'version.txt'
- file: true
- - shell: |
- #!/bin/bash
-
- set -ex
- exec ./tcwg-benchmark-results-compare.sh
- publishers:
- - archive:
- artifacts: 'artifacts/*'
- latest-only: false
diff --git a/tcwg-benchmark-sq.yaml b/tcwg-benchmark-sq.yaml
deleted file mode 100644
index e4416d1462..0000000000
--- a/tcwg-benchmark-sq.yaml
+++ /dev/null
@@ -1,249 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-benchmark.yaml.in and tcwg-benchmark/tcwg-benchmark-sq.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-sq
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - choice:
- name: bmk_hw
- choices:
- - sq
- 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'
- - 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: 'Run benchmarks in parallel or serially.'
- - choice:
- name: image_arch
- choices:
- - arm64
- - 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
- concurrent: true
- display-name: 'TCWG Benchmark sq'
- 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:
- - conditional-step:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
- count=1
- while read -a bmks; do
- echo "bench_list=${bmks[@]}" > artifacts/bmk-$count-parameters
- echo "displaytag=#$BUILD_NUMBER+$count-$displaytag" >> artifacts/bmk-$count-parameters
- echo "bmk_node=tcwg-bmk-$bmk_hw" >> artifacts/bmk-$count-parameters
- 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")
- - trigger-builds:
- - project: tcwg-benchmark-sq
- block: true
- current-parameters: true
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/bmk-*-parameters
- - conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- while true; do
- for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
- (
- flock -en -E 123 9
- touch $lock
- NODE_NAME=$(cat <&9)
- export NODE_NAME
- exec ./jenkins-scripts/tcwg-benchmark.sh
- ) 9<$lock &
- res=0 && wait $! || res=$?
- if [ $res != 123 ]; then
- exit $res
- fi
- done
- sleep 30
- done
- unstable-return: 125
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
- allow-empty: true
-# checksum: 22026198269468221ae4e82fbdb0e8e7
diff --git a/tcwg-benchmark-stm32.yaml b/tcwg-benchmark-stm32.yaml
deleted file mode 100644
index cad950cc1b..0000000000
--- a/tcwg-benchmark-stm32.yaml
+++ /dev/null
@@ -1,248 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-benchmark.yaml.in and tcwg-benchmark/tcwg-benchmark-stm32.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-stm32
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - choice:
- name: bmk_hw
- choices:
- - stm32
- 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'
- - 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: 'coremark'
- 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: 'stm32_STM32L476RGTx/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: 'true'
- description: 'Force clean re-install of benchmark sources'
- - choice:
- name: run_profile
- choices:
- - parallel
- - serial
- description: 'Run benchmarks in parallel or serially.'
- - choice:
- name: image_arch
- choices:
- - 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
- concurrent: true
- display-name: 'TCWG Benchmark stm32'
- 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:
- - conditional-step:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
- count=1
- while read -a bmks; do
- echo "bench_list=${bmks[@]}" > artifacts/bmk-$count-parameters
- echo "displaytag=#$BUILD_NUMBER+$count-$displaytag" >> artifacts/bmk-$count-parameters
- echo "bmk_node=tcwg-bmk-$bmk_hw" >> artifacts/bmk-$count-parameters
- 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")
- - trigger-builds:
- - project: tcwg-benchmark-stm32
- block: true
- current-parameters: true
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/bmk-*-parameters
- - conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- while true; do
- for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
- (
- flock -en -E 123 9
- touch $lock
- NODE_NAME=$(cat <&9)
- export NODE_NAME
- exec ./jenkins-scripts/tcwg-benchmark-bare.sh
- ) 9<$lock &
- res=0 && wait $! || res=$?
- if [ $res != 123 ]; then
- exit $res
- fi
- done
- sleep 30
- done
- unstable-return: 125
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
- allow-empty: true
-# checksum: 2ebe447e3b4934efe22bc836ba9ab427
diff --git a/tcwg-benchmark-tk1.yaml b/tcwg-benchmark-tk1.yaml
deleted file mode 100644
index f7ad050d5f..0000000000
--- a/tcwg-benchmark-tk1.yaml
+++ /dev/null
@@ -1,248 +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: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - choice:
- name: bmk_hw
- choices:
- - tk1
- 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'
- - 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: 'Run benchmarks in parallel or serially.'
- - choice:
- name: image_arch
- choices:
- - 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
- concurrent: true
- display-name: 'TCWG Benchmark tk1'
- 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:
- - conditional-step:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
- count=1
- while read -a bmks; do
- echo "bench_list=${bmks[@]}" > artifacts/bmk-$count-parameters
- echo "displaytag=#$BUILD_NUMBER+$count-$displaytag" >> artifacts/bmk-$count-parameters
- echo "bmk_node=tcwg-bmk-$bmk_hw" >> artifacts/bmk-$count-parameters
- 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")
- - trigger-builds:
- - project: tcwg-benchmark-tk1
- block: true
- current-parameters: true
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/bmk-*-parameters
- - conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- while true; do
- for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
- (
- flock -en -E 123 9
- touch $lock
- NODE_NAME=$(cat <&9)
- export NODE_NAME
- exec ./jenkins-scripts/tcwg-benchmark.sh
- ) 9<$lock &
- res=0 && wait $! || res=$?
- if [ $res != 123 ]; then
- exit $res
- fi
- done
- sleep 30
- done
- unstable-return: 125
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
- allow-empty: true
-# checksum: d49387bd75d04ebc976d00c92fd02cb5
diff --git a/tcwg-benchmark-tx1.yaml b/tcwg-benchmark-tx1.yaml
deleted file mode 100644
index 28c12d3899..0000000000
--- a/tcwg-benchmark-tx1.yaml
+++ /dev/null
@@ -1,249 +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: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - choice:
- name: bmk_hw
- choices:
- - 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'
- - 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: 'Run benchmarks in parallel or serially.'
- - choice:
- name: image_arch
- choices:
- - arm64
- - 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
- concurrent: true
- display-name: 'TCWG Benchmark tx1'
- 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:
- - conditional-step:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
- count=1
- while read -a bmks; do
- echo "bench_list=${bmks[@]}" > artifacts/bmk-$count-parameters
- echo "displaytag=#$BUILD_NUMBER+$count-$displaytag" >> artifacts/bmk-$count-parameters
- echo "bmk_node=tcwg-bmk-$bmk_hw" >> artifacts/bmk-$count-parameters
- 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")
- - trigger-builds:
- - project: tcwg-benchmark-tx1
- block: true
- current-parameters: true
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/bmk-*-parameters
- - conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- while true; do
- for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
- (
- flock -en -E 123 9
- touch $lock
- NODE_NAME=$(cat <&9)
- export NODE_NAME
- exec ./jenkins-scripts/tcwg-benchmark.sh
- ) 9<$lock &
- res=0 && wait $! || res=$?
- if [ $res != 123 ]; then
- exit $res
- fi
- done
- sleep 30
- done
- unstable-return: 125
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
- allow-empty: true
-# checksum: 766ce7e71287357ce92b60412e5f3c63
diff --git a/tcwg-benchmark.yaml b/tcwg-benchmark.yaml
index ba9f5a6ea2..24deb8edb7 100644
--- a/tcwg-benchmark.yaml
+++ b/tcwg-benchmark.yaml
@@ -6,14 +6,19 @@
name: default-properties
properties:
- authorization:
- tcwg-benchmark:
+ anonymous:
- job-read
- job-extended-read
+ everyone-flat:
+ - 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
@@ -58,14 +63,22 @@
- choice:
name: bmk_hw
choices:
+ - apm
- sq
+ - stm32
- tk1
- tx1
+ - fx
+ - qc
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:
@@ -79,7 +92,7 @@
- string:
name: bench_list
default: 'all'
- description: 'List of benchmarks to run (from spec2k6). Use "all" to run all of them.'
+ description: 'List of benchmarks to run. Can be for ex : all (i.e. spec2006), spec2017_speed, or coremark'
- string:
name: cflags
default: ''
@@ -111,9 +124,9 @@
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/'
+ name: results_dest
+ default: 'bkp-01.tcwglab:/home/tcwg-benchmark/results-@hw_tag@/tcwg-benchmark/@build_num@'
+ description: 'Destination where to push results..'
- bool:
name: forceinstall
default: 'false'
@@ -121,14 +134,30 @@
- choice:
name: run_profile
choices:
+ - parallel_0x4
- parallel
- serial
- description: 'Run benchmarks in parallel or serially.'
+ description: |
+ parallel_0x4 - Build benchmark in parallel (all CPU cores), Run benchmark in parallel (max 4)
+ 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
- description: 'Docker image architecture -- arm64 or armhf'
+ - amd64
+ description: 'Docker image architecture'
- bool:
name: reboot
default: 'false'
@@ -147,8 +176,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
@@ -163,10 +196,13 @@
- 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
+ - tcwg-bmk-fx
+ - tcwg-bmk-qc
description: 'Bmk node; used internally, do not touch'
disabled: false
concurrent: true
@@ -177,85 +213,109 @@
- bmk-scripts
wrappers:
- timeout:
- timeout: 900
+ timeout: 1200
- timestamps
- ssh-agent-credentials:
users:
- 'tcwg-benchmark'
- build-name:
- name: '#$BUILD_NUMBER-$displaytag'
+ name: '#$BUILD_NUMBER-$displaytag ($bmk_hw:$image_arch)'
builders:
- - conditional-step:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
+ - shell:
+ command: |
+ #!/bin/bash
- set -euf -o pipefail
- set -x
+ set -euf -o pipefail
+ set -x
- rm -rf artifacts
- mkdir artifacts
+ rm -rf artifacts
+ mkdir -p artifacts/jenkins
- n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
- count=1
- while read -a bmks; do
- echo "bench_list=${bmks[@]}" > artifacts/bmk-$count-parameters
- echo "displaytag=#$BUILD_NUMBER+$count-$displaytag" >> artifacts/bmk-$count-parameters
- echo "bmk_node=tcwg-bmk-$bmk_hw" >> artifacts/bmk-$count-parameters
- 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")
- - trigger-builds:
- - project: tcwg-benchmark
- block: true
- current-parameters: true
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/bmk-*-parameters
- - conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
+ has_perf_logs=yes
+ 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; has_perf_logs=no ;;
+ tk1:armhf) hw_tag=tk1_32 ;;
+ tx1:arm64) hw_tag=tx1_64 ;;
+ tx1:armhf) hw_tag=tx1_32 ;;
+ fx:arm64) hw_tag=fx_64 ;;
+ fx:armhf) hw_tag=fx_32 ;;
+ qc:arm64) hw_tag=qc_64 ;;
+ qc:armhf) hw_tag=qc_32 ;;
+ *)
+ echo "ERROR: Unsupported bmk_hw:image_arch: $bmk_hw:$image_arch"
+ exit 1
+ ;;
+ esac
+
+ results_dest=$(echo "$results_dest" | sed \
+ -e "s/@build_num@/$BUILD_NUMBER/g" \
+ -e "s/@hw_tag@/$hw_tag/g")
- set -euf -o pipefail
- set -x
+ idle_boards="0"
+ total_boards="0"
+ for lock in $(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock); do
+ (
+ flock -en -E 124 9
+ ) 9<$lock &
+ res=0 && wait $! || res=$?
+ total_boards=$(($total_boards + 1))
+ if [ $res = 124 ]; then
+ continue
+ fi
+ idle_boards=$(($idle_boards + 1))
+ done
- rm -rf artifacts
- mkdir artifacts
+ n_boards=$((($idle_boards + $total_boards) / 2))
+ # Distribute benchmarks among idle boards.
+ if [ $n_boards -lt 1 ]; then
+ n_boards="1"
+ fi
- while true; do
- for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
- (
- flock -en -E 123 9
- touch $lock
- NODE_NAME=$(cat <&9)
- export NODE_NAME
- exec ./jenkins-scripts/tcwg-benchmark.sh
- ) 9<$lock &
- res=0 && wait $! || res=$?
- if [ $res != 123 ]; then
- exit $res
- fi
- done
- sleep 30
- done
- unstable-return: 125
+ 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_dest=$results_dest
+ 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")
+ cat > artifacts/bmk-info <<EOF
+ results_dest=$results_dest
+ hw_tag=$hw_tag
+ has_perf_logs=$has_perf_logs
+ EOF
+ - 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
-# checksum: 4d8fd6d1ab047b085a3927fecca5c3e7
+ - 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: be30f23cd79ae8719751bd1bb3565b7a
diff --git a/tcwg-benchmark.yaml.in b/tcwg-benchmark.yaml.in
index 4b605d2438..deddf78fd0 100644
--- a/tcwg-benchmark.yaml.in
+++ b/tcwg-benchmark.yaml.in
@@ -1,11 +1,7 @@
#include tcwg/default.yaml.inc
- job:
-#if HW_any
- name: tcwg-benchmark
-#else
- name: tcwg-benchmark-#{HW}
-#endif
+ name: tcwg-benchmark#{BACKEND}
project-type: freestyle
defaults: global
properties:
@@ -14,18 +10,22 @@
- choice:
name: bmk_hw
choices:
-#if HW_any
+ - apm
- sq
+ - stm32
- tk1
- tx1
-#else
- - #{HW}
-#endif
+ - fx
+ - qc
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:
@@ -38,12 +38,8 @@
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: 'all'
-#endif
- description: 'List of benchmarks to run (from spec2k6). Use "all" to run all of them.'
+ description: 'List of benchmarks to run. Can be for ex : all (i.e. spec2006), spec2017_speed, or coremark'
- string:
name: cflags
default: ''
@@ -75,46 +71,47 @@
default: '1'
description: 'Number of benchmark iterations'
- string:
- name: results_id
-#if HW_stm32
- default: 'stm32_STM32L476RGTx/tcwg-benchmark/@build_num@'
-#else
- 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/'
+ name: results_dest
+ default: 'bkp-01.tcwglab:/home/tcwg-benchmark/results-@hw_tag@/tcwg-benchmark/@build_num@'
+ description: 'Destination where to push results..'
- 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:
+ - parallel_0x4
- parallel
- serial
- description: 'Run benchmarks in parallel or serially.'
+ description: |
+ parallel_0x4 - Build benchmark in parallel (all CPU cores), Run benchmark in parallel (max 4)
+ 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:
-#if HW_tx1 || HW_sq
- arm64
-#endif
- armhf
- description: 'Docker image architecture -- arm64 or armhf'
+ - amd64
+ description: 'Docker image architecture'
- bool:
name: reboot
default: 'false'
description: 'Reboot the board before building and running the benchmarks.'
- string:
name: displaytag
-#if HW_any
default: '$bmk_hw'
-#else
- default: ''
-#endif
description: 'Tag to display in the Jenkins console, so that the build name is more meaningful'
- bool:
name: ignore_errors
@@ -126,8 +123,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
@@ -136,118 +137,245 @@
name: bmk_branch
default: master
description: 'Bmk-scripts branch to use'
-#if HW_any
- 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
+ - tcwg-bmk-fx
+ - tcwg-bmk-qc
description: 'Bmk node; used internally, do not touch'
-#endif
disabled: false
concurrent: true
-#if !HW_any
- display-name: 'TCWG Benchmark #{HW}'
-#else
- display-name: 'TCWG Benchmark'
-#endif
+ display-name: 'TCWG Benchmark#{BACKEND}'
workspace: workspace/tcwg-benchmark-${NODE_NAME}_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
- bmk-scripts
wrappers:
- timeout:
- timeout: 900
+ timeout: 1200
- timestamps
- ssh-agent-credentials:
users:
- 'tcwg-benchmark'
- build-name:
- name: '#$BUILD_NUMBER-$displaytag'
+ name: '#$BUILD_NUMBER-$displaytag ($bmk_hw:$image_arch)'
builders:
- - conditional-step:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- n_boards=$(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock | wc -l)
- count=1
- while read -a bmks; do
- echo "bench_list=${bmks[@]}" > artifacts/bmk-$count-parameters
- echo "displaytag=#$BUILD_NUMBER+$count-$displaytag" >> artifacts/bmk-$count-parameters
- echo "bmk_node=tcwg-bmk-$bmk_hw" >> artifacts/bmk-$count-parameters
- 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")
- - trigger-builds:
-#if HW_any
- - project: tcwg-benchmark
-#else
- - project: tcwg-benchmark-#{HW}
-#endif
- block: true
- current-parameters: true
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/bmk-*-parameters
- - conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: execution-node
- nodes:
- - tcwg-bmk-bkp-01
- steps:
- - shell:
- command: |
- #!/bin/bash
-
- set -euf -o pipefail
- set -x
-
- rm -rf artifacts
- mkdir artifacts
-
- while true; do
- for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
- (
- flock -en -E 123 9
- touch $lock
- NODE_NAME=$(cat <&9)
- export NODE_NAME
-#if HW_stm32
- exec ./jenkins-scripts/tcwg-benchmark-bare.sh
+#if !BACKEND__backend
+ - shell:
+ command: |
+ #!/bin/bash
+
+ set -euf -o pipefail
+ set -x
+
+ rm -rf artifacts
+ mkdir -p artifacts/jenkins
+
+ has_perf_logs=yes
+ 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; has_perf_logs=no ;;
+ tk1:armhf) hw_tag=tk1_32 ;;
+ tx1:arm64) hw_tag=tx1_64 ;;
+ tx1:armhf) hw_tag=tx1_32 ;;
+ fx:arm64) hw_tag=fx_64 ;;
+ fx:armhf) hw_tag=fx_32 ;;
+ qc:arm64) hw_tag=qc_64 ;;
+ qc:armhf) hw_tag=qc_32 ;;
+ *)
+ echo "ERROR: Unsupported bmk_hw:image_arch: $bmk_hw:$image_arch"
+ exit 1
+ ;;
+ esac
+
+ results_dest=$(echo "$results_dest" | sed \
+ -e "s/@build_num@/$BUILD_NUMBER/g" \
+ -e "s/@hw_tag@/$hw_tag/g")
+
+ idle_boards="0"
+ total_boards="0"
+ for lock in $(set +f; ls -tr $HOME/boards/tcwg-bmk-$bmk_hw-*.lock); do
+ (
+ flock -en -E 124 9
+ ) 9<$lock &
+ res=0 && wait $! || res=$?
+ total_boards=$(($total_boards + 1))
+ if [ $res = 124 ]; then
+ continue
+ fi
+ idle_boards=$(($idle_boards + 1))
+ done
+
+ n_boards=$((($idle_boards + $total_boards) / 2))
+ # Distribute benchmarks among idle boards.
+ if [ $n_boards -lt 1 ]; then
+ n_boards="1"
+ fi
+
+ 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_dest=$results_dest
+ 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")
+ cat > artifacts/bmk-info <<EOF
+ results_dest=$results_dest
+ hw_tag=$hw_tag
+ has_perf_logs=$has_perf_logs
+ EOF
+ - trigger-builds:
+ - project: tcwg-benchmark_backend
+ block: true
+ current-parameters: true
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/bmk-*-parameters
#else
- exec ./jenkins-scripts/tcwg-benchmark.sh
+ - shell:
+ command: |
+ #!/bin/bash
+
+ set -ef -o pipefail
+ set -x
+
+ rm -rf artifacts
+ mkdir -p artifacts/jenkins
+
+ 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 ;;
+ fx:arm64) hw_tag=fx_64 ;;
+ fx:armhf) hw_tag=fx_32 ;;
+ qc:arm64) hw_tag=qc_64 ;;
+ qc:armhf) hw_tag=qc_32 ;;
+ *)
+ echo "ERROR: Unsupported bmk_hw:image_arch: $bmk_hw:$image_arch"
+ exit 1
+ ;;
+ esac
+
+ # Retry benchmarking once, just in case we selected a board that
+ # recently went offline.
+ bmk_retry=true
+
+ declare -gA bad_boards
+
+ while true; do
+ good_boards=()
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
+ if [ x"${bad_boards[$lock]-unset}" = x"unset" ]; then
+ good_boards+=("$lock")
+ fi
+ done
+
+ if [ ${#good_boards[@]} = 0 ]; then
+ echo "Ran out of boards to try -- giving up." >> artifacts/jenkins/mail-body.txt
+ exit 125
+ fi
+
+ for lock in "${good_boards[@]}"; 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_dest "$results_dest" \
+ --forceinstall "$forceinstall" \
+ --run_profile "$run_profile" \
+ --image_arch "$image_arch" \
+ --hw_tag "$hw_tag" \
+ --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
+ bad_boards[$lock]="1"
+ 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, laurent.alfonsi@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
- ) 9<$lock &
- res=0 && wait $! || res=$?
- if [ $res != 123 ]; then
- exit $res
- fi
- done
- sleep 30
- done
- 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-sq.def b/tcwg-benchmark/tcwg-benchmark-sq.def
deleted file mode 100644
index 3000ec0e3e..0000000000
--- a/tcwg-benchmark/tcwg-benchmark-sq.def
+++ /dev/null
@@ -1,2 +0,0 @@
--v HW=sq
--v TCWG=benchmark
diff --git a/tcwg-benchmark/tcwg-benchmark-stm32.def b/tcwg-benchmark/tcwg-benchmark-stm32.def
deleted file mode 100644
index 92c08cc496..0000000000
--- a/tcwg-benchmark/tcwg-benchmark-stm32.def
+++ /dev/null
@@ -1,2 +0,0 @@
--v HW=stm32
--v TCWG=benchmark
diff --git a/tcwg-benchmark/tcwg-benchmark-tk1.def b/tcwg-benchmark/tcwg-benchmark-tk1.def
deleted file mode 100644
index 07fbde1582..0000000000
--- 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 0fd72f780b..0000000000
--- 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.def b/tcwg-benchmark/tcwg-benchmark.def
index 209047da3d..5121088906 100644
--- a/tcwg-benchmark/tcwg-benchmark.def
+++ b/tcwg-benchmark/tcwg-benchmark.def
@@ -1,2 +1,3 @@
--v HW=any
+-v BACKEND=
-v TCWG=benchmark
+-v SCM=bmk_scripts
diff --git a/tcwg-benchmark/tcwg-benchmark_backend.def b/tcwg-benchmark/tcwg-benchmark_backend.def
new file mode 100644
index 0000000000..aed3543578
--- /dev/null
+++ b/tcwg-benchmark/tcwg-benchmark_backend.def
@@ -0,0 +1,3 @@
+-v BACKEND=_backend
+-v TCWG=benchmark
+-v SCM=bmk_scripts
diff --git a/tcwg-benchmark_backend.yaml b/tcwg-benchmark_backend.yaml
new file mode 100644
index 0000000000..884b79eb34
--- /dev/null
+++ b/tcwg-benchmark_backend.yaml
@@ -0,0 +1,351 @@
+# 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
+ everyone-flat:
+ - 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
+
+- 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
+ - fx
+ - qc
+ 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. Can be for ex : all (i.e. spec2006), spec2017_speed, or coremark'
+ - 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_dest
+ default: 'bkp-01.tcwglab:/home/tcwg-benchmark/results-@hw_tag@/tcwg-benchmark/@build_num@'
+ description: 'Destination where to push results..'
+ - bool:
+ name: forceinstall
+ default: 'false'
+ description: 'Force clean re-install of benchmark sources'
+ - choice:
+ name: run_profile
+ choices:
+ - parallel_0x4
+ - parallel
+ - serial
+ description: |
+ parallel_0x4 - Build benchmark in parallel (all CPU cores), Run benchmark in parallel (max 4)
+ 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
+ - tcwg-bmk-fx
+ - tcwg-bmk-qc
+ 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: 1200
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - 'tcwg-benchmark'
+ - build-name:
+ name: '#$BUILD_NUMBER-$displaytag ($bmk_hw:$image_arch)'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+
+ set -ef -o pipefail
+ set -x
+
+ rm -rf artifacts
+ mkdir -p artifacts/jenkins
+
+ 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 ;;
+ fx:arm64) hw_tag=fx_64 ;;
+ fx:armhf) hw_tag=fx_32 ;;
+ qc:arm64) hw_tag=qc_64 ;;
+ qc:armhf) hw_tag=qc_32 ;;
+ *)
+ echo "ERROR: Unsupported bmk_hw:image_arch: $bmk_hw:$image_arch"
+ exit 1
+ ;;
+ esac
+
+ # Retry benchmarking once, just in case we selected a board that
+ # recently went offline.
+ bmk_retry=true
+
+ declare -gA bad_boards
+
+ while true; do
+ good_boards=()
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock); do
+ if [ x"${bad_boards[$lock]-unset}" = x"unset" ]; then
+ good_boards+=("$lock")
+ fi
+ done
+
+ if [ ${#good_boards[@]} = 0 ]; then
+ echo "Ran out of boards to try -- giving up." >> artifacts/jenkins/mail-body.txt
+ exit 125
+ fi
+
+ for lock in "${good_boards[@]}"; 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_dest "$results_dest" \
+ --forceinstall "$forceinstall" \
+ --run_profile "$run_profile" \
+ --image_arch "$image_arch" \
+ --hw_tag "$hw_tag" \
+ --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
+ bad_boards[$lock]="1"
+ 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, laurent.alfonsi@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: 75ab6b1ceb50b4dff1b334729f05f47e
diff --git a/tcwg-binutils.yaml b/tcwg-binutils.yaml
deleted file mode 100644
index 6f46fe8d25..0000000000
--- a/tcwg-binutils.yaml
+++ /dev/null
@@ -1,204 +0,0 @@
-- job:
- name: tcwg-binutils
- project-type: matrix
- 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
- parameters:
- - string:
- name: binutils_rev
- default: 'refs/remotes/origin/master'
- description: 'binutils revision to build'
- - string:
- name: target_list
- default: 'aarch64-linux-gnu aarch64_be-linux-gnu aarch64-none-elf aarch64_be-none-elf arm-linux-gnueabi arm-linux-gnueabihf armv8l-linux-gnueabihf arm-netbsdelf arm-none-eabi arm-pe arm-vxworks arm-wince-pe armeb-linux-gnueabihf arm-uclinuxfdpiceabi tcwg-x86_64-cam tcwg-apm_64-build tcwg-tk1_32-build'
- description: 'List of targets to test'
- - string:
- name: bfd_list
- default: '--enable-64-bit-bfd=no --enable-64-bit-bfd=yes'
- description: 'Type of BFD to enable: --enable-64-bit-bfd=yes --enable-64-bit-bfd=no'
- - string:
- name: scripts_branch
- default: master
- description: 'Jenkins-scripts branch to use'
- - bool:
- name: dont_fail
- default: false
- description: 'Do not fail the build'
- - string:
- name: log_name
- default: '${JOB_NAME}-${BUILD_NUMBER}/${builder_type}.$target.$bfd'
- description: 'Logname directory on logserver'
- - string:
- name: log_server
- default: dev-01.tcwglab:/home/tcwg-buildslave/logs
- description: 'Log_Server'
- - string:
- name: build_container_distro
- default: 'lts_1'
- description: 'Distro to use on the builder with non-default container type: bionic, focal ...'
- disabled: false
- node: tcwg-x86_64-dev-02
- retry-count: 3
- concurrent: true
- display-name: 'TCWG BBB Binutils'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/binutils-gdb.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- branches:
- - ${binutils_rev}
- skip-tag: true
- shallow-clone: false
- reference-repo: /home/tcwg-buildslave/snapshots-ref/binutils-gdb.git
- wipe-workspace: false
- clean:
- before: true
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-x86_64-cam
- - tcwg-apm_64-build
- - tcwg-tk1_32-build
- - axis:
- type: dynamic
- name: bfd
- values:
- - bfd_list
- - axis:
- type: dynamic
- name: target
- values:
- - target_list
- execution-strategy:
- combination-filter: |
- ((label==~/tcwg-x86_.*/) && ! (target==~/tcwg-.*/)) || (target==label)
- sequential: false
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="binutils_rev"}'
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- rm -rf jenkins-scripts
- git clone -b $scripts_branch --depth 1 https://git.linaro.org/toolchain/jenkins-scripts
-
- bash -x ./jenkins-scripts/start-container-docker.sh --label $label --node $NODE_NAME --task build --prefix build_ --distro $build_container_distro > build-container.sh
- . ./build-container.sh
- BUILD_SHELL="build_container_exec bash"
- $BUILD_SHELL -c "echo \"Build session is up; ulimit config:\"; ulimit -a"
-
- builder_type=$(print_type_for_label $label)
-
- # Remove container on exit
- trap "build_container_cleanup" EXIT HUP INT QUIT TRAP KILL PIPE TERM
-
- case $target in
- arm-wince-pe|arm-pe|arm-epoc-pe|arm-aout|arm-coff)
- lto=
- ;;
- *)
- lto=--enable-lto
- ;;
- esac
-
- case $target in
- tcwg-*) target_opt="" ;;
- *) target_opt="--target $target" ;;
- esac
-
- rm -rf build-$target || true
- mkdir -p build-$target
- cd build-$target
- result=0
- jobs=$(nproc --all)
- echo BUILD STARTED $(date)
- echo WORKSPACE: ${WORKSPACE}
-
- # Build our own version of dejagnu, using abe to try to
- # avoid problems with the system's version
- ${BUILD_SHELL} -c "git clone https://git.linaro.org/toolchain/abe.git"
- ${BUILD_SHELL} -c "cd abe && ./configure --with-git-reference-dir=/home/tcwg-buildslave/snapshots-ref"
- ${BUILD_SHELL} -c "cd abe && ./abe.sh --build dejagnu"
- djpath=$(${BUILD_SHELL} -c "ls -d $PWD/abe/./builds/hosttools/*/bin")
- [ -x $djpath/runtest ] || (echo "DejaGnu not built in the expected location: $djpath/runtest" && exit 1)
-
- # If configure or build fails, the execution will stop
- # because of 'set -e'. But for 'make check' we want to
- # execute all the tests, and report if there were some
- # errors.
- ${BUILD_SHELL} -c "../configure $lto --enable-plugins --disable-gprof --disable-gdb --disable-gdbserver --disable-sim --disable-libdecnumber --disable-readline --prefix=`pwd`/install $target_opt ${bfd}"
- ${BUILD_SHELL} -c "make all -j$jobs"
- ${BUILD_SHELL} -c "PATH=$djpath:$PATH make check -j$jobs -k" || result=1
-
- sums=`find . -name "*.sum"`
- set +x
- echo '############################################'
- echo 'See unexpected results below:'
- echo '############################################'
- [ x"$sums" != x ] && egrep '^FAIL:|^XPASS:' $sums || true
- echo '############################################'
- echo 'See ends of sumfiles below:'
- echo '############################################'
- [ x"$sums" != x ] && tail $sums
-
- set -x
- # Split $logserver into "server:path".
- basedir="${log_server#*:}"
- log_server="${log_server%:*}"
- eval dir=${log_name}
- ${BUILD_SHELL} -c "ssh ${log_server} mkdir -p ${basedir}/${dir}"
-
- # gcc-compare-results handles only .xz files, so compress
- # them before upload. Since the file are created inside a
- # container, the uid/gid may differ from the host's and
- # cause permission errors during compression. Copy them,
- # so that xz can operate.
- rm -rf artifacts
- mkdir -p artifacts
- cp ${sums} artifacts/
- for sum in ${sums}
- do
- log=$(echo $sum | sed 's/.sum/.log/')
- cp $log artifacts/
- done
- xz artifacts/*.sum artifacts/*.log
- ${BUILD_SHELL} -c "scp artifacts/*.sum.xz artifacts/*.log.xz ${log_server}:${basedir}/${dir}/"
-
- echo BUILD FINISHED $(date)
-
- # Cleanup to save disk space
- cd ..
- du -sh build-$target
- rm -rf build-$target || true
-
- if $dont_fail; then
- result="0"
- fi
- exit $result
- publishers:
- - email-ext:
- recipients: 'christophe.lyon@linaro.org'
- aborted: true
- matrix-trigger: only-parent
diff --git a/tcwg-buildapp.yaml b/tcwg-buildapp.yaml
deleted file mode 100644
index f0e5757f4d..0000000000
--- a/tcwg-buildapp.yaml
+++ /dev/null
@@ -1,141 +0,0 @@
-- job:
- name: tcwg-buildapp
- project-type: matrix
- 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
- parameters:
- - string:
- name: toolchain_url
- default: ''
- description: 'Toolchain URL'
- - string:
- name: app_list
- default: 'gcc linux linux+all spec2k spec2k6'
- description: 'List of apps to build (eg gcc, linux, linux+myconfig, linux+all ["linux" means allmodconfig, "linux+" means defconfig, "linux+all" means build all defconfigs in sequence; multi_v7 can be used to boot on arm], spec2k spec2k6)'
- - string:
- name: linux_repo
- default: 'torvalds/linux'
- description: 'Linux kernel repo name, concatenated to git://git.kernel.org/pub/scm/linux/kernel/git (eg arnd/playground)'
- - string:
- name: linux_branch
- default: 'master'
- description: 'Linux kernel branch to build (eg to-build)'
- - bool:
- name: boot
- default: 'false'
- description: 'Attempt to boot supported Linux configurations via Lava'
- - string:
- name: target_list
- default: 'arm-linux-gnueabihf aarch64-linux-gnu'
- description: 'List of targets to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Jenkins-scripts branch to use'
- - string:
- name: build_container_tag
- default: 'lts_1'
- description: 'Distro to use on the builder with non-default container type: bionic, focal.'
- - string:
- name: LAVA_SERVER
- default: validation.linaro.org
- description: 'Lava server to use'
- - string:
- name: ARTIFACTORIAL_URI
- default: https://archive.validation.linaro.org
- description: 'Artifactorial server to use'
- - string:
- name: ARTIFACTORIAL_DIR
- default: /team/toolchain
- description: 'Artifactorial dir to use'
- disabled: true
- node: tcwg-coordinator
- child-workspace: $target/$app
- concurrent: true
- display-name: 'TCWG ZZZ BuildApp'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/tcwg-buildapp.git
- wipe-workspace: true
- skip-tag: true
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-x86_64-build
- - axis:
- type: dynamic
- name: app
- values:
- - app_list
- - axis:
- type: dynamic
- name: target
- values:
- - target_list
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'tcwg-benchmark'
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}'
- - credentials-binding:
- - text:
- credential-id: LAVA_USER
- variable: LAVA_USER
- - credentials-binding:
- - text:
- credential-id: LAVA_TOKEN
- variable: LAVA_TOKEN
- - credentials-binding:
- - text:
- credential-id: TCWG_ARTIFACTORIAL_TOKEN
- variable: ARTIFACTORIAL_TOKEN
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- git clone -b $scripts_branch --depth 1 https://git.linaro.org/toolchain/jenkins-scripts
-
- . jenkins-scripts/jenkins-helpers.sh
- host_arch=$(print_arch_for_label "${label}")
-
- host=$(print_host_for_node $NODE_NAME)
- bash -x ./jenkins-scripts/start-container-docker.sh --arch ${host_arch} --distro ${build_container_tag} --session-host ${host} > container.sh
-
- # Define CONTAINER, CONTAINER_CLEANUP, session_host and session_port
- . ./container.sh
-
- trap "${CONTAINER_CLEANUP}" EXIT
-
- env | egrep 'LAVA|ARTIFACTORIAL' > .env
- echo 'LAVA_URI=https://${LAVA_USER}:${LAVA_TOKEN}@${LAVA_SERVER}/RPC2' >> .env
-
- ${CONTAINER} "cd ${WORKSPACE} && ${WORKSPACE}/tcwg-buildapp.sh ${toolchain_url} ${app} ${target} ${boot} ${linux_repo} ${linux_branch}"
- publishers:
- - email-ext:
- recipients: 'christophe.lyon@linaro.org'
- send-to:
- requester
- recipients
- always: true
- matrix-trigger: only-parent
diff --git a/tcwg-buildfarm-cmp.yaml b/tcwg-buildfarm-cmp.yaml
deleted file mode 100644
index 891fafd937..0000000000
--- a/tcwg-buildfarm-cmp.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
-- job:
- name: tcwg-buildfarm-cmp
- project-type: multijob
- 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
- parameters:
- - string:
- name: ref_override
- default: ''
- description: 'Components version for reference builds; e.g. gcc=gcc.git~linaro/gcc-6-branch glibc=... and/or --extraconfigdir ../config/gcc6'
- - string:
- name: ref_log_name
- default: '${JOB_NAME}-${BUILD_NUMBER}-REF'
- description: 'Prefix logname for reference directory on logserver'
- - string:
- name: ref_abe_branch
- default: refs/remotes/origin/master
- description: 'ABE revision to test for reference builds'
- - string:
- name: ref_scripts_branch
- default: refs/remotes/origin/master
- description: 'jenkins-scripts revision to use for reference builds'
- - string:
- name: ref_distro
- default: 'default'
- description: 'Distro image to use in reference builds.'
- - bool:
- name: ref_rebuild
- default: true
- description: 'Rebuild reference toolchain even if results are already on logserver'
- - string:
- name: eval_override
- default: ''
- description: 'Components version for evaluation builds; e.g. gcc=gcc.git~linaro/gcc-6-branch glibc=... and/or --extraconfigdir ../config/gcc6'
- - string:
- name: eval_log_name
- default: '${JOB_NAME}-${BUILD_NUMBER}-EVAL'
- description: 'Prefix logname for evalution directory on logserver'
- - string:
- name: eval_abe_branch
- default: refs/remotes/origin/master
- description: 'ABE revision to test for evaluation builds'
- - string:
- name: eval_scripts_branch
- default: refs/remotes/origin/master
- description: 'jenkins-scripts revision to use for evaluation builds'
- - string:
- name: eval_distro
- default: 'lts_1'
- description: 'Distro image to use in reference builds.'
- - bool:
- name: eval_rebuild
- default: true
- description: 'Rebuild evaluation toolchain even if results are already on logserver'
- - string:
- name: host_x86_64_languages
- default: 'default'
- description: 'Languages to build for x86_64 native toolchains, e.g., "c,c++" or "all" or "default"'
- - string:
- name: host_aarchXX_languages
- default: 'c,c++'
- description: 'Languages to build for AArchXX native toolchains, e.g., "c,c++" or "all" or "default"'
- - string:
- name: runtests
- default: 'aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build'
- description: 'Run toolchain tests for these targets -- must be a subset of target_list'
- - string:
- name: host_x86_64_excludecheck
- default: 'gdb'
- description: 'Do not run "make check" on these components on x86_64'
- - string:
- name: host_aarchXX_excludecheck
- default: 'gcc'
- description: 'Do not run "make check" on these components on AArchXX'
- - string:
- name: extraconfig
- default: ''
- description: 'Extra configuration files, syntax tool=path'
- - string:
- name: log_server
- default: dev-01.tcwglab:/home/tcwg-buildslave/logs
- description: 'Log_Server'
- - string:
- name: target_list
- default: 'aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build'
- description: 'List of targets -- aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build tcwg-x86_32-build tcwg-tk1_32-build tcwg-apm_64-build tcwg-apm_32-build -- the tcwg-* targets should be a subset of slave axis'
- - string:
- name: displaytag
- default: 'manual'
- description: 'Tag to display in the Jenkins console, so that the build name is more helpful'
- - bool:
- name: dryrun
- default: false
- description: 'Dry-run, do nothing, just print steps'
- disabled: false
- node: tcwg-coordinator
- concurrent: true
- display-name: 'TCWG ZZZ Buildfarm Compare '
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${displaytag}'
- builders:
- - shell: |
- #!/bin/bash
-
- set -e
-
- cat << EOF > buildfarm_parameters
- host_x86_64_languages=$host_x86_64_languages
- host_aarchXX_languages=$host_aarchXX_languages
- runtests=$runtests
- host_x86_64_excludecheck=$host_x86_64_excludecheck
- host_aarchXX_excludecheck=$host_aarchXX_excludecheck
- extraconfig=$extraconfig
- log_server=$log_server
- target_list=$target_list
- dryrun=$dryrun
- EOF
-
- echo "NOTE: Buildfarm job parameters:"
- cat buildfarm_parameters
-
- cat << EOF > compare_results_parameters
- ref_logs=$ref_log_name
- new_logs=$eval_log_name
- log_server=$log_server
- dryrun=$dryrun
- EOF
-
- echo "NOTE: Compare Results job parameters:"
- cat compare_results_parameters
-
- - multijob:
- name: 'Builds'
- condition: ALWAYS
- projects:
- - name: tcwg-buildfarm
- predefined-parameters: |
- override=$ref_override
- log_name=$ref_log_name/@@host@@.\$target
- abe_branch=$ref_abe_branch
- scripts_branch=$ref_scripts_branch
- build_container_tag=$ref_distro
- test_container_tag=$ref_distro
- rebuild=$ref_rebuild
- displaytag=buildfarm-cmp-ref-${BUILD_NUMBER}
- property-file: buildfarm_parameters
- - name: tcwg-buildfarm
- predefined-parameters: |
- override=$eval_override
- log_name=$eval_log_name/@@host@@.\$target
- abe_branch=$eval_abe_branch
- scripts_branch=$eval_scripts_branch
- build_container_tag=$eval_distro
- test_container_tag=$eval_distro
- rebuild=$eval_rebuild
- displaytag=buildfarm-cmp-eval-${BUILD_NUMBER}
- property-file: buildfarm_parameters
- - multijob:
- name: 'Compare Results'
- condition: COMPLETED
- projects:
- - name: tcwg-compare-results
- property-file: compare_results_parameters
- publishers:
- - workspace-cleanup:
- include:
- - "*_parameters"
- - email-ext:
- recipients: 'christophe.lyon@linaro.org'
- send-to:
- requester
- recipients
- always: true
diff --git a/tcwg-buildfarm.yaml b/tcwg-buildfarm.yaml
index 4b9aab5cfc..1cd89adfc3 100644
--- a/tcwg-buildfarm.yaml
+++ b/tcwg-buildfarm.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -69,7 +69,7 @@
- string:
name: target_list
default: 'aarch64-linux-gnu aarch64-linux-gnu_ilp32 armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build'
- description: 'List of targets -- aarch64-linux-gnu aarch64-linux-gnu_ilp32 armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build tcwg-x86_32-build tcwg-tk1_32-build tcwg-apm_64-build tcwg-apm_32-build tcwg-sq_32-build tcwg-sq_64-build -- the tcwg-* targets should be a subset of slave axis'
+ description: 'List of targets -- aarch64-linux-gnu aarch64-linux-gnu_ilp32 armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build tcwg-x86_32-build tcwg-tk1_32-build tcwg-armv8_64 tcwg-armv8_32-build tcwg-sq_32-build tcwg-sq_64-build -- the tcwg-* targets should be a subset of slave axis'
- string:
name: abe_branch
default: tested
@@ -81,11 +81,11 @@
- string:
name: build_container_tag
default: 'lts_1'
- description: 'Distro to use on the builder with non-default container type: bionic, focal.'
+ description: 'Distro to use on the builder with non-default container type: lts_1, lts, ...'
- string:
name: test_container_tag
default: 'lts_1'
- description: 'Distro to use in the test container: bionic, focal.'
+ description: 'Distro to use in the test container: lts_1, lts, ...'
- string:
name: displaytag
default: 'manual'
@@ -128,8 +128,8 @@
values:
- tcwg-x86_64-build
- tcwg-tk1_32-build
- - tcwg-apm_64-build
- - tcwg-apm_32-build
+ - tcwg-armv8_64
+ - tcwg-armv8_32
- tcwg-sq_32-build
- tcwg-sq_64-build
- axis:
@@ -143,20 +143,12 @@
sequential: false
wrappers:
- timeout:
- timeout: 800
+ timeout: 1200
- timestamps
- ssh-agent-credentials:
# tcwg-buildslave user id
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - credentials-binding:
- - text:
- credential-id: TCWG_SES_USER
- variable: TCWG_SES_USER
- - credentials-binding:
- - text:
- credential-id: TCWG_SES_PASSWORD
- variable: TCWG_SES_PASSWORD
- build-name:
name: '#${BUILD_NUMBER}-${displaytag}'
builders:
@@ -175,8 +167,6 @@
--BUILD_NUMBER "$BUILD_NUMBER" \
--JOB_NAME "$JOB_NAME" \
--NODE_NAME "$NODE_NAME" \
- --TCWG_SES_USER "$TCWG_SES_USER" \
- --TCWG_SES_PASSWORD "$TCWG_SES_PASSWORD" \
--WORKSPACE "$WORKSPACE" \
--override "$override" \
--host_x86_64_languages "$host_x86_64_languages" \
diff --git a/tcwg-buildslave-command.yaml b/tcwg-buildslave-command.yaml
index 42dced1821..fb2f051651 100644
--- a/tcwg-buildslave-command.yaml
+++ b/tcwg-buildslave-command.yaml
@@ -4,9 +4,10 @@
defaults: global
properties:
- authorization:
- linaro:
+ anonymous:
- job-read
- job-extended-read
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-check-ci-jobs-vs-yaml.yaml b/tcwg-check-ci-jobs-vs-yaml.yaml
new file mode 100644
index 0000000000..23caa90dbb
--- /dev/null
+++ b/tcwg-check-ci-jobs-vs-yaml.yaml
@@ -0,0 +1,66 @@
+- job:
+ name: tcwg-check-ci-jobs-vs-yaml
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ parameters:
+ - string:
+ name: job_subset
+ default: "tcwg"
+ description: 'Check only the jobs that are containing this pattern'
+ disabled: false
+ node: tcwg-coordinator
+ display-name: 'TCWG Check CI Jobs synchro versus configs.git'
+ concurrent: false
+ triggers:
+ - timed: '@daily'
+ wrappers:
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - workspace-cleanup
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ set -euf -o pipefail
+
+ rm -rf artifacts
+ mkdir -p artifacts
+
+ rm -rf configs jenkins-scripts
+ git clone --depth 1 --single-branch \
+ https://git.linaro.org/ci/job/configs.git
+ git clone --depth 1 --single-branch \
+ https://git.linaro.org/toolchain/jenkins-scripts.git
+
+ # We have jenkins-job only in ubuntu:focal image.
+ ./jenkins-scripts/docker-run.sh --distro focal -- \
+ ./configs/tcwg-check-ci-jobs-vs-yaml/tcwg-check-ci-jobs-vs-yaml.sh \
+ --job_subset "$job_subset" \
+ --config_dir "." \
+ --result_dir "./artifacts" |& tee artifacts/check_ci_sync_summary.txt
+
+ publishers:
+ - email-ext:
+ recipients: 'maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org'
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/check_ci_sync_summary.txt"}
+ failure: true
+ aborted: true
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
diff --git a/tcwg-check-ci-jobs-vs-yaml/tcwg-check-ci-jobs-vs-yaml.sh b/tcwg-check-ci-jobs-vs-yaml/tcwg-check-ci-jobs-vs-yaml.sh
new file mode 100755
index 0000000000..7a152de34b
--- /dev/null
+++ b/tcwg-check-ci-jobs-vs-yaml/tcwg-check-ci-jobs-vs-yaml.sh
@@ -0,0 +1,212 @@
+#!/bin/bash -f
+
+set -e
+
+# Processing script arguments
+verbose=true
+config_dir=configs
+job_subset=''
+result_dir="."
+while [[ $# -gt 0 ]]; do
+ case $1 in
+ --verbose)
+ verbose=$2;
+ shift ;;
+ --job_subset)
+ job_subset=$2
+ shift ;;
+ --config_dir)
+ config_dir=$2
+ shift ;;
+ --result_dir)
+ result_dir=$2
+ shift ;;
+ -*)
+ echo "Unknown option $1"
+ exit 1
+ esac
+ shift
+done
+
+jenkinsurl=https://ci.linaro.org
+exit_status=0
+
+ci_jobs=()
+configs_jobs=()
+
+mkdir -p "$result_dir"
+
+if $verbose; then
+ DEBUGFILE=$result_dir/check_ci_sync_debug.txt
+ rm -f "$DEBUGFILE"
+else
+ DEBUGFILE=/dev/null
+fi
+
+
+## GET THE JOBS LIST LOOKING AT JENKINS SERVER
+get_ci_jobs()
+{
+ echo "============== GET_CI_JOBS ===============" | tee -a "$DEBUGFILE"
+
+ # ssh ci.linaro.org list-jobs
+ CMD="ssh -p2222 -l $USER@linaro.org ci.linaro.org"
+ echo "$CMD list-jobs | grep $job_subset"
+
+ list_jobs_file=$(mktemp)
+ $CMD list-jobs > $list_jobs_file
+ while read -r jb; do
+ if [[ $jb == *$job_subset* ]]; then
+ echo " * $jb" >> "$DEBUGFILE"
+ ci_jobs+=( "$jb" )
+ else
+ echo " $jb" >> "$DEBUGFILE"
+ fi
+ done < $list_jobs_file
+
+ printf " (found $(cat $list_jobs_file|wc -l) jobs, select ${#ci_jobs[*]} jobs)\n"
+ echo ""
+ rm -f $list_jobs_file
+}
+
+## GET THE JOBS LIST LOOKING AT GIT CONFIG
+get_configs_jobs()
+{
+ configs_jobs_failing=()
+ outdir="configs_jobs_out"
+ [ -d $outdir ] && rm -rf $outdir
+ mkdir $outdir
+
+ echo "============ GET_CONFIGS_JOBS =============" | tee -a "$DEBUGFILE"
+ # Yaml files
+ yaml_files=$(find $config_dir -name "*$job_subset*.yaml")
+ printf " (found $(echo $yaml_files | wc -w) yaml files)\n"
+
+ # jenkins-job test <every file>
+ jjb_output_file=$(mktemp)
+ for fn in $yaml_files; do
+ if ! jenkins-jobs test -o $outdir $fn >& $jjb_output_file; then
+ echo ""
+ echo "# WARNING: jenkins-job command fails"
+ echo " + jenkins-jobs test -o $outdir $fn # Fails" | tee -a "$DEBUGFILE"
+ cat "$jjb_output_file"
+ configs_jobs_failing+=( "$fn" )
+ else
+ echo "+ jenkins-jobs test -o $outdir $fn" >> "$DEBUGFILE"
+ fi
+ rm "$jjb_output_file"
+ done
+
+ # Select the jobs, not the views
+ for fn in $(ls -1 $outdir); do
+ if grep -q "hudson.model.ListView" $outdir/$fn; then
+ configs_views+=( "$fn" )
+ else
+ configs_jobs+=( "$fn" )
+ fi
+ done
+ echo ""
+ echo " (found ${#configs_jobs[*]} jobs, ${#configs_views[*]} views, ${#configs_jobs_failing[*]} jjb failing)"
+
+ # Print failing jenkins-job if any
+ if [ ${#configs_jobs_failing[@]} -gt 0 ]; then
+ echo "# jenkins-jobs failing for file :" | tee -a "$DEBUGFILE"
+ for fn in ${configs_jobs_failing[*]}; do
+ echo " jenkins-jobs test -o $outdir $fn" | tee -a "$DEBUGFILE"
+ done
+ echo ""
+ fi
+ echo ""
+}
+
+yaml_exists_job_noexists=()
+yaml_noexists_job_exists=()
+yaml_exists_job_exists=()
+
+## COMPARE AND PRINT THE SUMMARY
+summary()
+{
+ rm -f "$DEBUGFILE"
+
+ echo "============ SUMMARY ============="
+ sorted_jobs=( $(echo "${configs_jobs[@]}" "${ci_jobs[@]}"|xargs -n1|sort -u|xargs) )
+
+ for jb in "${sorted_jobs[@]}"; do
+ if [[ ${configs_jobs[*]} =~ (^|[[:space:]])"$jb"($|[[:space:]]) ]] &&
+ [[ ${ci_jobs[*]} =~ (^|[[:space:]])"$jb"($|[[:space:]]) ]]; then
+ yaml_exists_job_exists+=( "$jb" )
+ printf " %-100s | %15s | %15s |\n" "$jb" "yaml exists" "job exists" >> "$DEBUGFILE"
+ fi
+ if [[ ! ${configs_jobs[*]} =~ (^|[[:space:]])"$jb"($|[[:space:]]) ]] &&
+ [[ ${ci_jobs[*]} =~ (^|[[:space:]])"$jb"($|[[:space:]]) ]]; then
+ yaml_noexists_job_exists+=( "$jb" )
+ printf " %-100s | %15s | %15s |\n" "$jb" "yaml NO exists" "job exists" >> "$DEBUGFILE"
+ fi
+ if [[ ${configs_jobs[*]} =~ (^|[[:space:]])"$jb"($|[[:space:]]) ]] &&
+ [[ ! ${ci_jobs[*]} =~ (^|[[:space:]])"$jb"($|[[:space:]]) ]]; then
+ yaml_exists_job_noexists+=( "$jb" )
+ printf " %-100s | %15s | %15s |\n" "$jb" "yaml exists" "job NO exists" >> "$DEBUGFILE"
+ fi
+ done
+ echo "JENKINS JOBS exists and YAML FILE exist : ${#yaml_exists_job_exists[@]} jobs" | tee -a "$DEBUGFILE"
+ echo "JENKINS JOBS doesnot exists but the YAML FILE exist : ${#yaml_noexists_job_exists[@]} jobs" | tee -a "$DEBUGFILE"
+ echo "JENKINS JOBS exists but the YAML FILE doesnot exist : ${#yaml_exists_job_noexists[@]} jobs" | tee -a "$DEBUGFILE"
+
+ if [ ${#yaml_noexists_job_exists[@]} != 0 ] || [ ${#yaml_exists_job_noexists[@]} != 0 ]; then
+ exit_status=1
+ fi
+
+ echo " (See details in $DEBUGFILE)"
+ echo ""
+}
+
+## PRINT SUGGESTIONS TO RESOLVE THESE GAP
+print_suggestions()
+{
+ CMD="ssh -p2222 -l \$USER@linaro.org ci.linaro.org"
+
+ echo "============ SUGGESSTIONS ============="
+
+ if [ ${#yaml_noexists_job_exists[@]} != 0 ]; then
+ echo "# Some JENKINS JOBS exists but the YAML FILE doesnot exist (${#yaml_noexists_job_exists[@]} jobs)"
+ echo "# --------------------------------------------------------"
+ echo "# These are orphan jobs that are not linked to any yaml files."
+ echo "# You could delete them by using commands below. "
+ echo "# Please make sure that's what you want before deleting. "
+ if [ ${#configs_jobs_failing[@]} != 0 ]; then
+ echo "# /!\ WARNING : some of the following orphan jobs may be due to the failing jenkins-job commands above."
+ fi
+
+ echo ""
+ for jb in "${yaml_noexists_job_exists[@]}"; do
+ echo " # $jenkinsurl/job/$jb"
+ echo " $CMD delete-job $jb"
+ done
+ echo ""
+ fi
+
+ if [ ${#yaml_exists_job_noexists[@]} != 0 ]; then
+ echo "# Some YAML FILES generates a xml, but the JENKINS JOB doesnot exist (${#yaml_noexists_job_exists[@]} jobs)"
+ echo "# --------------------------------------------------------"
+ echo "# These jobs might probably exists, but are not readable by $USER."
+
+ echo ""
+ for jb in "${yaml_exists_job_noexists[@]}"; do
+ echo " # $jenkinsurl/job/$jb"
+ done
+ echo ""
+ fi
+}
+
+
+
+get_ci_jobs
+
+get_configs_jobs
+
+summary
+
+print_suggestions
+
+echo "exit $exit_status"
+exit $exit_status
diff --git a/tcwg-cleanup-stale-containers.yaml b/tcwg-cleanup-stale-containers.yaml
index a7d65eff9c..e5c0b12ad1 100644
--- a/tcwg-cleanup-stale-containers.yaml
+++ b/tcwg-cleanup-stale-containers.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -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,20 +83,14 @@
Cleaning stale containers on $NODE_NAME.
Please check console output at $BUILD_URL to view the results
EOF
- 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.
+ case " $NODE_LABELS " in
+ *" tcwg-secondary-node "*)
+ # Only cleanup ssh-agent processes for secondary nodes.
./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
-
$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:
diff --git a/tcwg-cleanup-stale-results.yaml b/tcwg-cleanup-stale-results.yaml
new file mode 100644
index 0000000000..2111414048
--- /dev/null
+++ b/tcwg-cleanup-stale-results.yaml
@@ -0,0 +1,119 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-cleanup-stale-results.yaml.in and tcwg-cleanup-stale-results/tcwg-cleanup-stale-results.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+
+- scm:
+ name: jenkins-scripts-master
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ refspec: +refs/heads/master:refs/remotes/origin/master
+ branches:
+ - master
+ 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-cleanup-stale-results
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - choice:
+ name: cleanup_gc
+ choices:
+ - 'true'
+ - 'dryrun'
+ - 'false'
+ description: 'Cleanup the git repositories'
+ - choice:
+ name: cleanup_annex
+ choices:
+ - 'dryrun'
+ - 'true'
+ - 'false'
+ description: 'Cleanup the annex results files'
+ - bool:
+ name: verbose
+ default: 'false'
+ description: 'Whether to be verbose'
+ disabled: false
+ node: tcwg-bkp-01
+ concurrent: false
+ display-name: 'TCWG CCC Cleanup stale results'
+ workspace: workspace/tcwg-cleanup-stale-results
+ triggers:
+ - timed: '@daily'
+ scm:
+ - jenkins-scripts-master
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ ./jenkins-scripts/tcwg-cleanup-stale-results.sh \
+ --cleanup_gc $cleanup_gc \
+ --cleanup_annex $cleanup_annex \
+ --verbose $verbose
+
+ if [ x"$(cat list_annex.exist_but_not_referenced.txt | wc -l)" != x"0" ]; then
+ (
+ if [ "$cleanup_annex" = "dryrun" ]; then
+ echo "# Cleanup-stale-results was run in DRYRUN mode."
+ echo "# Please double check and run this script manually."
+ else
+ echo "# Cleanup-stale-results executed the following"
+ fi
+ echo "#"
+ echo "# List of missing results :"
+ sed -e 's|^|# |' list_annex.referenced_but_not_exist.txt
+ echo "#"
+ echo "# List of useless results :"
+ sed -e 's|^|rm -f |' list_annex.exist_but_not_referenced.txt
+ echo ""
+ ) > artifacts/email-body.txt
+ exit 1
+ fi
+
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: 'maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org'
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/email-body.txt"}
+ failure: true
+ aborted: true
+# checksum: b82d7a10cb9e3dc101d3faaf2ecc565d
diff --git a/tcwg-cleanup-stale-results.yaml.in b/tcwg-cleanup-stale-results.yaml.in
new file mode 100644
index 0000000000..4ba3db60ae
--- /dev/null
+++ b/tcwg-cleanup-stale-results.yaml.in
@@ -0,0 +1,85 @@
+#include tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-cleanup-stale-results
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - choice:
+ name: cleanup_gc
+ choices:
+ - 'true'
+ - 'dryrun'
+ - 'false'
+ description: 'Cleanup the git repositories'
+ - choice:
+ name: cleanup_annex
+ choices:
+ - 'dryrun'
+ - 'true'
+ - 'false'
+ description: 'Cleanup the annex results files'
+ - bool:
+ name: verbose
+ default: 'false'
+ description: 'Whether to be verbose'
+ disabled: false
+ node: tcwg-bkp-01
+ concurrent: false
+ display-name: 'TCWG CCC Cleanup stale results'
+ workspace: workspace/tcwg-cleanup-stale-results
+ triggers:
+ - timed: '@daily'
+ scm:
+ - jenkins-scripts-master
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ ./jenkins-scripts/tcwg-cleanup-stale-results.sh \
+ --cleanup_gc $cleanup_gc \
+ --cleanup_annex $cleanup_annex \
+ --verbose $verbose
+
+ if [ x"$(cat list_annex.exist_but_not_referenced.txt | wc -l)" != x"0" ]; then
+ (
+ if [ "$cleanup_annex" = "dryrun" ]; then
+ echo "# Cleanup-stale-results was run in DRYRUN mode."
+ echo "# Please double check and run this script manually."
+ else
+ echo "# Cleanup-stale-results executed the following"
+ fi
+ echo "#"
+ echo "# List of missing results :"
+ sed -e 's|^|# |' list_annex.referenced_but_not_exist.txt
+ echo "#"
+ echo "# List of useless results :"
+ sed -e 's|^|rm -f |' list_annex.exist_but_not_referenced.txt
+ echo ""
+ ) > artifacts/email-body.txt
+ exit 1
+ fi
+
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: 'maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org'
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/email-body.txt"}
+ failure: true
+ aborted: true
diff --git a/tcwg-cleanup-stale-results/tcwg-cleanup-stale-results.def b/tcwg-cleanup-stale-results/tcwg-cleanup-stale-results.def
new file mode 100644
index 0000000000..7902d045c0
--- /dev/null
+++ b/tcwg-cleanup-stale-results/tcwg-cleanup-stale-results.def
@@ -0,0 +1 @@
+-v JENKINS_SCRIPTS=master
diff --git a/tcwg-cleanup-stale-workspaces.yaml b/tcwg-cleanup-stale-workspaces.yaml
deleted file mode 100644
index 87c6581af7..0000000000
--- a/tcwg-cleanup-stale-workspaces.yaml
+++ /dev/null
@@ -1,79 +0,0 @@
-- job:
- name: tcwg-cleanup-stale-workspaces
- 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
- - build-blocker:
- blocking-jobs:
- - "tcwg.*"
- block-level: 'NODE'
- parameters:
- - label:
- name: node_list
- 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
- default: '3'
- description: 'Delete workspace more then days old. To effectively disable time check use 0.'
- - bool:
- name: dry_run
- default: 'false'
- description: 'Whether to do a dry-run'
- - string:
- name: workspace_top
- default: '/home/tcwg-buildslave/workspace'
- description: 'Top-level workspace directory. Can be used to delete workspaces for specific jobs. Do not override unless you understand what you are doing.'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts branch to use'
- disabled: false
- concurrent: true
- display-name: 'TCWG CCC Cleanup stale workspaces'
- triggers:
- - timed: '@daily'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/changes/*:refs/remotes/changes/*
- branches:
- - ${scripts_branch}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- clean:
- before: true
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${NODE_NAME}'
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- ./tcwg-cleanup-stale-workspaces.sh --days $days --dry_run $dry_run --workspace_top $workspace_top
- publishers:
- - email-ext:
- recipients: tcwg-validation@linaro.org
- aborted: true
diff --git a/tcwg-compare-results-gerrit.yaml b/tcwg-compare-results-gerrit.yaml
index d74acb1e42..be5ad55353 100644
--- a/tcwg-compare-results-gerrit.yaml
+++ b/tcwg-compare-results-gerrit.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-compare-results.yaml b/tcwg-compare-results.yaml
index f6d298e373..020ad36652 100644
--- a/tcwg-compare-results.yaml
+++ b/tcwg-compare-results.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- job-workspace
diff --git a/tcwg-dev-build.yaml.in b/tcwg-dev-build.yaml.in
new file mode 100644
index 0000000000..b1f0c449c3
--- /dev/null
+++ b/tcwg-dev-build.yaml.in
@@ -0,0 +1,282 @@
+#include tcwg/default.yaml.inc
+
+- job:
+#if TOOLCHAIN_llvm && HOST_windows
+ name: tcwg-llvm_woa-build
+#else
+ name: tcwg-#{TOOLCHAIN}-build
+#endif
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+#if TOOLCHAIN_gnu
+ - string:
+ name: release_name
+ default: default
+ description: 'Name of release series; default is "date +%Y%m%d-%H_%M_%S"'
+#elif TOOLCHAIN_llvm
+ - string:
+ name: release
+# if !HOST_windows
+ default: ''
+ description: 'Release number. Ex. 4.0.1'
+# else
+ default: 'main'
+ description: 'Release build ID (13.0.0-rc1, 13.0.0) or git branch/sha1'
+# endif
+#endif
+#if TOOLCHAIN_gnu
+ - string:
+ name: buildnumber
+ default: 0
+ description: 'Build number in release series'
+ - choice:
+ name: target
+ choices:
+ - aarch64-linux-gnu
+ - aarch64-elf
+ - aarch64-linux-gnu_ilp32
+ - aarch64_be-elf
+ - aarch64_be-linux-gnu
+ - arm-eabi
+ - arm-linux-gnueabi
+ - arm-linux-gnueabihf
+ - armeb-eabi
+ - armeb-linux-gnueabi
+ - armeb-linux-gnueabihf
+ - armv8l-linux-gnueabihf
+ - native
+ description: 'Target'
+ - choice:
+ name: version
+ choices:
+ - default
+ - latest-rel
+ - master
+ - gcc8
+ - gcc7
+ - gcc6
+ - gcc5
+ - gcc4_9
+ description: 'Toolchain version; should match a supported ABE config'
+#elif TOOLCHAIN_llvm
+# if !HOST_windows
+ - string:
+ name: candidate
+ default: 'git-ref=main'
+ description: 'RC number. Ex. 1, 2, final'
+ - string:
+ name: toolchain
+ default: ''
+ description: 'URL of the toolchain to use. This needs to be a tarball with a /bin directory inside with either GCC or LLVM from make install'
+ - string:
+ name: compiler
+ default: 'clang'
+ description: 'Override the default system compiler. Only used if "toolchain" is empty.'
+ - bool:
+ name: useninja
+ default: true
+ description: 'Whether or not to use ninja for the release (works for releases > 9.0.0)'
+ - bool:
+ name: testsuite
+ default: true
+ description: 'Whether or not to trigger a test-suite with this build.'
+# else
+ - choice:
+ name: build_type
+ choices:
+ - test
+ - release
+# endif
+#endif
+#if TOOLCHAIN_gnu
+ - choice:
+ name: distro
+ choices:
+ - lts_1
+ - lts
+ description: 'Ubuntu distro to use for build environment'
+#elif TOOLCHAIN_llvm && !HOST_windows
+ - string:
+ name: build_container_tag
+ default: 'lts_1'
+ description: 'Type of image to use in the container: lts_1, lts, ...'
+#endif
+ - label:
+ name: builder
+#if HOST_windows
+ default: tcwg-surface
+#else
+ default: tcwg-x86_64-build
+#endif
+ description: 'Jenkins label to build on; determines host of the toolchain'
+#if TOOLCHAIN_gnu
+ - file:
+ name: manifest.txt
+ description: 'Use provided manifest file (which may override above settings)'
+ - bool:
+ name: verbose
+ default: false
+ description: 'Whether to be verbose'
+#endif
+ - string:
+ name: scripts_branch
+#if TOOLCHAIN_gnu || HOST_windows
+ default: master
+#elif TOOLCHAIN_llvm
+ default: tested
+#endif
+ description: 'Scripts revision to use'
+#if TOOLCHAIN_gnu
+ - text:
+ name: extra_options
+ default:
+ description: 'Extra options to pass to docker-run'
+#endif
+ disabled: false
+ concurrent: true
+ display-name: 'TCWG AAA #{TOOLCHAIN} #{HOST} Build'
+#if HOST_windows
+ # Save bytes in limited 250-byte windows PATHs
+ workspace: ws/tdb$EXECUTOR_NUMBER
+#endif
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - timeout:
+#if TOOLCHAIN_gnu
+ timeout: 300
+#else TOOLCHAIN_llvm
+ timeout: 1800
+#endif
+ - timestamps
+#if HOST_linux
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+#endif
+ - build-name:
+#if TOOLCHAIN_gnu
+ name: '#$BUILD_NUMBER-$version-$release_name-$buildnumber/$builder-$target'
+#elif TOOLCHAIN_llvm && !HOST_windows
+ name: '#$BUILD_NUMBER-$release-$candidate/$builder'
+#elif TOOLCHAIN_llvm && HOST_windows
+ name: '#$BUILD_NUMBER-$release/$builder'
+#endif
+ - workspace-cleanup
+ builders:
+#if TOOLCHAIN_gnu
+ - shell: |
+ #!/bin/bash
+ set -ex
+ abe_branch=tested
+ eval $extra_options
+ ./jenkins-scripts/docker-run.sh --distro "$distro" \
+ -- \
+ ./jenkins-scripts/tcwg-dev-build.sh \
+ --abe_branch "$abe_branch" \
+ --release_name "$release_name" \
+ --buildnumber "$buildnumber" \
+ --target "$target" \
+ --version "$version" \
+ --manifest "$(pwd)/manifest.txt" \
+ --verbose "$verbose"
+#elif TOOLCHAIN_llvm
+# if HOST_linux
+ - shell: |
+ #!/bin/bash
+
+ set -ex
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ # Until we figure out a way to use heavy-job with different weights
+ # based on the builder, we hardcode to one.
+ buildjobs=1
+
+ # Select builder arch/type/container
+ case ${builder} in
+ tcwg-x86_64-build|tcwg-x86_64-cam)
+ builder_arch=amd64
+ buildjobs=8 # 1 slot is 32/4
+ ;;
+ tcwg-tk1_32-build|tcwg-llvm_tk1-*)
+ builder_arch=armhf
+ buildjobs=3 # TK1s only have 4 cores and little RAM
+ ;;
+ tcwg-jade*)
+ builder_arch=arm64
+ buildjobs=64 # Jades have lots of cores
+ ;;
+ *) echo "ERROR: Unsupported label: $builder"; exit 1 ;;
+ esac
+
+ # Sets the system compiler
+ compiler_option=''
+ if [ "${toolchain:+set}" != "set" ] && [ "${compiler:+set}" = "set" ]; then
+ compiler_option="--compiler=${compiler}"
+ fi
+
+ # Trigger toolchain name
+ toolchain_file="${WORKSPACE}/llvm.params.toolchain"
+ toolchain_file_option=""
+ if ${twostage} || ${testsuite}; then
+ toolchain_file_option="--toolchain-file=$toolchain_file"
+ fi
+
+ # Setup job parameters and run (for now, just pretend to run)
+ ret=0
+ ./jenkins-scripts/docker-run.sh \
+ --arch ${builder_arch} \
+ --distro ${build_container_tag} \
+ -- \
+ bash -x ./jenkins-scripts/tcwg-llvm-release.sh \
+ --workspace=${WORKSPACE} \
+ --release=${release} \
+ --candidate=${candidate} \
+ --buildjobs=${buildjobs} \
+ --toolchain=${toolchain} \
+ --use-ninja=${useninja} \
+ $toolchain_file_option $compiler_option \
+ > artifacts/release.log 2>&1 || ret=$?
+
+ if [ $ret -ne 0 ]; then
+ touch llvm.failed
+ fi
+
+ # Chained jobs
+ if ${testsuite}; then
+ echo "target_list=$builder" > llvm.params.testsuite
+ cat $toolchain_file >> llvm.params.testsuite
+ fi
+
+ # failure is handled by conditional step on llvm.failed
+ # so that the testsuite job is always triggered
+ exit 0
+ - conditional-step:
+ condition-kind: file-exists
+ condition-filename: llvm.params.testsuite
+ steps:
+ - trigger-builds:
+ - project: 'tcwg-llvm-testsuite'
+ property-file: llvm.params.testsuite
+ current-parameters: true
+ block: true
+ - conditional-step:
+ condition-kind: file-exists
+ condition-filename: llvm.failed
+ steps:
+ - shell: "exit 1"
+# elif HOST_windows
+ - batch: |
+ jenkins-scripts\tcwg-llvm-release.bat %release% %build_type%
+# endif
+#endif
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
diff --git a/tcwg-dev-build/tcwg-gnu-build.def b/tcwg-dev-build/tcwg-gnu-build.def
new file mode 100644
index 0000000000..8c93ea2aad
--- /dev/null
+++ b/tcwg-dev-build/tcwg-gnu-build.def
@@ -0,0 +1,2 @@
+-v TOOLCHAIN=gnu
+-v HOST=linux
diff --git a/tcwg-dev-build/tcwg-llvm-build.def b/tcwg-dev-build/tcwg-llvm-build.def
new file mode 100644
index 0000000000..20e96f2b1a
--- /dev/null
+++ b/tcwg-dev-build/tcwg-llvm-build.def
@@ -0,0 +1,2 @@
+-v TOOLCHAIN=llvm
+-v HOST=linux
diff --git a/tcwg-dev-build/tcwg-llvm_woa-build.def b/tcwg-dev-build/tcwg-llvm_woa-build.def
new file mode 100644
index 0000000000..b94438be5a
--- /dev/null
+++ b/tcwg-dev-build/tcwg-llvm_woa-build.def
@@ -0,0 +1,2 @@
+-v TOOLCHAIN=llvm
+-v HOST=windows
diff --git a/tcwg-gnu-builds.yaml.in b/tcwg-dev-builds.yaml.in
index d8c7731b3e..ead11899bd 100644
--- a/tcwg-gnu-builds.yaml.in
+++ b/tcwg-dev-builds.yaml.in
@@ -1,7 +1,7 @@
#include tcwg/default.yaml.inc
- job:
- name: tcwg-gnu-builds
+ name: tcwg-#{TOOLCHAIN}-builds
project-type: multijob
defaults: global
properties:
@@ -35,7 +35,8 @@
default: true
- bool:
name: host_armhf_target_native
- default: true
+ # FIXME: https://linaro.atlassian.net/browse/STG-5042
+ default: false
- choice:
name: distro
choices:
@@ -58,7 +59,7 @@
- build-name:
name: '#$BUILD_NUMBER-$version-$release_name-$buildnumber'
- timeout:
- timeout: 300
+ timeout: 600
- timestamps
- workspace-cleanup
builders:
@@ -83,39 +84,39 @@
- multijob:
name: Build
projects:
- - name: tcwg-dev-build
+ - name: tcwg-#{TOOLCHAIN}-build
alias: "host_x86_64_target_aarch64"
enable-condition: "$host_x86_64_target_aarch64"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-x86_64-build"
property-file: build-params.txt
predefined-parameters: "target=aarch64-linux-gnu"
- - name: tcwg-dev-build
+ - name: tcwg-#{TOOLCHAIN}-build
alias: "host_x86_64_target_armhf"
enable-condition: "$host_x86_64_target_armhf"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-x86_64-build"
property-file: build-params.txt
predefined-parameters: "target=arm-linux-gnueabihf"
- - name: tcwg-dev-build
+ - name: tcwg-#{TOOLCHAIN}-build
alias: "host_aarch64_target_aarch64"
enable-condition: "$host_aarch64_target_native"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-armv8_64"
property-file: build-params.txt
predefined-parameters: "target=native"
- - name: tcwg-dev-build
+ - name: tcwg-#{TOOLCHAIN}-build
alias: "host_aarch64_target_armhf"
enable-condition: "$host_aarch64_target_armhf"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-armv8_64"
property-file: build-params.txt
predefined-parameters: "target=arm-linux-gnueabihf"
- - name: tcwg-dev-build
+ - name: tcwg-#{TOOLCHAIN}-build
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: |
@@ -125,69 +126,69 @@
set -x
fi
- env | grep "TCWG_DEV_BUILD"
+ env | grep "TCWG_#{TOOLCHAIN2}_BUILD"
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_#{TOOLCHAIN2}_BUILD
comparator: greater-than-equal
rhs: 1
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-#{TOOLCHAIN}-build
which-build: specific-build
- # Note that $TCWG_DEV_BUILD_BUILD_NUMBER points to the last
- # build (i.e., it's the same as $TCWG_DEV_BUILD_5_BUILD_NUMBER
+ # Note that $TCWG_#{TOOLCHAIN2}_BUILD_BUILD_NUMBER points to the last
+ # build (i.e., it's the same as $TCWG_#{TOOLCHAIN2}_BUILD_5_BUILD_NUMBER
# in a full 5-configuration build). At the same time,
- # $TCWG_DEV_BUILD_nnn_BUILD_NUMBER variables are defined only
+ # $TCWG_#{TOOLCHAIN2}_BUILD_nnn_BUILD_NUMBER variables are defined only
# when multiple builds were triggered.
- # We need to use $TCWG_DEV_BUILD_BUILD_NUMBER here to correctly
+ # We need to use $TCWG_#{TOOLCHAIN2}_BUILD_BUILD_NUMBER here to correctly
# handle single-toolchain builds.
- build-number: $TCWG_DEV_BUILD_BUILD_NUMBER
- target: tcwg-dev-build-1
+ build-number: $TCWG_#{TOOLCHAIN2}_BUILD_BUILD_NUMBER
+ target: tcwg-#{TOOLCHAIN}-build-1
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_#{TOOLCHAIN2}_BUILD
comparator: greater-than-equal
rhs: 2
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-#{TOOLCHAIN}-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_1_BUILD_NUMBER
- target: tcwg-dev-build-2
+ build-number: $TCWG_#{TOOLCHAIN2}_BUILD_1_BUILD_NUMBER
+ target: tcwg-#{TOOLCHAIN}-build-2
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_#{TOOLCHAIN2}_BUILD
comparator: greater-than-equal
rhs: 3
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-#{TOOLCHAIN}-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_2_BUILD_NUMBER
- target: tcwg-dev-build-3
+ build-number: $TCWG_#{TOOLCHAIN2}_BUILD_2_BUILD_NUMBER
+ target: tcwg-#{TOOLCHAIN}-build-3
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_#{TOOLCHAIN2}_BUILD
comparator: greater-than-equal
rhs: 4
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-#{TOOLCHAIN}-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_3_BUILD_NUMBER
- target: tcwg-dev-build-4
+ build-number: $TCWG_#{TOOLCHAIN2}_BUILD_3_BUILD_NUMBER
+ target: tcwg-#{TOOLCHAIN}-build-4
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_#{TOOLCHAIN2}_BUILD
comparator: greater-than-equal
rhs: 5
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-#{TOOLCHAIN}-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_4_BUILD_NUMBER
- target: tcwg-dev-build-5
+ build-number: $TCWG_#{TOOLCHAIN2}_BUILD_4_BUILD_NUMBER
+ target: tcwg-#{TOOLCHAIN}-build-5
- linaro-publish-token
- shell: |
#!/bin/bash
@@ -198,9 +199,9 @@
mkdir out
- i="$TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD"
+ i="$TRIGGERED_BUILD_RUN_COUNT_TCWG_#{TOOLCHAIN2}_BUILD"
while [ $i -gt 0 ]; do
- rsync -a tcwg-dev-build-$i/artifacts/binaries/ out/
+ rsync -a tcwg-#{TOOLCHAIN}-build-$i/artifacts/binaries/ out/
i=$(($i-1))
done
@@ -255,7 +256,7 @@
"$out_release/" "gnu-toolchain/$(basename "$out_release")"
- job:
- name: tcwg-gnu-builds-monthly
+ name: tcwg-#{TOOLCHAIN}-builds-monthly
project-type: freestyle
defaults: global
properties:
@@ -288,12 +289,12 @@
publish=$publish
EOF
- trigger-builds:
- - project: tcwg-gnu-builds
+ - project: tcwg-#{TOOLCHAIN}-builds
property-file: build-params.txt
predefined-parameters: |
version=latest-rel
distro=lts_1
- - project: tcwg-gnu-builds
+ - project: tcwg-#{TOOLCHAIN}-builds
property-file: build-params.txt
predefined-parameters: |
version=master
diff --git a/tcwg-dev-builds/tcwg-gnu-builds.def b/tcwg-dev-builds/tcwg-gnu-builds.def
new file mode 100644
index 0000000000..b26e58c12f
--- /dev/null
+++ b/tcwg-dev-builds/tcwg-gnu-builds.def
@@ -0,0 +1,2 @@
+-v TOOLCHAIN=gnu
+-v TOOLCHAIN2=GNU
diff --git a/tcwg-gcc-bisect.yaml b/tcwg-gcc-bisect.yaml
index db9ba4201b..1210b2ab03 100644
--- a/tcwg-gcc-bisect.yaml
+++ b/tcwg-gcc-bisect.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -49,7 +49,7 @@
- string:
name: build_container_tag
default: 'lts_1'
- description: 'Distro to use on the builder: bionic, focal.'
+ description: 'Distro to use on the builder: lts_1, lts, ...'
disabled: false
node: tcwg-x86_64-cam
concurrent: true
diff --git a/tcwg-gcc-release-automation.yaml b/tcwg-gcc-release-automation.yaml
deleted file mode 100644
index 193790ff98..0000000000
--- a/tcwg-gcc-release-automation.yaml
+++ /dev/null
@@ -1,186 +0,0 @@
-- job:
- name: tcwg-gcc-release-automation
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 10
- num-to-keep: 10
- parameters:
- - choice:
- name: tag_kind
- choices:
- - snapshot
- - candidate
- - release
- description: 'Type of release to do.'
- - string:
- name: spin
- default: ''
- description: 'Spin number'
- - string:
- name: rc_num
- default: ''
- description: 'Release candidate number (empty for RC1, 2 for RC2, ...)'
- - string:
- name: gcc_ref
- default: ''
- description: 'GCC tag or branch name (like linaro-6.3-2017.03, origin/linaro/gcc-6-branch)'
- - string:
- name: date
- default: ''
- description: 'snapshot or release date (yyyy.mm)'
- - string:
- name: abe_branch
- default: tested
- description: 'ABE branch to use.'
- - string:
- name: scripts_branch
- default: tested
- description: 'jenkins-scripts branch to use.'
- disabled: false
- node: tcwg-x86_64-dev-01
- concurrent: true
- display-name: 'TCWG GCC Release Automation'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/gcc.git
- refspec: +refs/heads/*:refs/remotes/origin/*
- branches:
- - refs/heads/master
- basedir: gcc_src
- per-build-tag: false
- wipe-workspace: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git
- - git:
- url: https://git.linaro.org/toolchain/tcwg-release-tools
- refspec: +refs/heads/*:refs/remotes/origin/*
- branches:
- - refs/heads/automation
- basedir: tcwg-release-tools
- per-build-tag: false
- wipe-workspace: true
- execution-strategy:
- sequential: true
- wrappers:
- - timeout:
- timeout: 1800
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="tag"}'
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- pushd gcc_src
-
- # Git/Gerrit config
- git config --local user.name "TCWG Automation"
- git config --local user.email linaro-toolchain@lists.linaro.org
- if git remote | grep -q gerrit; then
- git remote rm gerrit
- fi
- git remote add gerrit ssh://tcwg-buildslave@review.linaro.org:29418/toolchain/gcc
- git remote update
-
- FLAGS="-t $gcc_ref -e gerrit"
- [ "${date:+set}" = "set" ] && FLAGS+=" -d $date"
-
- case "$tag_kind" in
- snapshot) FLAGS+=" -S" ; dir_suffix="-snap";;
- candidate) FLAGS+=" -r $rc_num" ; touch ${WORKSPACE}/trig-bin ;;
- release) FLAGS+=" -R" ; touch ${WORKSPACE}/trig-bin ;;
- *) echo "ERROR: tag_king is missing"; exit 1 ;;
- esac
-
- [ "${spin:+set}" = "set" ] && FLAGS+=" $spin"
-
- ${WORKSPACE}/tcwg-release-tools/tcwg-release-tag.sh $FLAGS
-
- # Pick up the created tag.
- tag=$(git describe --abbrev=0)
-
- case ${tag} in
- *-4\.*) toolchainconf="gcc4_9" ;;
- *-5\.*) toolchainconf="gcc5" ;;
- *-6\.*) toolchainconf="gcc6" ;;
- *-7\.*) toolchainconf="gcc7" ;;
- *) echo "ERROR: Bad tag: ${tag}"; exit 1 ;;
- esac
-
- # Remove linaro-[snapshot-] prefix
- upload_dir=${tag#*ro-}
- upload_dir="/home/tcwg-buildslave/releases/sources/${upload_dir#*ot-}$dir_suffix"
-
- popd 1>/dev/null
-
- cat << EOF > ${WORKSPACE}/buildfarm_parameters
- override=gcc=gcc.git~$tag --extraconfigdir ../config/$toolchainconf
- log_name=${JOB_NAME}-${tag}-${BUILD_NUMBER}/@@host@@.\$target
- abe_branch=$abe_branch
- scripts_branch=$scripts_branch
- EOF
-
- cat << EOF > ${WORKSPACE}/env.properties
- tag=$tag
- toolchainconf=$toolchainconf
- upload_dir=$upload_dir
- EOF
- - trigger-builds:
- - project: tcwg-buildfarm
- property-file: buildfarm_parameters
- block: true
- - inject:
- properties-file: ${WORKSPACE}/env.properties
- - shell: |
- #!/bin/bash
- set -ex
-
- pushd /home/tcwg-buildslave/logs/${JOB_NAME}-${tag}-${BUILD_NUMBER}
-
- mkdir -p $upload_dir
- for i in * ; do
- cp ${i}/gcc-linaro-*-manifest.txt ${upload_dir}/${i}-gcc-${tag}-manifest.txt
- done
-
- popd 1>/dev/null
- - trigger-builds:
- - project: tcwg-make-source-tarball
- property-file: ${WORKSPACE}/env.properties
- block: true
- - conditional-step:
- condition-kind: file-exists
- condition-filename: ${WORKSPACE}/trig-bin
- steps:
- - trigger-builds:
- - project: tcwg-make-and-test-release
- property-file: ${WORKSPACE}/env.properties
- predefined-parameters: |
- gcc_src=gcc.git~$tag
- toolchain_config=$toolchainconf
- abe_branch=$abe_branch
- block: true
- publishers:
- - email-ext:
- recipients: 'yvan.roux@linaro.org'
- aborted: true
- - workspace-cleanup:
- clean-if:
- - success: true
- - unstable: false
- - failure: false
- - aborted: false
- - not-built: false
-
diff --git a/tcwg-gdb.yaml b/tcwg-gdb.yaml
deleted file mode 100644
index d49e2e460f..0000000000
--- a/tcwg-gdb.yaml
+++ /dev/null
@@ -1,195 +0,0 @@
-- job:
- name: tcwg-gdb
- project-type: matrix
- 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
- parameters:
- - string:
- name: gdb_rev
- default: 'refs/remotes/origin/master'
- description: 'gdb revision to build'
- - string:
- name: target_list
- default: 'tcwg-x86_64-cam tcwg-apm_64-build tcwg-tk1_32-build'
- description: 'List of targets to test'
- - string:
- name: bfd_list
- default: '--enable-64-bit-bfd=no --enable-64-bit-bfd=yes'
- description: 'Type of BFD to enable: --enable-64-bit-bfd=yes --enable-64-bit-bfd=no'
- - string:
- name: scripts_branch
- default: master
- description: 'Jenkins-scripts branch to use'
- - bool:
- name: dont_fail
- default: false
- description: 'Do not fail the build'
- - string:
- name: log_name
- default: '${JOB_NAME}-${BUILD_NUMBER}/${builder_type}.$target.$bfd'
- description: 'Logname directory on logserver'
- - string:
- name: log_server
- default: dev-01.tcwglab:/home/tcwg-buildslave/logs
- description: 'Log_Server'
- - string:
- name: build_container_distro
- default: 'lts_1'
- description: 'Distro to use on the builder with non-default container type: bionic, focal ...'
- disabled: false
- node: tcwg-x86_64-dev-02
- retry-count: 3
- concurrent: true
- display-name: 'TCWG BBB GDB'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/binutils-gdb.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- branches:
- - ${gdb_rev}
- skip-tag: true
- shallow-clone: false
- reference-repo: /home/tcwg-buildslave/snapshots-ref/binutils-gdb.git
- wipe-workspace: false
- clean:
- before: true
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-x86_64-cam
- - tcwg-apm_64-build
- - tcwg-tk1_32-build
- - axis:
- type: dynamic
- name: bfd
- values:
- - bfd_list
- - axis:
- type: dynamic
- name: target
- values:
- - target_list
- execution-strategy:
- combination-filter: |
- ((label==~/tcwg-x86_.*/) && ! (target==~/tcwg-.*/)) || (target==label)
- sequential: false
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="gdb_rev"}'
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- rm -rf jenkins-scripts
- git clone -b $scripts_branch --depth 1 https://git.linaro.org/toolchain/jenkins-scripts
-
- bash -x ./jenkins-scripts/start-container-docker.sh --weight 2 --label $label --node $NODE_NAME --task build --prefix build_ --distro $build_container_distro > build-container.sh
- . ./build-container.sh
- BUILD_SHELL="build_container_exec bash"
- $BUILD_SHELL -c "echo \"Build session is up; ulimit config:\"; ulimit -a"
-
- builder_type=$(print_type_for_label $label)
-
- # Adjust the core file size in ulimit for GDB core file tests
- ${BUILD_SHELL} -c "ulimit -c unlimited"
-
- # Remove container on exit
- trap "build_container_cleanup" EXIT HUP INT QUIT TRAP KILL PIPE TERM
-
- rm -rf build-$target || true
- mkdir -p build-$target
- cd build-$target
- result=0
- jobs=$(nproc --all)
- echo BUILD STARTED $(date)
- echo WORKSPACE: ${WORKSPACE}
-
- # Build our own version of dejagnu, using abe to try to
- # avoid problems with the system's version
- ${BUILD_SHELL} -c "git clone https://git.linaro.org/toolchain/abe.git"
- ${BUILD_SHELL} -c "cd abe && ./configure --with-git-reference-dir=/home/tcwg-buildslave/snapshots-ref"
- ${BUILD_SHELL} -c "cd abe && ./abe.sh --build dejagnu"
- djpath=$(${BUILD_SHELL} -c "ls -d $PWD/abe/./builds/hosttools/*/bin")
- [ -x $djpath/runtest ] || (echo "DejaGnu not built in the expected location: $djpath/runtest" && exit 1)
-
- # If configure or build fails, the execution will stop
- # because of 'set -e'. But for 'make check' we want to
- # execute all the tests, and report if there were some
- # errors.
- ${BUILD_SHELL} -c "../configure --enable-targets=all --disable-ld --disable-gold --disable-gas --disable-gprof --disable-sim --disable-lto --prefix=`pwd`/install ${bfd}"
- ${BUILD_SHELL} -c "make all -j$jobs"
- ${BUILD_SHELL} -c "PATH=$djpath:$PATH make check-gdb -j$jobs -k" || result=1
-
- # Use GDB's combined summary file instead of each test's individual
- # summary.
- sums="gdb/testsuite/gdb.sum"
- set +x
- echo '############################################'
- echo 'See unexpected results below:'
- echo '############################################'
- [ x"$sums" != x ] && egrep '^FAIL:|^XPASS:' $sums || true
- echo '############################################'
- echo 'See ends of sumfiles below:'
- echo '############################################'
- [ x"$sums" != x ] && tail $sums
-
- set -x
- # Split $logserver into "server:path".
- basedir="${log_server#*:}"
- log_server="${log_server%:*}"
- eval dir=${log_name}
- ${BUILD_SHELL} -c "ssh ${log_server} mkdir -p ${basedir}/${dir}"
-
- # gcc-compare-results handles only .xz files, so compress
- # them before upload. Since the file are created inside a
- # container, the uid/gid may differ from the host's and
- # cause permission errors during compression. Copy them,
- # so that xz can operate.
- rm -rf artifacts
- mkdir -p artifacts
- cp ${sums} artifacts/
- for sum in ${sums}
- do
- log=$(echo $sum | sed 's/.sum/.log/')
- cp $log artifacts/
- done
- xz artifacts/*.sum artifacts/*.log
- ${BUILD_SHELL} -c "scp artifacts/*.sum.xz artifacts/*.log.xz ${log_server}:${basedir}/${dir}/"
-
- echo BUILD FINISHED $(date)
-
- # Cleanup to save disk space
- cd ..
- du -sh build-$target
- rm -rf build-$target || true
-
- if $dont_fail; then
- result="0"
- fi
- exit $result
- publishers:
- - email-ext:
- recipients: 'luis.machado@linaro.org'
- aborted: true
- matrix-trigger: only-parent
diff --git a/tcwg-dev-build.yaml b/tcwg-gnu-build.yaml
index e619c1d811..82936b829f 100644
--- a/tcwg-dev-build.yaml
+++ b/tcwg-gnu-build.yaml
@@ -1,18 +1,44 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-dev-build.yaml.in and tcwg-dev-build/tcwg-gnu-build.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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-dev-build
+ name: tcwg-gnu-build
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:
- string:
name: release_name
@@ -78,18 +104,9 @@
description: 'Extra options to pass to docker-run'
disabled: false
concurrent: true
- display-name: 'TCWG AAA Dev Build'
+ display-name: 'TCWG AAA gnu linux Build'
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: false
- clean:
- before: true
+ - jenkins-scripts
wrappers:
- timeout:
timeout: 300
@@ -99,14 +116,17 @@
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- build-name:
- name: '#$BUILD_NUMBER-$version-$release_name-$buildnumber/$target'
+ name: '#$BUILD_NUMBER-$version-$release_name-$buildnumber/$builder-$target'
+ - workspace-cleanup
builders:
- shell: |
#!/bin/bash
set -ex
abe_branch=tested
eval $extra_options
- ./docker-run.sh --distro "$distro" -- ./tcwg-dev-build.sh \
+ ./jenkins-scripts/docker-run.sh --distro "$distro" \
+ -- \
+ ./jenkins-scripts/tcwg-dev-build.sh \
--abe_branch "$abe_branch" \
--release_name "$release_name" \
--buildnumber "$buildnumber" \
@@ -118,3 +138,4 @@
- archive:
artifacts: 'artifacts/**'
latest-only: false
+# checksum: b637c21346ceef1cc9961b2b42ef6a42
diff --git a/tcwg-gnu-builds.yaml b/tcwg-gnu-builds.yaml
index c78893f7d7..106759bedc 100644
--- a/tcwg-gnu-builds.yaml
+++ b/tcwg-gnu-builds.yaml
@@ -1,4 +1,4 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-gnu-builds.yaml.in and tcwg-gnu-builds/tcwg-gnu-builds.def. Do not edit.
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-dev-builds.yaml.in and tcwg-dev-builds/tcwg-gnu-builds.def. Do not edit.
#BEGIN: tcwg/default.yaml.inc
# -*- mode: Yaml -*-
@@ -9,12 +9,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts
@@ -69,7 +68,8 @@
default: true
- bool:
name: host_armhf_target_native
- default: true
+ # FIXME: https://linaro.atlassian.net/browse/STG-5042
+ default: false
- choice:
name: distro
choices:
@@ -92,7 +92,7 @@
- build-name:
name: '#$BUILD_NUMBER-$version-$release_name-$buildnumber'
- timeout:
- timeout: 300
+ timeout: 600
- timestamps
- workspace-cleanup
builders:
@@ -117,39 +117,39 @@
- multijob:
name: Build
projects:
- - name: tcwg-dev-build
+ - name: tcwg-gnu-build
alias: "host_x86_64_target_aarch64"
enable-condition: "$host_x86_64_target_aarch64"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-x86_64-build"
property-file: build-params.txt
predefined-parameters: "target=aarch64-linux-gnu"
- - name: tcwg-dev-build
+ - name: tcwg-gnu-build
alias: "host_x86_64_target_armhf"
enable-condition: "$host_x86_64_target_armhf"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-x86_64-build"
property-file: build-params.txt
predefined-parameters: "target=arm-linux-gnueabihf"
- - name: tcwg-dev-build
+ - name: tcwg-gnu-build
alias: "host_aarch64_target_aarch64"
enable-condition: "$host_aarch64_target_native"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-armv8_64"
property-file: build-params.txt
predefined-parameters: "target=native"
- - name: tcwg-dev-build
+ - name: tcwg-gnu-build
alias: "host_aarch64_target_armhf"
enable-condition: "$host_aarch64_target_armhf"
node-label-name: "builder"
node-label: "tcwg-build && tcwg-armv8_64"
property-file: build-params.txt
predefined-parameters: "target=arm-linux-gnueabihf"
- - name: tcwg-dev-build
+ - name: tcwg-gnu-build
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: |
@@ -159,69 +159,69 @@
set -x
fi
- env | grep "TCWG_DEV_BUILD"
+ env | grep "TCWG_GNU_BUILD"
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_GNU_BUILD
comparator: greater-than-equal
rhs: 1
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-gnu-build
which-build: specific-build
- # Note that $TCWG_DEV_BUILD_BUILD_NUMBER points to the last
- # build (i.e., it's the same as $TCWG_DEV_BUILD_5_BUILD_NUMBER
+ # Note that $TCWG_GNU_BUILD_BUILD_NUMBER points to the last
+ # build (i.e., it's the same as $TCWG_GNU_BUILD_5_BUILD_NUMBER
# in a full 5-configuration build). At the same time,
- # $TCWG_DEV_BUILD_nnn_BUILD_NUMBER variables are defined only
+ # $TCWG_GNU_BUILD_nnn_BUILD_NUMBER variables are defined only
# when multiple builds were triggered.
- # We need to use $TCWG_DEV_BUILD_BUILD_NUMBER here to correctly
+ # We need to use $TCWG_GNU_BUILD_BUILD_NUMBER here to correctly
# handle single-toolchain builds.
- build-number: $TCWG_DEV_BUILD_BUILD_NUMBER
- target: tcwg-dev-build-1
+ build-number: $TCWG_GNU_BUILD_BUILD_NUMBER
+ target: tcwg-gnu-build-1
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_GNU_BUILD
comparator: greater-than-equal
rhs: 2
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-gnu-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_1_BUILD_NUMBER
- target: tcwg-dev-build-2
+ build-number: $TCWG_GNU_BUILD_1_BUILD_NUMBER
+ target: tcwg-gnu-build-2
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_GNU_BUILD
comparator: greater-than-equal
rhs: 3
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-gnu-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_2_BUILD_NUMBER
- target: tcwg-dev-build-3
+ build-number: $TCWG_GNU_BUILD_2_BUILD_NUMBER
+ target: tcwg-gnu-build-3
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_GNU_BUILD
comparator: greater-than-equal
rhs: 4
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-gnu-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_3_BUILD_NUMBER
- target: tcwg-dev-build-4
+ build-number: $TCWG_GNU_BUILD_3_BUILD_NUMBER
+ target: tcwg-gnu-build-4
- conditional-step:
condition-kind: num-comp
- lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD
+ lhs: $TRIGGERED_BUILD_RUN_COUNT_TCWG_GNU_BUILD
comparator: greater-than-equal
rhs: 5
steps:
- copyartifact:
- project: tcwg-dev-build
+ project: tcwg-gnu-build
which-build: specific-build
- build-number: $TCWG_DEV_BUILD_4_BUILD_NUMBER
- target: tcwg-dev-build-5
+ build-number: $TCWG_GNU_BUILD_4_BUILD_NUMBER
+ target: tcwg-gnu-build-5
- linaro-publish-token
- shell: |
#!/bin/bash
@@ -232,9 +232,9 @@
mkdir out
- i="$TRIGGERED_BUILD_RUN_COUNT_TCWG_DEV_BUILD"
+ i="$TRIGGERED_BUILD_RUN_COUNT_TCWG_GNU_BUILD"
while [ $i -gt 0 ]; do
- rsync -a tcwg-dev-build-$i/artifacts/binaries/ out/
+ rsync -a tcwg-gnu-build-$i/artifacts/binaries/ out/
i=$(($i-1))
done
@@ -332,4 +332,4 @@
predefined-parameters: |
version=master
distro=lts
-# checksum: 6eadaacf14a0b8ffd682d66a01b93b79
+# checksum: 92639f8f3e3bffb05670cef4ddc174ec
diff --git a/tcwg-gnu-patch-benchmarking.yaml b/tcwg-gnu-patch-benchmarking.yaml
deleted file mode 100644
index 2466df0bc8..0000000000
--- a/tcwg-gnu-patch-benchmarking.yaml
+++ /dev/null
@@ -1,287 +0,0 @@
-- job:
- name: tcwg-gnu-patch-benchmarking
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 100
- parameters:
- - string:
- name: GERRIT_PATCHSET_REVISION
- default: refs/remotes/origin/linaro/gcc-7-branch
- description: 'Patched GCC revision'
- - string:
- name: GERRIT_BRANCH
- default: linaro-local/gcc-7-integration-branch
- description: 'Base GCC branch. Use "master" for master branches of all components, while "gcc-master" keeps release branches for other toolchain components'
- - string:
- name: gcc_orig
- default: gcc_patch_prev
- description: 'Original GCC revision'
- - string:
- name: abe_branch
- default: tested
- description: 'ABE revision to use'
- - string:
- name: scripts_branch
- default: tested
- description: 'jenkins-scripts revision to use'
- - string:
- name: target_list
- default: 'aarch64-linux-gnu arm-linux-gnueabihf'
- description: 'List of targets'
- - string:
- name: extension_list
- default: 'O2g'
- description: 'List of build profiles: O2, O3, O2g, O3g, Ofast, Os'
- - text:
- name: buildfarm_params
- default: |
- host_x86_64_languages=c,c++,fortran
- host_aarchXX_languages=c,c++,fortran
- runtests=
- try_bootstrap=false
- host_x86_64_excludecheck=gdb
- host_aarchXX_excludecheck=gdb
- extraconfig=
- rebuild=true
- dont_fail=false
- log_server=dev-01.tcwglab:logs
- build_container_tag=default
- binaries=true
- description: 'Buildfarm parameters, see tcwg-buildfarm job'
- - text:
- name: benchmark_params
- default: |
- bench_list=bzip2
- cflags=
- testmode=benchmark
- iterations=1
- sysroot=tarball
- fileserver=dev-01.tcwglab
- forceinstall=false
- run_profile=parallel3x3
- scripts_branch=master
- bmk_branch=master
- description: 'Benchmark parameters, see tcwg-benchmark job'
- disabled: false
- node: tcwg-bmk-bkp-01
- concurrent: true
- display-name: 'TCWG ZZZ GNU Patch Benchmarking'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/gcc.git
- refspec: +refs/changes/*:refs/remotes/changes/*
- basedir: gcc
- branches:
- - ${GERRIT_PATCHSET_REVISION}
- skip-tag: true
- wipe-workspace: false
- clean:
- before: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git
- choosing-strategy: gerrit
- - git:
- url: https://git.linaro.org/toolchain/abe.git
- refspec: +refs/changes/*:refs/remotes/changes/*
- basedir: abe
- branches:
- - $abe_branch
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- - 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
- shallow-clone: true
- wipe-workspace: true
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-coordinator
- - axis:
- type: dynamic
- name: target
- values:
- - target_list
- - axis:
- type: dynamic
- name: extension
- values:
- - extension_list
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'tcwg-benchmark'
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- # For git_rev_parse
- . ./jenkins-scripts/jenkins-helpers.sh
-
- # Gather revisions to build.
- abe_rev=$(git_rev_parse abe $abe_branch)
- gcc_patch_rev=$(git_rev_parse gcc $GERRIT_PATCHSET_REVISION)
- if [ x"$gcc_orig" = x"gcc_patch_prev" ]; then
- gcc_orig="$gcc_patch_rev^"
- fi
- gcc_orig_rev=$(git_rev_parse gcc $gcc_orig)
-
- # Get matching config.
- case ${GERRIT_BRANCH} in
- *gcc-4_9*)
- toolchainconf='--extraconfigdir ../config/gcc4_9'
- ;;
- *gcc-5*)
- toolchainconf='--extraconfigdir ../config/gcc5'
- ;;
- *gcc-6*)
- toolchainconf='--extraconfigdir ../config/gcc6'
- ;;
- *gcc-7*)
- toolchainconf='--extraconfigdir ../config/gcc7'
- ;;
- gcc-master)
- toolchainconf='--extraconfigdir ../config/latest-rel'
- ;;
- *)
- toolchainconf='--extraconfigdir ../config/gcc7 binutils=binutils-gdb.git/master glibc=glibc.git~master newlib=newlib.git~master'
- ;;
- esac
- cat > gcc_orig_params <<EOF
- override=$toolchainconf gcc=gcc.git@$gcc_orig_rev
- log_name=tcwg-gnu-patch-benchmarking-$gcc_orig_rev/$abe_rev/@@host@@.\$target
- target_list=$target
- abe_branch=$abe_rev
- scripts_branch=$scripts_branch
- displaytag=gnu-patch-benchmarking-ref-${gcc_orig_rev}
- EOF
- echo "$buildfarm_params" >> gcc_orig_params
-
- cat > gcc_patch_params <<EOF
- override=$toolchainconf gcc=gcc.git@$gcc_patch_rev
- log_name=tcwg-gnu-patch-benchmarking-$gcc_orig_patch/$abe_rev/@@host@@.\$target
- target_list=$target
- abe_branch=$abe_rev
- scripts_branch=$scripts_branch
- displaytag=gnu-patch-benchmarking-patch-${gcc_patch_rev}
- EOF
- echo "$buildfarm_params" >> gcc_patch_params
- - trigger-builds:
- - project: 'tcwg-buildfarm'
- parameter-factories:
- - factory: filebuild
- file-pattern: gcc_*_params
- block: true
- - shell: |
- #!/bin/bash
- set -ex
-
- case "$target" in
- "arm-"*) board="tk1_32" ;;
- "armv8l-"*) board="tx1_32" ;;
- *) board="tx1_64" ;;
- esac
- # Assuming cross build as a first step
- label=tcwg-x86_64-build
-
- # Extract triggered build numbers from comma separated list
- bf_buildnum=(${TRIGGERED_BUILD_NUMBERS_tcwg_buildfarm//,/ })
- REFNUM=${bf_buildnum[0]}
- PATCHNUM=${bf_buildnum[1]}
-
- BF_URL_PREFIX=https://ci.linaro.org/job/tcwg-buildfarm
- BF_URL_SUFIX=label=${label},target=${target}
-
- # Hackish way to get tarball name from json api
- TAR_REF_NAME=$(wget --quiet ${BF_URL_PREFIX}/${REFNUM}/${BF_URL_SUFIX}/api/json?pretty=true -O -| grep -P "fileName.*\"gcc-linaro-.*.tar.xz\"" | awk '{print $3}' | sed -e 's/[",]//g')
- TAR_PATCH_NAME=$(wget --quiet ${BF_URL_PREFIX}/${PATCHNUM}/${BF_URL_SUFIX}/api/json?pretty=true -O -| grep -P "fileName.*\"gcc-linaro-.*.tar.xz\"" | awk '{print $3}' | sed -e 's/[",]//g')
-
- rm -rf ref-tools
- mkdir -p ref-tools
- cd ref-tools
- wget --progress=dot -e dotbytes=2M "${BF_URL_PREFIX}/${REFNUM}/${BF_URL_SUFIX}/artifact/artifacts/${TAR_REF_NAME}"
- tar xJf gcc-linaro*.tar.xz
- REF_CCPREFIX=$(readlink -f gcc-linaro-*/bin)/${target}-
- cd ..
-
- rm -rf patch-tools
- mkdir -p patch-tools
- cd patch-tools
- wget --progress=dot -e dotbytes=2M "${BF_URL_PREFIX}/${PATCHNUM}/${BF_URL_SUFIX}/artifact/artifacts/${TAR_PATCH_NAME}"
- tar xJf gcc-linaro*.tar.xz
- PATCH_CCPREFIX=$(readlink -f gcc-linaro-*/bin)/${target}-
- cd ..
-
- cat > ref_params <<EOF
- toolchain_url=rsync://${NODE_NAME}.tcwglab:$REF_CCPREFIX
- target_list=$board
- extension=$extension
- EOF
- echo "$benchmark_params" >> ref_params
-
- cat > patch_params <<EOF
- toolchain_url=rsync://${NODE_NAME}.tcwglab:$PATCH_CCPREFIX
- target_list=$board
- extension=$extension
- EOF
- echo "$benchmark_params" >> patch_params
- - trigger-builds:
- - project: 'tcwg-benchmark'
- property-file: ref_params
- block: true
- - trigger-builds:
- - project: 'tcwg-benchmark'
- property-file: patch_params
- block: true
- - shell: |
- #!/bin/bash
- set -ex
-
- case "$target" in
- "arm-"*) board="tk1_32" ;;
- "armv8l-"*) board="tx1_32" ;;
- *) board="tx1_64" ;;
- esac
-
- # Extract triggered build numbers from comma separated list
- bf_buildnum=(${TRIGGERED_BUILD_NUMBERS_tcwg_benchmark//,/ })
- REFNUM=${bf_buildnum[0]}
- PATCHNUM=${bf_buildnum[1]}
-
- cat > res_params << EOF
- results_ref=${board}/tcwg-benchmark-${REFNUM}
- results_id=${board}/tcwg-benchmark-${PATCHNUM}
- EOF
-
- cat > cmp_params << EOF
- resultsref=${board}/tcwg-benchmark-${REFNUM}
- resultseval=${board}/tcwg-benchmark-${PATCHNUM}
- EOF
- - trigger-builds:
- - project: 'tcwg-benchmark-results'
- property-file: res_params
- block: false
- - project: 'tcwg-benchmark-compare'
- property-file: cmp_params
- block: false
diff --git a/tcwg-infra-update-home.yaml b/tcwg-infra-update-home.yaml
deleted file mode 100644
index 3ca26352ae..0000000000
--- a/tcwg-infra-update-home.yaml
+++ /dev/null
@@ -1,80 +0,0 @@
-- job:
- name: tcwg-infra-update-home
- project-type: freestyle
- defaults: global
- description: |
- This job tracks changes to /home/tcwg-* files in ci/dockerfiles.git
- repository and updates machines in machine_list with new versions
- of the files. The files are .gitconfig, .ssh/*, etc.
- The update is done by fetching files from the repo using git-archive,
- and untarring them to /home directories of tcwg-infra users.
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 100
- parameters:
- - label:
- name: nodes
- default: tcwg-bmk
- all-nodes: true
- matching-label: 'allCases'
- node-eligibility: 'all'
- description: 'Machines to run on'
- disabled: false
- concurrent: true
- display-name: 'TCWG CCC Update TCWG Infra /home files'
- workspace: workspace/tcwg-infra-update-home_$EXECUTOR_NUMBER/$NODE_NAME
- scm:
- - git:
- url: https://review.linaro.org/ci/dockerfiles
- refspec: refs/heads/master
- branches:
- - refs/heads/master
- skip-tag: true
- clean:
- before: true
- choosing-strategy: gerrit
- basedir: dockerfiles
- triggers:
- - gerrit:
- server-name: 'review.linaro.org'
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'ci/dockerfiles'
- branches:
- - branch-pattern: 'master'
- file-paths:
- - compare-type: ANT
- pattern: tcwg-base/home-data/tcwg-buildslave/**
- - compare-type: ANT
- pattern: tcwg-base/home-data/tcwg-benchmark/**
- silent-start: true
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'tcwg-benchmark'
- - build-name:
- name: '#${BUILD_NUMBER}-${NODE_NAME}'
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
- rsync -aL dockerfiles/tcwg-base/home-data/$USER/ \
- tcwg-${NODE_NAME##tcwg-bmk-}.tcwglab:/home/$USER/
- publishers:
- - email-ext:
- recipients: tcwg-validation@linaro.org
- aborted: true
diff --git a/tcwg-llvm-build.yaml b/tcwg-llvm-build.yaml
new file mode 100644
index 0000000000..dcd55112f8
--- /dev/null
+++ b/tcwg-llvm-build.yaml
@@ -0,0 +1,185 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-dev-build.yaml.in and tcwg-dev-build/tcwg-llvm-build.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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-llvm-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - string:
+ name: release
+ default: ''
+ description: 'Release number. Ex. 4.0.1'
+ - string:
+ name: candidate
+ default: 'git-ref=main'
+ description: 'RC number. Ex. 1, 2, final'
+ - string:
+ name: toolchain
+ default: ''
+ description: 'URL of the toolchain to use. This needs to be a tarball with a /bin directory inside with either GCC or LLVM from make install'
+ - string:
+ name: compiler
+ default: 'clang'
+ description: 'Override the default system compiler. Only used if "toolchain" is empty.'
+ - bool:
+ name: useninja
+ default: true
+ description: 'Whether or not to use ninja for the release (works for releases > 9.0.0)'
+ - bool:
+ name: testsuite
+ default: true
+ description: 'Whether or not to trigger a test-suite with this build.'
+ - string:
+ name: build_container_tag
+ default: 'lts_1'
+ description: 'Type of image to use in the container: lts_1, lts, ...'
+ - label:
+ name: builder
+ default: tcwg-x86_64-build
+ description: 'Jenkins label to build on; determines host of the toolchain'
+ - string:
+ name: scripts_branch
+ default: tested
+ description: 'Scripts revision to use'
+ disabled: false
+ concurrent: true
+ display-name: 'TCWG AAA llvm linux Build'
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - timeout:
+ timeout: 1800
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - build-name:
+ name: '#$BUILD_NUMBER-$release-$candidate/$builder'
+ - workspace-cleanup
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ set -ex
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ # Until we figure out a way to use heavy-job with different weights
+ # based on the builder, we hardcode to one.
+ buildjobs=1
+
+ # Select builder arch/type/container
+ case ${builder} in
+ tcwg-x86_64-build|tcwg-x86_64-cam)
+ builder_arch=amd64
+ buildjobs=8 # 1 slot is 32/4
+ ;;
+ tcwg-tk1_32-build|tcwg-llvm_tk1-*)
+ builder_arch=armhf
+ buildjobs=3 # TK1s only have 4 cores and little RAM
+ ;;
+ tcwg-jade*)
+ builder_arch=arm64
+ buildjobs=64 # Jades have lots of cores
+ ;;
+ *) echo "ERROR: Unsupported label: $builder"; exit 1 ;;
+ esac
+
+ # Sets the system compiler
+ compiler_option=''
+ if [ "${toolchain:+set}" != "set" ] && [ "${compiler:+set}" = "set" ]; then
+ compiler_option="--compiler=${compiler}"
+ fi
+
+ # Trigger toolchain name
+ toolchain_file="${WORKSPACE}/llvm.params.toolchain"
+ toolchain_file_option=""
+ if ${twostage} || ${testsuite}; then
+ toolchain_file_option="--toolchain-file=$toolchain_file"
+ fi
+
+ # Setup job parameters and run (for now, just pretend to run)
+ ret=0
+ ./jenkins-scripts/docker-run.sh \
+ --arch ${builder_arch} \
+ --distro ${build_container_tag} \
+ -- \
+ bash -x ./jenkins-scripts/tcwg-llvm-release.sh \
+ --workspace=${WORKSPACE} \
+ --release=${release} \
+ --candidate=${candidate} \
+ --buildjobs=${buildjobs} \
+ --toolchain=${toolchain} \
+ --use-ninja=${useninja} \
+ $toolchain_file_option $compiler_option \
+ > artifacts/release.log 2>&1 || ret=$?
+
+ if [ $ret -ne 0 ]; then
+ touch llvm.failed
+ fi
+
+ # Chained jobs
+ if ${testsuite}; then
+ echo "target_list=$builder" > llvm.params.testsuite
+ cat $toolchain_file >> llvm.params.testsuite
+ fi
+
+ # failure is handled by conditional step on llvm.failed
+ # so that the testsuite job is always triggered
+ exit 0
+ - conditional-step:
+ condition-kind: file-exists
+ condition-filename: llvm.params.testsuite
+ steps:
+ - trigger-builds:
+ - project: 'tcwg-llvm-testsuite'
+ property-file: llvm.params.testsuite
+ current-parameters: true
+ block: true
+ - conditional-step:
+ condition-kind: file-exists
+ condition-filename: llvm.failed
+ steps:
+ - shell: "exit 1"
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+# checksum: cdb8d674f740a34207177d820ba56794
diff --git a/tcwg-llvm-patch-benchmarking.yaml b/tcwg-llvm-patch-benchmarking.yaml
deleted file mode 100644
index 155ebff139..0000000000
--- a/tcwg-llvm-patch-benchmarking.yaml
+++ /dev/null
@@ -1,250 +0,0 @@
-- job:
- name: tcwg-llvm-patch-benchmarking
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 100
- parameters:
- - string:
- name: GERRIT_PATCHSET_REVISION
- default:
- description: 'Patched revision'
- - string:
- name: GERRIT_PROJECT
- default: 'toolchain/llvm'
- description: 'Project whoich contains the patch (llvm, clang, ...)'
- - string:
- name: GERRIT_BRANCH
- default: 'master'
- description: 'Base branch'
- - string:
- name: reference
- default: patch_prev
- description: 'Reference version: patch_prev or sha1'
- - string:
- name: projects
- default: 'clang'
- description: 'Which projects to build with $GERRIT_PROJECT -- clang compiler-rt lld libcxx libcxxabi libunwind openmp'
- - string:
- name: target_list
- default: 'tcwg-apm_64-build tcwg-apm_32-build'
- description: 'List of targets -- tcwg-tk1_32-build tcwg-apm_32-build tcwg-apm_64-build'
- - string:
- name: extension_list
- default: 'O2g'
- description: 'List of build profiles: O2, O3, O2g, O3g, Ofast, Os'
- - string:
- name: scripts_branch
- default: 'refs/remotes/origin/tested'
- description: 'jenkins-scripts branch to use'
- - text:
- name: build_params
- default: |
- revision=
- toolchain=
- build_type=Release
- cmake_flags=
- build_container_tag=lts
- twostage=false
- tessuite=false
- compiler=clang
- repository=https://git.linaro.org/toolchain/llvm
- description: 'Build parameters, see tcwg-llvm-staged-build job'
- - text:
- name: benchmark_params
- default: |
- bench_list=bzip2
- cflags=
- testmode=benchmark
- iterations=1
- sysroot=
- fileserver=dev-01.tcwglab
- forceinstall=false
- run_profile=parallel3x3
- bmk_branch=master
- description: 'Benchmark parameters, see tcwg-benchmark job'
- disabled: true
- node: tcwg-bmk-bkp-01
- concurrent: true
- display-name: 'TCWG ZZZ LLVM Patch Benchmarking'
- scm:
- - git:
- url: http://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- basedir: jenkins-scripts
- branches:
- - ${scripts_branch}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-coordinator
- - axis:
- type: dynamic
- name: target
- values:
- - target_list
- - axis:
- type: dynamic
- name: extension
- values:
- - extension_list
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'tcwg-benchmark'
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- . ./jenkins-scripts/jenkins-helpers.sh
- REFERENCES="$HOME/llvm-reference"
-
- # Gather revisions to build.
- patched_proj=$(basename $GERRIT_PROJECT)
- patch_rev=$(git_rev_parse $REFERENCES/$patched_proj $GERRIT_PATCHSET_REVISION)
- if [ x"$reference" = x"patch_prev" ]; then
- reference="$patch_rev^"
- fi
- proj_ref_rev=$(git_rev_parse $REFERENCES/$patched_proj $reference)
-
- patched_proj_list=${patched_proj}@${patch_rev}
- ref_proj_list=${patched_proj}@${proj_ref_rev}
-
- for proj in $projects ; do
- sha1=$(git_rev_parse $REFERENCES/$proj $GERRIT_BRANCH)
- patched_proj_list+=" ${proj}@${sha1}"
- ref_proj_list+=" ${proj}@${sha1}"
- done
-
- cat > build_ref_params <<EOF
- projects=$ref_proj_list
- target_list=$target
- scripts_branch=$scripts_branch
- EOF
- echo "$build_params" >> build_ref_params
-
- cat > build_patch_params <<EOF
- projects=$patched_proj_list
- target_list=$target
- scripts_branch=$scripts_branch
- EOF
- echo "$build_params" >> build_patch_params
- - trigger-builds:
- - project: 'tcwg-llvm-staged-build'
- parameter-factories:
- - factory: filebuild
- file-pattern: build_*_params
- block: true
- - shell: |
- #!/bin/bash
- set -ex
-
- case "$target" in
- "tcwg-apm_64"*) board="tx1_64" ;;
- "tcwg-apm_32"*) board="tx1_32" ;;
- *) board="tk1_32" ;;
- esac
-
- # Extract triggered build numbers from comma separated list
- bf_buildnum=(${TRIGGERED_BUILD_NUMBERS_tcwg_llvm_staged_build//,/ })
- REFNUM=${bf_buildnum[0]}
- PATCHNUM=${bf_buildnum[1]}
-
- BF_URL_PREFIX=https://ci.linaro.org/job/tcwg-llvm-staged-build
- BF_URL_SUFIX=label=${target},target=${target}
-
- # Hackish way to get tarball name from json api
- TAR_REF_NAME=$(wget --quiet ${BF_URL_PREFIX}/${REFNUM}/${BF_URL_SUFIX}/api/json?pretty=true -O -| grep -P "fileName.*\".*.tar.xz\"" | awk '{print $3}' | sed -e 's/[",]//g')
- TAR_PATCH_NAME=$(wget --quiet ${BF_URL_PREFIX}/${PATCHNUM}/${BF_URL_SUFIX}/api/json?pretty=true -O -| grep -P "fileName.*\".*.tar.xz\"" | awk '{print $3}' | sed -e 's/[",]//g')
-
- rm -rf ref-tools
- mkdir -p ref-tools
- cd ref-tools
- wget --progress=dot -e dotbytes=2M "${BF_URL_PREFIX}/${REFNUM}/${BF_URL_SUFIX}/artifact/${TAR_REF_NAME}"
- tar xJf *.tar.xz
- REF_CCPREFIX=$(readlink -f clang+*/bin)/
- cd ..
-
- rm -rf patch-tools
- mkdir -p patch-tools
- cd patch-tools
- wget --progress=dot -e dotbytes=2M "${BF_URL_PREFIX}/${PATCHNUM}/${BF_URL_SUFIX}/artifact/${TAR_PATCH_NAME}"
- tar xJf *.tar.xz
- PATCH_CCPREFIX=$(readlink -f clang+*/bin)/
- cd ..
-
- cat > ref_params <<EOF
- toolchain_url=rsync://${NODE_NAME}.tcwglab:$REF_CCPREFIX
- target_list=$board
- extension=$extension
- builder=$target
- scripts_branch=$scripts_branch
- EOF
- echo "$benchmark_params" >> ref_params
-
- cat > patch_params <<EOF
- toolchain_url=rsync://${NODE_NAME}.tcwglab:$PATCH_CCPREFIX
- target_list=$board
- extension=$extension
- builder=$target
- scripts_branch=$scripts_branch
- EOF
- echo "$benchmark_params" >> patch_params
- - trigger-builds:
- - project: 'tcwg-benchmark'
- property-file: ref_params
- block: true
- - trigger-builds:
- - project: 'tcwg-benchmark'
- property-file: patch_params
- block: true
- - shell: |
- #!/bin/bash
- set -ex
-
- case "$target" in
- "tcwg-apm_64"*) board="tx1_64" ;;
- "tcwg-apm_32"*) board="tx1_32" ;;
- *) board="tk1_32" ;;
- esac
-
- # Extract triggered build numbers from comma separated list
- bf_buildnum=(${TRIGGERED_BUILD_NUMBERS_tcwg_benchmark//,/ })
- REFNUM=${bf_buildnum[0]}
- PATCHNUM=${bf_buildnum[1]}
-
- cat > res_params << EOF
- results_ref=${board}/tcwg-benchmark-${REFNUM}
- results_id=${board}/tcwg-benchmark-${PATCHNUM}
- EOF
-
- cat > cmp_params << EOF
- resultsref=${board}/tcwg-benchmark-${REFNUM}
- resultseval=${board}/tcwg-benchmark-${PATCHNUM}
- EOF
- - trigger-builds:
- - project: 'tcwg-benchmark-results'
- property-file: res_params
- block: false
- - project: 'tcwg-benchmark-compare'
- property-file: cmp_params
- block: false
diff --git a/tcwg-llvm-precommit.yaml b/tcwg-llvm-precommit.yaml
index ea595527d8..64295124c8 100644
--- a/tcwg-llvm-precommit.yaml
+++ b/tcwg-llvm-precommit.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-llvm-release.yaml b/tcwg-llvm-release.yaml
index 391aa82b2e..ac0a38741d 100644
--- a/tcwg-llvm-release.yaml
+++ b/tcwg-llvm-release.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -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
@@ -29,14 +29,14 @@
- string:
name: build_container_tag
default: 'lts_1'
- description: 'Type of image to use in the container: bionic, focal.'
+ description: 'Type of image to use in the container: lts_1, lts, ...'
- string:
name: compiler
default: 'clang'
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
@@ -90,7 +90,7 @@
sequential: false
wrappers:
- timeout:
- timeout: 1800
+ timeout: 3840
- timestamps
- ssh-agent-credentials:
# tcwg-buildslave user id
@@ -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-llvm-staged-build.yaml b/tcwg-llvm-staged-build.yaml
index a12e098ba8..f3cac334c5 100644
--- a/tcwg-llvm-staged-build.yaml
+++ b/tcwg-llvm-staged-build.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -33,7 +33,7 @@
- string:
name: build_container_tag
default: 'lts'
- description: 'Type of image to use in the container: bionic, focal.'
+ description: 'Type of image to use in the container: lts_1, lts, ...'
- bool:
name: twostage
default: false
diff --git a/tcwg-llvm-testsuite.yaml b/tcwg-llvm-testsuite.yaml
index b6e308deba..4040ab6a16 100644
--- a/tcwg-llvm-testsuite.yaml
+++ b/tcwg-llvm-testsuite.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -25,7 +25,7 @@
- string:
name: build_container_tag
default: 'lts'
- description: 'Type of image to use in the container: bionic, focal.'
+ description: 'Type of image to use in the container: lts_1, lts, ...'
- string:
name: target_list
default: 'tcwg-tk1_32-build tcwg-apm_64-build'
diff --git a/tcwg-llvm_woa-build.yaml b/tcwg-llvm_woa-build.yaml
new file mode 100644
index 0000000000..fc86ec695e
--- /dev/null
+++ b/tcwg-llvm_woa-build.yaml
@@ -0,0 +1,81 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-dev-build.yaml.in and tcwg-dev-build/tcwg-llvm_woa-build.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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-llvm_woa-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - string:
+ name: release
+ default: 'main'
+ description: 'Release build ID (13.0.0-rc1, 13.0.0) or git branch/sha1'
+ - choice:
+ name: build_type
+ choices:
+ - test
+ - release
+ - label:
+ name: builder
+ default: tcwg-surface
+ description: 'Jenkins label to build on; determines host of the toolchain'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ disabled: false
+ concurrent: true
+ display-name: 'TCWG AAA llvm windows Build'
+ # Save bytes in limited 250-byte windows PATHs
+ workspace: ws/tdb$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - timeout:
+ timeout: 1800
+ - timestamps
+ - build-name:
+ name: '#$BUILD_NUMBER-$release/$builder'
+ - workspace-cleanup
+ builders:
+ - batch: |
+ jenkins-scripts\tcwg-llvm-release.bat %release% %build_type%
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+# checksum: 2248d72fadb3e02bf7bfd7a7778cf04b
diff --git a/tcwg-lnt-check.yaml b/tcwg-lnt-check.yaml
new file mode 100644
index 0000000000..0f631241bd
--- /dev/null
+++ b/tcwg-lnt-check.yaml
@@ -0,0 +1,77 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-sanity-check.yaml.in and tcwg-sanity-check/tcwg-lnt-check.def. Do not edit.
+- job:
+ name: tcwg-lnt-check
+ project-type: freestyle
+ defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
+ disabled: false
+ node: tcwg-x86_64-build
+
+ display-name: 'TCWG LNT check'
+ scm:
+ # Get a stable copy of the check script
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ branches:
+ - origin/master
+ basedir: jenkins-scripts-master
+ # Then this is what we're actually checking
+ # (which might also be jenkins-scripts, but Gerrit's version)
+ - git:
+ url: https://review.linaro.org/${GERRIT_PROJECT}
+ refspec: ${GERRIT_REFSPEC}
+ branches:
+ - ${GERRIT_BRANCH}
+ skip-tag: true
+ clean:
+ before: true
+ choosing-strategy: gerrit
+ basedir: ${GERRIT_PROJECT}
+ triggers:
+ - gerrit:
+ server-name: 'review.linaro.org'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: true
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'toolchain/llvm-lnt'
+ branches:
+ - branch-compare-type: 'PLAIN'
+ branch-pattern: 'linaro-local/master'
+ wrappers:
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}-${GERRIT_PROJECT}'
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ # Shellcheck source= directives are relative to
+ # the CWD, so run from inside the folder.
+ # GERRIT_PROJECT is for example toolchain/jenkins-scripts
+ cd ${GERRIT_PROJECT}
+ ../../jenkins-scripts-master/docker-run.sh --distro focal -- ../../jenkins-scripts-master/tcwg-lnt/lnt-check.sh
+ # Aka some files had issues
+ # Any other non-zero means we called shellcheck incorrectly
+ unstable-return: 1
+# checksum: 088d4f73722e3d703155c92a79317711
diff --git a/tcwg-lnt-report-check_gcc.yaml b/tcwg-lnt-report-check_gcc.yaml
new file mode 100644
index 0000000000..0db989413c
--- /dev/null
+++ b/tcwg-lnt-report-check_gcc.yaml
@@ -0,0 +1,38 @@
+- job:
+ name: tcwg-lnt-report-check_gcc
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ disabled: false
+ node: tcwg-coordinator
+ display-name: 'TCWG Submit LNT reports for gcc_check results'
+ concurrent: false
+ triggers:
+ - timed: '@daily'
+ wrappers:
+ - timestamps
+ builders:
+ - shell: |
+ #!/usr/bin/env bash
+ set -ex
+
+ [ -d "scripts" ] \
+ || git clone https://git.linaro.org/people/antoine.moynault/scripts.git
+
+ (
+ cd scripts
+ git fetch origin master
+ git checkout FETCH_HEAD
+ )
+
+ ./scripts/lnt-gcc_check-report.sh
diff --git a/tcwg-lnt-run-spec-codesize.yaml b/tcwg-lnt-run-spec-codesize.yaml
new file mode 100644
index 0000000000..267f584d39
--- /dev/null
+++ b/tcwg-lnt-run-spec-codesize.yaml
@@ -0,0 +1,56 @@
+- job:
+ name: tcwg-lnt-run-spec-codesize
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ disabled: false
+ node: tcwg-jade-03
+ display-name: 'TCWG LNT test spec codesize'
+ concurrent: false
+ parameters:
+ - string:
+ name: llvm_rev
+ default: ''
+ description: 'llvm revision'
+ triggers:
+ - timed: '@daily'
+ wrappers:
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ builders:
+ - shell: |
+ #!/usr/bin/env bash
+ set -ex
+
+ [ -d "scripts" ] \
+ || git clone https://git.linaro.org/people/antoine.moynault/scripts.git
+
+ (
+ cd scripts
+ git fetch origin master
+ git checkout FETCH_HEAD
+ )
+
+ [ -d "jenkins-scripts" ] \
+ || git clone https://git.linaro.org/toolchain/jenkins-scripts.git
+
+ (
+ cd jenkins-scripts
+ git fetch origin master
+ git checkout FETCH_HEAD
+ )
+
+ ./jenkins-scripts/docker-run.sh --distro jammy -- ./scripts/lnt-run-spec-codesize.sh
diff --git a/tcwg-make-and-test-release.yaml b/tcwg-make-and-test-release.yaml
deleted file mode 100644
index ee5b271fe6..0000000000
--- a/tcwg-make-and-test-release.yaml
+++ /dev/null
@@ -1,186 +0,0 @@
-- job:
- name: tcwg-make-and-test-release
- project-type: multijob
- 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
- parameters:
- - string:
- name: gcc_src
- default: 'gcc-linaro-5.3-2016.02.tar.xz'
- description: 'The source of GCC. Specify as it would be passed to abe.sh, either a source tarballs, git branch and revision, or a URL of a tarball e.g., "gcc-linaro-5.3-2016.02.tar.xz"'
- - string:
- name: binutils_src
- default: ''
- description: 'A optional revision of binutils to use for this release, e.g., "binutils-gdb.git~linaro_binutils-2_25-branch"'
- - string:
- name: glibc_src
- default: ''
- description: 'An optional revision of Glibc to use for this release, e.g., "glibc.git~linaro/2.21/master"'
- - string:
- name: release_name
- default: ''
- description: 'Optional release string to use, e.g., "2016.05", "2016.05-rc3", "2016.05-1", "2016.05-1-rc2". The default is to extract the release string from the gcc_src field'
- - string:
- name: toolchain_config
- default: 'default'
- description: 'Toolchain version config, e.g., "default", "gcc5", or "gcc6"'
- - string:
- name: target_list
- default: 'aarch64-elf aarch64-linux-gnu aarch64-linux-gnu_ilp32 aarch64_be-elf aarch64_be-linux-gnu armv8l-linux-gnueabihf arm-eabi arm-linux-gnueabi arm-linux-gnueabihf armeb-eabi armeb-linux-gnueabi armeb-linux-gnueabihf'
- description: 'List of targets to use'
- - string:
- name: abe_branch
- default: tested
- description: 'ABE revision to test'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts branch to use'
- - choice:
- name: debug
- choices:
- - none
- - abe
- - yaml
- description: "Level of debug information: none - No debugging information, abe - ABE debugging information, yaml - tcwg-make-release.yaml debug information (and exit)."
- - string:
- name: fileserver
- default: dev-01.tcwglab
- description: 'Remote file server for logs and binaries'
- - bool:
- name: testrelease
- default: 'true'
- description: 'Run test-release if make-release is successful'
- - string:
- name: tcwg_regression_rev
- default: 'master'
- description: 'tcwg-regression revision to use'
- - bool:
- name: dryrun
- default: false
- description: 'Dry-run, do nothing, just print steps'
- disabled: false
- node: tcwg-coordinator
- retry-count: 3
- concurrent: true
- display-name: 'TCWG Make and Test Release'
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="release_name"}'
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- builders:
- - shell: |
- #!/bin/bash
-
- tcwg_release=${release_name}
- # If there is no release_name set, extract release information from the gcc_src
- if test "${release_name:+set}" != "set"; then
- case "$gcc_src" in
- *.tar.xz)
- tcwg_release="$(basename $gcc_src | cut -d '-' -f4-)"
- tcwg_release=${tcwg_release%".tar.xz"}
- ;;
- gcc.git~*)
- tcwg_release="$(echo $gcc_src | grep -o -e '-\(20[0-9]\{2\}\.[01][0-9].*\)' )"
- tcwg_release=${tcwg_release#-}
- ;;
- *)
- echo "ERROR: Could not find tcwg release"
- exit 1
- ;;
- esac
- fi
-
- if [ x"${tcwg_release}" = x"" ]; then
- echo "ERROR: Could not find tcwg release"
- exit 1
- fi
-
- # Extract the gcc_version information from gcc_src to determine
- # which directory to copy the tarballs into.
- case "$gcc_src" in
- *.tar.*) # src tarballs usually named like this
- gcc_version=$(basename $gcc_src | awk -F '-' '{ print $3 }')
- ;;
- *.git~*) # building from git branch or tag
- gcc_version=$(basename $gcc_src | awk -F '-' '{ print $2 }')
- ;;
- *)
- echo "ERROR: could not extract version from gcc_src"
- exit 1
- ;;
- esac
- if ! echo "${gcc_version}" | grep -xEq '[0-9]+\.[0-9]+(\.[0-9]+)?'; then
- echo "ERROR: gcc version '${gcc_version}' invalid"
- exit 1
- fi
-
- gcc_major="`echo $gcc_version | awk -F '.' '{ print $1 }'`"
- gcc_minor="`echo $gcc_version | awk -F '.' '{ print $2 }'`"
- tcwg_version="${gcc_major}.${gcc_minor}"
- if test ${gcc_major} -lt 5; then
- gcc_point="`echo $gcc_version | awk -F '.' '{ print $2 }'`"
- tcwg_version="${gcc_major}.${gcc_minor}.${gcc_point}"
- fi
-
- buildid=`printf '%04d' ${BUILD_NUMBER}`
-
- binariesdir=releases/binaries/${tcwg_version}-${tcwg_release}-${buildid}
- logsdir=releases/logs/${tcwg_version}-${tcwg_release}-${buildid}
- cat << EOF > make_release_parameters
- binariesdir=${binariesdir}
- logsdir=${logsdir}
- dryrun=$dryrun
- EOF
-
- echo "NOTE: Make-release job parameters:"
- cat make_release_parameters
-
- cat << EOF > test_release_parameters
- tarball_url=http://${fileserver}/~tcwg-buildslave/${binariesdir}
- release=${tcwg_release}
- dryrun=$dryrun
- EOF
-
- echo "NOTE: Test-release job parameters:"
- cat test_release_parameters
-
- exit 0
-
- - multijob:
- name: 'Check Make Release'
- condition: COMPLETED
- projects:
- - name: tcwg-make-release
- current-parameters: true
- property-file: make_release_parameters
- - multijob:
- name: 'Check Test Release'
- condition: COMPLETED
- projects:
- - name: tcwg-test-release-matrix
- current-parameters: true
- property-file: test_release_parameters
- publishers:
- - email-ext:
- recipients: 'tcwg-validation@linaro.org'
- aborted: true
- send-to:
- requester
- recipients
diff --git a/tcwg-make-gcc-release-tag.yaml b/tcwg-make-gcc-release-tag.yaml
index 4dff7872f2..d938ae5828 100644
--- a/tcwg-make-gcc-release-tag.yaml
+++ b/tcwg-make-gcc-release-tag.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-make-release.yaml b/tcwg-make-release.yaml
deleted file mode 100644
index cdedddef34..0000000000
--- a/tcwg-make-release.yaml
+++ /dev/null
@@ -1,388 +0,0 @@
-# http://docs.openstack.org/infra/jenkins-job-builder/definition.html
-- job:
- name: tcwg-make-release
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 10
- parameters:
- - string:
- name: gcc_src
- default: 'gcc-linaro-5.3-2016.02.tar.xz'
- description: 'The source of GCC. Specify as it would be passed to abe.sh, either a source tarball, git branch and revision, git tag, or a URL of a tarball e.g., "gcc-linaro-5.3-2016.02.tar.xz"'
- - string:
- name: binutils_src
- default: ''
- description: 'Optional revision of binutils to use for this release, e.g., "binutils-gdb.git~linaro_binutils-2_25-branch"'
- - string:
- name: glibc_src
- default: ''
- description: 'Optional revision of Glibc to use for this release, e.g., "glibc.git~linaro/2.21/master"'
- - string:
- name: release_name
- default: ''
- description: 'Optional release string to use, e.g., "2016.05", "2016.05-rc3", "2016.05-1", "2016.05-1-rc2". The default is to extract the release string from the gcc_src field'
- - string:
- name: toolchain_config
- default: 'default'
- description: 'Toolchain version config, e.g., "default", "gcc5", or "gcc6". Relative to abe config/ dir'
- - string:
- name: target_list
- default: 'aarch64-elf aarch64-linux-gnu aarch64-linux-gnu_ilp32 aarch64_be-elf aarch64_be-linux-gnu armv8l-linux-gnueabihf arm-eabi arm-linux-gnueabi arm-linux-gnueabihf armeb-eabi armeb-linux-gnueabi armeb-linux-gnueabihf'
- description: 'List of targets to use'
- - string:
- name: builder_arch_list
- default: 'amd64'
- description: 'List of builder architectures to use (amd64)'
- - string:
- name: abe_branch
- default: tested
- description: 'ABE revision to test'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts branch to use'
- - choice:
- name: debug
- choices:
- - none
- - abe
- - yaml
- description: "Level of debug information: none - No debugging information, abe - ABE debugging information, yaml - tcwg-make-release.yaml debug information (and exit)."
- - string:
- name: fileserver
- default: dev-01.tcwglab
- description: 'Remote file server for logs and binaries'
- - bool:
- name: testrelease
- default: 'true'
- description: 'Run test-release if make-release is successful'
- - string:
- name: tcwg_regression_rev
- default: 'master'
- description: 'tcwg-regression revision to use'
- - string:
- name: binariesdir
- default: ''
- description: 'Optional upload dir for binaries on fileserver. If empty, a suitable value is computed by the script'
- - string:
- name: logsdir
- default: ''
- description: 'Optional upload dir for logs on fileserver. If empty, a suitable value is computed by the script'
- - bool:
- name: dryrun
- default: false
- description: 'Dry-run, do nothing, just print steps'
- disabled: false
- node: tcwg-coordinator
- retry-count: 3
- concurrent: true
- display-name: 'TCWG Make Release'
- workspace: workspace/tcwg-make-release_$EXECUTOR_NUMBER
- child-workspace: .
- scm:
- - git:
- url: https://git.linaro.org/toolchain/abe.git
- refspec: +refs/changes/*:refs/remotes/changes/*
- branches:
- - ${abe_branch}
- skip-tag: true
- shallow-clone: true
- basedir: abe
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-x86_64-build
- - axis:
- type: dynamic
- name: builder_arch
- values:
- - builder_arch_list
- - axis:
- type: dynamic
- name: target
- values:
- - target_list
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 300
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="release_name"}'
- - workspace-cleanup:
- include:
- - "*"
- dirmatch: true
- builders:
- - shell: |
- #!/bin/bash
- set -e
-
- if test x"${debug}" = x"abe"; then
- shell="/bin/bash -x"
- set -x
- else
- shell="/bin/bash"
- fi
-
- if test x"${debug}" = x"yaml"; then
- echo WORKSPACE: $WORKSPACE
- echo CURRENTDIR: `pwd`
- ls -lR
- exit 0
- fi
-
- git clone -b $scripts_branch --depth 1 https://git.linaro.org/toolchain/jenkins-scripts
- . jenkins-scripts/jenkins-helpers.sh
-
- # Start build container
- builder=$(print_host_for_node $NODE_NAME)
- bash -x ./jenkins-scripts/start-container-docker.sh --arch ${builder_arch} --distro default --session-host ${builder} > build-container.sh
-
- # Define CONTAINER, CONTAINER_CLEANUP, session_host and session_port
- . ./build-container.sh
- BUILD_CONTAINER="${CONTAINER}"
- BUILD_CONTAINER_CLEANUP="${CONTAINER_CLEANUP}"
-
- # Make sure to cleanup build container if something goes
- # wrong when preparing the rest of the environment
- if [ x"${BUILD_CONTAINER_CLEANUP}" != x ]; then
- CONTAINERS_CLEANUP="${BUILD_CONTAINER_CLEANUP}"
- trap "${CONTAINERS_CLEANUP}" EXIT
- fi
-
- tcwg_release=${release_name}
- # If there is no release_name set, extract release information from the gcc_src
- if test "${release_name:+set}" != "set"; then
- case "$gcc_src" in
- *.tar.xz)
- tcwg_release="$(basename $gcc_src | cut -d '-' -f4-)"
- tcwg_release=${tcwg_release%".tar.xz"}
- ;;
- gcc.git~*)
- tcwg_release="$(echo $gcc_src | grep -o -e '-\(20[0-9]\{2\}\.[01][0-9].*\)' )"
- tcwg_release=${tcwg_release#-}
- ;;
- *)
- echo "ERROR: Could not find tcwg release"
- exit 1
- ;;
- esac
- fi
-
- if [ x"${tcwg_release}" = x"" ]; then
- echo "ERROR: Could not find tcwg release"
- exit 1
- fi
-
- case "$target:$toolchain_config:$tcwg_release" in
- aarch64-linux-gnu_ilp32:gcc7:*-rc*)
- # Building ILP32 toolchain as release candidate of gcc7.
- ;;
- aarch64-linux-gnu_ilp32:*)
- echo "SKIPPING ILP32 TOOLCHAIN IN NON-RC/NON-GCC7 BUILD" | tee MakeRelease.log
- xz MakeRelease.log
- exit 0
- ;;
- esac
-
- # This job always uses Canadian cross builds and builds 2
- # toolchains at a time when run on a amd64 slave.
- # When run on a i386 host, no need to duplicate the
- # Canadian cross build for mingw.
- canadian=
- case ${builder_arch} in
- amd64)
- host=x86_64
- canadian=--canadian ;;
- i386)
- host=i686
- canadian=
- echo "ERROR: i386 hosts no longer unsupported"
- exit 1
- ;;
- *)
- echo "ERROR: unsupported label: ${label}"
- exit 1
- ;;
- esac
-
- # FIXME. MakeRelease copies to a directory, while
- # TestRelease downloads from a URL, so both dirs differ
- # depending on httpd's DocumentRoot
- # Setting url_prefix can be removed once test-release is
- # started after make-release has completed.
- case ${binariesdir} in
- releases/binaries/*)
- url_prefix=$(echo \~${USER}/${binariesdir})
- ;;
- "")
- # Compute default binariesdirs/logsdir in case they
- # are not supplied by the user. Normally they are set
- # by tcwg-make-and-test-release.
-
- # Extract the gcc_version information from gcc_src to determine
- # which directory to copy the tarballs into.
- case "$gcc_src" in
- *.tar.*) # src tarballs usually named like this
- gcc_version=$(basename $gcc_src | awk -F '-' '{ print $3 }')
- ;;
- *.git~*) # building from git branch or tag
- gcc_version=$(basename $gcc_src | awk -F '-' '{ print $2 }')
- ;;
- *)
- echo "ERROR: could not extract version from gcc_src"
- exit 1
- ;;
- esac
- if ! echo "${gcc_version}" | grep -xEq '[0-9]+\.[0-9]+(\.[0-9]+)?'; then
- echo "ERROR: gcc version '${gcc_version}' invalid"
- exit 1
- fi
-
- gcc_major="`echo $gcc_version | awk -F '.' '{ print $1 }'`"
- gcc_minor="`echo $gcc_version | awk -F '.' '{ print $2 }'`"
- tcwg_version="${gcc_major}.${gcc_minor}"
- if test ${gcc_major} -lt 5; then
- gcc_point="`echo $gcc_version | awk -F '.' '{ print $2 }'`"
- tcwg_version="${gcc_major}.${gcc_minor}.${gcc_point}"
- fi
-
- buildid=`printf '%04d' ${BUILD_NUMBER}`
-
- binariesdir=releases/binaries/${tcwg_version}-${tcwg_release}-${buildid}
- logsdir=releases/logs/${tcwg_version}-${tcwg_release}-${buildid}
-
- url_prefix=$(echo \~${USER}/${binariesdir})
- ;;
- *)
- echo Unsupported binariesdir: ${binariesdir}. Fix the job.
- ;;
- esac
-
- if $dryrun; then
- echo DRYRUN: ${BUILD_CONTAINER} "cd ${WORKSPACE} && ${shell} ${WORKSPACE}/jenkins-scripts/MakeRelease.job --abedir ${WORKSPACE}/abe --workspace ${WORKSPACE} ${canadian} --target ${target}${tcwg_release:+ --release_name ${tcwg_release}} --fileserver ${fileserver} --toolchainconfig ${toolchain_config} --binariesdir ${binariesdir}/${target} --logsdir ${logsdir}/${target} --buildnumber ${BUILD_NUMBER} ${gcc_src:+ --gcc ${gcc_src}} ${binutils_src:+ --binutils ${binutils_src}} ${glibc_src:+ --glibc ${glibc_src}}"
-
- # Dry-run: generate fake test jobs
- if $testrelease; then
- tarball_linux="tarball_linux-${host}-${target}"
- tarball_linux_url="http://${fileserver}/${url_prefix}/${target}/${tarball_linux}"
- cat << EOF > tcwg.params.linux
- tarball_url=${tarball_linux_url}
- release=${tcwg_version}-${tcwg_release}
- target=${host}-${target}
- dryrun=$dryrun
- EOF
-
- if test x"${canadian}" = x"--canadian"; then
- tarball_mingw="tarball_mingwx-${host}-${target}"
- tarball_mingw_url="http://${fileserver}/${url_prefix}/${target}/${tarball_mingw}"
- cat << EOF > tcwg.params.mingw
- tarball_url=${tarball_mingw_url}
- release=${tcwg_version}-${tcwg_release}
- target=mingw-${target}
- dryrun=$dryrun
- EOF
- fi
- fi
- # Keep Jenkins happy
- touch MakeRelease-DRYRUN.log.xz
- exit 0
- fi
-
- ${BUILD_CONTAINER} "cd ${WORKSPACE} && ${shell} ${WORKSPACE}/jenkins-scripts/MakeRelease.job --abedir ${WORKSPACE}/abe --workspace ${WORKSPACE} ${canadian} --target ${target}${tcwg_release:+ --release_name ${tcwg_release}} --fileserver ${fileserver} --toolchainconfig ${toolchain_config} --binariesdir ${binariesdir}/${target} --logsdir ${logsdir}/${target} --buildnumber ${BUILD_NUMBER} ${gcc_src:+ --gcc ${gcc_src}} ${binutils_src:+ --binutils ${binutils_src}} ${glibc_src:+ --glibc ${glibc_src}}"
- if test $? -gt 0; then
- exit 1
- fi
-
- # tarballs are written in ${WORKSPACE}/snapshots, which is
- # not shared between host and container. So, we need to
- # execute the find command inside the container.
-
- if test x"${canadian}" = x"--canadian"; then
- linux_artifacts=artifacts1.txt
- mingw_artifacts=artifacts2.txt
- else
- linux_artifacts=artifacts2.txt
- fi
-
- # We always build a Linux tarball, even in canadian cross mode
- tarball_linux=$(grep "^toolchain=" ${WORKSPACE}/${linux_artifacts} | cut -d = -f 2-)
- if test x"${tarball_linux}" = x"" -o ! -f "${tarball_linux}"; then
- echo "ERROR: no binary Linux tarball found!"
- exit 1
- fi
-
- if test x"${canadian}" = x"--canadian"; then
- tarball_mingw=$(grep "^toolchain=" ${WORKSPACE}/${mingw_artifacts} | cut -d = -f 2-)
- if test x"${tarball_mingw}" = x"" -o ! -f "${tarball_mingw}"; then
- echo "ERROR: no binary MingW tarball found!"
- exit 1
- fi
- fi
-
- if $testrelease; then
- tarball_linux="`basename ${tarball_linux}`"
- tarball_linux_url="http://${fileserver}/${url_prefix}/${target}/${tarball_linux}"
- cat << EOF > tcwg.params.linux
- tarball_url=${tarball_linux_url}
- release=${tcwg_version}-${tcwg_release}
- target=${host}-${target}
- EOF
-
- if test x"${canadian}" = x"--canadian"; then
- tarball_mingw="`basename ${tarball_mingw}`"
- tarball_mingw_url="http://${fileserver}/${url_prefix}/${target}/${tarball_mingw}"
- cat << EOF > tcwg.params.mingw
- tarball_url=${tarball_mingw_url}
- release=${tcwg_version}-${tcwg_release}
- target=mingw-${target}
- EOF
- fi
- fi
-
- - conditional-step:
- condition-kind: file-exists
- condition-filename: tcwg.params.linux
- steps:
- - trigger-builds:
- - project: 'tcwg-test-release'
- property-file: tcwg.params.linux
- current-parameters: true
- block: false
- - conditional-step:
- condition-kind: file-exists
- condition-filename: tcwg.params.mingw
- steps:
- - trigger-builds:
- - project: 'tcwg-test-release'
- property-file: tcwg.params.mingw
- current-parameters: true
- block: false
- publishers:
- - archive:
- artifacts: 'MakeRelease*.log.xz'
- latest-only: false
- - email-ext:
- recipients: 'tcwg-validation@linaro.org'
- aborted: true
- send-to:
- requester
- recipients
diff --git a/tcwg-make-source-tarball.yaml b/tcwg-make-source-tarball.yaml
deleted file mode 100644
index 7731943088..0000000000
--- a/tcwg-make-source-tarball.yaml
+++ /dev/null
@@ -1,104 +0,0 @@
-- job:
- name: tcwg-make-source-tarball
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 10
- num-to-keep: 10
- parameters:
- - string:
- name: tag
- default: ''
- description: 'GCC tagged version to use (like linaro-6.3-2017.03).'
- - string:
- name: upload_dir
- default: ''
- description: 'Destination directory on dev-01 (Artifacts only when empty).'
- disabled: false
- node: tcwg-x86_64-dev-01
- retry-count: 3
- concurrent: true
- display-name: 'TCWG Make GCC Source Tarball'
- scm:
- - git:
- url: http://git.linaro.org/toolchain/gcc.git
- refspec: +refs/heads/*:refs/remotes/origin/*
- branches:
- - refs/heads/master
- basedir: gcc_src
- per-build-tag: false
- shallow-clone: false
- wipe-workspace: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git
- timeout: 120
- clean:
- before: true
- execution-strategy:
- sequential: false
- wrappers:
- - timeout:
- timeout: 300
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}-${tag}'
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- rm -rf jenkins-scripts
- git clone --depth 1 https://git.linaro.org/toolchain/jenkins-scripts
- . jenkins-scripts/jenkins-helpers.sh
-
- rm -rf tcwg-release-tools
- git clone -b automation --depth 1 https://git.linaro.org/toolchain/tcwg-release-tools
-
- rm -rf release_build
- mkdir -p ${WORKSPACE}/release_build
-
- rm -rf artifacts
- mkdir -p ${WORKSPACE}/artifacts
-
- # Start build container
- host=$(print_host_for_node $NODE_NAME)
- bash ${WORKSPACE}/jenkins-scripts/start-container-docker.sh --arch amd64 --session-host ${host} > build-container.sh
-
- # Define CONTAINER, CONTAINER_CLEANUP, session_host and session_port
- . ./build-container.sh
- BUILD_CONTAINER="${CONTAINER}"
- BUILD_CONTAINER_CLEANUP="${CONTAINER_CLEANUP}"
-
- # Make sure to cleanup build container if something goes
- # wrong when preparing the test environment
- if [ x"${BUILD_CONTAINER_CLEANUP}" != x ]; then
- CONTAINERS_CLEANUP="${BUILD_CONTAINER_CLEANUP}"
- trap "${CONTAINERS_CLEANUP}" EXIT
- fi
-
- # Setup job parameters and run
- ${BUILD_CONTAINER} "sudo apt-get update ; sudo apt-get -y install libgmp-dev libmpfr-dev libmpc-dev"
- ${BUILD_CONTAINER} "bash -x ${WORKSPACE}/tcwg-release-tools/tcwg-release-tarball.sh -g ${WORKSPACE}/gcc_src -r ${WORKSPACE}/release_build -t ${tag}"
-
- cp release_build/gcc-${tag}/*.tar.* artifacts/.
- cp release_build/gcc-${tag}/gcc-${tag}/ChangeLog.linaro artifacts/.
-
- if [ "${upload_dir:+set}" = "set" ]; then
- mkdir -p "$upload_dir"
- rsync -a artifacts/ "$upload_dir"
- fi
- publishers:
- - archive:
- artifacts: 'artifacts/*'
- latest-only: false
diff --git a/tcwg-publish-files.yaml b/tcwg-publish-files.yaml
index cac41387c1..a6724fc526 100644
--- a/tcwg-publish-files.yaml
+++ b/tcwg-publish-files.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-publish-snapshot.yaml b/tcwg-publish-snapshot.yaml
index 53d6d9de77..462098f7d4 100644
--- a/tcwg-publish-snapshot.yaml
+++ b/tcwg-publish-snapshot.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg-reboot.yaml b/tcwg-reboot.yaml
index 12f948a49d..ebb408ff7d 100644
--- a/tcwg-reboot.yaml
+++ b/tcwg-reboot.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -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-regression-detection.yaml b/tcwg-regression-detection.yaml
deleted file mode 100644
index d01143874f..0000000000
--- a/tcwg-regression-detection.yaml
+++ /dev/null
@@ -1,235 +0,0 @@
-- job:
- name: tcwg-regression-detection
- project-type: multijob
- 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
- parameters:
- - string:
- name: abe_test_list
- default: 'abe-tests-checkout'
- description: 'List of ABE tests to perform'
- - string:
- name: release_target_list
- default: 'arm-linux-gnueabihf'
- description: 'List of release targets to use'
- - string:
- name: ref_abe_rev
- default: ''
- description: 'Reference ABE revision to use. Empty (default) means previous revision'
- - string:
- name: ref_scripts_branch
- default: ''
- description: 'Reference scripts branch to test. Empty (default) means previous revision'
- - string:
- name: ref_distro
- default: 'lts'
- description: 'Distro image to use in reference builds.'
- - string:
- name: abe_branch
- default: master
- description: 'ABE branch to test'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts branch to test'
- - string:
- name: distro
- default: 'lts'
- description: 'Distro image to use'
- - bool:
- name: dryrun
- default: false
- description: 'Dry-run, do nothing, just print steps'
- disabled: false
- node: tcwg-coordinator
- retry-count: 3
- concurrent: true
- display-name: 'TCWG Regression Detection'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/abe.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- branches:
- - $abe_branch
- wipe-workspace: false
- clean:
- before: true
- scm-name: abe
- skip-tag: true
- - git:
- url: https://git.linaro.org/toolchain/abe-tests.git
- basedir: abe-tests
- branches:
- - refs/heads/master
- wipe-workspace: false
- clean:
- before: true
- scm-name: abe-tests
- skip-tag: true
- - git:
- url: https://git.linaro.org/toolchain/gcc-compare-results.git
- basedir: gcc-compare-results
- branches:
- - refs/heads/master
- wipe-workspace: false
- clean:
- before: true
- scm-name: gcc-compare-results
- skip-tag: true
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- basedir: jenkins-scripts
- branches:
- - $scripts_branch
- wipe-workspace: false
- clean:
- before: true
- scm-name: jenkins-scripts
- skip-tag: true
- triggers:
- - gerrit:
- server-name: 'review.linaro.org'
- trigger-on:
- - change-merged-event
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'toolchain/abe-tests'
- branches:
- - branch-pattern: 'master'
- - project-compare-type: 'PLAIN'
- project-pattern: 'toolchain/gcc-compare-results'
- branches:
- - branch-pattern: 'master'
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}'
- builders:
- - shell: |
- #!/bin/bash
-
- mkdir -p artifacts/
-
- . jenkins-scripts/jenkins-helpers.sh
-
- # Abe's revisions to test
- # TODO: gather reference from previous build instead of using N-1.
- cur_abe_rev=$(git_rev_parse . HEAD)
- ref_abe_rev=$(git_rev_parse . ${ref_abe_rev:-HEAD~})
-
- cur_scripts_branch=$(git_rev_parse jenkins-scripts HEAD)
- ref_scripts_branch=$(git_rev_parse jenkins-scripts ${ref_scripts_branch:-HEAD~})
-
- echo "abe_revision=$cur_abe_rev" > artifacts/infos.txt
-
- # TODO: compute ref and eval jenkins-scripts versions
-
- cat << EOF > buildfarm_cmp_parameters
- ref_override=--extraconfigdir ../config/gcc7 gcc=gcc.git~linaro/gcc-7-branch
- eval_override=--extraconfigdir ../config/gcc7 gcc=gcc.git~linaro/gcc-7-branch
- ref_abe_branch=$ref_abe_rev
- eval_abe_branch=$cur_abe_rev
- ref_scripts_branch=$ref_scripts_branch
- eval_scripts_branch=$cur_scripts_branch
- ref_distro=$ref_distro
- eval_distro=$distro
- target_list=aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf
- displaytag=reg-detection-${BUILD_NUMBER}
- dryrun=$dryrun
- EOF
-
- echo "NOTE: Buildfarm cmp job parameters:"
- cat buildfarm_cmp_parameters
-
- cat << EOF > dev_build_parameters
- release_name=reg-detection-${BUILD_NUMBER}
- target=${release_target_list%% *}
- version=default
- scripts_branch=$cur_scripts_branch
- extra_options=abe_branch=$cur_abe_rev
- EOF
-
- echo "NOTE: Dev build job parameters:"
- cat dev_build_parameters
-
- # TODO: Change fileserver and/or location to avoid mixing "real"
- # releases and regression detection builds.
- # testrelease=false means that tcwg-make-release should
- # not spawn tcwg-test-release itself. This is taken care
- # of by tcwg-make-and-test-release.
- # keep 6.2-2016.11 regtest tag until we make one for 7.1
- cat << EOF > make_test_release_parameters
- gcc_src=http://releases.linaro.org/components/toolchain/gcc-linaro/7.2-2017.11/gcc-linaro-7.2-2017.11.tar.xz
- release_name=2017.11-regtest-${BUILD_NUMBER}
- toolchain_config=gcc7
- abe_branch=$cur_abe_rev
- fileserver=dev-01.tcwglab
- target_list=$release_target_list
- testrelease=false
- tcwg_regression_rev=master
- dryrun=$dryrun
- EOF
-
- echo "NOTE: Make-release job parameters:"
- cat make_test_release_parameters
-
- rm -f llvm_release_parameters
- if ! git --git-dir=jenkins-scripts/.git diff --exit-code --name-only \
- GIT_PREVIOUS_COMMIT_3 GIT_COMMIT_3 -- \
- start-container-docker.sh build-container.sh tcwg-llvm-release.sh; then
- cat << EOF > llvm_release_parameters
- release=7.0.0
- candidate=final
- build_container_tag=lts_1
- EOF
- fi
- - multijob:
- name: 'Check Manifest'
- condition: ALWAYS
- projects:
- - name: tcwg-abe-test
- predefined-parameters: |
- test_list=$abe_test_list
- - multijob:
- name: 'Check build/testsuite and releases'
- condition: COMPLETED
- projects:
- - name: tcwg-buildfarm-cmp
- property-file: buildfarm_cmp_parameters
- - name: tcwg-dev-build
- property-file: dev_build_parameters
- - name: tcwg-make-and-test-release
- property-file: make_test_release_parameters
- predefined-parameters: |
- target_list='arm-linux-gnueabihf'
- - trigger-builds:
- - project: tcwg-llvm-release
- predefined-parameters: |
- target_list='arm-linux-gnueabihf'
- parameter-factories:
- - factory: filebuild
- file-pattern: llvm_release_parameters
- publishers:
- - archive:
- artifacts: 'artifacts/*'
- latest-only: false
- - email-ext:
- recipients: 'yvan.roux@linaro.org tcwg-validation@linaro.org'
- aborted: true
diff --git a/tcwg-report-stale-rr-jobs.yaml b/tcwg-report-stale-rr-jobs.yaml
index 7fcb4c88a0..a19070dd07 100644
--- a/tcwg-report-stale-rr-jobs.yaml
+++ b/tcwg-report-stale-rr-jobs.yaml
@@ -9,12 +9,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts-master
@@ -57,6 +56,10 @@
- timeout:
timeout: 300
- timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
builders:
- shell: |
#!/bin/bash
@@ -65,9 +68,20 @@
rm -rf artifacts
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
+ bash -x ./jenkins-scripts/tcwg-report-stale-rr-jobs.sh --days "$days" \
+ --output artifacts/stale-jobs.log
+ bash -x ./jenkins-scripts/tcwg-report-stale-rr-jobs.sh \
+ --classify artifacts/stale-jobs.log \
+ --output artifacts/stale-jobs-analysis.log || true
+ n_lines=$(cat artifacts/stale-jobs.log | wc -l)
+ ./jenkins-scripts/tcwg-report-ci-status.sh > artifacts/ci-status.log
+ if [ x"$n_lines" != x"0" ]; then
+ (
+ echo "Jobs with no new results in $days days ($n_lines entries):"
+ cat artifacts/ci-status.log
+ cat artifacts/stale-jobs-analysis.log
+ cat artifacts/stale-jobs.log
+ ) > artifacts/email-body.txt
exit 1
fi
publishers:
@@ -75,11 +89,10 @@
artifacts: 'artifacts/**'
latest-only: false
- email-ext:
- recipients: maxim.kuvyrkov@linaro.org
+ recipients: 'maxim.kuvyrkov@linaro.org, laurent.alfonsi@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: a020d23dcdda834e74fb3a69446e7e1e
diff --git a/tcwg-report-stale-rr-jobs.yaml.in b/tcwg-report-stale-rr-jobs.yaml.in
index d52df66c5e..3c371ab190 100644
--- a/tcwg-report-stale-rr-jobs.yaml.in
+++ b/tcwg-report-stale-rr-jobs.yaml.in
@@ -23,6 +23,10 @@
- timeout:
timeout: 300
- timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
builders:
- shell: |
#!/bin/bash
@@ -31,9 +35,20 @@
rm -rf artifacts
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
+ bash -x ./jenkins-scripts/tcwg-report-stale-rr-jobs.sh --days "$days" \
+ --output artifacts/stale-jobs.log
+ bash -x ./jenkins-scripts/tcwg-report-stale-rr-jobs.sh \
+ --classify artifacts/stale-jobs.log \
+ --output artifacts/stale-jobs-analysis.log || true
+ n_lines=$(cat artifacts/stale-jobs.log | wc -l)
+ ./jenkins-scripts/tcwg-report-ci-status.sh > artifacts/ci-status.log
+ if [ x"$n_lines" != x"0" ]; then
+ (
+ echo "Jobs with no new results in $days days ($n_lines entries):"
+ cat artifacts/ci-status.log
+ cat artifacts/stale-jobs-analysis.log
+ cat artifacts/stale-jobs.log
+ ) > artifacts/email-body.txt
exit 1
fi
publishers:
@@ -41,10 +56,9 @@
artifacts: 'artifacts/**'
latest-only: false
- email-ext:
- recipients: maxim.kuvyrkov@linaro.org
+ recipients: 'maxim.kuvyrkov@linaro.org, laurent.alfonsi@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-sanity-check.yaml.in b/tcwg-sanity-check.yaml.in
new file mode 100644
index 0000000000..28e3a04e2a
--- /dev/null
+++ b/tcwg-sanity-check.yaml.in
@@ -0,0 +1,95 @@
+- job:
+#if CHECK_TYPE_shell_scripts_sanity
+ name: tcwg-shell-scripts-sanity-check
+#elif CHECK_TYPE_lnt
+ name: tcwg-lnt-check
+#endif
+ project-type: freestyle
+ defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
+ disabled: false
+ node: tcwg-x86_64-build
+
+#if CHECK_TYPE_shell_scripts_sanity
+ display-name: 'TCWG shell scripts sanity check'
+#elif CHECK_TYPE_lnt
+ display-name: 'TCWG LNT check'
+#endif
+ scm:
+ # Get a stable copy of the check script
+ - git:
+ url: https://git.linaro.org/toolchain/jenkins-scripts.git
+ branches:
+ - origin/master
+ basedir: jenkins-scripts-master
+ # Then this is what we're actually checking
+ # (which might also be jenkins-scripts, but Gerrit's version)
+ - git:
+ url: https://review.linaro.org/${GERRIT_PROJECT}
+ refspec: ${GERRIT_REFSPEC}
+ branches:
+ - ${GERRIT_BRANCH}
+ skip-tag: true
+ clean:
+ before: true
+ choosing-strategy: gerrit
+ basedir: ${GERRIT_PROJECT}
+ triggers:
+ - gerrit:
+ server-name: 'review.linaro.org'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: true
+ projects:
+#if CHECK_TYPE_shell_scripts_sanity
+ - project-compare-type: 'REG_EXP'
+ project-pattern: 'toolchain\/(jenkins-scripts|bmk-scripts)'
+ branches:
+ - branch-compare-type: 'PLAIN'
+ branch-pattern: 'master'
+#elif CHECK_TYPE_lnt
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'toolchain/llvm-lnt'
+ branches:
+ - branch-compare-type: 'PLAIN'
+ branch-pattern: 'linaro-local/master'
+#endif
+ wrappers:
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}-${GERRIT_PROJECT}'
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ # Shellcheck source= directives are relative to
+ # the CWD, so run from inside the folder.
+ # GERRIT_PROJECT is for example toolchain/jenkins-scripts
+ cd ${GERRIT_PROJECT}
+#if CHECK_TYPE_shell_scripts_sanity
+ ../../jenkins-scripts-master/docker-run.sh -- ../../jenkins-scripts-master/sanity-check.sh
+#elif CHECK_TYPE_lnt
+ ../../jenkins-scripts-master/docker-run.sh --distro focal -- ../../jenkins-scripts-master/tcwg-lnt/lnt-check.sh
+#endif
+ # Aka some files had issues
+ # Any other non-zero means we called shellcheck incorrectly
+ unstable-return: 1
diff --git a/tcwg-sanity-check/tcwg-lnt-check.def b/tcwg-sanity-check/tcwg-lnt-check.def
new file mode 100644
index 0000000000..9c6fcbf4b7
--- /dev/null
+++ b/tcwg-sanity-check/tcwg-lnt-check.def
@@ -0,0 +1 @@
+-v CHECK_TYPE=lnt
diff --git a/tcwg-sanity-check/tcwg-shell-scripts-sanity-check.def b/tcwg-sanity-check/tcwg-shell-scripts-sanity-check.def
new file mode 100644
index 0000000000..395e327b5e
--- /dev/null
+++ b/tcwg-sanity-check/tcwg-shell-scripts-sanity-check.def
@@ -0,0 +1 @@
+-v CHECK_TYPE=shell_scripts_sanity
diff --git a/tcwg-shell-scripts-sanity-check.yaml b/tcwg-shell-scripts-sanity-check.yaml
index ebda7b8779..73563c0a62 100644
--- a/tcwg-shell-scripts-sanity-check.yaml
+++ b/tcwg-shell-scripts-sanity-check.yaml
@@ -1,3 +1,4 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-sanity-check.yaml.in and tcwg-sanity-check/tcwg-shell-scripts-sanity-check.def. Do not edit.
- job:
name: tcwg-shell-scripts-sanity-check
project-type: freestyle
@@ -10,8 +11,15 @@
anonymous:
- job-read
- job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
disabled: false
node: tcwg-x86_64-build
+
display-name: 'TCWG shell scripts sanity check'
scm:
# Get a stable copy of the check script
@@ -62,7 +70,8 @@
# the CWD, so run from inside the folder.
# GERRIT_PROJECT is for example toolchain/jenkins-scripts
cd ${GERRIT_PROJECT}
- ../../jenkins-scripts-master/docker-run.sh --distro lts -- ../../jenkins-scripts-master/sanity-check.sh
+ ../../jenkins-scripts-master/docker-run.sh -- ../../jenkins-scripts-master/sanity-check.sh
# Aka some files had issues
# Any other non-zero means we called shellcheck incorrectly
unstable-return: 1
+# checksum: 026510132c28ef8e0bd44df8dfba2501
diff --git a/tcwg-test-release-matrix.yaml b/tcwg-test-release-matrix.yaml
deleted file mode 100644
index b54234af5e..0000000000
--- a/tcwg-test-release-matrix.yaml
+++ /dev/null
@@ -1,182 +0,0 @@
-- job:
- name: tcwg-test-release-matrix
- project-type: matrix
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 100
- parameters:
- - string:
- name: tarball_url
- default: 'http://releases.linaro.org/components/toolchain/binaries/latest-7'
- description: 'The GCC binary tarball to test'
- - string:
- name: scripts_branch
- default: refs/remotes/origin/master
- description: 'Scripts revision to use '
- - string:
- name: build_container_tag
- default: 'lts_1'
- description: 'Distro to use for the container: bionic, focal.'
- - string:
- name: release
- default:
- description: 'Release name'
- - string:
- name: target_list
- default: 'aarch64-elf aarch64-linux-gnu aarch64-linux-gnu_ilp32 aarch64_be-elf aarch64_be-linux-gnu armv8l-linux-gnueabihf arm-eabi arm-linux-gnueabi arm-linux-gnueabihf armeb-eabi armeb-linux-gnueabi armeb-linux-gnueabihf'
- description: 'List of targets to use'
- - string:
- name: tcwg_regression_rev
- default: 'master'
- description: 'tcwg-regression revision to use'
- - bool:
- name: debug
- default: false
- description: 'Whether to enable bash debugging output.'
- - bool:
- name: dryrun
- default: false
- description: 'Dry-run, do nothing, just print steps'
- disabled: false
- node: tcwg-coordinator
- retry-count: 3
- concurrent: true
- display-name: 'TCWG Test Release matrix'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/changes/*:refs/remotes/changes/*
- branches:
- - ${scripts_branch}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- axes:
- - axis:
- type: slave
- name: label
- values:
- - tcwg-x86_64-cam
- - axis:
- type: dynamic
- name: target
- values:
- - target_list
- execution-strategy:
- sequential: false
- triggers:
- - gerrit:
- server-name: 'review.linaro.org'
- gerrit-build-successful-codereview-value: 1
- gerrit-build-failed-codereview-value: -1
- projects:
- - project-compare-type: 'PLAIN'
- project-pattern: 'toolchain/tcwg-regression'
- branches:
- - branch-pattern: 'master'
- silent-start: true
- wrappers:
- - timeout:
- timeout: 300
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="release"}-${ENV,var="target"}'
- builders:
- - shell: |
- #!/bin/bash
- set -e
-
- if test x${debug} = x"true"; then
- shell="/bin/bash -x"
- set -x
- else
- shell="/bin/bash"
- fi
-
- . jenkins-helpers.sh
-
- if [ x"$GERRIT_REFSPEC" != x"" ]; then
- tcwg_regression_rev="$GERRIT_REFSPEC"
- fi
-
- if test x"${tarball_url}" = x; then
- echo "ERROR: no binary tarball specified!"
- exit 1
- fi
-
- case "$target:$toolchain_config:release" in
- aarch64-linux-gnu_ilp32:gcc7:*-rc*)
- # Building ILP32 toolchain as release candidate of gcc7.
- ;;
- aarch64-linux-gnu_ilp32:*)
- echo "SKIPPING ILP32 TOOLCHAIN IN NON-RC/NON-GCC7 BUILD"
- exit 0
- ;;
- esac
-
- case ${label} in
- *32*)
- host=i686
- builder_arch=i386
- echo "i386 containers no longer supported: ${label}"
- exit 1
- ;;
- *64*)
- host=x86_64
- builder_arch=amd64
- ;;
- *)
- echo "Unsupported slave type: ${label}"
- exit 1
- ;;
- esac
-
- # Start build container
- builder=$(print_host_for_node $NODE_NAME)
- build_container_type=docker
- bash -x ${WORKSPACE}/start-container-${build_container_type}.sh --arch ${builder_arch} --distro ${build_container_tag} --session-host ${builder} --dryrun ${dryrun} > build-container.sh
-
- # Define CONTAINER, CONTAINER_CLEANUP, session_host and session_port
- . ./build-container.sh
- BUILD_CONTAINER="${CONTAINER}"
- BUILD_CONTAINER_CLEANUP="${CONTAINER_CLEANUP}"
-
- # Make sure to cleanup build container if something goes wrong
- if [ x"${BUILD_CONTAINER_CLEANUP}" != x ]; then
- CONTAINERS_CLEANUP="${BUILD_CONTAINER_CLEANUP}"
- trap "${CONTAINERS_CLEANUP}" EXIT
- fi
-
- # We want to run the mingw tests even if the linux toolchain fails its tests, so avoid exiting because of 'set -e'
- res=0
- container_exec ${shell} ${WORKSPACE}/TestRelease.job --tarball "${tarball_url}/${target}/gcc-linaro-*-*-${host}_${target}.tar.xz" --workspace ${WORKSPACE}/linux --tcwg-regression-rev ${tcwg_regression_rev} || res=$?
-
- # Test the mingw toolchain on 32 bit host only
- case ${label} in
- *32*)
- host=i686-mingw32
- container_exec ${shell} ${WORKSPACE}/TestRelease.job --tarball "${tarball_url}/${target}/gcc-linaro-*-*-${host}_${target}.tar.xz" --workspace ${WORKSPACE}/mingw --tcwg-regression-rev ${tcwg_regression_rev} || res=$?
- ;;
- esac
-
- exit $res
- publishers:
- - email-ext:
- recipients: 'tcwg-validation@linaro.org'
- aborted: true
- send-to:
- requester
- recipients
diff --git a/tcwg-test-release.yaml b/tcwg-test-release.yaml
deleted file mode 100644
index 986db761d1..0000000000
--- a/tcwg-test-release.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-- job:
- name: tcwg-test-release
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 60
- num-to-keep: 100
- parameters:
- - string:
- name: tarball_url
- default: ''
- description: 'The GCC binary tarball to test'
- - string:
- name: scripts_branch
- default: refs/remotes/origin/master
- description: 'Scripts revision to use '
- - string:
- name: build_container_tag
- default: 'lts_1'
- description: 'Distro to use for the container: bionic, focal.'
- - string:
- name: release
- default:
- description: 'Release name, only displayed in job name'
- - string:
- name: target
- default:
- description: 'Target, only displayed in job name'
- - string:
- name: tcwg_regression_rev
- default: 'master'
- description: 'tcwg-regression revision to use'
- - bool:
- name: debug
- default: false
- description: 'Whether to enable bash debugging output.'
- - bool:
- name: dryrun
- default: false
- description: 'Dry-run, do nothing, just print steps'
- disabled: false
- node: tcwg-x86_64-cam
- retry-count: 3
- concurrent: true
- workspace: /home/tcwg-buildslave/workspace/tcwg-test-release/$release/$target
- display-name: 'TCWG Test Release'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/changes/*:refs/remotes/changes/*
- branches:
- - ${scripts_branch}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: true
- wrappers:
- - timeout:
- timeout: 300
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}-${ENV,var="release"}-${ENV,var="target"}'
- builders:
- - shell: |
- #!/bin/bash
-
- . jenkins-helpers.sh
-
- if test x${debug} = x"true"; then
- shell="/bin/bash -x"
- set -x
- else
- shell="/bin/bash"
- fi
-
- # tarball_url is read from the tcwg.params file, which is
- # setup by the MakeRelease job.
- if test x"${tarball_url}" = x; then
- echo "ERROR: no binary tarball specified!"
- exit 1
- fi
-
- # Start build container
- builder=$(print_host_for_node $NODE_NAME)
- build_container_type=docker
- # Use tarball name to decide if we use an i386 container or an amd64 one
- tarball_file=$(basename ${tarball_url})
- case ${tarball_file} in
- *-i686*)
- builder_arch=i386
- echo "ERROR: i386 containers no longer supported for tarball ${tarball_file}"
- exit 1
- ;;
- *-x86_64*) builder_arch=amd64 ;;
- *)
- echo "ERROR: could not determine container type from tarball ${tarball_file}"
- exit 1
- ;;
- esac
- bash -x ${WORKSPACE}/start-container-${build_container_type}.sh --arch ${builder_arch} --distro ${build_container_tag} --session-host ${builder} --dryrun ${dryrun} > build-container.sh
-
- # Define CONTAINER, CONTAINER_CLEANUP, session_host and session_port
- . ./build-container.sh
- BUILD_CONTAINER="${CONTAINER}"
- BUILD_CONTAINER_CLEANUP="${CONTAINER_CLEANUP}"
-
- # Make sure to cleanup build container if something goes wrong
- if [ x"${BUILD_CONTAINER_CLEANUP}" != x ]; then
- CONTAINERS_CLEANUP="${BUILD_CONTAINER_CLEANUP}"
- trap "${CONTAINERS_CLEANUP}" EXIT
- fi
-
- ${BUILD_CONTAINER} "cd ${WORKSPACE} && ${shell} ${WORKSPACE}/TestRelease.job --tarball ${tarball_url} --tcwg-regression-rev ${tcwg_regression_rev}"
-
- exit $?
- publishers:
- - email-ext:
- recipients: 'tcwg-validation@linaro.org'
- aborted: true
- send-to:
- requester
- recipients
diff --git a/tcwg-trigger-binutils.yaml b/tcwg-trigger-binutils.yaml
deleted file mode 100644
index afc2920fc6..0000000000
--- a/tcwg-trigger-binutils.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-- job:
- name: tcwg-trigger-binutils
- 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
- parameters:
- - string:
- name: ref_build
- default: 'previous'
- description: 'Reference build for comparison, e.g., "lastSuccess" or "previous" or job number or empty string to skip comparison'
- disabled: false
- node: tcwg-x86_64-dev-02
- retry-count: 3
- concurrent: false
- display-name: 'TCWG Trigger Binutils'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/binutils-gdb.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- clean:
- before: true
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timeout:
- timeout: 1200
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- shopt -s extglob
-
- cat << EOF > binutils_parameters
- log_name=${JOB_NAME}-${BUILD_NUMBER}/\$builder_type.\$target.\$bfd
- dont_fail=true
- bfd_list=--enable-64-bit-bfd=no
- EOF
-
- if [ x"$ref_build" != x ] ; then
- case "$ref_build" in
- lastSuccess) ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastSuccessfulBuild/buildNumber") ;;
- previous) ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastCompletedBuild/buildNumber") ;;
- [1-9]*([0-9])) ref_build_num="$ref_build" ;;
- *) echo "ERROR: Cannot handle ref_build: $ref_build"; exit 1 ;;
- esac
-
- # Scrambled indentation because of here-doc
- cat << EOF > compare_results_parameters
- ref_logs=${JOB_NAME}-${ref_build_num}
- new_logs=${JOB_NAME}-${BUILD_NUMBER}
- pass_thresh=0.66
- show_results=false
- EOF
- else
- rm -f compare_results_parameters
- fi
- - trigger-builds:
- - project: tcwg-binutils
- property-file: binutils_parameters
- block: true
- - conditional-step:
- condition-kind: file-exists
- condition-filename: compare_results_parameters
- steps:
- - trigger-builds:
- - project: tcwg-compare-results
- property-file: compare_results_parameters
- block: true
- publishers:
- - workspace-cleanup:
- include:
- - "*_parameters"
- - email-ext:
- recipients: 'christophe.lyon@linaro.org'
- aborted: true
diff --git a/tcwg-trigger-buildapp.yaml b/tcwg-trigger-buildapp.yaml
deleted file mode 100644
index f6b3107b08..0000000000
--- a/tcwg-trigger-buildapp.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-- job:
- name: tcwg-trigger-buildapp
- 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
- disabled: true
- node: tcwg-coordinator
- retry-count: 3
- concurrent: false
- display-name: 'TCWG Trigger Buildapp'
- triggers:
- # Every day at 2:02am
- - timed: '2 2 * * *'
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- cat << EOF > buildapp_parameters
- toolchain_url="http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/"
- app_list="linux+multi_v7"
- boot=true
- target_list="arm-linux-gnueabihf"
- EOF
-
- - trigger-builds:
- - project: tcwg-buildapp
- property-file: buildapp_parameters
- block: true
- publishers:
- - workspace-cleanup:
- include:
- - "*_parameters"
- - email-ext:
- recipients: 'christophe.lyon@linaro.org'
- aborted: true
diff --git a/tcwg-trigger-gcc-trunk-ubsan.yaml b/tcwg-trigger-gcc-trunk-ubsan.yaml
deleted file mode 100644
index 08c489dbc4..0000000000
--- a/tcwg-trigger-gcc-trunk-ubsan.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-- job:
- name: tcwg-trigger-gcc-trunk-ubsan
- 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
- disabled: false
- node: tcwg-coordinator
- retry-count: 3
- concurrent: false
- display-name: 'TCWG Trigger GCC trunk bootstrap with UBSAN'
- triggers:
- # Every Saturday at 20:00
- - timed: '0 20 * * 6'
- wrappers:
- - timeout:
- timeout: 1440
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- cat << EOF > buildfarm_parameters
- override=--set buildconfig=bootstrap-ubsan gcc=gcc.git~master --extraconfigdir ../config/latest-rel
- log_name=${JOB_NAME}-${BUILD_NUMBER}/@@host@@.\$target
- abe_branch=tested
- scripts_branch=tested
- runtests=
- try_bootstrap=true
- rebuild=yes
- dont_fail=false
- target_list=tcwg-x86_64-build tcwg-tk1_32-build tcwg-apm_64-build
- displaytag=gcc-trunk-ubsan-${BUILD_NUMBER}
- EOF
- - trigger-builds:
- - project: 'tcwg-buildfarm'
- property-file: buildfarm_parameters
- block: true
- publishers:
- - email-ext:
- recipients: 'tcwg-validation@linaro.org'
- aborted: true
diff --git a/tcwg-trigger-gdb.yaml b/tcwg-trigger-gdb.yaml
deleted file mode 100644
index 782eeed672..0000000000
--- a/tcwg-trigger-gdb.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-- job:
- name: tcwg-trigger-gdb
- 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
- parameters:
- - string:
- name: ref_build
- default: 'previous'
- description: 'Reference build for comparison, e.g., "lastSuccess" or "previous" or job number or empty string to skip comparison'
- disabled: false
- node: tcwg-x86_64-dev-02
- retry-count: 3
- concurrent: false
- display-name: 'TCWG Trigger GDB'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/binutils-gdb.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- clean:
- before: true
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timeout:
- timeout: 1200
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- shopt -s extglob
-
- cat << EOF > gdb_parameters
- log_name=${JOB_NAME}-${BUILD_NUMBER}/\$builder_type.\$target.\$bfd
- dont_fail=true
- bfd_list=--enable-64-bit-bfd=no
- EOF
-
- if [ x"$ref_build" != x ] ; then
- case "$ref_build" in
- lastSuccess) ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastSuccessfulBuild/buildNumber") ;;
- previous) ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastCompletedBuild/buildNumber") ;;
- [1-9]*([0-9])) ref_build_num="$ref_build" ;;
- *) echo "ERROR: Cannot handle ref_build: $ref_build"; exit 1 ;;
- esac
-
- # Scrambled indentation because of here-doc
- cat << EOF > compare_results_parameters
- ref_logs=${JOB_NAME}-${ref_build_num}
- new_logs=${JOB_NAME}-${BUILD_NUMBER}
- pass_thresh=0.66
- show_results=false
- EOF
- else
- rm -f compare_results_parameters
- fi
- - trigger-builds:
- - project: tcwg-gdb
- property-file: gdb_parameters
- block: true
- - conditional-step:
- condition-kind: file-exists
- condition-filename: compare_results_parameters
- steps:
- - trigger-builds:
- - project: tcwg-compare-results
- property-file: compare_results_parameters
- block: true
- publishers:
- - workspace-cleanup:
- include:
- - "*_parameters"
- - email-ext:
- recipients: 'luis.machado@linaro.org'
- aborted: true
diff --git a/tcwg-update-bmk-containers.yaml b/tcwg-update-bmk-containers.yaml
new file mode 100644
index 0000000000..16606d73c2
--- /dev/null
+++ b/tcwg-update-bmk-containers.yaml
@@ -0,0 +1,225 @@
+# 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
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+ everyone-flat:
+ - 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-pool
+ all-nodes: true
+ matching-label: 'allCases'
+ description: 'Machines to run on'
+ - string:
+ name: distro
+ default: 'default'
+ 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'
+ # tcwg-buildslave user id
+ # ??? Do we need tcwg-buildslave's keys for BMK containers?
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - build-name:
+ name: '#${BUILD_NUMBER}-${NODE_NAME}'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ # See: LABEL_SED below
+ set -o pipefail
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ echo "$BUILD_URL" > artifacts/mail-body.txt
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" > artifacts/mail-recipients.txt
+
+ declare -A pids
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock \
+ $HOME/boards/$NODE_NAME-*.bak*); do
+ (
+ flock -e 9
+ touch $lock
+ board=$(cat <&9)
+
+ # Start the jenkins container so that it can process
+ # all the queued cleanup and maintenance tasks.
+ node=$(basename "$board" .tcwglab)
+
+ ./jenkins-scripts/tcwg-update-bmk-containers.sh \
+ --board "$board" \
+ --distro "$distro" \
+ --force "$force" \
+ --node "$node" \
+ --verbose "$verbose"
+
+ # Wait for jenkins container to become idle
+ while sleep 60; do
+ n_busy=$(source jenkins-scripts/jenkins-helpers.sh
+ print_number_of_busy_executors "$node")
+
+ if [ "$n_busy" = "0" ]; 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 2>&1 | sed -e "s/^/$(basename $lock): /" &
+
+ # LABEL_SED: We need pipefail to get correct result of sub-shell
+ # "( foo ) | sed" instead of always-succeeding "sed".
+ pids[$(basename "$lock")]=$!
+ done
+
+ n_good_boards=0
+ for lock in "${!pids[@]}"; do
+ res=0 && wait "${pids[$lock]}" || res=$?
+ case "$res:$lock" in
+ "0":*".lock")
+ n_good_boards=$(($n_good_boards + 1))
+ echo "$lock: SUCCESS" >> artifacts/mail-body.txt
+ ;;
+ "0":*".bak")
+ n_good_boards=$(($n_good_boards + 1))
+ echo "$lock: UNEXPECTED SUCCESS" >> artifacts/mail-body.txt
+ # Move boards with no STG ticket (e.g., no ".bak.STG-1234")
+ # back into service.
+ mv "$HOME/boards/$lock" "$HOME/boards/${lock%.bak}.lock"
+ ;;
+ "0":*)
+ # The board appears fine, but it has STG ticket assigned
+ # to it (e.g., ".bak.STG-1234").
+ echo "$lock: UNEXPECTED SUCCESS" >> artifacts/mail-body.txt
+ ;;
+ *:*".lock")
+ echo "$lock: UNEXPECTED FAILURE" >> artifacts/mail-body.txt
+ # Move offline boards out of service.
+ mv "$HOME/boards/$lock" "$HOME/boards/${lock%.lock}.bak"
+ ;;
+ *:*)
+ echo "$lock: EXPECTED FAILURE" >> artifacts/mail-body.txt
+ ;;
+ esac
+ done
+
+ # tcwg-benchmark doesn't have ssh access to ci.linaro.org,
+ # so use tcwg-buildslave's credentials.
+ n_executors=$(ssh -p2222 -l tcwg-buildslave@linaro.org \
+ ci.linaro.org get-node "$NODE_NAME" \
+ | grep "numExecutors")
+ n_executors=$(echo "$n_executors" \
+ | sed -e "s#.*<numExecutors>\([0-9]\+\)</numExecutors>.*#\1#")
+ if [ x"$n_executors" != x"$n_good_boards" ]; then
+ echo "UNEXPECTED: Updating number of executors on $NODE_NAME from $n_executors to $n_good_boards" \
+ >> artifacts/mail-body.txt
+ if [ "$n_good_boards" = "0" ]; then
+ # Setting executors to "0" will mightily confuse jenkins;
+ # the node with 0 executors will be stuck in limbo.
+ n_good_boards=1
+ fi
+ ssh -p2222 -l tcwg-buildslave@linaro.org \
+ ci.linaro.org get-node "$NODE_NAME" \
+ | sed -e "s#<numExecutors>\([0-9]\+\)</numExecutors>#<numExecutors>$n_good_boards</numExecutors>#" \
+ | ssh -p2222 -l tcwg-buildslave@linaro.org \
+ ci.linaro.org update-node "$NODE_NAME"
+ fi
+
+ if ! grep -q UNEXPECTED artifacts/mail-body.txt; then
+ exit 0
+ fi
+
+ exit 1
+ publishers:
+ - email-ext:
+ recipients: |
+ ${FILE,path="artifacts/mail-recipients.txt"}
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/mail-body.txt"}
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+
+# checksum: 01bb3f2309f5a0ee5b87c5a82836419c
diff --git a/tcwg-update-bmk_ref.yaml b/tcwg-update-bmk_ref.yaml
new file mode 100644
index 0000000000..3a7dae4127
--- /dev/null
+++ b/tcwg-update-bmk_ref.yaml
@@ -0,0 +1,129 @@
+# 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
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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 -R $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 -R $USER: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-bmk-hw
+ ignore-offline-nodes: false
+ block: false
+ publishers:
+ - email-ext:
+ recipients: tcwg-validation@linaro.org
+ aborted: true
+
+# checksum: 28560746cc5994c160359465c7c1b0cd
diff --git a/tcwg-update-buildkite-containers.yaml b/tcwg-update-buildkite-containers.yaml
index 31543b35aa..8259261fbd 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 -*-
@@ -9,12 +9,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts
@@ -43,7 +42,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -58,11 +57,10 @@
default: tcwg-llvmbot
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
- default: 'bionic'
+ default: 'lts_1'
description: 'Distro version to use.'
- bool:
name: force
@@ -85,8 +83,8 @@
workspace: workspace/tcwg-update-buildkite-containers_$EXECUTOR_NUMBER/$NODE_NAME
scm:
- jenkins-scripts
- triggers:
- - timed: '@daily'
+ # No timer trigger for llvmbot and buildkite because we want the bot maintainer to be
+ # able to control the deployment time.
wrappers:
- timeout:
timeout: 600
@@ -110,4 +108,5 @@
--password "$TCWG_BUILDKITE_TOKEN_LIBCXX" \
--force "$force" \
--verbose "$verbose"
-# checksum: 28c43aa623055ef87d5e78d6b128696c
+
+# checksum: 6a0f048d03b252117c16dd66f309b6fd
diff --git a/tcwg-update-containers.yaml.in b/tcwg-update-containers.yaml.in
new file mode 100644
index 0000000000..d748ce663c
--- /dev/null
+++ b/tcwg-update-containers.yaml.in
@@ -0,0 +1,443 @@
+#include tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-update-#{CONTAINER}-containers
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - 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
+#if CONTAINER_host
+ # Run on all real machines with exception of benchmarking boards.
+ # Host containers of benchmarking boards are handled by
+ # CONTAINER_bmk job.
+ default: tcwg && !tcwg-bmk-hw && !tcwg-secondary-node
+#elif CONTAINER_jenkins
+ # Run on all nodes with exception of benchmarking boards.
+ # Jenkins containers of benchmarking boards are handled by
+ # CONTAINER_bmk job.
+ default: tcwg && !tcwg-bmk-hw
+#elif CONTAINER_llvmbot || CONTAINER_buildkite
+ default: tcwg-llvmbot
+#elif CONTAINER_bmk
+ default: tcwg-bmk-pool
+#endif
+ all-nodes: true
+ matching-label: 'allCases'
+ description: 'Machines to run on'
+ - string:
+ name: distro
+#if CONTAINER_llvmbot || CONTAINER_buildkite
+ default: 'lts_1'
+#else
+ default: 'default'
+#endif
+ description: 'Distro version to use.'
+#if CONTAINER_llvmbot
+ - string:
+ name: master
+ default: 'normal'
+ description: 'LLVM buildmaster to use: silent or normal'
+#endif
+ - 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 #{CONTAINER} containers'
+ # We need to unshare workspace with $NODE_NAME in the path to
+ # correctly run on tcwg-bmk-* nodes.
+ workspace: workspace/tcwg-update-#{CONTAINER}-containers_$EXECUTOR_NUMBER/$NODE_NAME
+ scm:
+ - jenkins-scripts
+#if !CONTAINER_llvmbot && !CONTAINER_buildkite
+ triggers:
+ - timed: '@daily'
+#else
+ # No timer trigger for llvmbot and buildkite because we want the bot maintainer to be
+ # able to control the deployment time.
+#endif
+ wrappers:
+ - timeout:
+#if CONTAINER_jenkins
+ # Wait at most 5 hours before giving up on updating jenkins
+ # client container.
+ timeout: 300
+#else
+ timeout: 600
+#endif
+ - timestamps
+#if CONTAINER_llvmbot
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_LLVMBOT_PASSWORD
+ variable: TCWG_LLVMBOT_PASSWORD
+#elif CONTAINER_buildkite
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_BUILDKITE_TOKEN_LIBCXX
+ variable: TCWG_BUILDKITE_TOKEN_LIBCXX
+#elif CONTAINER_bmk
+ - ssh-agent-credentials:
+ users:
+ - 'tcwg-benchmark'
+ # tcwg-buildslave user id
+ # ??? Do we need tcwg-buildslave's keys for BMK containers?
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+#elif CONTAINER_jenkins
+ - ssh-agent-credentials:
+ users:
+ # tcwg-buildslave user id
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+#endif
+ - build-name:
+ name: '#${BUILD_NUMBER}-${NODE_NAME}'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+#if CONTAINER_host
+ case " $NODE_LABELS " in
+ *" tcwg-llvmbot "*) group=tcwg-llvm ;;
+ *) group=all ;;
+ esac
+ ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --group "$group" \
+ --force "$force" \
+ --verbose "$verbose"
+#elif CONTAINER_jenkins
+ # Check if we need to update the image -- run with --dryrun true.
+ ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --dryrun true \
+ --node "$NODE_NAME" \
+ --force "$force" \
+ --verbose "$verbose" &
+ res=0 && wait $! || res=$?
+
+ if [ $res = 0 ]; then
+ # Fast-path exit to avoid bringing the node offline.
+ echo "$NODE_NAME is up-to-date"
+ # Skip the rest and mark the build UNSTABLE (aka skipped).
+ exit 125
+ elif [ $res = 125 ]; then
+ echo "$NODE_NAME needs container update"
+ elif [ $res != 0 ]; then
+ echo "ERROR: container check failed"
+ exit $res
+ fi
+
+ # We are about to update the container that is running this.
+ # The plan is:
+ # 1. Prevent new builds from starting by putting the node into
+ # offline mode.
+ # 2. Wait for current builds to finish. We detect this by
+ # checking for children process of the jenkins client.
+ # 3. Trigger a job on the master node to bring this node back
+ # online. Without this we would restart the jenkins container,
+ # but the node would still be marked as "offline" and no new
+ # builds will be scheduled to it.
+ # 4. Restart the container.
+
+ # Mark the node offline.
+ ssh -p2222 -l tcwg-buildslave@linaro.org ci.linaro.org \
+ offline-node "$NODE_NAME" \
+ -m "Updating_jenkins_container:$BUILD_URL"
+
+ start_date=$(date +%s)
+ rm -f timeout
+
+ # Wait for current builds to finish.
+ while true; do
+ n_busy=$(source jenkins-scripts/jenkins-helpers.sh
+ print_number_of_busy_executors "$NODE_NAME")
+
+ if [ "$n_busy" = "1" ]; then
+ # We are the only build left.
+ break
+ fi
+
+ elapsed=$(($(date +%s) - $start_date))
+ elapsed=$(($elapsed / 60))
+ if [ "$elapsed" -gt "270" ]; then
+ # We'll timeout in 30 minutes; give up on the update and
+ # bring the node back online.
+ # We budget 30 minutes for tcwg-cleanup-stale-workspaces.sh
+ # below.
+ touch timeout
+ break
+ fi
+
+ # Wait for other builds to complete.
+ sleep 60
+ done
+ unstable-return: 125
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-builds:
+ - project: tcwg-update-jenkins-containers-online-node
+ predefined-parameters: |
+ node=$NODE_NAME
+ build_num=$BUILD_NUMBER
+ block: false
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f timeout ]; then
+ exit 125
+ fi
+
+ # Cleanup workspace directory while the node is idle.
+ (
+ set +e
+ $WORKSPACE/jenkins-scripts/tcwg-cleanup-stale-workspaces.sh \
+ --days 3 --workspace_top $HOME/workspace
+ )
+
+ ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --dryrun false \
+ --node "$NODE_NAME" \
+ --force "$force" \
+ --verbose "$verbose" || exit 125
+ unstable-return: 125
+#elif CONTAINER_llvmbot
+ ./jenkins-scripts/tcwg-update-llvmbot-containers.sh \
+ --NODE_NAME "$NODE_NAME" \
+ --distro "$distro" \
+ --master "$master" \
+ --password "$TCWG_LLVMBOT_PASSWORD" \
+ --force "$force" \
+ --verbose "$verbose"
+#elif CONTAINER_buildkite
+ ./jenkins-scripts/tcwg-update-llvmbot-containers.sh \
+ --NODE_NAME "$NODE_NAME" \
+ --distro "$distro" \
+ --master "buildkite" \
+ --password "$TCWG_BUILDKITE_TOKEN_LIBCXX" \
+ --force "$force" \
+ --verbose "$verbose"
+#elif CONTAINER_bmk
+ # See: LABEL_SED below
+ set -o pipefail
+
+ rm -rf artifacts
+ mkdir artifacts
+
+ echo "$BUILD_URL" > artifacts/mail-body.txt
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" > artifacts/mail-recipients.txt
+
+ declare -A pids
+ for lock in $(set +f; ls -tr $HOME/boards/$NODE_NAME-*.lock \
+ $HOME/boards/$NODE_NAME-*.bak*); do
+ (
+ flock -e 9
+ touch $lock
+ board=$(cat <&9)
+
+ # Start the jenkins container so that it can process
+ # all the queued cleanup and maintenance tasks.
+ node=$(basename "$board" .tcwglab)
+
+ ./jenkins-scripts/tcwg-update-bmk-containers.sh \
+ --board "$board" \
+ --distro "$distro" \
+ --force "$force" \
+ --node "$node" \
+ --verbose "$verbose"
+
+ # Wait for jenkins container to become idle
+ while sleep 60; do
+ n_busy=$(source jenkins-scripts/jenkins-helpers.sh
+ print_number_of_busy_executors "$node")
+
+ if [ "$n_busy" = "0" ]; 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 2>&1 | sed -e "s/^/$(basename $lock): /" &
+
+ # LABEL_SED: We need pipefail to get correct result of sub-shell
+ # "( foo ) | sed" instead of always-succeeding "sed".
+ pids[$(basename "$lock")]=$!
+ done
+
+ n_good_boards=0
+ for lock in "${!pids[@]}"; do
+ res=0 && wait "${pids[$lock]}" || res=$?
+ case "$res:$lock" in
+ "0":*".lock")
+ n_good_boards=$(($n_good_boards + 1))
+ echo "$lock: SUCCESS" >> artifacts/mail-body.txt
+ ;;
+ "0":*".bak")
+ n_good_boards=$(($n_good_boards + 1))
+ echo "$lock: UNEXPECTED SUCCESS" >> artifacts/mail-body.txt
+ # Move boards with no STG ticket (e.g., no ".bak.STG-1234")
+ # back into service.
+ mv "$HOME/boards/$lock" "$HOME/boards/${lock%.bak}.lock"
+ ;;
+ "0":*)
+ # The board appears fine, but it has STG ticket assigned
+ # to it (e.g., ".bak.STG-1234").
+ echo "$lock: UNEXPECTED SUCCESS" >> artifacts/mail-body.txt
+ ;;
+ *:*".lock")
+ echo "$lock: UNEXPECTED FAILURE" >> artifacts/mail-body.txt
+ # Move offline boards out of service.
+ mv "$HOME/boards/$lock" "$HOME/boards/${lock%.lock}.bak"
+ ;;
+ *:*)
+ echo "$lock: EXPECTED FAILURE" >> artifacts/mail-body.txt
+ ;;
+ esac
+ done
+
+ # tcwg-benchmark doesn't have ssh access to ci.linaro.org,
+ # so use tcwg-buildslave's credentials.
+ n_executors=$(ssh -p2222 -l tcwg-buildslave@linaro.org \
+ ci.linaro.org get-node "$NODE_NAME" \
+ | grep "numExecutors")
+ n_executors=$(echo "$n_executors" \
+ | sed -e "s#.*<numExecutors>\([0-9]\+\)</numExecutors>.*#\1#")
+ if [ x"$n_executors" != x"$n_good_boards" ]; then
+ echo "UNEXPECTED: Updating number of executors on $NODE_NAME from $n_executors to $n_good_boards" \
+ >> artifacts/mail-body.txt
+ if [ "$n_good_boards" = "0" ]; then
+ # Setting executors to "0" will mightily confuse jenkins;
+ # the node with 0 executors will be stuck in limbo.
+ n_good_boards=1
+ fi
+ ssh -p2222 -l tcwg-buildslave@linaro.org \
+ ci.linaro.org get-node "$NODE_NAME" \
+ | sed -e "s#<numExecutors>\([0-9]\+\)</numExecutors>#<numExecutors>$n_good_boards</numExecutors>#" \
+ | ssh -p2222 -l tcwg-buildslave@linaro.org \
+ ci.linaro.org update-node "$NODE_NAME"
+ fi
+
+ if ! grep -q UNEXPECTED artifacts/mail-body.txt; then
+ exit 0
+ fi
+
+ exit 1
+ publishers:
+ - email-ext:
+ recipients: |
+ ${FILE,path="artifacts/mail-recipients.txt"}
+ content-type: text
+ body: |
+ ${FILE,path="artifacts/mail-body.txt"}
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#endif
+
+#if CONTAINER_jenkins
+- job:
+ name: tcwg-update-jenkins-containers-online-node
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
+ parameters:
+ - string:
+ name: node
+ default: ''
+ description: 'NODE_NAME to bring online'
+ - string:
+ name: build_num
+ default: ''
+ description: 'BUILD_NUMBER to wait for to finish'
+ disabled: false
+ concurrent: true
+ display-name: 'TCWG CCC Update jenkins containers online-node'
+ wrappers:
+ - timeout:
+ timeout: 60
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ # tcwg-buildslave user id
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - build-name:
+ name: '#${BUILD_NUMBER}-#${build_num}-${node}'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ # Below logic was adapted from jenkins-scripts/tcwg_bmk-build.sh:
+ # benchmark().
+
+ ssh_cmd=(ssh -p2222 -l tcwg-buildslave@linaro.org
+ -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null)
+
+ # ??? Below loop can fail for reasons I can't understand.
+ # "|| true" should the subshell always exit with "0",
+ # and I can't see how "| tee | sed" can fail.
+ # Bring the node back online as we exit due to any reason,
+ # and ignore shell errors so that we exit only when see
+ # "Finished: " line in the console.log.
+ trap "${ssh_cmd[*]} ci.linaro.org online-node $node" EXIT
+ set +e
+
+ while true; do
+ sleep 60
+
+ (timeout 1m \
+ "${ssh_cmd[@]}" ci.linaro.org console \
+ tcwg-update-jenkins-containers $build_num || true) \
+ | tee console.log | sed -e "s/^/$node: /"
+
+ build_status=$(tail -n 1 console.log)
+ case "$build_status" in
+ "Finished: "*) break ;;
+ esac
+ done
+#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 0000000000..beba688ac4
--- /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 d093f7cacb..d093f7cacb 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 04c3b8041f..04c3b8041f 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 0a9af37628..0a9af37628 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 6f64740565..6f64740565 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 9a28c5d246..f4026ea9fa 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 -*-
@@ -9,12 +9,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts
@@ -43,7 +42,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -55,14 +54,16 @@
parameters:
- label:
name: nodes
- default: tcwg && !tcwg-bmk && !tcwg-short
+ # Run on all real machines with exception of benchmarking boards.
+ # Host containers of benchmarking boards are handled by
+ # CONTAINER_bmk job.
+ default: tcwg && !tcwg-bmk-hw && !tcwg-secondary-node
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
- default: 'bionic'
+ default: 'default'
description: 'Distro version to use.'
- bool:
name: force
@@ -99,8 +100,8 @@
#!/bin/bash
set -ex
- case "$NODE_NAME" in
- tcwg-llvmbot_*) group=tcwg-llvm ;;
+ case " $NODE_LABELS " in
+ *" tcwg-llvmbot "*) group=tcwg-llvm ;;
*) group=all ;;
esac
./jenkins-scripts/tcwg-update-host-containers.sh \
@@ -108,4 +109,5 @@
--group "$group" \
--force "$force" \
--verbose "$verbose"
-# checksum: b1c82ebd40a5b660931d8c5eafd527a2
+
+# checksum: bd10503195b28a18e0c40567db2442a9
diff --git a/tcwg-update-jenkins-containers.yaml b/tcwg-update-jenkins-containers.yaml
index 25a7b6fd31..9abc9064bb 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 -*-
@@ -9,12 +9,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts
@@ -43,7 +42,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -55,18 +54,16 @@
parameters:
- label:
name: nodes
- # 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 && !tcwg-short && !tcwg-x86_64-build && !tcwg-x86_64-build-09 && !tcwg-x86_64-build-10
+ # Run on all nodes with exception of benchmarking boards.
+ # Jenkins containers of benchmarking boards are handled by
+ # CONTAINER_bmk job.
+ default: tcwg && !tcwg-bmk-hw
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
- default: 'bionic'
+ default: 'default'
description: 'Distro version to use.'
- bool:
name: force
@@ -93,8 +90,14 @@
- timed: '@daily'
wrappers:
- timeout:
- timeout: 600
+ # Wait at most 5 hours before giving up on updating jenkins
+ # client container.
+ timeout: 300
- timestamps
+ - ssh-agent-credentials:
+ users:
+ # tcwg-buildslave user id
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- build-name:
name: '#${BUILD_NUMBER}-${NODE_NAME}'
builders:
@@ -103,10 +106,174 @@
#!/bin/bash
set -ex
+ # Check if we need to update the image -- run with --dryrun true.
./jenkins-scripts/tcwg-update-host-containers.sh \
--distro "$distro" \
+ --dryrun true \
--node "$NODE_NAME" \
--force "$force" \
- --verbose "$verbose" || exit 125
+ --verbose "$verbose" &
+ res=0 && wait $! || res=$?
+
+ if [ $res = 0 ]; then
+ # Fast-path exit to avoid bringing the node offline.
+ echo "$NODE_NAME is up-to-date"
+ # Skip the rest and mark the build UNSTABLE (aka skipped).
+ exit 125
+ elif [ $res = 125 ]; then
+ echo "$NODE_NAME needs container update"
+ elif [ $res != 0 ]; then
+ echo "ERROR: container check failed"
+ exit $res
+ fi
+
+ # We are about to update the container that is running this.
+ # The plan is:
+ # 1. Prevent new builds from starting by putting the node into
+ # offline mode.
+ # 2. Wait for current builds to finish. We detect this by
+ # checking for children process of the jenkins client.
+ # 3. Trigger a job on the master node to bring this node back
+ # online. Without this we would restart the jenkins container,
+ # but the node would still be marked as "offline" and no new
+ # builds will be scheduled to it.
+ # 4. Restart the container.
+
+ # Mark the node offline.
+ ssh -p2222 -l tcwg-buildslave@linaro.org ci.linaro.org \
+ offline-node "$NODE_NAME" \
+ -m "Updating_jenkins_container:$BUILD_URL"
+
+ start_date=$(date +%s)
+ rm -f timeout
+
+ # Wait for current builds to finish.
+ while true; do
+ n_busy=$(source jenkins-scripts/jenkins-helpers.sh
+ print_number_of_busy_executors "$NODE_NAME")
+
+ if [ "$n_busy" = "1" ]; then
+ # We are the only build left.
+ break
+ fi
+
+ elapsed=$(($(date +%s) - $start_date))
+ elapsed=$(($elapsed / 60))
+ if [ "$elapsed" -gt "270" ]; then
+ # We'll timeout in 30 minutes; give up on the update and
+ # bring the node back online.
+ # We budget 30 minutes for tcwg-cleanup-stale-workspaces.sh
+ # below.
+ touch timeout
+ break
+ fi
+
+ # Wait for other builds to complete.
+ sleep 60
+ done
unstable-return: 125
-# checksum: 5361d1951bb9e0964cca304ad024243c
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-builds:
+ - project: tcwg-update-jenkins-containers-online-node
+ predefined-parameters: |
+ node=$NODE_NAME
+ build_num=$BUILD_NUMBER
+ block: false
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f timeout ]; then
+ exit 125
+ fi
+
+ # Cleanup workspace directory while the node is idle.
+ (
+ set +e
+ $WORKSPACE/jenkins-scripts/tcwg-cleanup-stale-workspaces.sh \
+ --days 3 --workspace_top $HOME/workspace
+ )
+
+ ./jenkins-scripts/tcwg-update-host-containers.sh \
+ --distro "$distro" \
+ --dryrun false \
+ --node "$NODE_NAME" \
+ --force "$force" \
+ --verbose "$verbose" || exit 125
+ unstable-return: 125
+
+- job:
+ name: tcwg-update-jenkins-containers-online-node
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 100
+ parameters:
+ - string:
+ name: node
+ default: ''
+ description: 'NODE_NAME to bring online'
+ - string:
+ name: build_num
+ default: ''
+ description: 'BUILD_NUMBER to wait for to finish'
+ disabled: false
+ concurrent: true
+ display-name: 'TCWG CCC Update jenkins containers online-node'
+ wrappers:
+ - timeout:
+ timeout: 60
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ # tcwg-buildslave user id
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - build-name:
+ name: '#${BUILD_NUMBER}-#${build_num}-${node}'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ # Below logic was adapted from jenkins-scripts/tcwg_bmk-build.sh:
+ # benchmark().
+
+ ssh_cmd=(ssh -p2222 -l tcwg-buildslave@linaro.org
+ -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null)
+
+ # ??? Below loop can fail for reasons I can't understand.
+ # "|| true" should the subshell always exit with "0",
+ # and I can't see how "| tee | sed" can fail.
+ # Bring the node back online as we exit due to any reason,
+ # and ignore shell errors so that we exit only when see
+ # "Finished: " line in the console.log.
+ trap "${ssh_cmd[*]} ci.linaro.org online-node $node" EXIT
+ set +e
+
+ while true; do
+ sleep 60
+
+ (timeout 1m \
+ "${ssh_cmd[@]}" ci.linaro.org console \
+ tcwg-update-jenkins-containers $build_num || true) \
+ | tee console.log | sed -e "s/^/$node: /"
+
+ build_status=$(tail -n 1 console.log)
+ case "$build_status" in
+ "Finished: "*) break ;;
+ esac
+ done
+# checksum: 6ffc6ff4f71c52329c02ca6e6f932e10
diff --git a/tcwg-update-llvmbot-containers.yaml b/tcwg-update-llvmbot-containers.yaml
index 71703eae53..969e334e4b 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 -*-
@@ -9,12 +9,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts
@@ -43,7 +42,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
@@ -58,11 +57,10 @@
default: tcwg-llvmbot
all-nodes: true
matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
description: 'Machines to run on'
- string:
name: distro
- default: 'bionic'
+ default: 'lts_1'
description: 'Distro version to use.'
- string:
name: master
@@ -89,8 +87,8 @@
workspace: workspace/tcwg-update-llvmbot-containers_$EXECUTOR_NUMBER/$NODE_NAME
scm:
- jenkins-scripts
- triggers:
- - timed: '@daily'
+ # No timer trigger for llvmbot and buildkite because we want the bot maintainer to be
+ # able to control the deployment time.
wrappers:
- timeout:
timeout: 600
@@ -114,4 +112,5 @@
--password "$TCWG_LLVMBOT_PASSWORD" \
--force "$force" \
--verbose "$verbose"
-# checksum: 2b8b2079199a86037f284250da54b559
+
+# checksum: 3ba59156dac113e016f19e9152996ef6
diff --git a/tcwg-update-lnt-results.yaml b/tcwg-update-lnt-results.yaml
new file mode 100644
index 0000000000..5a38bc4744
--- /dev/null
+++ b/tcwg-update-lnt-results.yaml
@@ -0,0 +1,96 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-update-lnt-results.yaml.in and tcwg-update-lnt-results/tcwg-update-lnt-results.def. Do not edit.
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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-lnt-results
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - label:
+ name: nodes
+ default: tcwg-lnt
+ all-nodes: true
+ matching-label: 'allCases'
+ description: 'Machines or label to run on'
+ - string:
+ name: ci_project
+ default: 'default'
+ description: "CI project ID; used as namespace for git branches"
+ - string:
+ name: ci_config
+ default: 'default'
+ description: "CI configuration ID; used as name of git branches"
+ - 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 Update LNT results'
+ workspace: workspace/tcwg-update-lnt-results_${NODE_NAME}_${EXECUTOR_NUMBER}
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - build-name:
+ name: '#${BUILD_NUMBER}-${NODE_NAME} ($ci_project--$ci_config)'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ ./jenkins-scripts/tcwg-update-lnt-results.sh \
+ --lnt_config "$NODE_NAME" \
+ --ci_project "$ci_project" \
+ --ci_config "$ci_config" \
+ --verbose "$verbose"
+ publishers:
+ - email-ext:
+ recipients: 'laurent.alfonsi@linaro.org,maxim.kuvyrkov@linaro.org'
+# checksum: 89bc7c33eb74bc2db8c8c39e125ff9bb
diff --git a/tcwg-update-lnt-results.yaml.in b/tcwg-update-lnt-results.yaml.in
new file mode 100644
index 0000000000..3754dd6a8b
--- /dev/null
+++ b/tcwg-update-lnt-results.yaml.in
@@ -0,0 +1,62 @@
+#include tcwg/default.yaml.inc
+
+- job:
+ name: tcwg-update-lnt-results
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ parameters:
+ - label:
+ name: nodes
+ default: tcwg-lnt
+ all-nodes: true
+ matching-label: 'allCases'
+ description: 'Machines or label to run on'
+ - string:
+ name: ci_project
+ default: 'default'
+ description: "CI project ID; used as namespace for git branches"
+ - string:
+ name: ci_config
+ default: 'default'
+ description: "CI configuration ID; used as name of git branches"
+ - 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 Update LNT results'
+ workspace: workspace/tcwg-update-lnt-results_${NODE_NAME}_${EXECUTOR_NUMBER}
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - build-name:
+ name: '#${BUILD_NUMBER}-${NODE_NAME} ($ci_project--$ci_config)'
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+
+ ./jenkins-scripts/tcwg-update-lnt-results.sh \
+ --lnt_config "$NODE_NAME" \
+ --ci_project "$ci_project" \
+ --ci_config "$ci_config" \
+ --verbose "$verbose"
+ publishers:
+ - email-ext:
+ recipients: 'laurent.alfonsi@linaro.org,maxim.kuvyrkov@linaro.org'
diff --git a/tcwg-gnu-builds/tcwg-gnu-builds.def b/tcwg-update-lnt-results/tcwg-update-lnt-results.def
index e69de29bb2..e69de29bb2 100644
--- a/tcwg-gnu-builds/tcwg-gnu-builds.def
+++ b/tcwg-update-lnt-results/tcwg-update-lnt-results.def
diff --git a/tcwg-update-snapshots_ref.yaml b/tcwg-update-snapshots_ref.yaml
index a7bb42f94b..5649d42a15 100644
--- a/tcwg-update-snapshots_ref.yaml
+++ b/tcwg-update-snapshots_ref.yaml
@@ -1,31 +1,61 @@
+# 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
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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 +75,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 +94,35 @@
- 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/tcwg-buildslave/snapshots-ref; sudo mkdir -p $cache_dir; sudo chown -R $USER:tcwg-infra $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-short && !tcwg-llvmbot
- ignore-offline-nodes: true
+ node-label: tcwg-build || tcwg-build_bmk || tcwg-dev
+ ignore-offline-nodes: false
block: false
publishers:
- email-ext:
recipients: tcwg-validation@linaro.org
aborted: true
+# checksum: 131fc6fb2af6077ba58f8a0df52d8f90
diff --git a/tcwg-update-source-caches.yaml.in b/tcwg-update-source-caches.yaml.in
new file mode 100644
index 0000000000..e3ee8c7b3f
--- /dev/null
+++ b/tcwg-update-source-caches.yaml.in
@@ -0,0 +1,128 @@
+#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 -R $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/tcwg-buildslave/snapshots-ref; sudo mkdir -p $cache_dir; sudo chown -R $USER:tcwg-infra $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 -R $USER: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-build || tcwg-build_bmk || tcwg-dev
+#elif CACHE_bmk_ref
+ node-label: tcwg-bmk-hw
+#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 0000000000..b9306f859f
--- /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 0000000000..c06792171e
--- /dev/null
+++ b/tcwg-update-source-caches/tcwg-update-snapshots_ref.def
@@ -0,0 +1 @@
+-v CACHE=snapshots_ref
diff --git a/tcwg-update.yaml.in b/tcwg-update.yaml.in
deleted file mode 100644
index fb9531a88a..0000000000
--- a/tcwg-update.yaml.in
+++ /dev/null
@@ -1,128 +0,0 @@
-#include tcwg/default.yaml.inc
-
-- job:
- name: tcwg-update-#{CONTAINER}-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
-#if CONTAINER_host
- default: tcwg && !tcwg-bmk && !tcwg-short
-#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 && !tcwg-short && !tcwg-x86_64-build && !tcwg-x86_64-build-09 && !tcwg-x86_64-build-10
-#elif CONTAINER_llvmbot || CONTAINER_buildkite
- default: tcwg-llvmbot
-#endif
- all-nodes: true
- matching-label: 'allCases'
- node-eligibility: 'ignore-offline'
- description: 'Machines to run on'
- - string:
- name: distro
- default: 'bionic'
- description: 'Distro version to use.'
-#if CONTAINER_llvmbot
- - string:
- name: master
- default: 'normal'
- description: 'LLVM buildmaster to use: silent or normal'
-#endif
- - 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 #{CONTAINER} containers'
- # We need to unshare workspace with $NODE_NAME in the path to
- # correctly run on tcwg-bmk-* nodes.
- workspace: workspace/tcwg-update-#{CONTAINER}-containers_$EXECUTOR_NUMBER/$NODE_NAME
- scm:
- - jenkins-scripts
- triggers:
- - timed: '@daily'
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
-#if CONTAINER_llvmbot
- - credentials-binding:
- - text:
- credential-id: TCWG_LLVMBOT_PASSWORD
- variable: TCWG_LLVMBOT_PASSWORD
-#elif CONTAINER_buildkite
- - credentials-binding:
- - text:
- credential-id: TCWG_BUILDKITE_TOKEN_LIBCXX
- variable: TCWG_BUILDKITE_TOKEN_LIBCXX
-#endif
- - build-name:
- name: '#${BUILD_NUMBER}-${NODE_NAME}'
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
-
-#if CONTAINER_host
- case "$NODE_NAME" in
- tcwg-llvmbot_*) group=tcwg-llvm ;;
- *) group=all ;;
- esac
- ./jenkins-scripts/tcwg-update-host-containers.sh \
- --distro "$distro" \
- --group "$group" \
- --force "$force" \
- --verbose "$verbose"
-#elif CONTAINER_jenkins
- ./jenkins-scripts/tcwg-update-host-containers.sh \
- --distro "$distro" \
- --node "$NODE_NAME" \
- --force "$force" \
- --verbose "$verbose" || exit 125
- unstable-return: 125
-#elif CONTAINER_llvmbot
- ./jenkins-scripts/tcwg-update-llvmbot-containers.sh \
- --NODE_NAME "$NODE_NAME" \
- --distro "$distro" \
- --master "$master" \
- --password "$TCWG_LLVMBOT_PASSWORD" \
- --force "$force" \
- --verbose "$verbose"
-#elif CONTAINER_buildkite
- ./jenkins-scripts/tcwg-update-llvmbot-containers.sh \
- --NODE_NAME "$NODE_NAME" \
- --distro "$distro" \
- --master "buildkite" \
- --password "$TCWG_BUILDKITE_TOKEN_LIBCXX" \
- --force "$force" \
- --verbose "$verbose"
-#endif
diff --git a/tcwg-upstream-monitoring.yaml b/tcwg-upstream-monitoring.yaml
deleted file mode 100644
index 493b78e8b1..0000000000
--- a/tcwg-upstream-monitoring.yaml
+++ /dev/null
@@ -1,164 +0,0 @@
-- job:
- name: tcwg-upstream-monitoring
- project-type: matrix
- 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
- - throttle:
- max-total: 2
- option: project
- parameters:
- - string:
- name: override
- default: ''
- description: 'Versions of components to build; e.g. binutils=binutils-gdb.git/linaro_binutils-2_25-branch gcc=gcc.git~linaro/gcc-5-branch glibc=glibc.git~release/2.21/master'
- - string:
- name: native_x86_64_languages
- default: 'c,c++,fortran,lto,objc,obj-c++'
- description: 'Languages to build for x86_64 native toolchains, e.g., "c,c++" or "all" or "default"'
- - string:
- name: native_aarchXX_languages
- default: 'c,c++,fortran,lto,objc,obj-c++'
- description: 'Languages to build for AArchXX native toolchains, e.g., "c,c++" or "all" or "default"'
- - string:
- name: log_server
- default: dev-01.tcwglab:logs
- description: 'Log_Server'
- - string:
- name: ref_build
- default: 'previous'
- description: 'Reference build for comparison, e.g., "lastSuccess" or "previous" or job number'
- disabled: false
- node: tcwg-coordinator
- child-workspace: $branch
- concurrent: true
- display-name: 'TCWG GCC Upstream Monitoring'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/gcc.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- basedir: gcc
- scm-name: GCC
- skip-tag: true
- wipe-workspace: false
- reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git
- clean:
- before: true
- axes:
- - axis:
- type: user-defined
- name: branch
- values:
- - gcc-master
- triggers:
- # Every 8 hours at 00:20, 08:20, 16:20
- - timed: '20 0,8,16 * * *'
- wrappers:
- - timeout:
- timeout: 2400
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- builders:
- - build-name-setter:
- template: '${branch} #${BUILD_NUMBER}'
- macro: true
- - shell: |
- #!/bin/bash
-
- set -ex
-
- shopt -s extglob
-
- case "$branch" in
- all-master)
- gcc_branch=master
- config=master ;;
- gcc-master)
- gcc_branch=master
- config=latest-rel ;;
- gcc-*-branch)
- gcc_branch=$branch
- config=latest-rel ;;
- *) echo "ERROR: Unsupported branch: $branch"; exit 1 ;;
- esac
-
- for i in gcc; do
- pushd $i
- comp_rev=$(git rev-parse origin/${gcc_branch})
- comp_list="$i=$i.git@$comp_rev $comp_list"
- popd
- done
-
- svnrev_gcc="$(git -C gcc log -n 1 | grep git-svn-id: | awk '{print $2;}' | cut -d@ -f2)"
-
- cat <<EOF > buildfarm_parameters
- override=$(echo ${comp_list} --extraconfigdir ../config/$config $override)
- log_name=tcwg-upstream-monitoring/${branch}-$BUILD_NUMBER/@@host@@.\$target
- runtests=tcwg-x86_64-build tcwg-apm_32-build tcwg-apm_64-build
- host_x86_64_excludecheck=gdb
- host_aarchXX_excludecheck=gdb
- host_x86_64_languages=$native_x86_64_languages
- host_aarchXX_languages=$native_aarchXX_languages
- target_list=tcwg-x86_64-build tcwg-apm_32-build tcwg-apm_64-build
- log_server=$log_server
- abe_branch=tested
- scripts_branch=tested
- build_container_tag=lts_1
- displaytag=upstream-monitoring-$branch-gcc-r${svnrev_gcc=}-${BUILD_NUMBER}
- send_results_to=gcc-testresults@gcc.gnu.org
- EOF
- - trigger-builds:
- - project: tcwg-buildfarm
- property-file: buildfarm_parameters
- block: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- unstable-threshold: 'never'
- failure-threshold: 'never'
- - shell: |
- #!/bin/bash
-
- set -ex
-
- shopt -s extglob
-
- case "$ref_build" in
- lastSuccess) ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastSuccessfulBuild/buildNumber") ;;
- previous) ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastCompletedBuild/buildNumber") ;;
- [1-9]*([0-9])) ref_build_num="$ref_build" ;;
- *) echo "ERROR: Cannot handle ref_build: $ref_build"; exit 1 ;;
- esac
-
- cat <<EOF > compare_results_parameters
- ref_logs=tcwg-upstream-monitoring/${branch}-$ref_build_num
- new_logs=tcwg-upstream-monitoring/${branch}-$BUILD_NUMBER
- show_results=false
- log_server=$log_server
- EOF
- - trigger-builds:
- - project: tcwg-compare-results
- property-file: compare_results_parameters
- block: true
- publishers:
- - workspace-cleanup:
- include:
- - "*_parameters"
- - email-ext:
- recipients: 'tcwg-validation@linaro.org'
- aborted: true
- matrix-trigger: only-parent
diff --git a/tcwg-upstream2gerrit.yaml b/tcwg-upstream2gerrit.yaml
deleted file mode 100644
index fdf052e4e9..0000000000
--- a/tcwg-upstream2gerrit.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- job:
- name: tcwg-upstream2gerrit
- project-type: freestyle
- defaults: global
- description: |
- This job tracks gcc-patches@ mailing list and tests
- interesting patches.
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: branch
- default: 'master'
- description: 'Project branch to apply patch to'
- - string:
- name: patches
- default: 'last'
- description: 'List of patchworks patch ids (numbers); special values: last'
- - string:
- name: project
- default: 'gcc'
- description: 'GCC branch to apply patch to'
- - bool:
- name: squash
- default: 'false'
- description: 'Whether to squash all patches into one commit/review'
- - bool:
- name: filter
- default: 'false'
- description: 'Use internal filter to decide whether to submit a patch for review and validation'
- - string:
- name: scripts_branch
- default: 'master'
- description: 'Branch to pull jenkins-script from'
- disabled: false
- node: tcwg-coordinator
- concurrent: false
- display-name: 'TCWG ZZZ Monitor Upstream Patches'
- scm:
- - git:
- url: https://git.linaro.org/toolchain/jenkins-scripts.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- name: origin
- branches:
- - ${scripts_branch}
- basedir: jenkins-scripts
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- clean:
- before: true
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#${BUILD_NUMBER}'
- builders:
- - shell: |
- #!/bin/bash
- ./jenkins-scripts/docker-run.sh -- ./jenkins-scripts/tcwg-upstream2gerrit.sh --branch "$branch" --patches "$patches" --project "$project" --squash "$squash" --filter "$filter"
diff --git a/tcwg-validate-abetests.yaml b/tcwg-validate-abetests.yaml
index 5a0c71cb6e..511f7e1efb 100644
--- a/tcwg-validate-abetests.yaml
+++ b/tcwg-validate-abetests.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/tcwg.yaml b/tcwg.yaml
new file mode 100644
index 0000000000..89d88810f5
--- /dev/null
+++ b/tcwg.yaml
@@ -0,0 +1,67 @@
+# All tcwg views described here
+
+- view:
+ name: tcwg-all
+ view-type: list
+ regex: 'tcwg.*'
+
+- view:
+ name: tcwg-infra
+ view-type: list
+ regex: 'tcwg-.*'
+
+# All round-robin build jobs
+- view:
+ name: tcwg-build
+ view-type: list
+ regex: 'tcwg_.*-build'
+
+# tcwg_bmk
+- view:
+ name: tcwg_bmk
+ view-type: list
+ regex: 'tcwg_bmk-.*-build'
+- view:
+ name: tcwg_bmk-fujitsu
+ view-type: list
+ regex: 'tcwg_bmk-fujitsu.*-build'
+- view:
+ name: tcwg_bmk-vect
+ view-type: list
+ regex: 'tcwg_bmk-code_vect.*-build'
+- view:
+ name: tcwg_bmk-sve
+ view-type: list
+ regex: 'tcwg_bmk-code_sve.*-build'
+
+# tcwg_kernel
+- view:
+ name: tcwg_kernel-gnu
+ view-type: list
+ regex: 'tcwg_kernel--gnu.*-build'
+- view:
+ name: tcwg_kernel-llvm
+ view-type: list
+ regex: 'tcwg_kernel--llvm.*-build'
+
+# tcwg_gnu/tcwg_gcc
+- view:
+ name: tcwg_gnu
+ view-type: list
+ regex: 'tcwg_gnu.*-build'
+- view:
+ name: tcwg_gcc
+ view-type: list
+ regex: 'tcwg_gcc.*-build'
+
+# tcwg_aosp
+- view:
+ name: tcwg_aosp
+ view-type: list
+ regex: 'tcwg_aosp-.*-build'
+
+# And all bisect views
+- view:
+ name: tcwg-bisect
+ view-type: list
+ regex: 'tcwg_.*-bisect'
diff --git a/tcwg/default.yaml.inc b/tcwg/default.yaml.inc
index 372ab133ac..51981fff33 100644
--- a/tcwg/default.yaml.inc
+++ b/tcwg/default.yaml.inc
@@ -4,29 +4,21 @@
name: default-properties
properties:
- authorization:
-#if RR_tcwg_bmk || TCWG_benchmark
- tcwg-benchmark:
+ anonymous:
- job-read
- job-extended-read
+ everyone-flat:
- job-build
- job-cancel
-#else
- anonymous:
- - job-read
- - job-extended-read
- linaro:
+#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
-#if RR_tcwg_cross
- num-to-keep: 10
-#elif TCWG_benchmark
- num-to-keep: 100
-#else
- num-to-keep: 30
-#endif
#if JENKINS_SCRIPTS_master
- scm:
@@ -62,7 +54,7 @@
prune: true
#endif
-#if RR_tcwg_bmk || TCWG_benchmark
+#if SCM_bmk_scripts
- scm:
name: bmk-scripts
scm:
diff --git a/tcwg/generate-yamlfiles.sh b/tcwg/generate-yamlfiles.sh
index 8f64f06349..7ade4fc5b9 100755
--- a/tcwg/generate-yamlfiles.sh
+++ b/tcwg/generate-yamlfiles.sh
@@ -2,6 +2,16 @@
set -euf -o pipefail
+if [ $# = 0 ]; then
+ names=(-name "*.yaml.in")
+else
+ names=()
+ while [ $# != 0 ]; do
+ names+=(-name "$1")
+ shift
+ done
+fi
+
top=$(git rev-parse --show-toplevel)
generate_yamlfiles ()
@@ -26,4 +36,4 @@ generate_yamlfiles ()
while IFS= read -r -d '' i; do
generate_yamlfiles "$i"
-done < <(find "$top" -name "*.yaml.in" -a ! -name ".*" -print0)
+done < <(find "$top" "${names[@]}" -a ! -name ".*" -print0)
diff --git a/tcwg/round-robin.yaml.inc b/tcwg/round-robin.yaml.inc
index d6e6a79fef..bbf4909700 100644
--- a/tcwg/round-robin.yaml.inc
+++ b/tcwg/round-robin.yaml.inc
@@ -6,21 +6,9 @@
name: default-parameters
parameters:
- string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: distro
default: '{distro}'
@@ -29,7 +17,7 @@
name: scripts_branch
default: master
description: 'Scripts revision to use'
-#if RR_tcwg_bmk
+#if SCM_bmk_scripts
- string:
name: bmk_branch
default: master
@@ -40,72 +28,155 @@
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 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
- parameter:
- name: build-parameters
+ name: all-component-parameters
parameters:
+#if DYNAMIC_COMPONENT_LIST_yes
+ - string:
+ name: 'components_to_update'
+ default: '*'
+ description: "Component list to update. '*' means all components"
+#endif
+#if COMPONENTS_aosp_superproject
+ - component-parameters:
+ component: aosp_superproject
+ default_git: '{default_git}'
+#endif
#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_gdb
+ - component-parameters:
+ component: gdb
+ 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_mingw
+ - component-parameters:
+ component: mingw
+ 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_toolchain_superproject
+ - component-parameters:
+ component: toolchain_superproject
+ default_git: '{default_git}'
#endif
#if COMPONENTS_qemu
- component-parameters:
component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
#endif
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
- - update
- - reset
+ - onsuccess
+ - force
- init
- - push
+ - ignore
description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
- default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
distro: '{distro}'
+#if PRECOMMIT_ENABLE_yes
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+#endif
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+#if PRECOMMIT_ENABLE_yes
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+#endif
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+#if RR_tcwg_bmk
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--#{TOOLCHAIN}-.*-bisect'
+#else
+ - '{ci_project}--.*-bisect'
+#endif
+ queue-scanning: 'BUILDABLE'
+
# Beware: git branch names need the 'refs/heads/' prefix while tags
# need 'refs/tags/'.
- scm:
@@ -132,7 +203,13 @@
name: build-scms
scm:
- jenkins-scripts
-#if PURPOSE_ci
+#if COMPONENTS_aosp_superproject
+ - component-scm:
+ component: aosp_superproject
+ url: '{aosp_superproject_url}'
+ branch: '{aosp_superproject_branch}'
+ reference: superproject.git
+#endif
#if COMPONENTS_binutils
- component-scm:
component: binutils
@@ -147,6 +224,13 @@
branch: '{gcc_branch}'
reference: gcc.git
#endif
+#if COMPONENTS_gdb
+ - component-scm:
+ component: gdb
+ url: '{gdb_url}'
+ branch: '{gdb_branch}'
+ reference: binutils-gdb.git
+#endif
#if COMPONENTS_glibc
- component-scm:
component: glibc
@@ -154,13 +238,6 @@
branch: '{glibc_branch}'
reference: glibc.git
#endif
-#if COMPONENTS_newlib
- - component-scm:
- component: newlib
- url: '{newlib_url}'
- branch: '{newlib_branch}'
- reference: newlib.git
-#endif
#if COMPONENTS_linux
- component-scm:
component: linux
@@ -175,6 +252,27 @@
branch: '{llvm_branch}'
reference: llvm-project.git
#endif
+#if COMPONENTS_mingw
+ - component-scm:
+ component: mingw
+ url: '{mingw_url}'
+ branch: '{mingw_branch}'
+ reference: mingw-w64.git
+#endif
+#if COMPONENTS_newlib
+ - component-scm:
+ component: newlib
+ url: '{newlib_url}'
+ branch: '{newlib_branch}'
+ reference: newlib.git
+#endif
+#if COMPONENTS_toolchain_superproject
+ - component-scm:
+ component: toolchain_superproject
+ url: '{toolchain_superproject_url}'
+ branch: '{toolchain_superproject_branch}'
+ reference: superproject.git
+#endif
#if COMPONENTS_qemu
- component-scm:
component: qemu
@@ -182,8 +280,7 @@
branch: '{qemu_branch}'
reference: qemu.git
#endif
-#endif /* PURPOSE_ci */
-#if RR_tcwg_bmk
+#if SCM_bmk_scripts
- bmk-scripts
#endif
@@ -197,38 +294,273 @@
# tcwg-buildslave user id
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+#if PRECOMMIT_ENABLE_yes
+# - 'tcwg-build-20220725'
+#endif
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+#if PRECOMMIT_TRIGGER_yes
+ - text:
+ credential-id: TCWG_PW_TOKEN
+ variable: TCWG_PW_TOKEN
+#endif
- builder:
- name: trigger-followup-builds
+ name: trigger-followup-builds-1
builders:
- - build-name-setter:
- name: 'artifacts/jenkins/build-name'
- file: true
- shell: |
#!/bin/bash
+ source artifacts/jenkins/run-build.env
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
+#if SCM_bmk_scripts
echo "bmk_branch=$bmk_branch" >> $i
#endif
fi
done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
- trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
+ - project: '{ci_project}--{ci_config}-build'
parameter-factories:
- factory: filebuild
file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
+ - project: '{ci_project}--{ci_config}-bisect'
property-file: artifacts/trigger-bisect
- builder:
- name: run-build
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+#if PRECOMMIT_TRIGGER_yes
+- builder:
+ name: trigger-precommit-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Trigger pre-commit builds if the jenkins queue for
+ # this job is empty.
+ #
+ # Skip triggering pre-commit builds if there are other post-commit
+ # or pre-commit builds in the queue.
+ # Re. post-commit builds -- we need to process all pending
+ # bisection-triggered builds before fetching a new batch of
+ # upstream changes.
+ # Re. pre-commit builds -- we need to wait for the previous batch
+ # to finish to avoid triggering duplicate builds for the queued
+ # patches.
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: $build_type QUEUE IS NOT EMPTY"
+ trap "" EXIT
+ exit 0
+ fi
+ done
+
+ # $update_baseline != ignore tells us that we have just
+ # updated the baseline and this means that we should be
+ # in great shape to apply pending patches.
+ # Most likely current baseline revision is master revision
+ # as of few hours ago.
+ if [ "$update_baseline" = "ignore" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: DID NOT UPDATE BASELINE"
+ trap "" EXIT
+ exit 0
+ fi
+
+ for project in #{COMPONENTS}; do
+ # Note that we get here only when all previous pre-commit
+ # builds have finished and, presumably, updated ci_bot
+ # bundles at patchworks instance. If this were not
+ # the case, there would be some builds queued and
+ # we would have exited above.
+ build_container_exec \
+ ./jenkins-scripts/pw-trigger.sh \
+ --ci_bot '{ci_project}--{ci_config}' --project "$project" \
+ --out_dir artifacts/jenkins \
+ &> artifacts/jenkins/pw-trigger.log
+
+ for i in artifacts/jenkins/trigger-precommit-*; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+# if SCM_bmk_scripts
+ echo "bmk_branch=$bmk_branch" >> $i
+# endif
+ fi
+ done
+ done
+
+ trap "" EXIT
+#endif
+#if PRECOMMIT_ENABLE_yes
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+#endif
+
+- builder:
+ name: run-build-init
builders:
- shell:
command: |
@@ -239,116 +571,738 @@
rm -rf artifacts/
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
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+#if PRECOMMIT_ENABLE_yes
+ for job_type in build precommit; do
+#else
+ for job_type in build; do
#endif
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
-#if PURPOSE_ci
- build_name="#$BUILD_NUMBER"
-#elif PURPOSE_dev
- build_name="#$BUILD_NUMBER-$ci_project/$ci_config"
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+#if SET_DOCKER_ARCH_yes
+ --arch {docker_arch}
+ --node $NODE_NAME
#endif
- branch_opt=""
- # 1 to skip jenkins-scripts
- i=1
- for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
-#if PURPOSE_ci
- if [ x"$b" = x"default" ]; then
- eval "b=\$GIT_COMMIT_$i"
- fi
- i=$(($i+1))
+#if SET_DOCKER_SECURITY_yes
+ --security '{docker_security}'
#endif
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
#if RR_tcwg_bmk
- --ssh_info true \
-#elif RR_tcwg_binutils || RR_tcwg_gcc
- --arch {docker_arch} \
- --node $NODE_NAME \
+ --ssh_info true
#endif
- -- \
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
$extra_build_params \
-#if RR_tcwg_bmk
+#if SCM_bmk_scripts
--bmk_branch "$bmk_branch" \
#endif
--scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
+ ==rr[mode] "build" \
==rr[update_baseline] "$update_baseline" \
- --BUILD_URL "$BUILD_URL" &
- res=0 && wait $! || res=$?
+#if DYNAMIC_COMPONENT_LIST_yes
+ ==rr[components_to_update] "$components_to_update" \
+#endif
+#if MODE_fast
+ --fast_demo true \
+#endif
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 125
- fi
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
- if [ $res != 0 ]; then
- touch artifacts/failures
- fi
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+#if DYNAMIC_COMPONENT_LIST_yes
+ # Update build name with the components to update
+ build_name="$build_name-$components_to_update"
+#else
+ for c in #{COMPONENTS}; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
- if [ -e artifacts/results ]; then
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+#endif
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
- if [ x"$update_baseline" != x"update" ]; then
+ if [ "$update_baseline" != "onsuccess" ]; then
build_name="$build_name-$update_baseline"
fi
+
if [ -f artifacts/trigger-bisect ]; then
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+#if SET_DOCKER_ARCH_yes
+ docker_arch: '{docker_arch}'
+#endif
+#if SET_DOCKER_SECURITY_yes
+ docker_security: '{docker_security}'
+#endif
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+#if PRECOMMIT_TRIGGER_yes
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-1:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+#endif
+#if PRECOMMIT_ENABLE_yes
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+#endif
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+#if PRECOMMIT_ENABLE_yes
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+# if RR_tcwg_bmk
+ precommit_container_rsync -az --del \
+ bmk-scripts/ :bmk-scripts/
+# endif
+
+ branch_opt=()
+ for c in #{COMPONENTS}; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
- 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
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+# if SET_DOCKER_ARCH_yes
+ docker_arch: '{docker_arch}'
+# endif
+# if SET_DOCKER_SECURITY_yes
+ docker_security: '{docker_security}'
+# endif
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+#endif
- publisher:
name: build-publishers
publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+#if PUBLISH_EMAIL_RESULTS_yes
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-body.txt"}}
+ failure: false
+ success: true
+ aborted: false
+ send-to:
+ - recipients
+#endif
- parameter:
name: bisect-parameters
@@ -358,19 +1312,13 @@
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"
- default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
distro: '{distro}'
- wrapper:
@@ -378,12 +1326,6 @@
wrappers:
- build-wrappers:
timeout: '{timeout}'
-#if PURPOSE_ci
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
-#endif
- builder:
name: run-bisect
@@ -396,70 +1338,84 @@
# below docker-run.sh fails to start up a container.
rm -rf artifacts/
mkdir -p artifacts/jenkins
-#if PURPOSE_ci
build_name="#$BUILD_NUMBER-$current_project"
-#elif PURPOSE_dev
- build_name="#$BUILD_NUMBER-$ci_project/$ci_config-$current_project"
-#endif
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
-#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
- echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
-#endif
- echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
./jenkins-scripts/docker-run.sh \
--distro $distro \
#if RR_tcwg_bmk
--ssh_info true \
-#elif RR_tcwg_binutils || RR_tcwg_gcc
+#endif
+#if SET_DOCKER_ARCH_yes
--arch {docker_arch} \
--node $NODE_NAME \
#endif
+#if SET_DOCKER_SECURITY_yes
+ --security '{docker_security}' \
+#endif
-- \
./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
+ %%rel_artifacts artifacts \
--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" \
-#endif
-- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
$extra_build_params \
-#if RR_tcwg_bmk
+#if MODE_fast
+ --fast_demo true \
+#endif
+#if SCM_bmk_scripts
--bmk_branch "$bmk_branch" \
#endif
- --scripts_branch "$scripts_branch"
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
- publisher:
name: bisect-publishers
publishers:
- - build-publishers
- - 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
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
diff --git a/tcwg_aosp-build.yaml b/tcwg_aosp-build.yaml
new file mode 100644
index 0000000000..8f3db41a7b
--- /dev/null
+++ b/tcwg_aosp-build.yaml
@@ -0,0 +1,946 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_aosp.yaml.in and tcwg_aosp/tcwg_aosp-build.def. Do not edit.
+- project:
+ name: tcwg_aosp-build
+ aosp_modules:
+ - aosp:
+ build_timeout: 600
+ bisect_timeout: 6000
+ build_timeout: 300
+ bisect_timeout: 3000
+ aosp_target:
+ - oriole
+ aosp_ver:
+ - master
+ jobs:
+ - 'tcwg_aosp-build-{aosp_modules}--{aosp_target}-{aosp_ver}-build'
+ - 'tcwg_aosp-build-{aosp_modules}--{aosp_target}-{aosp_ver}-bisect'
+ ci_project: 'tcwg_aosp-build-{aosp_modules}'
+ ci_config: '{aosp_target}-{aosp_ver}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: aosp_superproject
+ default_git: '{default_git}'
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+ - component-parameters:
+ component: toolchain_superproject
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: aosp_superproject
+ url: '{aosp_superproject_url}'
+ branch: '{aosp_superproject_branch}'
+ reference: superproject.git
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - component-scm:
+ component: toolchain_superproject
+ url: '{toolchain_superproject_url}'
+ branch: '{toolchain_superproject_branch}'
+ reference: superproject.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in aosp_superproject llvm toolchain_superproject; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: 'tcwg_aosp-build-{aosp_modules}--{aosp_target}-{aosp_ver}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: 'default'
+ disabled: false
+ node: tcwg-x86_64 && tcwg-build
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_aosp_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ aosp_superproject_url: 'https://android.googlesource.com/platform/superproject/main.git'
+ aosp_superproject_branch: 'refs/heads/main'
+ llvm_url: 'https://github.com/llvm/llvm-project.git'
+ llvm_branch: 'refs/heads/main'
+ # Toolchain_superproject_url doesn't have .git at the end to make it
+ # different from aosp_superproject_url -- to workaround a bug in
+ # git-scm.
+ # When cloning 2 branches of same repository both GIT_COMMIT_n and
+ # GIT_COMMIT_m get set to the sha1 value of the second branch.
+ # I'm guessing git-scm plugin is indexing repos by URL, so sha1 of
+ # the first branch gets overwritten.
+ toolchain_superproject_url: 'https://android.googlesource.com/platform/superproject'
+ toolchain_superproject_branch: 'refs/heads/llvm-toolchain'
+ triggers:
+ - pollscm:
+ cron: 'H H * * *'
+ wrappers:
+ - build-wrappers:
+ timeout: '{build_timeout}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_aosp-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: 'tcwg_aosp-build-{aosp_modules}--{aosp_target}-{aosp_ver}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: 'default'
+ disabled: false
+ node: tcwg-x86_64 && tcwg-build && tcwg-fast-disk
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_aosp_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: '{bisect_timeout}'
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_aosp-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: b6213aea3f3a55d38ea2f08483159091
diff --git a/tcwg_aosp-code_size.yaml b/tcwg_aosp-code_size.yaml
new file mode 100644
index 0000000000..ef84976e77
--- /dev/null
+++ b/tcwg_aosp-code_size.yaml
@@ -0,0 +1,949 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_aosp.yaml.in and tcwg_aosp/tcwg_aosp-code_size.def. Do not edit.
+- project:
+ name: tcwg_aosp-code_size
+ aosp_modules:
+ - aosp:
+ build_timeout: 600
+ bisect_timeout: 6000
+ - dalvikvm
+ - dex2oat
+ - surfaceflinger
+ build_timeout: 300
+ bisect_timeout: 3000
+ aosp_target:
+ - oriole
+ aosp_ver:
+ - master
+ jobs:
+ - 'tcwg_aosp-code_size-{aosp_modules}--{aosp_target}-{aosp_ver}-build'
+ - 'tcwg_aosp-code_size-{aosp_modules}--{aosp_target}-{aosp_ver}-bisect'
+ ci_project: 'tcwg_aosp-code_size-{aosp_modules}'
+ ci_config: '{aosp_target}-{aosp_ver}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: aosp_superproject
+ default_git: '{default_git}'
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+ - component-parameters:
+ component: toolchain_superproject
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: aosp_superproject
+ url: '{aosp_superproject_url}'
+ branch: '{aosp_superproject_branch}'
+ reference: superproject.git
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - component-scm:
+ component: toolchain_superproject
+ url: '{toolchain_superproject_url}'
+ branch: '{toolchain_superproject_branch}'
+ reference: superproject.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in aosp_superproject llvm toolchain_superproject; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: 'tcwg_aosp-code_size-{aosp_modules}--{aosp_target}-{aosp_ver}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: 'default'
+ disabled: false
+ node: tcwg-x86_64 && tcwg-build
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_aosp_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ aosp_superproject_url: 'https://android.googlesource.com/platform/superproject/main.git'
+ aosp_superproject_branch: 'refs/heads/main'
+ llvm_url: 'https://github.com/llvm/llvm-project.git'
+ llvm_branch: 'refs/heads/main'
+ # Toolchain_superproject_url doesn't have .git at the end to make it
+ # different from aosp_superproject_url -- to workaround a bug in
+ # git-scm.
+ # When cloning 2 branches of same repository both GIT_COMMIT_n and
+ # GIT_COMMIT_m get set to the sha1 value of the second branch.
+ # I'm guessing git-scm plugin is indexing repos by URL, so sha1 of
+ # the first branch gets overwritten.
+ toolchain_superproject_url: 'https://android.googlesource.com/platform/superproject'
+ toolchain_superproject_branch: 'refs/heads/llvm-toolchain'
+ triggers:
+ - pollscm:
+ cron: 'H H * * *'
+ wrappers:
+ - build-wrappers:
+ timeout: '{build_timeout}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_aosp-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: 'tcwg_aosp-code_size-{aosp_modules}--{aosp_target}-{aosp_ver}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: 'default'
+ disabled: false
+ node: tcwg-x86_64 && tcwg-build && tcwg-fast-disk
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_aosp_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: '{bisect_timeout}'
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_aosp-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 96601c1b3ab09ea37d91f88f4c2405e9
diff --git a/tcwg_aosp.yaml.in b/tcwg_aosp.yaml.in
new file mode 100644
index 0000000000..21f2c2f324
--- /dev/null
+++ b/tcwg_aosp.yaml.in
@@ -0,0 +1,101 @@
+- project:
+ name: #{RR}-#{RR_PROJECT}
+ aosp_modules:
+ - aosp:
+ build_timeout: 600
+ bisect_timeout: 6000
+#if RR_PROJECT_code_size
+ - dalvikvm
+ - dex2oat
+ - surfaceflinger
+#endif
+ build_timeout: 300
+ bisect_timeout: 3000
+ aosp_target:
+ - oriole
+ aosp_ver:
+ - master
+ jobs:
+ - '#{RR}-#{RR_PROJECT}-{aosp_modules}--{aosp_target}-{aosp_ver}-build'
+ - '#{RR}-#{RR_PROJECT}-{aosp_modules}--{aosp_target}-{aosp_ver}-bisect'
+ ci_project: '#{RR}-#{RR_PROJECT}-{aosp_modules}'
+ ci_config: '{aosp_target}-{aosp_ver}'
+
+#include tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '#{RR}-#{RR_PROJECT}-{aosp_modules}--{aosp_target}-{aosp_ver}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: 'default'
+ disabled: false
+ node: tcwg-x86_64 && tcwg-build
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/#{RR}_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ aosp_superproject_url: 'https://android.googlesource.com/platform/superproject/main.git'
+ aosp_superproject_branch: 'refs/heads/main'
+ llvm_url: 'https://github.com/llvm/llvm-project.git'
+ llvm_branch: 'refs/heads/main'
+ # Toolchain_superproject_url doesn't have .git at the end to make it
+ # different from aosp_superproject_url -- to workaround a bug in
+ # git-scm.
+ # When cloning 2 branches of same repository both GIT_COMMIT_n and
+ # GIT_COMMIT_m get set to the sha1 value of the second branch.
+ # I'm guessing git-scm plugin is indexing repos by URL, so sha1 of
+ # the first branch gets overwritten.
+ toolchain_superproject_url: 'https://android.googlesource.com/platform/superproject'
+ toolchain_superproject_branch: 'refs/heads/llvm-toolchain'
+ triggers:
+ - pollscm:
+ cron: 'H H * * *'
+ wrappers:
+ - build-wrappers:
+ timeout: '{build_timeout}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '#{RR}-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '#{RR}-#{RR_PROJECT}-{aosp_modules}--{aosp_target}-{aosp_ver}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: 'default'
+ disabled: false
+ node: tcwg-x86_64 && tcwg-build && tcwg-fast-disk
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/#{RR}_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: '{bisect_timeout}'
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '#{RR}-build.sh'
+ publishers:
+ - bisect-publishers
diff --git a/tcwg_aosp/tcwg_aosp-build.def b/tcwg_aosp/tcwg_aosp-build.def
new file mode 100644
index 0000000000..4055cdf5fa
--- /dev/null
+++ b/tcwg_aosp/tcwg_aosp-build.def
@@ -0,0 +1,7 @@
+-v RR=tcwg_aosp
+-v RR_PROJECT=build
+-v COMPONENTS=aosp_superproject
+-v COMPONENTS=llvm
+-v COMPONENTS=toolchain_superproject
+-v SCM=bmk_scripts
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_aosp/tcwg_aosp-code_size.def b/tcwg_aosp/tcwg_aosp-code_size.def
new file mode 100644
index 0000000000..a1842ec04a
--- /dev/null
+++ b/tcwg_aosp/tcwg_aosp-code_size.def
@@ -0,0 +1,7 @@
+-v RR=tcwg_aosp
+-v RR_PROJECT=code_size
+-v COMPONENTS=aosp_superproject
+-v COMPONENTS=llvm
+-v COMPONENTS=toolchain_superproject
+-v SCM=bmk_scripts
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_binutils.yaml b/tcwg_binutils.yaml
index ce1235244f..cbc2ca8c90 100644
--- a/tcwg_binutils.yaml
+++ b/tcwg_binutils.yaml
@@ -2,34 +2,37 @@
# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
- project:
name: tcwg_binutils
- toolchain_name: gnu
- ci_project: tcwg_gnu
+ type_of_test: ""
+ timeout_build: 1000
+ # Trigger configuration that have precommit testing every 6 hours
+ # to test incoming patches in a timely manner.
+ cron_master: 'H H/6 * * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_binutils_build
+ - tcwg_binutils_check
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-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- - 'tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - tcwg_binutils-master
-- view:
- name: tcwg_binutils
- view-type: list
- regex: 'tcwg_binutils-.*'
+- job-group:
+ name: tcwg_binutils-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ binutils_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
#BEGIN: tcwg/round-robin.yaml.inc
# -*- mode: Yaml -*-
@@ -44,12 +47,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts
@@ -73,21 +75,9 @@
name: default-parameters
parameters:
- string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: distro
default: '{distro}'
@@ -101,34 +91,87 @@
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 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
- parameter:
- name: build-parameters
+ name: all-component-parameters
parameters:
- component-parameters:
component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
- - update
- - reset
+ - onsuccess
+ - force
- init
- - push
+ - ignore
description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
- default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
distro: '{distro}'
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
# Beware: git branch names need the 'refs/heads/' prefix while tags
# need 'refs/tags/'.
- scm:
@@ -171,35 +214,259 @@
# tcwg-buildslave user id
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+ - text:
+ credential-id: TCWG_PW_TOKEN
+ variable: TCWG_PW_TOKEN
- builder:
- name: trigger-followup-builds
+ name: trigger-followup-builds-1
builders:
- - build-name-setter:
- name: 'artifacts/jenkins/build-name'
- file: true
- shell: |
#!/bin/bash
+ source artifacts/jenkins/run-build.env
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
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
- trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
+ - project: '{ci_project}--{ci_config}-build'
parameter-factories:
- factory: filebuild
file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
+ - project: '{ci_project}--{ci_config}-bisect'
property-file: artifacts/trigger-bisect
- builder:
- name: run-build
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+- builder:
+ name: trigger-precommit-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Trigger pre-commit builds if the jenkins queue for
+ # this job is empty.
+ #
+ # Skip triggering pre-commit builds if there are other post-commit
+ # or pre-commit builds in the queue.
+ # Re. post-commit builds -- we need to process all pending
+ # bisection-triggered builds before fetching a new batch of
+ # upstream changes.
+ # Re. pre-commit builds -- we need to wait for the previous batch
+ # to finish to avoid triggering duplicate builds for the queued
+ # patches.
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: $build_type QUEUE IS NOT EMPTY"
+ trap "" EXIT
+ exit 0
+ fi
+ done
+
+ # $update_baseline != ignore tells us that we have just
+ # updated the baseline and this means that we should be
+ # in great shape to apply pending patches.
+ # Most likely current baseline revision is master revision
+ # as of few hours ago.
+ if [ "$update_baseline" = "ignore" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: DID NOT UPDATE BASELINE"
+ trap "" EXIT
+ exit 0
+ fi
+
+ for project in binutils; do
+ # Note that we get here only when all previous pre-commit
+ # builds have finished and, presumably, updated ci_bot
+ # bundles at patchworks instance. If this were not
+ # the case, there would be some builds queued and
+ # we would have exited above.
+ build_container_exec \
+ ./jenkins-scripts/pw-trigger.sh \
+ --ci_bot '{ci_project}--{ci_config}' --project "$project" \
+ --out_dir artifacts/jenkins \
+ &> artifacts/jenkins/pw-trigger.log
+
+ for i in artifacts/jenkins/trigger-precommit-*; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ done
+
+ trap "" EXIT
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
builders:
- shell:
command: |
@@ -210,85 +477,676 @@
rm -rf artifacts/
mkdir -p artifacts/jenkins
- dryruncmd=""
-
build_name="#$BUILD_NUMBER"
- branch_opt=""
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ 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"
+ for c in binutils; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
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+=("==rr[${{c}}_git]" "$g")
fi
done
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --arch {docker_arch} \
- --node $NODE_NAME \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --BUILD_URL "$BUILD_URL" &
- res=0 && wait $! || res=$?
+ 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
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
- if [ $res != 0 ]; then
- touch artifacts/failures
- fi
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
- if [ -e artifacts/results ]; then
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
- if [ x"$update_baseline" != x"update" ]; then
+ if [ "$update_baseline" != "onsuccess" ]; then
build_name="$build_name-$update_baseline"
fi
+
if [ -f artifacts/trigger-bisect ]; then
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
- 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
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-1:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in binutils; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
- publisher:
name: build-publishers
publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
- parameter:
name: bisect-parameters
@@ -298,19 +1156,13 @@
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"
- default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
distro: '{distro}'
- wrapper:
@@ -318,10 +1170,6 @@
wrappers:
- build-wrappers:
timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
- builder:
name: run-bisect
@@ -336,9 +1184,10 @@
mkdir -p artifacts/jenkins
build_name="#$BUILD_NUMBER-$current_project"
echo "$build_name" > artifacts/jenkins/build-name
- # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "prathamesh.kulkarni@linaro.org,tcwg-gcc@linaro.org" > artifacts/jenkins/mail-recipients.txt
- echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
./jenkins-scripts/docker-run.sh \
--distro $distro \
@@ -346,117 +1195,149 @@
--node $NODE_NAME \
-- \
./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
+ %%rel_artifacts artifacts \
--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" \
-- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
+ ==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 [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
- publisher:
name: bisect-publishers
publishers:
- - build-publishers
- - 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
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
#END: tcwg/round-robin.yaml.inc
- job-template:
- name: tcwg_binutils-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
- queue-scanning: 'ALL'
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- 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: 'default'
distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-build'
+ disabled: false
+ node: '{node}'
concurrent: false
- display-name: 'TCWG Build {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- build-scms:
binutils_url: '{binutils_url}'
binutils_branch: '{binutils_branch}'
triggers:
- - pollscm:
- cron: 'H H H/2 * *'
+ - timed: '{cron}'
wrappers:
- build-wrappers:
- timeout: 1000
+ timeout: '{timeout_build}'
builders:
- run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_gnu-build.sh'
- components: 'binutils'
- rr_project: 'tcwg_binutils'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
- target: '{target}'
- type_of_test: '{type_of_test}'
+ docker_security: '{docker_security}'
publishers:
- - build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
- job-template:
- name: tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "tcwg_binutils-bisect-.*"
- queue-scanning: 'BUILDABLE'
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- - bisect-parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
ci_project: '{ci_project}'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-bisect'
+ disabled: false
+ node: '{node}'
concurrent: false
- display-name: 'TCWG Bisect {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
@@ -465,10 +1346,11 @@
timeout: 6000
builders:
- run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_gnu-build.sh'
- rr_project: 'tcwg_binutils'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
publishers:
- bisect-publishers
-# checksum: 557ca8a0570213fa83f592d455fdeeb7
+# checksum: 2489b5878c53dee36245a40ea8e11f2a
diff --git a/tcwg_bmk-code_size-coremark--gnu_eabi.yaml b/tcwg_bmk-code_size-coremark--gnu_eabi.yaml
new file mode 100644
index 0000000000..291bd0fa1b
--- /dev/null
+++ b/tcwg_bmk-code_size-coremark--gnu_eabi.yaml
@@ -0,0 +1,968 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_size-coremark--gnu_eabi.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_size-coremark-gnu_eabi
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ newlib_url: git://sourceware.org/git/newlib-cygwin.git
+
+ toolchain_name: gnu_eabi
+
+ # BMK defined in def files
+ bmk:
+ - coremark
+
+ target:
+ - arm_eabi
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu_eabi-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu_eabi-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ newlib_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_size-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_size-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_size-coremark'
+ ci_config: 'gnu_eabi-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: newlib
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu_eabi-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: newlib
+ url: '{newlib_url}'
+ branch: '{newlib_branch}'
+ reference: newlib.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc newlib; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_size-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ newlib_url: '{newlib_url}'
+ newlib_branch: '{newlib_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_size-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: fcc66028b9c921a999f64aefc3ef526d
diff --git a/tcwg_bmk-code_size-cpu2017fast--gnu.yaml b/tcwg_bmk-code_size-cpu2017fast--gnu.yaml
new file mode 100644
index 0000000000..ade54d006a
--- /dev/null
+++ b/tcwg_bmk-code_size-cpu2017fast--gnu.yaml
@@ -0,0 +1,980 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_size-cpu2017fast-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017fast
+
+ target:
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_size-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_size-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_size-cpu2017fast'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 63ddae020d882b43872c47c405c4f7e2
diff --git a/tcwg_bmk-code_size-cpu2017fast--llvm.yaml b/tcwg_bmk-code_size-cpu2017fast--llvm.yaml
new file mode 100644
index 0000000000..4ee74f4b47
--- /dev/null
+++ b/tcwg_bmk-code_size-cpu2017fast--llvm.yaml
@@ -0,0 +1,952 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_size-cpu2017fast-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017fast
+
+ target:
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - Os
+ - Os_LTO
+ - Oz
+ - Oz_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_size-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_size-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_size-cpu2017fast'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: 4e605dbb03a1b8d54b72a43de8b35354
diff --git a/tcwg_bmk-code_size-cpu2017rate--gnu.yaml b/tcwg_bmk-code_size-cpu2017rate--gnu.yaml
new file mode 100644
index 0000000000..47b46fa2c9
--- /dev/null
+++ b/tcwg_bmk-code_size-cpu2017rate--gnu.yaml
@@ -0,0 +1,980 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_size-cpu2017rate-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - arm
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_size-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_size-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_size-cpu2017rate'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 3ff0a65c456b9935107df375f66a433d
diff --git a/tcwg_bmk-code_size-cpu2017rate--llvm.yaml b/tcwg_bmk-code_size-cpu2017rate--llvm.yaml
new file mode 100644
index 0000000000..b8ab71fab8
--- /dev/null
+++ b/tcwg_bmk-code_size-cpu2017rate--llvm.yaml
@@ -0,0 +1,952 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_size-cpu2017rate-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - arm:
+ docker_arch: armhf
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - Os
+ - Os_LTO
+ - Oz
+ - Oz_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_size-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_size-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_size-cpu2017rate'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_size-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: c7e26260669d72dd98bdc29246f1f284
diff --git a/tcwg_bmk-code_size-spec2k6--gnu.yaml b/tcwg_bmk-code_size-spec2k6--gnu.yaml
new file mode 100644
index 0000000000..5594559aec
--- /dev/null
+++ b/tcwg_bmk-code_size-spec2k6--gnu.yaml
@@ -0,0 +1,981 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_size-spec2k6--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_size-spec2k6-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - spec2k6
+
+ target:
+ - arm
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_size-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_size-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_size-spec2k6'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_size-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_size-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 713211edf793043fcc711657eba65948
diff --git a/tcwg_bmk-code_size-spec2k6--llvm.yaml b/tcwg_bmk-code_size-spec2k6--llvm.yaml
new file mode 100644
index 0000000000..24872ec833
--- /dev/null
+++ b/tcwg_bmk-code_size-spec2k6--llvm.yaml
@@ -0,0 +1,954 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_size-spec2k6--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_size-spec2k6-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - spec2k6
+
+ target:
+ - arm:
+ docker_arch: armhf
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - Os
+ - Os_LTO
+ - Oz
+ - Oz_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_size-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_size-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_size-spec2k6'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_size-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_size-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: b94d3d50acf6924c87456fa44e3bc83c
diff --git a/tcwg_bmk-code_speed-coremark--gnu_eabi.yaml b/tcwg_bmk-code_speed-coremark--gnu_eabi.yaml
new file mode 100644
index 0000000000..5758654708
--- /dev/null
+++ b/tcwg_bmk-code_speed-coremark--gnu_eabi.yaml
@@ -0,0 +1,970 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-coremark--gnu_eabi.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_speed-coremark-gnu_eabi
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ newlib_url: git://sourceware.org/git/newlib-cygwin.git
+
+ toolchain_name: gnu_eabi
+
+ # BMK defined in def files
+ bmk:
+ - coremark
+
+ target:
+ - arm_eabi
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu_eabi-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu_eabi-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ newlib_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_speed-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_speed-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_speed-coremark'
+ ci_config: 'gnu_eabi-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: newlib
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu_eabi-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: newlib
+ url: '{newlib_url}'
+ branch: '{newlib_branch}'
+ reference: newlib.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc newlib; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_speed-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ newlib_url: '{newlib_url}'
+ newlib_branch: '{newlib_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_speed-coremark--gnu_eabi-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: ba458684e2b657a2f158c7114b38452f
diff --git a/tcwg_bmk-code_speed-cpu2017rate--gnu.yaml b/tcwg_bmk-code_speed-cpu2017rate--gnu.yaml
new file mode 100644
index 0000000000..add142e9f6
--- /dev/null
+++ b/tcwg_bmk-code_speed-cpu2017rate--gnu.yaml
@@ -0,0 +1,983 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_speed-cpu2017rate-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - arm
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_speed-cpu2017rate'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 7bf3bf123743854c44ace3089a4f64f6
diff --git a/tcwg_bmk-code_speed-cpu2017rate--llvm.yaml b/tcwg_bmk-code_speed-cpu2017rate--llvm.yaml
new file mode 100644
index 0000000000..a096c5949a
--- /dev/null
+++ b/tcwg_bmk-code_speed-cpu2017rate--llvm.yaml
@@ -0,0 +1,958 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_speed-cpu2017rate-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - arm:
+ docker_arch: armhf
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Os
+ - Os_LTO
+ - Oz
+ - Oz_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_speed-cpu2017rate'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: 9439c0a2620d6ce2e25cc14ffce6f93a
diff --git a/tcwg_bmk-code_speed-cpu2017speed--gnu.yaml b/tcwg_bmk-code_speed-cpu2017speed--gnu.yaml
new file mode 100644
index 0000000000..147bbdfe0b
--- /dev/null
+++ b/tcwg_bmk-code_speed-cpu2017speed--gnu.yaml
@@ -0,0 +1,985 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_speed-cpu2017speed-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017speed
+
+ target:
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_speed-cpu2017speed'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ # We are waiting for tcwg-bmk-apm-* machines to get PDU control,
+ # so that we can recover from crashes.
+ # See https://linaro.atlassian.net/browse/STG-4212 .
+ disabled: true
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 4169ee1536856c1d57c67afe56340864
diff --git a/tcwg_bmk-code_speed-cpu2017speed--llvm.yaml b/tcwg_bmk-code_speed-cpu2017speed--llvm.yaml
new file mode 100644
index 0000000000..a9ca3dc5e8
--- /dev/null
+++ b/tcwg_bmk-code_speed-cpu2017speed--llvm.yaml
@@ -0,0 +1,959 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_speed-cpu2017speed-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017speed
+
+ target:
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Os
+ - Os_LTO
+ - Oz
+ - Oz_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_speed-cpu2017speed'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ # We are waiting for tcwg-bmk-apm-* machines to get PDU control,
+ # so that we can recover from crashes.
+ # See https://linaro.atlassian.net/browse/STG-4212 .
+ disabled: true
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: d0b180bf9a5afc3a195d6e7291013abd
diff --git a/tcwg_bmk-code_speed-spec2k6--gnu.yaml b/tcwg_bmk-code_speed-spec2k6--gnu.yaml
new file mode 100644
index 0000000000..df063745b3
--- /dev/null
+++ b/tcwg_bmk-code_speed-spec2k6--gnu.yaml
@@ -0,0 +1,986 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-spec2k6--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_speed-spec2k6-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - spec2k6
+
+ target:
+ - arm
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Os
+ - Os_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_speed-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_speed-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_speed-spec2k6'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_speed-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ # FIXME:
+ # Temporarily disable these configs to limit the usage of tx1 boards.
+ # Moreover, spec2017 is replacing the obsolete spec2k6.
+ disabled: true
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_speed-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: bc3de5a4240fdb7429cbdb4ff6287a3f
diff --git a/tcwg_bmk-code_speed-spec2k6--llvm.yaml b/tcwg_bmk-code_speed-spec2k6--llvm.yaml
new file mode 100644
index 0000000000..0ea2da9a0d
--- /dev/null
+++ b/tcwg_bmk-code_speed-spec2k6--llvm.yaml
@@ -0,0 +1,961 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-spec2k6--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_speed-spec2k6-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - spec2k6
+
+ target:
+ - arm:
+ docker_arch: armhf
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Os
+ - Os_LTO
+ - Oz
+ - Oz_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_speed-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_speed-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_speed-spec2k6'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_speed-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ # FIXME:
+ # Temporarily disable these configs to limit the usage of tx1 boards.
+ # Moreover, spec2017 is replacing the obsolete spec2k6.
+ disabled: true
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_speed-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: 6bfda02a19492b14cae3c684939b447e
diff --git a/tcwg_bmk-code_sve-cpu2017fast--gnu.yaml b/tcwg_bmk-code_sve-cpu2017fast--gnu.yaml
new file mode 100644
index 0000000000..fa777f71c8
--- /dev/null
+++ b/tcwg_bmk-code_sve-cpu2017fast--gnu.yaml
@@ -0,0 +1,978 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_sve-cpu2017fast--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_sve-cpu2017fast-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017fast
+
+ target:
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+ - O3_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_sve-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_sve-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_sve-cpu2017fast'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_sve-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_sve-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 77596abcc1d08ea1ebe519453a58c11a
diff --git a/tcwg_bmk-code_vect-cpu2017fast--gnu.yaml b/tcwg_bmk-code_vect-cpu2017fast--gnu.yaml
new file mode 100644
index 0000000000..1423febde7
--- /dev/null
+++ b/tcwg_bmk-code_vect-cpu2017fast--gnu.yaml
@@ -0,0 +1,978 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_vect-cpu2017fast-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017fast
+
+ target:
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+ - O3_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_vect-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_vect-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_vect-cpu2017fast'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017fast--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 2d438b3759911c1ba2297627f0332e05
diff --git a/tcwg_bmk-code_vect-cpu2017fast--llvm.yaml b/tcwg_bmk-code_vect-cpu2017fast--llvm.yaml
new file mode 100644
index 0000000000..b48ee0c2ea
--- /dev/null
+++ b/tcwg_bmk-code_vect-cpu2017fast--llvm.yaml
@@ -0,0 +1,950 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_vect-cpu2017fast-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017fast
+
+ target:
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+ - O3_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_vect-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_vect-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_vect-cpu2017fast'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017fast--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: c6ebd9e2770f9ba933bf170166e58230
diff --git a/tcwg_bmk-code_vect-cpu2017rate--gnu.yaml b/tcwg_bmk-code_vect-cpu2017rate--gnu.yaml
new file mode 100644
index 0000000000..19236a4dc3
--- /dev/null
+++ b/tcwg_bmk-code_vect-cpu2017rate--gnu.yaml
@@ -0,0 +1,978 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_vect-cpu2017rate-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - arm
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+ - O3_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_vect-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_vect-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_vect-cpu2017rate'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 03008210fc2b7bf9635f6039e07564d0
diff --git a/tcwg_bmk-code_vect-cpu2017rate--llvm.yaml b/tcwg_bmk-code_vect-cpu2017rate--llvm.yaml
new file mode 100644
index 0000000000..64a3c436ca
--- /dev/null
+++ b/tcwg_bmk-code_vect-cpu2017rate--llvm.yaml
@@ -0,0 +1,950 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_vect-cpu2017rate-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - arm:
+ docker_arch: armhf
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+ - O3_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_vect-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_vect-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_vect-cpu2017rate'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_vect-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: 3c2c9860fa01b0f16043caca5ec89080
diff --git a/tcwg_bmk-code_vect-spec2k6--gnu.yaml b/tcwg_bmk-code_vect-spec2k6--gnu.yaml
new file mode 100644
index 0000000000..ed83d42aa2
--- /dev/null
+++ b/tcwg_bmk-code_vect-spec2k6--gnu.yaml
@@ -0,0 +1,979 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_vect-spec2k6--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_vect-spec2k6-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - spec2k6
+
+ target:
+ - arm
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+ - O3_LTO
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_vect-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_vect-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_vect-spec2k6'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_vect-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_vect-spec2k6--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 24bae5dba0343169e325e475125080f0
diff --git a/tcwg_bmk-code_vect-spec2k6--llvm.yaml b/tcwg_bmk-code_vect-spec2k6--llvm.yaml
new file mode 100644
index 0000000000..6aa9875de4
--- /dev/null
+++ b/tcwg_bmk-code_vect-spec2k6--llvm.yaml
@@ -0,0 +1,952 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_vect-spec2k6--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-code_vect-spec2k6-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - spec2k6
+
+ target:
+ - arm:
+ docker_arch: armhf
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+ - O3_LTO
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-code_vect-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-code_vect-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-code_vect-spec2k6'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-code_vect-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-code_vect-spec2k6--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: a82f3709d3b017516dadc636cb43a4ec
diff --git a/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.yaml b/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.yaml
new file mode 100644
index 0000000000..b2cb585a23
--- /dev/null
+++ b/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.yaml
@@ -0,0 +1,978 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-fujitsu_speed-cpu2017speed-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017speed
+
+ target:
+ - aarch64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O3
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-fujitsu_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-fujitsu_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-fujitsu_speed-cpu2017speed'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-fujitsu_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 1200
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-fujitsu_speed-cpu2017speed--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 70c7c8417647a408872768edd29a3aa9
diff --git a/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.yaml b/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.yaml
new file mode 100644
index 0000000000..ac32daacc7
--- /dev/null
+++ b/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.yaml
@@ -0,0 +1,951 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-fujitsu_speed-cpu2017speed-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017speed
+
+ target:
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O2
+ - O3
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ # Schedule for Fujitsu and Qualcomm configurations are increased for llvm toolchain only
+ cron_schedule: 'H H * * *'
+ jobs:
+ - 'tcwg_bmk-fujitsu_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-fujitsu_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-fujitsu_speed-cpu2017speed'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-fujitsu_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 1200
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-fujitsu_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: 253de8b6a31d6dbcf40c90992dd88393
diff --git a/tcwg_bmk-qc_speed-cpu2017rate--gnu.yaml b/tcwg_bmk-qc_speed-cpu2017rate--gnu.yaml
new file mode 100644
index 0000000000..13c613d970
--- /dev/null
+++ b/tcwg_bmk-qc_speed-cpu2017rate--gnu.yaml
@@ -0,0 +1,985 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-qc_speed-cpu2017rate-gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+
+ toolchain_name: gnu
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+
+ jobs:
+ - 'tcwg_bmk-gnu-master'
+
+
+- job-group:
+ name: tcwg_bmk-gnu-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk-qc_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-qc_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-qc_speed-cpu2017rate'
+ ci_config: 'gnu-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--gnu-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-qc_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-qc_speed-cpu2017rate--gnu-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-x86_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: e048a2704f2b7cbc360a899d31ae1a5e
diff --git a/tcwg_bmk-qc_speed-cpu2017rate--llvm.yaml b/tcwg_bmk-qc_speed-cpu2017rate--llvm.yaml
new file mode 100644
index 0000000000..ed48379c04
--- /dev/null
+++ b/tcwg_bmk-qc_speed-cpu2017rate--llvm.yaml
@@ -0,0 +1,950 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-qc_speed-cpu2017rate-llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+
+ toolchain_name: llvm
+
+ # BMK defined in def files
+ bmk:
+ - cpu2017rate
+
+ target:
+ - aarch64:
+ docker_arch: arm64
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+ - O3
+
+ jobs:
+ - 'tcwg_bmk-llvm-master'
+
+
+- job-group:
+ name: tcwg_bmk-llvm-master
+ toolchain_ver: master
+ llvm_branch: refs/heads/main
+ distro: default
+ # Schedule for Fujitsu and Qualcomm configurations are increased for llvm toolchain only
+ cron_schedule: 'H H * * *'
+ jobs:
+ - 'tcwg_bmk-qc_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-qc_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-qc_speed-cpu2017rate'
+ ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- 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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ # We can't have same regressions between GNU and LLVM toolchains,
+ # do allow parallel bisections of those.
+ - '{ci_project}--llvm-.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --ssh_info true
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in llvm; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-qc_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-qc_speed-cpu2017rate--llvm-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build_bmk && tcwg-armv8_64
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: b7f4ccb422f320e96e4607045ce5b1bd
diff --git a/tcwg_bmk.yaml.in b/tcwg_bmk.yaml.in
new file mode 100644
index 0000000000..fdc0affabc
--- /dev/null
+++ b/tcwg_bmk.yaml.in
@@ -0,0 +1,235 @@
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk-#{PROFILE_NAME}-#{BMK}-#{TOOLCHAIN}
+#if TOOLCHAIN_gnu || TOOLCHAIN_gnu_eabi
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+# if TOOLCHAIN_gnu
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+# elif TOOLCHAIN_gnu_eabi
+ newlib_url: git://sourceware.org/git/newlib-cygwin.git
+# endif
+#elif TOOLCHAIN_llvm
+ llvm_url: https://github.com/llvm/llvm-project.git
+#endif
+
+ toolchain_name: #{TOOLCHAIN}
+
+ # BMK defined in def files
+ bmk:
+#if BMK_coremark
+ - coremark
+#endif
+#if BMK_spec2k6
+ - spec2k6
+#endif
+#if BMK_cpu2017fast
+ - cpu2017fast
+#endif
+#if BMK_cpu2017speed
+ - cpu2017speed
+#endif
+#if BMK_cpu2017rate
+ - cpu2017rate
+#endif
+
+ target:
+#if TARGET_arm
+#if SET_DOCKER_ARCH_yes
+ - arm:
+ docker_arch: armhf
+#else
+ - arm
+#endif
+#endif
+#if TARGET_arm_eabi
+ - arm_eabi
+#endif
+#if TARGET_aarch64
+#if SET_DOCKER_ARCH_yes
+ - aarch64:
+ docker_arch: arm64
+#else
+ - aarch64
+#endif
+#endif
+
+
+ # PROFILE_NAME defined in def files
+ cflags:
+#if (PROFILE_NAME_code_size && ! TOOLCHAIN_llvm) || PROFILE_NAME_code_speed || PROFILE_NAME_fujitsu_speed
+ - O2
+#endif
+#if (PROFILE_NAME_code_size && ! TOOLCHAIN_llvm) || PROFILE_NAME_code_speed
+ - O2_LTO
+#endif
+#if ! PROFILE_NAME_code_size
+ - O3
+#endif
+#if ! PROFILE_NAME_code_size && ! PROFILE_NAME_fujitsu_speed && ! PROFILE_NAME_qc_speed
+ - O3_LTO
+#endif
+#if PROFILE_NAME_code_size || PROFILE_NAME_code_speed
+ - Os
+ - Os_LTO
+# if TOOLCHAIN_llvm
+ - Oz
+ - Oz_LTO
+# endif
+#endif
+
+ jobs:
+#if BRANCH_master
+ - 'tcwg_bmk-#{TOOLCHAIN}-master'
+#endif
+
+
+#if BRANCH_master
+- job-group:
+ name: tcwg_bmk-#{TOOLCHAIN}-master
+ toolchain_ver: master
+#if TOOLCHAIN_gnu || TOOLCHAIN_gnu_eabi
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+# if TOOLCHAIN_gnu
+ glibc_branch: refs/heads/master
+# elif TOOLCHAIN_gnu_eabi
+ newlib_branch: refs/heads/master
+# endif
+#elif TOOLCHAIN_llvm
+ llvm_branch: refs/heads/main
+#endif
+ distro: default
+#if (PROFILE_NAME_fujitsu_speed || PROFILE_NAME_qc_speed) && TOOLCHAIN_llvm
+ # Schedule for Fujitsu and Qualcomm configurations are increased for llvm toolchain only
+ cron_schedule: 'H H * * *'
+#else
+ cron_schedule: 'H H H/3 * *'
+#endif
+ jobs:
+ - 'tcwg_bmk-#{PROFILE_NAME}-#{BMK}--#{TOOLCHAIN}-{target}-{toolchain_ver}-{cflags}-build'
+ - 'tcwg_bmk-#{PROFILE_NAME}-#{BMK}--#{TOOLCHAIN}-{target}-{toolchain_ver}-{cflags}-bisect'
+ ci_project: 'tcwg_bmk-#{PROFILE_NAME}-#{BMK}'
+ ci_config: '#{TOOLCHAIN}-{target}-{toolchain_ver}-{cflags}'
+#endif
+
+#include tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_bmk-#{PROFILE_NAME}-#{BMK}--#{TOOLCHAIN}-{target}-{toolchain_ver}-{cflags}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+#if PROFILE_NAME_code_speed && BMK_cpu2017speed
+ # We are waiting for tcwg-bmk-apm-* machines to get PDU control,
+ # so that we can recover from crashes.
+ # See https://linaro.atlassian.net/browse/STG-4212 .
+ disabled: true
+#elif PROFILE_NAME_code_speed && BMK_spec2k6
+ # FIXME:
+ # Temporarily disable these configs to limit the usage of tx1 boards.
+ # Moreover, spec2017 is replacing the obsolete spec2k6.
+ disabled: true
+#else
+ disabled: false
+#endif
+#if TOOLCHAIN_gnu_eabi
+ node: tcwg-x86_64-build
+#elif TOOLCHAIN_llvm
+ node: tcwg-build_bmk && tcwg-armv8_64
+#elif TOOLCHAIN_gnu
+ node: tcwg-build_bmk && tcwg-x86_64
+#endif
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+#if TOOLCHAIN_gnu || TOOLCHAIN_gnu_eabi
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+# if TOOLCHAIN_gnu
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+# elif TOOLCHAIN_gnu_eabi
+ newlib_url: '{newlib_url}'
+ newlib_branch: '{newlib_branch}'
+# endif
+#elif TOOLCHAIN_llvm
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+#endif
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+#if PROFILE_NAME_fujitsu_speed
+ timeout: 1200
+#else
+ timeout: 600
+#endif
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+#if SET_DOCKER_ARCH_yes
+ docker_arch: '{docker_arch}'
+#endif
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_bmk-#{PROFILE_NAME}-#{BMK}--#{TOOLCHAIN}-{target}-{toolchain_ver}-{cflags}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+#if TOOLCHAIN_gnu_eabi
+ node: tcwg-x86_64-build
+#elif TOOLCHAIN_llvm
+ node: tcwg-build_bmk && tcwg-armv8_64
+#elif TOOLCHAIN_gnu
+ node: tcwg-build_bmk && tcwg-x86_64
+#endif
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_bmk-build.sh'
+#if SET_DOCKER_ARCH_yes
+ docker_arch: '{docker_arch}'
+#endif
+ publishers:
+ - bisect-publishers
diff --git a/tcwg_bmk/tcwg_bmk-code_size-coremark--gnu_eabi.def b/tcwg_bmk/tcwg_bmk-code_size-coremark--gnu_eabi.def
new file mode 100644
index 0000000000..ab2c1e4b2b
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_size-coremark--gnu_eabi.def
@@ -0,0 +1,16 @@
+-v PROFILE_NAME=code_size
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=newlib
+-v SCM=bmk_scripts
+
+-v BMK=coremark
+
+-v TOOLCHAIN=gnu_eabi
+-v BRANCH=master
+
+-v TARGET=arm_eabi
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--gnu.def b/tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--gnu.def
new file mode 100644
index 0000000000..b9111a1332
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--gnu.def
@@ -0,0 +1,17 @@
+-v PROFILE_NAME=code_size
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017fast
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--llvm.def b/tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--llvm.def
new file mode 100644
index 0000000000..45793b5e07
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_size-cpu2017fast--llvm.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=code_size
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017fast
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--gnu.def b/tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--gnu.def
new file mode 100644
index 0000000000..3bc247d85d
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--gnu.def
@@ -0,0 +1,17 @@
+-v PROFILE_NAME=code_size
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=arm
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--llvm.def b/tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--llvm.def
new file mode 100644
index 0000000000..f49bbe1377
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_size-cpu2017rate--llvm.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=code_size
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=arm
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_size-spec2k6--gnu.def b/tcwg_bmk/tcwg_bmk-code_size-spec2k6--gnu.def
new file mode 100644
index 0000000000..aeea06dbad
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_size-spec2k6--gnu.def
@@ -0,0 +1,18 @@
+-v PROFILE_NAME=code_size
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=spec2k6
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=arm
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_size-spec2k6--llvm.def b/tcwg_bmk/tcwg_bmk-code_size-spec2k6--llvm.def
new file mode 100644
index 0000000000..97e034baf6
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_size-spec2k6--llvm.def
@@ -0,0 +1,16 @@
+-v PROFILE_NAME=code_size
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=spec2k6
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=arm
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_speed-coremark--gnu_eabi.def b/tcwg_bmk/tcwg_bmk-code_speed-coremark--gnu_eabi.def
new file mode 100644
index 0000000000..806e566edb
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_speed-coremark--gnu_eabi.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=code_speed
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=newlib
+-v SCM=bmk_scripts
+
+-v TOOLCHAIN=gnu_eabi
+-v BRANCH=master
+
+-v TARGET=arm_eabi
+
+-v RR=tcwg_bmk
+-v BMK=coremark
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--gnu.def b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--gnu.def
new file mode 100644
index 0000000000..ed130cd0e2
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--gnu.def
@@ -0,0 +1,18 @@
+-v PROFILE_NAME=code_speed
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=arm
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--llvm.def b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--llvm.def
new file mode 100644
index 0000000000..c1d229cb58
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017rate--llvm.def
@@ -0,0 +1,16 @@
+-v PROFILE_NAME=code_speed
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=arm
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--gnu.def b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--gnu.def
new file mode 100644
index 0000000000..d9eec018c4
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--gnu.def
@@ -0,0 +1,17 @@
+-v PROFILE_NAME=code_speed
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017speed
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--llvm.def b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--llvm.def
new file mode 100644
index 0000000000..9a640031fc
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--llvm.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=code_speed
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017speed
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_speed-spec2k6--gnu.def b/tcwg_bmk/tcwg_bmk-code_speed-spec2k6--gnu.def
new file mode 100644
index 0000000000..51a3e973d6
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_speed-spec2k6--gnu.def
@@ -0,0 +1,18 @@
+-v PROFILE_NAME=code_speed
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=spec2k6
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=arm
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_speed-spec2k6--llvm.def b/tcwg_bmk/tcwg_bmk-code_speed-spec2k6--llvm.def
new file mode 100644
index 0000000000..a2c72807f0
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_speed-spec2k6--llvm.def
@@ -0,0 +1,16 @@
+-v PROFILE_NAME=code_speed
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=spec2k6
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=arm
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_sve-cpu2017fast--gnu.def b/tcwg_bmk/tcwg_bmk-code_sve-cpu2017fast--gnu.def
new file mode 100644
index 0000000000..ac77f588bf
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_sve-cpu2017fast--gnu.def
@@ -0,0 +1,17 @@
+-v PROFILE_NAME=code_sve
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017fast
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--gnu.def b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--gnu.def
new file mode 100644
index 0000000000..96e7a9cb0c
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--gnu.def
@@ -0,0 +1,17 @@
+-v PROFILE_NAME=code_vect
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017fast
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--llvm.def b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--llvm.def
new file mode 100644
index 0000000000..63b40db4a8
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017fast--llvm.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=code_vect
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017fast
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--gnu.def b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--gnu.def
new file mode 100644
index 0000000000..64c314b7d6
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--gnu.def
@@ -0,0 +1,17 @@
+-v PROFILE_NAME=code_vect
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=arm
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--llvm.def b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--llvm.def
new file mode 100644
index 0000000000..29b93166d3
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_vect-cpu2017rate--llvm.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=code_vect
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=arm
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_vect-spec2k6--gnu.def b/tcwg_bmk/tcwg_bmk-code_vect-spec2k6--gnu.def
new file mode 100644
index 0000000000..639cb39569
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_vect-spec2k6--gnu.def
@@ -0,0 +1,18 @@
+-v PROFILE_NAME=code_vect
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=spec2k6
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=aarch64
+-v TARGET=arm
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-code_vect-spec2k6--llvm.def b/tcwg_bmk/tcwg_bmk-code_vect-spec2k6--llvm.def
new file mode 100644
index 0000000000..ca64613d75
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-code_vect-spec2k6--llvm.def
@@ -0,0 +1,16 @@
+-v PROFILE_NAME=code_vect
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=spec2k6
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=aarch64
+-v TARGET=arm
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.def b/tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.def
new file mode 100644
index 0000000000..b0a75dbbed
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--gnu.def
@@ -0,0 +1,17 @@
+-v PROFILE_NAME=fujitsu_speed
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017speed
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SQUAD_GRP=fujitsu
diff --git a/tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.def b/tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.def
new file mode 100644
index 0000000000..33eebab32d
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-fujitsu_speed-cpu2017speed--llvm.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=fujitsu_speed
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017speed
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=fujitsu
diff --git a/tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--gnu.def b/tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--gnu.def
new file mode 100644
index 0000000000..90d4595caa
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--gnu.def
@@ -0,0 +1,18 @@
+-v PROFILE_NAME=qc_speed
+
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=gnu
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--llvm.def b/tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--llvm.def
new file mode 100644
index 0000000000..ddf83c9cfd
--- /dev/null
+++ b/tcwg_bmk/tcwg_bmk-qc_speed-cpu2017rate--llvm.def
@@ -0,0 +1,15 @@
+-v PROFILE_NAME=qc_speed
+
+-v COMPONENTS=llvm
+-v SCM=bmk_scripts
+
+-v BMK=cpu2017rate
+
+-v TOOLCHAIN=llvm
+-v BRANCH=master
+
+-v TARGET=aarch64
+
+-v RR=tcwg_bmk
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=tcwg
diff --git a/tcwg_bmk_ci.yaml.in b/tcwg_bmk_ci.yaml.in
deleted file mode 100644
index 4ff76f5eec..0000000000
--- a/tcwg_bmk_ci.yaml.in
+++ /dev/null
@@ -1,223 +0,0 @@
-# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
-- project:
- 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
- glibc_url: git://sourceware.org/git/glibc.git
-#endif
-#if TOOLCHAIN_llvm
- llvm_url: https://github.com/llvm/llvm-project.git
-#endif
- hw:
-#if TOOLCHAIN_gnu_eabi
- - stm32:
- target: arm_eabi
- node: tcwg-x86_64-dev-02
-#else
- - 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
-#else
- - 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 * *
- 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}'
- exclude:
- - toolchain_name: gnu
- cflags: Oz
- - toolchain_name: gnu
- cflags: Oz_LTO
- - toolchain_name: gnu_eabi
- cflags: Oz
- - toolchain_name: gnu_eabi
- 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
-
-- view:
- name: tcwg_bmk_ci_#{TOOLCHAIN}
- view-type: list
- regex: 'tcwg_bmk_ci_#{TOOLCHAIN}-.*'
-
-#include tcwg/round-robin.yaml.inc
-
-- job-template:
- name: tcwg_bmk_ci_#{TOOLCHAIN}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - 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_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
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - build-scms:
- binutils_url: '{binutils_url}'
- binutils_branch: '{binutils_branch}'
- gcc_url: '{gcc_url}'
- gcc_branch: '{gcc_branch}'
-#if !TOOLCHAIN_gnu_eabi
- glibc_url: '{glibc_url}'
- glibc_branch: '{glibc_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}'
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- 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}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # 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}-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
- ci_config: '#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- - bmk-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 2880
- builders:
- - 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}'
- publishers:
- - bisect-publishers
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_gnu.def b/tcwg_bmk_ci/tcwg_bmk_ci_gnu.def
deleted file mode 100644
index b0e7583bf0..0000000000
--- a/tcwg_bmk_ci/tcwg_bmk_ci_gnu.def
+++ /dev/null
@@ -1,6 +0,0 @@
--v COMPONENTS=binutils
--v COMPONENTS=gcc
--v COMPONENTS=glibc
--v PURPOSE=ci
--v RR=tcwg_bmk
--v TOOLCHAIN=gnu
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def b/tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def
deleted file mode 100644
index 3df65fad82..0000000000
--- a/tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def
+++ /dev/null
@@ -1,6 +0,0 @@
--v COMPONENTS=binutils
--v COMPONENTS=gcc
--v COMPONENTS=newlib
--v PURPOSE=ci
--v RR=tcwg_bmk
--v TOOLCHAIN=gnu_eabi
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_llvm.def b/tcwg_bmk_ci/tcwg_bmk_ci_llvm.def
deleted file mode 100644
index 06ed475432..0000000000
--- a/tcwg_bmk_ci/tcwg_bmk_ci_llvm.def
+++ /dev/null
@@ -1,7 +0,0 @@
--v COMPONENTS=binutils
--v COMPONENTS=gcc
--v COMPONENTS=glibc
--v COMPONENTS=llvm
--v PURPOSE=ci
--v RR=tcwg_bmk
--v TOOLCHAIN=llvm
diff --git a/tcwg_bmk_ci_gnu.yaml b/tcwg_bmk_ci_gnu.yaml
deleted file mode 100644
index 9bf1f3beb8..0000000000
--- a/tcwg_bmk_ci_gnu.yaml
+++ /dev/null
@@ -1,563 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_ci.yaml.in and tcwg_bmk_ci/tcwg_bmk_ci_gnu.def. Do not edit.
-# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
-- project:
- name: tcwg_bmk_ci_gnu
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- gcc_url: https://github.com/gcc-mirror/gcc.git
- glibc_url: git://sourceware.org/git/glibc.git
- hw:
- - 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 * *
- 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}'
- exclude:
- - toolchain_name: gnu
- cflags: Oz
- - toolchain_name: gnu
- cflags: Oz_LTO
- - toolchain_name: gnu_eabi
- cflags: Oz
- - toolchain_name: gnu_eabi
- 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
-
-- view:
- name: tcwg_bmk_ci_gnu
- view-type: list
- regex: 'tcwg_bmk_ci_gnu-.*'
-
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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: 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
-
-- 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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
- - string:
- name: bmk_branch
- default: master
- description: 'Benchmark scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- 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}'
- reference: gcc.git
- - component-scm:
- component: glibc
- url: '{glibc_url}'
- branch: '{glibc_branch}'
- reference: glibc.git
- - bmk-scripts
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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"
- fi
- i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- 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 "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
-
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- job-template:
- name: tcwg_bmk_ci_gnu-build-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - 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_config: 'gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- glibc_url: '{glibc_url}'
- default_branch: default
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - build-scms:
- binutils_url: '{binutils_url}'
- binutils_branch: '{binutils_branch}'
- gcc_url: '{gcc_url}'
- gcc_branch: '{gcc_branch}'
- glibc_url: '{glibc_url}'
- glibc_branch: '{glibc_branch}'
- triggers:
- - pollscm:
- cron: '{cron_schedule}'
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- 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}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_bmk_ci_gnu-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # 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}-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
- ci_config: 'gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- - bmk-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 2880
- builders:
- - 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}'
- publishers:
- - bisect-publishers
-# checksum: 0d0bc83d8d6ac1a5839dde45275a89b2
diff --git a/tcwg_bmk_ci_gnu_eabi.yaml b/tcwg_bmk_ci_gnu_eabi.yaml
deleted file mode 100644
index e7198bc832..0000000000
--- a/tcwg_bmk_ci_gnu_eabi.yaml
+++ /dev/null
@@ -1,560 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_ci.yaml.in and tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def. Do not edit.
-# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
-- project:
- name: tcwg_bmk_ci_gnu_eabi
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- gcc_url: https://github.com/gcc-mirror/gcc.git
- newlib_url: git://sourceware.org/git/newlib-cygwin.git
- 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 * *
- 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}'
- exclude:
- - toolchain_name: gnu
- cflags: Oz
- - toolchain_name: gnu
- cflags: Oz_LTO
- - toolchain_name: gnu_eabi
- cflags: Oz
- - toolchain_name: gnu_eabi
- 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
-
-- view:
- name: tcwg_bmk_ci_gnu_eabi
- view-type: list
- regex: 'tcwg_bmk_ci_gnu_eabi-.*'
-
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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: 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
-
-- 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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
- - string:
- name: bmk_branch
- default: master
- description: 'Benchmark scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: newlib
- url: '{newlib_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- 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}'
- reference: gcc.git
- - component-scm:
- component: newlib
- url: '{newlib_url}'
- branch: '{newlib_branch}'
- reference: newlib.git
- - bmk-scripts
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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"
- fi
- i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- 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 "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
-
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- job-template:
- name: tcwg_bmk_ci_gnu_eabi-build-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - 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_config: 'gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- newlib_url: '{newlib_url}'
- default_branch: default
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - build-scms:
- binutils_url: '{binutils_url}'
- binutils_branch: '{binutils_branch}'
- gcc_url: '{gcc_url}'
- gcc_branch: '{gcc_branch}'
- newlib_url: '{newlib_url}'
- newlib_branch: '{newlib_branch}'
- triggers:
- - pollscm:
- cron: '{cron_schedule}'
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- 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}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # 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}-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
- ci_config: 'gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- - bmk-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 2880
- builders:
- - 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}'
- publishers:
- - bisect-publishers
-# checksum: 479252d06d3ef9a6be6cc2e8e461e460
diff --git a/tcwg_bmk_ci_llvm.yaml b/tcwg_bmk_ci_llvm.yaml
deleted file mode 100644
index 78d4e4a687..0000000000
--- a/tcwg_bmk_ci_llvm.yaml
+++ /dev/null
@@ -1,578 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_ci.yaml.in and tcwg_bmk_ci/tcwg_bmk_ci_llvm.def. Do not edit.
-# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
-- project:
- name: tcwg_bmk_ci_llvm
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- gcc_url: https://github.com/gcc-mirror/gcc.git
- glibc_url: git://sourceware.org/git/glibc.git
- llvm_url: https://github.com/llvm/llvm-project.git
- hw:
- - 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 * *
- 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}'
- exclude:
- - toolchain_name: gnu
- cflags: Oz
- - toolchain_name: gnu
- cflags: Oz_LTO
- - toolchain_name: gnu_eabi
- cflags: Oz
- - toolchain_name: gnu_eabi
- 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
-
-- view:
- name: tcwg_bmk_ci_llvm
- view-type: list
- regex: 'tcwg_bmk_ci_llvm-.*'
-
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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: 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
-
-- 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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
- - string:
- name: bmk_branch
- default: master
- description: 'Benchmark scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: llvm
- url: '{llvm_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- 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}'
- reference: gcc.git
- - component-scm:
- component: glibc
- url: '{glibc_url}'
- branch: '{glibc_branch}'
- reference: glibc.git
- - component-scm:
- component: llvm
- url: '{llvm_url}'
- branch: '{llvm_branch}'
- reference: llvm-project.git
- - bmk-scripts
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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"
- fi
- i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- 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 "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
-
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- job-template:
- name: tcwg_bmk_ci_llvm-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - 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_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
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - build-scms:
- binutils_url: '{binutils_url}'
- binutils_branch: '{binutils_branch}'
- gcc_url: '{gcc_url}'
- gcc_branch: '{gcc_branch}'
- glibc_url: '{glibc_url}'
- glibc_branch: '{glibc_branch}'
- llvm_url: '{llvm_url}'
- llvm_branch: '{llvm_branch}'
- triggers:
- - pollscm:
- cron: '{cron_schedule}'
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- 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}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # 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}-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_bmk_{hw}'
- ci_config: 'llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
- distro: '{distro}'
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- - bmk-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 2880
- builders:
- - 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}'
- publishers:
- - bisect-publishers
-# checksum: 3b6c3c28b3bcd1bdf93a4de897e4e5de
diff --git a/tcwg_bmk_dev.yaml.in b/tcwg_bmk_dev.yaml.in
deleted file mode 100644
index d46900e85f..0000000000
--- a/tcwg_bmk_dev.yaml.in
+++ /dev/null
@@ -1,100 +0,0 @@
-#include tcwg/round-robin.yaml.inc
-
-- 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}'
-
-- 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
-
-- job-template:
- name: tcwg_bmk_dev_#{TOOLCHAIN}-build-tcwg_bmk_{hw}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_bmk_dev_.*-bisect-tcwg_bmk_{hw}"
- 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
- distro: lts_1
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/#{TOOLCHAIN}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - build-scms
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
- rr_project: 'tcwg_bmk_dev_#{TOOLCHAIN}'
- ci_project_config: 'tcwg_bmk_{hw}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_bmk_dev_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_bmk-YOUR_ID'
- ci_config: #{TOOLCHAIN}-release-aarch64-spec2k6-O2
- distro: lts_1
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/#{TOOLCHAIN}'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- - bmk-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 2880
- builders:
- - run-bisect:
- build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
- rr_project: 'tcwg_bmk_dev_#{TOOLCHAIN}'
- ci_project_config: 'tcwg_bmk_{hw}'
- publishers:
- - bisect-publishers
diff --git a/tcwg_bmk_dev/tcwg_bmk_dev_gnu.def b/tcwg_bmk_dev/tcwg_bmk_dev_gnu.def
deleted file mode 100644
index 7d6040c99b..0000000000
--- a/tcwg_bmk_dev/tcwg_bmk_dev_gnu.def
+++ /dev/null
@@ -1,6 +0,0 @@
--v COMPONENTS=binutils
--v COMPONENTS=gcc
--v COMPONENTS=glibc
--v PURPOSE=dev
--v RR=tcwg_bmk
--v TOOLCHAIN=gnu
diff --git a/tcwg_bmk_dev/tcwg_bmk_dev_llvm.def b/tcwg_bmk_dev/tcwg_bmk_dev_llvm.def
deleted file mode 100644
index 4f8ef05ddd..0000000000
--- a/tcwg_bmk_dev/tcwg_bmk_dev_llvm.def
+++ /dev/null
@@ -1,7 +0,0 @@
--v COMPONENTS=binutils
--v COMPONENTS=gcc
--v COMPONENTS=glibc
--v COMPONENTS=llvm
--v PURPOSE=dev
--v RR=tcwg_bmk
--v TOOLCHAIN=llvm
diff --git a/tcwg_bmk_dev_gnu.yaml b/tcwg_bmk_dev_gnu.yaml
deleted file mode 100644
index e87338226c..0000000000
--- a/tcwg_bmk_dev_gnu.yaml
+++ /dev/null
@@ -1,460 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_dev.yaml.in and tcwg_bmk_dev/tcwg_bmk_dev_gnu.def. Do not edit.
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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: 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
-
-- 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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
- - string:
- name: bmk_branch
- default: master
- description: 'Benchmark scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- scm:
- - jenkins-scripts
- - bmk-scripts
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- 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 "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
-
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- 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}'
-
-- 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
-
-- job-template:
- name: tcwg_bmk_dev_gnu-build-tcwg_bmk_{hw}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_bmk_dev_.*-bisect-tcwg_bmk_{hw}"
- 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
- distro: lts_1
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/gnu'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - build-scms
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
- rr_project: 'tcwg_bmk_dev_gnu'
- ci_project_config: 'tcwg_bmk_{hw}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_bmk_dev_gnu-bisect-tcwg_bmk_{hw}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_bmk-YOUR_ID'
- ci_config: gnu-release-aarch64-spec2k6-O2
- distro: lts_1
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/gnu'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- - bmk-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 2880
- builders:
- - run-bisect:
- build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
- rr_project: 'tcwg_bmk_dev_gnu'
- ci_project_config: 'tcwg_bmk_{hw}'
- publishers:
- - bisect-publishers
-# checksum: 71aa5312c5bb6632b6e82f940a7573d5
diff --git a/tcwg_bmk_dev_llvm.yaml b/tcwg_bmk_dev_llvm.yaml
deleted file mode 100644
index b4fd9223bb..0000000000
--- a/tcwg_bmk_dev_llvm.yaml
+++ /dev/null
@@ -1,465 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_dev.yaml.in and tcwg_bmk_dev/tcwg_bmk_dev_llvm.def. Do not edit.
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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: 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
-
-- 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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
- - string:
- name: bmk_branch
- default: master
- description: 'Benchmark scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: llvm
- url: '{llvm_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- scm:
- - jenkins-scripts
- - bmk-scripts
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- 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 "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
-
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --ssh_info true \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --bmk_branch "$bmk_branch" \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- 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}'
-
-- 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
-
-- job-template:
- name: tcwg_bmk_dev_llvm-build-tcwg_bmk_{hw}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_bmk_dev_.*-bisect-tcwg_bmk_{hw}"
- 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
- distro: lts_1
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Build tcwg_bmk_{hw}/llvm'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - build-scms
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
- rr_project: 'tcwg_bmk_dev_llvm'
- ci_project_config: 'tcwg_bmk_{hw}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_bmk_dev_llvm-bisect-tcwg_bmk_{hw}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_bmk-YOUR_ID'
- ci_config: llvm-release-aarch64-spec2k6-O2
- distro: lts_1
- disabled: false
- node: '{node}'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_bmk_{hw}/llvm'
- workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- - bmk-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 2880
- builders:
- - run-bisect:
- build_script: 'tcwg_bmk-build.sh'
- components: '{components}'
- rr_project: 'tcwg_bmk_dev_llvm'
- ci_project_config: 'tcwg_bmk_{hw}'
- publishers:
- - bisect-publishers
-# checksum: cf3128bcfe71ea7366ce5088daa0e9bf
diff --git a/tcwg_bootstrap.yaml b/tcwg_bootstrap.yaml
new file mode 100644
index 0000000000..3bbed8d360
--- /dev/null
+++ b/tcwg_bootstrap.yaml
@@ -0,0 +1,1310 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_bootstrap.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bootstrap
+ type_of_test: ""
+ timeout_build: 1000
+ # By default, run each CI loop daily.
+ cron_master: 'H H * * *'
+ docker_security: ''
+# We put tcwg_bootstrap_* jobs separately from tcwg_gcc_* jobs to avoid
+# slowing down [quick] tcwg_gcc_* when bisecting bootstrap regressions.
+# If a bootstrap job catches a regression first, it will block bisects
+# of all configurations in the same ci_project. This would prevent
+# tcwg_gcc_* jobs from bisecting same regression much quicker.
+ ci_project:
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_lto
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_O1
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_O3
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_debug
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_profiled
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_profiled_lto
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_profiled_lto_lean
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_ubsan
+ - tcwg_bootstrap_check:
+ type_of_test: -check_bootstrap
+ - tcwg_bootstrap_check:
+ type_of_test: -check_bootstrap_lto
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ target:
+ - aarch64:
+ node: tcwg-build && tcwg-armv8_64
+ docker_arch: arm64
+ - arm:
+ node: tcwg-build && tcwg-armv8_32
+ docker_arch: armhf
+ jobs:
+ - tcwg_bootstrap-master
+
+- job-group:
+ name: tcwg_bootstrap-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ gcc_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: gcc
+ url: '{gcc_url}'
+ branch: '{gcc_branch}'
+ reference: gcc.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in gcc; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in gcc; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron}'
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout_build}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - bisect-publishers
+# checksum: 4ca2b6a6e850d36410c009df28638f61
diff --git a/tcwg_chromium--master.yaml b/tcwg_chromium--master.yaml
new file mode 100644
index 0000000000..24492aaedc
--- /dev/null
+++ b/tcwg_chromium--master.yaml
@@ -0,0 +1,871 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_chromium.yaml.in and tcwg_chromium/tcwg_chromium--master.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_chromium--master
+ chromium_url: https://chromium.googlesource.com/chromium/tools/depot_tools.git
+ jobs:
+ - 'tcwg_chromium--master'
+
+- job-group:
+ name: tcwg_chromium--master
+ chromium_branch: master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_chromium--master-build'
+ - 'tcwg_chromium--master-bisect'
+ ci_project: 'tcwg_chromium'
+ ci_config: 'master'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - string:
+ name: 'components_to_update'
+ default: '*'
+ description: "Component list to update. '*' means all components"
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ ==rr[components_to_update] "$components_to_update" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ # Update build name with the components to update
+ build_name="$build_name-$components_to_update"
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_chromium--master-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build && tcwg-x86_64 && tcwg-best
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_chromium_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_chromium-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_chromium--master-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build && tcwg-x86_64 && tcwg-best
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_chromium_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_chromium-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 0ddc683b84f3fc02de688b5427aaed5b
diff --git a/tcwg_chromium--masterfast.yaml b/tcwg_chromium--masterfast.yaml
new file mode 100644
index 0000000000..0282fc72e8
--- /dev/null
+++ b/tcwg_chromium--masterfast.yaml
@@ -0,0 +1,873 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_chromium.yaml.in and tcwg_chromium/tcwg_chromium--masterfast.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_chromium--masterfast
+ chromium_url: https://chromium.googlesource.com/chromium/tools/depot_tools.git
+ jobs:
+ - 'tcwg_chromium--masterfast'
+
+- job-group:
+ name: tcwg_chromium--masterfast
+ chromium_branch: master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_chromium--masterfast-build'
+ - 'tcwg_chromium--masterfast-bisect'
+ ci_project: 'tcwg_chromium'
+ ci_config: 'masterfast'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - string:
+ name: 'components_to_update'
+ default: '*'
+ description: "Component list to update. '*' means all components"
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ ==rr[components_to_update] "$components_to_update" \
+ --fast_demo true \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ # Update build name with the components to update
+ build_name="$build_name-$components_to_update"
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --fast_demo true \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_chromium--masterfast-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build && tcwg-x86_64 && tcwg-best
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_chromium_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_chromium-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_chromium--masterfast-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build && tcwg-x86_64 && tcwg-best
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_chromium_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_chromium-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 33354539913aec96278f68e7861057ab
diff --git a/tcwg_chromium.yaml.in b/tcwg_chromium.yaml.in
new file mode 100644
index 0000000000..40dbc9b36a
--- /dev/null
+++ b/tcwg_chromium.yaml.in
@@ -0,0 +1,83 @@
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_chromium--master#{MODE}
+ chromium_url: https://chromium.googlesource.com/chromium/tools/depot_tools.git
+ jobs:
+ - 'tcwg_chromium--master#{MODE}'
+
+- job-group:
+ name: tcwg_chromium--master#{MODE}
+ chromium_branch: master
+ distro: default
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_chromium--master#{MODE}-build'
+ - 'tcwg_chromium--master#{MODE}-bisect'
+ ci_project: 'tcwg_chromium'
+ ci_config: 'master#{MODE}'
+
+#include tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_chromium--master#{MODE}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build && tcwg-x86_64 && tcwg-best
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_chromium_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_chromium-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_chromium--master#{MODE}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-build && tcwg-x86_64 && tcwg-best
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}--{ci_config}'
+ workspace: workspace/tcwg_chromium_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_chromium-build.sh'
+ publishers:
+ - bisect-publishers
diff --git a/tcwg_chromium/tcwg_chromium--master.def b/tcwg_chromium/tcwg_chromium--master.def
new file mode 100644
index 0000000000..e64e5ed5f7
--- /dev/null
+++ b/tcwg_chromium/tcwg_chromium--master.def
@@ -0,0 +1,3 @@
+-v RR=tcwg_chromium
+-v DYNAMIC_COMPONENT_LIST=yes
+-v MODE=
diff --git a/tcwg_chromium/tcwg_chromium--masterfast.def b/tcwg_chromium/tcwg_chromium--masterfast.def
new file mode 100644
index 0000000000..e64b9a2bb7
--- /dev/null
+++ b/tcwg_chromium/tcwg_chromium--masterfast.def
@@ -0,0 +1,3 @@
+-v RR=tcwg_chromium
+-v DYNAMIC_COMPONENT_LIST=yes
+-v MODE=fast
diff --git a/tcwg_cross.yaml b/tcwg_cross.yaml
deleted file mode 100644
index 8642057792..0000000000
--- a/tcwg_cross.yaml
+++ /dev/null
@@ -1,511 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_cross.def. Do not edit.
-# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
-- project:
- name: tcwg_cross
- toolchain_name: gnu
- ci_project: tcwg_cross
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- 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
- node: tcwg-x86_64-build
- disabled: false
- type_of_test:
- - build_cross
- - check_cross:
- disabled: true
- jobs:
- - 'tcwg_cross-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- - 'tcwg_cross-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
-
-- view:
- name: tcwg_cross
- view-type: list
- regex: 'tcwg_cross-.*'
-
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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: 10
-
-- 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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: glibc
- url: '{glibc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- 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}'
- reference: gcc.git
- - component-scm:
- component: glibc
- url: '{glibc_url}'
- branch: '{glibc_branch}'
- reference: glibc.git
- - component-scm:
- component: qemu
- url: '{qemu_url}'
- branch: '{qemu_branch}'
- reference: qemu.git
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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"
- fi
- i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- build_name="#$BUILD_NUMBER-$current_project"
- echo "$build_name" > artifacts/jenkins/build-name
- # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
-
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- job-template:
- name: tcwg_cross-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_cross-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
- queue-scanning: 'ALL'
- parameters:
- - 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'
- distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-build'
- concurrent: false
- display-name: 'TCWG Build {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- 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}'
- glibc_url: '{glibc_url}'
- glibc_branch: '{glibc_branch}'
- qemu_url: '{qemu_url}'
- qemu_branch: '{qemu_branch}'
- triggers:
- - pollscm:
- cron: 'H H H/2 * *'
- wrappers:
- - build-wrappers:
- timeout: 1000
- builders:
- - run-build:
- 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}'
- 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}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "tcwg_cross-bisect-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: '{ci_project}'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-bisect'
- concurrent: false
- display-name: 'TCWG Bisect {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 6000
- builders:
- - run-bisect:
- build_script: 'tcwg_gnu-build.sh'
- rr_project: 'tcwg_cross'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- publishers:
- - bisect-publishers
-# checksum: 96e2941c067c01576a4273aaa6d02c59
diff --git a/tcwg_gcc.yaml b/tcwg_gcc.yaml
index bd401cd0cd..beeca05baa 100644
--- a/tcwg_gcc.yaml
+++ b/tcwg_gcc.yaml
@@ -2,44 +2,37 @@
# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
- project:
name: tcwg_gcc
- toolchain_name: gnu
- ci_project: tcwg_gnu
+ type_of_test: ""
+ timeout_build: 1000
+ # Trigger configuration that have precommit testing every 6 hours
+ # to test incoming patches in a timely manner.
+ cron_master: 'H H/6 * * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_gcc_build
+ - tcwg_gcc_check
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_O1
- - bootstrap_O3
- - bootstrap_debug
- - bootstrap_profiled
- - bootstrap_profiled_lto
- - bootstrap_profiled_lto_lean
- - bootstrap_ubsan
- - check_bootstrap:
- disabled: true
- - check_bootstrap_lto:
- disabled: true
jobs:
- - 'tcwg_gcc-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- - 'tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - tcwg_gcc-master
-- view:
- name: tcwg_gcc
- view-type: list
- regex: 'tcwg_gcc-.*'
+- job-group:
+ name: tcwg_gcc-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ gcc_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
#BEGIN: tcwg/round-robin.yaml.inc
# -*- mode: Yaml -*-
@@ -54,12 +47,11 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
- num-to-keep: 30
- scm:
name: jenkins-scripts
@@ -83,21 +75,9 @@
name: default-parameters
parameters:
- string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
name: extra_build_params
default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
- string:
name: distro
default: '{distro}'
@@ -111,34 +91,87 @@
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 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
- parameter:
- name: build-parameters
+ name: all-component-parameters
parameters:
- component-parameters:
component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
- choice:
name: update_baseline
choices:
- - update
- - reset
+ - onsuccess
+ - force
- init
- - push
+ - ignore
description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
- default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
distro: '{distro}'
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
# Beware: git branch names need the 'refs/heads/' prefix while tags
# need 'refs/tags/'.
- scm:
@@ -181,35 +214,259 @@
# tcwg-buildslave user id
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+ - text:
+ credential-id: TCWG_PW_TOKEN
+ variable: TCWG_PW_TOKEN
- builder:
- name: trigger-followup-builds
+ name: trigger-followup-builds-1
builders:
- - build-name-setter:
- name: 'artifacts/jenkins/build-name'
- file: true
- shell: |
#!/bin/bash
+ source artifacts/jenkins/run-build.env
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
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
- trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
+ - project: '{ci_project}--{ci_config}-build'
parameter-factories:
- factory: filebuild
file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
+ - project: '{ci_project}--{ci_config}-bisect'
property-file: artifacts/trigger-bisect
- builder:
- name: run-build
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+- builder:
+ name: trigger-precommit-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Trigger pre-commit builds if the jenkins queue for
+ # this job is empty.
+ #
+ # Skip triggering pre-commit builds if there are other post-commit
+ # or pre-commit builds in the queue.
+ # Re. post-commit builds -- we need to process all pending
+ # bisection-triggered builds before fetching a new batch of
+ # upstream changes.
+ # Re. pre-commit builds -- we need to wait for the previous batch
+ # to finish to avoid triggering duplicate builds for the queued
+ # patches.
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: $build_type QUEUE IS NOT EMPTY"
+ trap "" EXIT
+ exit 0
+ fi
+ done
+
+ # $update_baseline != ignore tells us that we have just
+ # updated the baseline and this means that we should be
+ # in great shape to apply pending patches.
+ # Most likely current baseline revision is master revision
+ # as of few hours ago.
+ if [ "$update_baseline" = "ignore" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: DID NOT UPDATE BASELINE"
+ trap "" EXIT
+ exit 0
+ fi
+
+ for project in gcc; do
+ # Note that we get here only when all previous pre-commit
+ # builds have finished and, presumably, updated ci_bot
+ # bundles at patchworks instance. If this were not
+ # the case, there would be some builds queued and
+ # we would have exited above.
+ build_container_exec \
+ ./jenkins-scripts/pw-trigger.sh \
+ --ci_bot '{ci_project}--{ci_config}' --project "$project" \
+ --out_dir artifacts/jenkins \
+ &> artifacts/jenkins/pw-trigger.log
+
+ for i in artifacts/jenkins/trigger-precommit-*; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ done
+
+ trap "" EXIT
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
builders:
- shell:
command: |
@@ -220,101 +477,690 @@
rm -rf artifacts/
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
-
build_name="#$BUILD_NUMBER"
- branch_opt=""
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ 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"
+ for c in gcc; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
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+=("==rr[${{c}}_git]" "$g")
fi
done
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --arch {docker_arch} \
- --node $NODE_NAME \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --BUILD_URL "$BUILD_URL" &
- res=0 && wait $! || res=$?
+ 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
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
- if [ $res != 0 ]; then
- touch artifacts/failures
- fi
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
- if [ -e artifacts/results ]; then
+ # Update build_name
+ if [ -f artifacts/results ]; then
build_name="$build_name-R$(tail -n1 artifacts/results)"
fi
- if [ x"$update_baseline" != x"update" ]; then
+ if [ "$update_baseline" != "onsuccess" ]; then
build_name="$build_name-$update_baseline"
fi
+
if [ -f artifacts/trigger-bisect ]; then
build_name="$build_name-trigger-bisect"
fi
echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
- 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
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-1:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in gcc; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
- publisher:
name: build-publishers
publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-body.txt"}}
+ failure: false
+ success: true
+ aborted: false
+ send-to:
+ - recipients
- parameter:
name: bisect-parameters
@@ -324,19 +1170,13 @@
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"
- default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
distro: '{distro}'
- wrapper:
@@ -344,10 +1184,6 @@
wrappers:
- build-wrappers:
timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
- builder:
name: run-bisect
@@ -362,9 +1198,10 @@
mkdir -p artifacts/jenkins
build_name="#$BUILD_NUMBER-$current_project"
echo "$build_name" > artifacts/jenkins/build-name
- # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "prathamesh.kulkarni@linaro.org,tcwg-gcc@linaro.org" > artifacts/jenkins/mail-recipients.txt
- echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
./jenkins-scripts/docker-run.sh \
--distro $distro \
@@ -372,117 +1209,149 @@
--node $NODE_NAME \
-- \
./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
+ %%rel_artifacts artifacts \
--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" \
-- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
+ ==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 [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
- publisher:
name: bisect-publishers
publishers:
- - build-publishers
- - 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
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
#END: tcwg/round-robin.yaml.inc
- job-template:
- name: tcwg_gcc-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
- queue-scanning: 'ALL'
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- 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: 'default'
distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-build'
+ disabled: false
+ node: '{node}'
concurrent: false
- display-name: 'TCWG Build {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- build-scms:
gcc_url: '{gcc_url}'
gcc_branch: '{gcc_branch}'
triggers:
- - pollscm:
- cron: 'H H H/2 * *'
+ - timed: '{cron}'
wrappers:
- build-wrappers:
- timeout: 1000
+ timeout: '{timeout_build}'
builders:
- run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_gnu-build.sh'
- components: 'gcc'
- rr_project: 'tcwg_gcc'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
- target: '{target}'
- type_of_test: '{type_of_test}'
+ docker_security: '{docker_security}'
publishers:
- - build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
- job-template:
- name: tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "tcwg_gcc-bisect-.*"
- queue-scanning: 'BUILDABLE'
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- - bisect-parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
ci_project: '{ci_project}'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-bisect'
+ disabled: false
+ node: '{node}'
concurrent: false
- display-name: 'TCWG Bisect {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
@@ -491,10 +1360,11 @@
timeout: 6000
builders:
- run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_gnu-build.sh'
- rr_project: 'tcwg_gcc'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
publishers:
- bisect-publishers
-# checksum: f33116f75a5ed5891be3ca5deb2018cb
+# checksum: 005346ee0fe8a8780f9ac6abcfb9f84c
diff --git a/tcwg_gdb.yaml b/tcwg_gdb.yaml
new file mode 100644
index 0000000000..6e62630e04
--- /dev/null
+++ b/tcwg_gdb.yaml
@@ -0,0 +1,1357 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_gdb.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_gdb
+ type_of_test: ""
+ timeout_build: 1000
+ # Trigger configuration that have precommit testing every 6 hours
+ # to test incoming patches in a timely manner.
+ cron_master: 'H H/6 * * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_gdb_build
+ - tcwg_gdb_check:
+ timeout_build: 2000
+ gdb_url: git://sourceware.org/git/binutils-gdb.git
+ target:
+ - aarch64:
+ node: tcwg-build && tcwg-armv8_64
+ docker_arch: arm64
+ - arm:
+ node: tcwg-build && tcwg-armv8_32
+ docker_arch: armhf
+ jobs:
+ - tcwg_gdb-master
+
+- job-group:
+ name: tcwg_gdb-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ gdb_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: gdb
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: gdb
+ url: '{gdb_url}'
+ branch: '{gdb_branch}'
+ reference: binutils-gdb.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+ - text:
+ credential-id: TCWG_PW_TOKEN
+ variable: TCWG_PW_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+- builder:
+ name: trigger-precommit-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Trigger pre-commit builds if the jenkins queue for
+ # this job is empty.
+ #
+ # Skip triggering pre-commit builds if there are other post-commit
+ # or pre-commit builds in the queue.
+ # Re. post-commit builds -- we need to process all pending
+ # bisection-triggered builds before fetching a new batch of
+ # upstream changes.
+ # Re. pre-commit builds -- we need to wait for the previous batch
+ # to finish to avoid triggering duplicate builds for the queued
+ # patches.
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: $build_type QUEUE IS NOT EMPTY"
+ trap "" EXIT
+ exit 0
+ fi
+ done
+
+ # $update_baseline != ignore tells us that we have just
+ # updated the baseline and this means that we should be
+ # in great shape to apply pending patches.
+ # Most likely current baseline revision is master revision
+ # as of few hours ago.
+ if [ "$update_baseline" = "ignore" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: DID NOT UPDATE BASELINE"
+ trap "" EXIT
+ exit 0
+ fi
+
+ for project in gdb; do
+ # Note that we get here only when all previous pre-commit
+ # builds have finished and, presumably, updated ci_bot
+ # bundles at patchworks instance. If this were not
+ # the case, there would be some builds queued and
+ # we would have exited above.
+ build_container_exec \
+ ./jenkins-scripts/pw-trigger.sh \
+ --ci_bot '{ci_project}--{ci_config}' --project "$project" \
+ --out_dir artifacts/jenkins \
+ &> artifacts/jenkins/pw-trigger.log
+
+ for i in artifacts/jenkins/trigger-precommit-*; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ done
+
+ trap "" EXIT
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in gdb; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-1:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in gdb; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ gdb_url: '{gdb_url}'
+ gdb_branch: '{gdb_branch}'
+ triggers:
+ - timed: '{cron}'
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout_build}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - bisect-publishers
+# checksum: db64f0c473aa93654cf476b0228c07dc
diff --git a/tcwg_glibc.yaml b/tcwg_glibc.yaml
new file mode 100644
index 0000000000..ae6bdd1fa4
--- /dev/null
+++ b/tcwg_glibc.yaml
@@ -0,0 +1,1364 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_glibc.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_glibc
+ type_of_test: ""
+ timeout_build: 1000
+ # Trigger configuration that have precommit testing every 6 hours
+ # to test incoming patches in a timely manner.
+ cron_master: 'H H/6 * * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_glibc_build
+ - tcwg_glibc_check:
+ # The SYS_ADMIN is required to allow the glibc container tests use mount, chroot, and ptrace syscalls.
+ # Also, docker default apprmor filter disables the mount sycall, so disable it as well.
+ # See https://linaro.atlassian.net/browse/GNU-836 for more details.
+ docker_security: '--cap-add=SYS_ADMIN --security-opt apparmor=unconfined'
+ glibc_url: git://sourceware.org/git/glibc.git
+ target:
+ - aarch64:
+ node: tcwg-build && tcwg-armv8_64
+ docker_arch: arm64
+ - arm:
+ node: tcwg-build && tcwg-armv8_32
+ docker_arch: armhf
+ jobs:
+ - tcwg_glibc-master
+
+- job-group:
+ name: tcwg_glibc-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ glibc_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+ - text:
+ credential-id: TCWG_PW_TOKEN
+ variable: TCWG_PW_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+- builder:
+ name: trigger-precommit-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Trigger pre-commit builds if the jenkins queue for
+ # this job is empty.
+ #
+ # Skip triggering pre-commit builds if there are other post-commit
+ # or pre-commit builds in the queue.
+ # Re. post-commit builds -- we need to process all pending
+ # bisection-triggered builds before fetching a new batch of
+ # upstream changes.
+ # Re. pre-commit builds -- we need to wait for the previous batch
+ # to finish to avoid triggering duplicate builds for the queued
+ # patches.
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: $build_type QUEUE IS NOT EMPTY"
+ trap "" EXIT
+ exit 0
+ fi
+ done
+
+ # $update_baseline != ignore tells us that we have just
+ # updated the baseline and this means that we should be
+ # in great shape to apply pending patches.
+ # Most likely current baseline revision is master revision
+ # as of few hours ago.
+ if [ "$update_baseline" = "ignore" ]; then
+ echo "SKIPPING PRECOMMIT TRIGGER: DID NOT UPDATE BASELINE"
+ trap "" EXIT
+ exit 0
+ fi
+
+ for project in glibc; do
+ # Note that we get here only when all previous pre-commit
+ # builds have finished and, presumably, updated ci_bot
+ # bundles at patchworks instance. If this were not
+ # the case, there would be some builds queued and
+ # we would have exited above.
+ build_container_exec \
+ ./jenkins-scripts/pw-trigger.sh \
+ --ci_bot '{ci_project}--{ci_config}' --project "$project" \
+ --out_dir artifacts/jenkins \
+ &> artifacts/jenkins/pw-trigger.log
+
+ for i in artifacts/jenkins/trigger-precommit-*; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ done
+
+ trap "" EXIT
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --security '{docker_security}'
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in glibc; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-1:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in glibc; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ --security '{docker_security}' \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - timed: '{cron}'
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout_build}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - bisect-publishers
+# checksum: 5be0b08f8ad26bee67aaff677997d7ba
diff --git a/tcwg_gnu.yaml.in b/tcwg_gnu.yaml.in
index 61fcecac0c..b5b39d9078 100644
--- a/tcwg_gnu.yaml.in
+++ b/tcwg_gnu.yaml.in
@@ -1,130 +1,220 @@
# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
- project:
name: #{RR}
- toolchain_name: gnu
-#if RR_tcwg_gcc || RR_tcwg_binutils
- ci_project: tcwg_gnu
+ type_of_test: ""
+ timeout_build: 1000
+#if PRECOMMIT_TRIGGER_yes
+ # Trigger configuration that have precommit testing every 6 hours
+ # to test incoming patches in a timely manner.
+ cron_master: 'H H/6 * * *'
+#elif RR_tcwg_gnu_embed
+ # We have 9 ci_configs for tcwg_gnu_embed_* projects, so trigger these
+ # once in 3 days.
+ cron_master: 'H H H/3 * *'
#else
- ci_project: #{RR}
+ # By default, run each CI loop daily.
+ cron_master: 'H H * * *'
+#endif
+ docker_security: ''
+#if RR_tcwg_gcc
+ ci_project:
+ - tcwg_gcc_build
+ - tcwg_gcc_check
+#elif RR_tcwg_bootstrap
+# We put tcwg_bootstrap_* jobs separately from tcwg_gcc_* jobs to avoid
+# slowing down [quick] tcwg_gcc_* when bisecting bootstrap regressions.
+# If a bootstrap job catches a regression first, it will block bisects
+# of all configurations in the same ci_project. This would prevent
+# tcwg_gcc_* jobs from bisecting same regression much quicker.
+ ci_project:
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_lto
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_O1
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_O3
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_debug
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_profiled
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_profiled_lto
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_profiled_lto_lean
+ - tcwg_bootstrap_build:
+ type_of_test: -bootstrap_ubsan
+ - tcwg_bootstrap_check:
+ type_of_test: -check_bootstrap
+ - tcwg_bootstrap_check:
+ type_of_test: -check_bootstrap_lto
+#elif RR_tcwg_binutils
+ ci_project:
+ - tcwg_binutils_build
+ - tcwg_binutils_check
+#elif RR_tcwg_glibc
+ ci_project:
+ - tcwg_glibc_build
+ - tcwg_glibc_check:
+ # The SYS_ADMIN is required to allow the glibc container tests use mount, chroot, and ptrace syscalls.
+ # Also, docker default apprmor filter disables the mount sycall, so disable it as well.
+ # See https://linaro.atlassian.net/browse/GNU-836 for more details.
+ docker_security: '--cap-add=SYS_ADMIN --security-opt apparmor=unconfined'
+#elif RR_tcwg_gdb
+ ci_project:
+ - tcwg_gdb_build
+ - tcwg_gdb_check:
+ timeout_build: 2000
+#elif RR_tcwg_gnu_cross
+ ci_project:
+ - tcwg_gnu_cross_build
+ - tcwg_gnu_cross_check_binutils
+ - tcwg_gnu_cross_check_gcc
+#elif RR_tcwg_gnu_embed
+ ci_project:
+ - tcwg_gnu_embed_build
+ - tcwg_gnu_embed_check_binutils
+ - tcwg_gnu_embed_check_gcc
+#elif RR_tcwg_gnu_mingw
+ ci_project:
+ - tcwg_gnu_mingw_build
+ - tcwg_gnu_mingw_check_binutils
+ - tcwg_gnu_mingw_check_gcc
+#elif RR_tcwg_gnu_native
+ ci_project:
+ - tcwg_gnu_native_build
+ - tcwg_gnu_native_check_binutils
+ - tcwg_gnu_native_check_gcc
+ - tcwg_gnu_native_check_glibc:
+ # See tcwg_glibc_check above.
+ docker_security: '--cap-add=SYS_ADMIN --security-opt apparmor=unconfined'
+ - tcwg_gnu_native_check_gdb:
+ timeout_build: 2000
+ - tcwg_gnu_native_fast_check_gcc
+ - tcwg_gnu_native_fast_check_gdb
#endif
#if COMPONENTS_binutils
binutils_url: git://sourceware.org/git/binutils-gdb.git
#endif
#if COMPONENTS_gcc
+# if RR_tcwg_gnu_mingw
+ gcc_url: https://github.com/Windows-on-ARM-Experiments/gcc-woarm64.git
+# else
gcc_url: https://github.com/gcc-mirror/gcc.git
+# endif
#endif
#if COMPONENTS_glibc
glibc_url: git://sourceware.org/git/glibc.git
#endif
-#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
+#if COMPONENTS_gdb
+ gdb_url: git://sourceware.org/git/binutils-gdb.git
#endif
-#if COMPONENTS_gcc
- gcc_branch: refs/heads/releases/gcc-10
+#if COMPONENTS_mingw
+ mingw_url: https://git.code.sf.net/p/mingw-w64/mingw-w64.git
#endif
-#if COMPONENTS_glibc
- glibc_branch: refs/heads/release/2.32/master
+#if COMPONENTS_newlib
+ newlib_url: git://sourceware.org/git/newlib-cygwin.git
#endif
#if COMPONENTS_qemu
- qemu_branch: refs/tags/v5.2.0
+ qemu_url: https://gitlab.com/qemu-project/qemu.git
#endif
- distro: lts_1
target:
-#if RR_tcwg_cross
+#if RR_tcwg_gnu_cross || RR_tcwg_gnu_embed
+# if RR_tcwg_gnu_cross
- aarch64
- arm
- node: tcwg-x86_64-build
+# elif RR_tcwg_gnu_embed
+ - arm_eabi
+ - arm_v7a_softfp_eabi
+ - thumb_v8a_hard_eabi
+ - thumb_m0_eabi
+ - thumb_m0_soft_eabi
+ - thumb_m3_eabi
+ - thumb_m3_softfp_eabi
+ - thumb_m7_eabi
+ - thumb_m7_hard_eabi
+ - thumb_m23_eabi
+ - thumb_m23_soft_eabi
+ - thumb_m33_eabi
+ - thumb_m33_hard_eabi
+ - thumb_m55_hard_eabi
+# endif
+ node: tcwg-build && tcwg-x86_64
+#elif RR_tcwg_gnu_mingw
+ - woa64:
+ node: tcwg-wsl
#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
- type_of_test:
-#if RR_tcwg_binutils
- - check_binutils
-#elif RR_tcwg_cross
- - build_cross
- - check_cross:
- disabled: true
-#elif RR_tcwg_gcc
- - bootstrap_O1
- - bootstrap_O3
- - bootstrap_debug
- - bootstrap_profiled
- - bootstrap_profiled_lto
- - bootstrap_profiled_lto_lean
- - bootstrap_ubsan
- - check_bootstrap:
- disabled: true
- - check_bootstrap_lto:
- disabled: true
-#endif
jobs:
- - '#{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- - '#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - #{RR}-master
-- view:
- name: #{RR}
- view-type: list
- regex: '#{RR}-.*'
+- job-group:
+ name: #{RR}-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+#if COMPONENTS_binutils
+ binutils_branch: refs/heads/master
+#endif
+#if COMPONENTS_gcc
+# if RR_tcwg_gnu_mingw
+ gcc_branch: refs/heads/aarch64-mingw32-baseline
+# else
+ gcc_branch: refs/heads/master
+# endif
+#endif
+#if COMPONENTS_linux
+ linux_url: https://git.linaro.org/kernel-org/linux.git
+ linux_branch: refs/heads/master
+#endif
+#if COMPONENTS_glibc
+ glibc_branch: refs/heads/master
+#endif
+#if COMPONENTS_gdb
+ gdb_branch: refs/heads/master
+#endif
+#if COMPONENTS_mingw
+ mingw_branch: refs/heads/master
+#endif
+#if COMPONENTS_newlib
+ newlib_branch: refs/heads/master
+#endif
+#if COMPONENTS_qemu
+ qemu_branch: refs/heads/master
+#endif
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+#if PRECOMMIT_ENABLE_yes
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+#endif
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
#include tcwg/round-robin.yaml.inc
- job-template:
- name: #{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
- queue-scanning: 'ALL'
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- 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: 'default'
distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-build'
+ disabled: false
+ node: '{node}'
concurrent: false
- display-name: 'TCWG Build {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- build-scms:
@@ -136,63 +226,107 @@
gcc_url: '{gcc_url}'
gcc_branch: '{gcc_branch}'
#endif
+#if COMPONENTS_linux
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+#endif
#if COMPONENTS_glibc
glibc_url: '{glibc_url}'
glibc_branch: '{glibc_branch}'
#endif
+#if COMPONENTS_gdb
+ gdb_url: '{gdb_url}'
+ gdb_branch: '{gdb_branch}'
+#endif
+#if COMPONENTS_mingw
+ mingw_url: '{mingw_url}'
+ mingw_branch: '{mingw_branch}'
+#endif
+#if COMPONENTS_newlib
+ newlib_url: '{newlib_url}'
+ newlib_branch: '{newlib_branch}'
+#endif
#if COMPONENTS_qemu
qemu_url: '{qemu_url}'
qemu_branch: '{qemu_branch}'
#endif
triggers:
+#if PRECOMMIT_TRIGGER_yes
+ - timed: '{cron}'
+#else
- pollscm:
- cron: 'H H H/2 * *'
+ cron: '{cron}'
+#endif
wrappers:
- build-wrappers:
- timeout: 1000
+ timeout: '{timeout_build}'
builders:
- run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_gnu-build.sh'
- components: '#{COMPONENTS}'
- rr_project: '#{RR}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
-#if RR_tcwg_binutils || RR_tcwg_gcc
+#if RR_tcwg_gnu_native || RR_tcwg_gcc || RR_tcwg_bootstrap || RR_tcwg_binutils || RR_tcwg_glibc || RR_tcwg_gdb
docker_arch: '{docker_arch}'
#endif
- target: '{target}'
- type_of_test: '{type_of_test}'
+ docker_security: '{docker_security}'
publishers:
- - build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+#if PRECOMMIT_ENABLE_yes
- job-template:
- name: #{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "#{RR}-bisect-.*"
- queue-scanning: 'BUILDABLE'
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- - bisect-parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
ci_project: '{ci_project}'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+#if RR_tcwg_gnu_native || RR_tcwg_gcc || RR_tcwg_bootstrap || RR_tcwg_binutils || RR_tcwg_glibc || RR_tcwg_gdb
+ docker_arch: '{docker_arch}'
+#endif
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+#endif
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
distro: '{distro}'
- disabled: '{disabled}'
- node: '{node} && tcwg-bisect'
+ disabled: false
+ node: '{node}'
concurrent: false
- display-name: 'TCWG Bisect {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
@@ -201,11 +335,12 @@
timeout: 6000
builders:
- run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_gnu-build.sh'
- rr_project: '#{RR}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
-#if RR_tcwg_binutils || RR_tcwg_gcc
+#if RR_tcwg_gnu_native || RR_tcwg_gcc || RR_tcwg_bootstrap || RR_tcwg_binutils || RR_tcwg_glibc || RR_tcwg_gdb
docker_arch: '{docker_arch}'
#endif
+ docker_security: '{docker_security}'
publishers:
- bisect-publishers
diff --git a/tcwg_gnu/tcwg_binutils.def b/tcwg_gnu/tcwg_binutils.def
index fd83fca420..0c3764cbaa 100644
--- a/tcwg_gnu/tcwg_binutils.def
+++ b/tcwg_gnu/tcwg_binutils.def
@@ -1,3 +1,6 @@
-v COMPONENTS=binutils
--v PURPOSE=ci
+-v PRECOMMIT_ENABLE=yes
+-v PRECOMMIT_TRIGGER=yes
-v RR=tcwg_binutils
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=
diff --git a/tcwg_gnu/tcwg_bootstrap.def b/tcwg_gnu/tcwg_bootstrap.def
new file mode 100644
index 0000000000..30143ed3e1
--- /dev/null
+++ b/tcwg_gnu/tcwg_bootstrap.def
@@ -0,0 +1,5 @@
+-v COMPONENTS=gcc
+-v PRECOMMIT_ENABLE=yes
+-v RR=tcwg_bootstrap
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=
diff --git a/tcwg_gnu/tcwg_cross.def b/tcwg_gnu/tcwg_cross.def
deleted file mode 100644
index f100a055ca..0000000000
--- a/tcwg_gnu/tcwg_cross.def
+++ /dev/null
@@ -1,6 +0,0 @@
--v COMPONENTS=binutils
--v COMPONENTS=gcc
--v COMPONENTS=glibc
--v COMPONENTS=qemu
--v PURPOSE=ci
--v RR=tcwg_cross
diff --git a/tcwg_gnu/tcwg_gcc.def b/tcwg_gnu/tcwg_gcc.def
index d158409c45..b23963795e 100644
--- a/tcwg_gnu/tcwg_gcc.def
+++ b/tcwg_gnu/tcwg_gcc.def
@@ -1,3 +1,7 @@
-v COMPONENTS=gcc
--v PURPOSE=ci
+-v PRECOMMIT_ENABLE=yes
+-v PRECOMMIT_TRIGGER=yes
-v RR=tcwg_gcc
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=
+-v PUBLISH_EMAIL_RESULTS=yes \ No newline at end of file
diff --git a/tcwg_gnu/tcwg_gdb.def b/tcwg_gnu/tcwg_gdb.def
new file mode 100644
index 0000000000..665bdbba1a
--- /dev/null
+++ b/tcwg_gnu/tcwg_gdb.def
@@ -0,0 +1,6 @@
+-v COMPONENTS=gdb
+-v PRECOMMIT_ENABLE=yes
+-v PRECOMMIT_TRIGGER=yes
+-v RR=tcwg_gdb
+-v SET_DOCKER_ARCH=yes
+-v SQUAD_GRP=
diff --git a/tcwg_gnu/tcwg_glibc.def b/tcwg_gnu/tcwg_glibc.def
new file mode 100644
index 0000000000..752d98f018
--- /dev/null
+++ b/tcwg_gnu/tcwg_glibc.def
@@ -0,0 +1,7 @@
+-v COMPONENTS=glibc
+-v PRECOMMIT_ENABLE=yes
+-v PRECOMMIT_TRIGGER=yes
+-v RR=tcwg_glibc
+-v SET_DOCKER_ARCH=yes
+-v SET_DOCKER_SECURITY=yes
+-v SQUAD_GRP=
diff --git a/tcwg_gnu/tcwg_gnu_cross.def b/tcwg_gnu/tcwg_gnu_cross.def
new file mode 100644
index 0000000000..79fc64a4aa
--- /dev/null
+++ b/tcwg_gnu/tcwg_gnu_cross.def
@@ -0,0 +1,10 @@
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=gdb
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v COMPONENTS=qemu
+-v PRECOMMIT_ENABLE=yes
+-v RR=tcwg_gnu_cross
+-v SQUAD_GRP=
+-v PUBLISH_EMAIL_RESULTS=yes
diff --git a/tcwg_gnu/tcwg_gnu_embed.def b/tcwg_gnu/tcwg_gnu_embed.def
new file mode 100644
index 0000000000..feb52e334b
--- /dev/null
+++ b/tcwg_gnu/tcwg_gnu_embed.def
@@ -0,0 +1,9 @@
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=gdb
+-v COMPONENTS=newlib
+-v COMPONENTS=qemu
+-v PRECOMMIT_ENABLE=yes
+-v RR=tcwg_gnu_embed
+-v SQUAD_GRP=
+-v PUBLISH_EMAIL_RESULTS=yes
diff --git a/tcwg_gnu/tcwg_gnu_mingw.def b/tcwg_gnu/tcwg_gnu_mingw.def
new file mode 100644
index 0000000000..1a62876c9f
--- /dev/null
+++ b/tcwg_gnu/tcwg_gnu_mingw.def
@@ -0,0 +1,6 @@
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=mingw
+-v PRECOMMIT_ENABLE=yes
+-v RR=tcwg_gnu_mingw
+-v SQUAD_GRP=
diff --git a/tcwg_gnu/tcwg_gnu_native.def b/tcwg_gnu/tcwg_gnu_native.def
new file mode 100644
index 0000000000..df63f65823
--- /dev/null
+++ b/tcwg_gnu/tcwg_gnu_native.def
@@ -0,0 +1,11 @@
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=gdb
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v PRECOMMIT_ENABLE=yes
+-v RR=tcwg_gnu_native
+-v SET_DOCKER_ARCH=yes
+-v SET_DOCKER_SECURITY=yes
+-v SQUAD_GRP=
+-v PUBLISH_EMAIL_RESULTS=yes \ No newline at end of file
diff --git a/tcwg_gnu_cross.yaml b/tcwg_gnu_cross.yaml
new file mode 100644
index 0000000000..da03fd34c1
--- /dev/null
+++ b/tcwg_gnu_cross.yaml
@@ -0,0 +1,1348 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_gnu_cross.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_gnu_cross
+ type_of_test: ""
+ timeout_build: 1000
+ # By default, run each CI loop daily.
+ cron_master: 'H H * * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_gnu_cross_build
+ - tcwg_gnu_cross_check_binutils
+ - tcwg_gnu_cross_check_gcc
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ glibc_url: git://sourceware.org/git/glibc.git
+ gdb_url: git://sourceware.org/git/binutils-gdb.git
+ qemu_url: https://gitlab.com/qemu-project/qemu.git
+ target:
+ - aarch64
+ - arm
+ node: tcwg-build && tcwg-x86_64
+ jobs:
+ - tcwg_gnu_cross-master
+
+- job-group:
+ name: tcwg_gnu_cross-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ linux_url: https://git.linaro.org/kernel-org/linux.git
+ linux_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ gdb_branch: refs/heads/master
+ qemu_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gdb
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+ - component-parameters:
+ component: qemu
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: gdb
+ url: '{gdb_url}'
+ branch: '{gdb_branch}'
+ reference: binutils-gdb.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - component-scm:
+ component: qemu
+ url: '{qemu_url}'
+ branch: '{qemu_branch}'
+ reference: qemu.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc gdb glibc linux qemu; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in binutils gcc gdb glibc linux qemu; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-body.txt"}}
+ failure: false
+ success: true
+ aborted: false
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ 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}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ gdb_url: '{gdb_url}'
+ gdb_branch: '{gdb_branch}'
+ qemu_url: '{qemu_url}'
+ qemu_branch: '{qemu_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron}'
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout_build}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - bisect-publishers
+# checksum: 3bceb3d8237b260fcbf8c62b97097684
diff --git a/tcwg_gnu_embed.yaml b/tcwg_gnu_embed.yaml
new file mode 100644
index 0000000000..973cfc6cdc
--- /dev/null
+++ b/tcwg_gnu_embed.yaml
@@ -0,0 +1,1349 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_gnu_embed.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_gnu_embed
+ type_of_test: ""
+ timeout_build: 1000
+ # We have 9 ci_configs for tcwg_gnu_embed_* projects, so trigger these
+ # once in 3 days.
+ cron_master: 'H H H/3 * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_gnu_embed_build
+ - tcwg_gnu_embed_check_binutils
+ - tcwg_gnu_embed_check_gcc
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ gdb_url: git://sourceware.org/git/binutils-gdb.git
+ newlib_url: git://sourceware.org/git/newlib-cygwin.git
+ qemu_url: https://gitlab.com/qemu-project/qemu.git
+ target:
+ - arm_eabi
+ - arm_v7a_softfp_eabi
+ - thumb_v8a_hard_eabi
+ - thumb_m0_eabi
+ - thumb_m0_soft_eabi
+ - thumb_m3_eabi
+ - thumb_m3_softfp_eabi
+ - thumb_m7_eabi
+ - thumb_m7_hard_eabi
+ - thumb_m23_eabi
+ - thumb_m23_soft_eabi
+ - thumb_m33_eabi
+ - thumb_m33_hard_eabi
+ - thumb_m55_hard_eabi
+ node: tcwg-build && tcwg-x86_64
+ jobs:
+ - tcwg_gnu_embed-master
+
+- job-group:
+ name: tcwg_gnu_embed-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ gdb_branch: refs/heads/master
+ newlib_branch: refs/heads/master
+ qemu_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gdb
+ default_git: '{default_git}'
+ - component-parameters:
+ component: newlib
+ default_git: '{default_git}'
+ - component-parameters:
+ component: qemu
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: gdb
+ url: '{gdb_url}'
+ branch: '{gdb_branch}'
+ reference: binutils-gdb.git
+ - component-scm:
+ component: newlib
+ url: '{newlib_url}'
+ branch: '{newlib_branch}'
+ reference: newlib.git
+ - component-scm:
+ component: qemu
+ url: '{qemu_url}'
+ branch: '{qemu_branch}'
+ reference: qemu.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc gdb newlib qemu; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in binutils gcc gdb newlib qemu; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-body.txt"}}
+ failure: false
+ success: true
+ aborted: false
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ 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}'
+ gdb_url: '{gdb_url}'
+ gdb_branch: '{gdb_branch}'
+ newlib_url: '{newlib_url}'
+ newlib_branch: '{newlib_branch}'
+ qemu_url: '{qemu_url}'
+ qemu_branch: '{qemu_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron}'
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout_build}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - bisect-publishers
+# checksum: 182fc062bae1d9e2e3bb031d2c8bb40f
diff --git a/tcwg_gnu_mingw.yaml b/tcwg_gnu_mingw.yaml
new file mode 100644
index 0000000000..3ee1873e9e
--- /dev/null
+++ b/tcwg_gnu_mingw.yaml
@@ -0,0 +1,1297 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_gnu_mingw.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_gnu_mingw
+ type_of_test: ""
+ timeout_build: 1000
+ # By default, run each CI loop daily.
+ cron_master: 'H H * * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_gnu_mingw_build
+ - tcwg_gnu_mingw_check_binutils
+ - tcwg_gnu_mingw_check_gcc
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/Windows-on-ARM-Experiments/gcc-woarm64.git
+ mingw_url: https://git.code.sf.net/p/mingw-w64/mingw-w64.git
+ target:
+ - woa64:
+ node: tcwg-wsl
+ jobs:
+ - tcwg_gnu_mingw-master
+
+- job-group:
+ name: tcwg_gnu_mingw-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/aarch64-mingw32-baseline
+ mingw_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: mingw
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: mingw
+ url: '{mingw_url}'
+ branch: '{mingw_branch}'
+ reference: mingw-w64.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc mingw; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in binutils gcc mingw; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ 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}'
+ mingw_url: '{mingw_url}'
+ mingw_branch: '{mingw_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron}'
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout_build}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_security: '{docker_security}'
+ publishers:
+ - bisect-publishers
+# checksum: ac3ded340606ba4f513b9917e4820ee1
diff --git a/tcwg_gnu_native.yaml b/tcwg_gnu_native.yaml
new file mode 100644
index 0000000000..70dda4b6a4
--- /dev/null
+++ b/tcwg_gnu_native.yaml
@@ -0,0 +1,1359 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_gnu_native.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_gnu_native
+ type_of_test: ""
+ timeout_build: 1000
+ # By default, run each CI loop daily.
+ cron_master: 'H H * * *'
+ docker_security: ''
+ ci_project:
+ - tcwg_gnu_native_build
+ - tcwg_gnu_native_check_binutils
+ - tcwg_gnu_native_check_gcc
+ - tcwg_gnu_native_check_glibc:
+ # See tcwg_glibc_check above.
+ docker_security: '--cap-add=SYS_ADMIN --security-opt apparmor=unconfined'
+ - tcwg_gnu_native_check_gdb:
+ timeout_build: 2000
+ - tcwg_gnu_native_fast_check_gcc
+ - tcwg_gnu_native_fast_check_gdb
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ glibc_url: git://sourceware.org/git/glibc.git
+ gdb_url: git://sourceware.org/git/binutils-gdb.git
+ target:
+ - aarch64:
+ node: tcwg-build && tcwg-armv8_64
+ docker_arch: arm64
+ - arm:
+ node: tcwg-build && tcwg-armv8_32
+ docker_arch: armhf
+ jobs:
+ - tcwg_gnu_native-master
+
+- job-group:
+ name: tcwg_gnu_native-master
+ toolchain_ver: master
+ cron: '{cron_master}'
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ linux_url: https://git.linaro.org/kernel-org/linux.git
+ linux_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ gdb_branch: refs/heads/master
+ distro: default
+ jobs:
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ ci_config: '{toolchain_ver}-{target}{type_of_test}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gdb
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+# Precommit parameters ...
+# - allow only "ignore" value for update_baseline parameter;
+# - allow string (which should be an email) for notify parameter.
+- parameter:
+ name: precommit-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - string:
+ name: notify
+ default: 'precommit'
+ description: "Email to send failure notifications to"
+ - default-parameters:
+ distro: '{distro}'
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+- property:
+ name: precommit-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-build'
+ queue-scanning: 'BUILDABLE'
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: gdb
+ url: '{gdb_url}'
+ branch: '{gdb_branch}'
+ reference: binutils-gdb.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+# - 'tcwg-build-20220725'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+# We place trigger-precommit-builds-2 outside of PRECOMMIT_TRIGGER_yes
+# #ifdef to get an upstream/downstream links between build/precommit jobs
+# in jenkins UI.
+- builder:
+ name: trigger-precommit-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-precommit'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/jenkins/trigger-precommit-*
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build precommit; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ --arch {docker_arch}
+ --node $NODE_NAME
+ --security '{docker_security}'
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc gdb glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-precommit-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- builder:
+ name: run-precommit-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ ./jenkins-scripts/start-container-docker.sh --prefix precommit_ \
+ --task precommit --secondary true "${{docker_opts[@]}}" \
+ > precommit_container.sh
+ source precommit_container.sh
+
+ precommit_container_rsync -az --del \
+ jenkins-scripts/ :jenkins-scripts/
+
+ branch_opt=()
+ for c in binutils gcc gdb glibc linux; do
+ eval "g=\$$$${{c}}_git"
+ case "$g" in
+ "pw://"*|"ssh://"*)
+ # Handle pre-commit testing
+ case "$g" in
+ "pw://"*)
+ build_container_exec \
+ ./jenkins-scripts/pw-apply.sh \
+ --ci_bot '{ci_project}--{ci_config}' \
+ --project "$c" --pw_url "$g" __pw_token "$TCWG_PW_TOKEN" \
+ --build_url "$BUILD_URL" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/pw-apply.log &
+ ;;
+ "ssh://"*)
+ build_container_exec \
+ ./jenkins-scripts/precommit-ssh-apply.sh \
+ --project "$c" --pw_url "$g" \
+ --build_url "$BUILD_URL" \
+ --patch_submitter "$notify" \
+ --pw_dir artifacts/jenkins/pw \
+ &> artifacts/jenkins/precommit-ssh-apply.log &
+ ;;
+ esac
+ res=0 && wait $! || res=$?
+
+ if [ "$res" != "0" ]; then
+ build_name="$build_name-$g-$c-apply-fail"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Notify developer of failure to apply.
+ for f in mail-body.txt mail-subject.txt \
+ mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may
+ # be empty.
+ if [ -s artifacts/jenkins/pw/$f ]; then
+ cp artifacts/jenkins/pw/$f artifacts/jenkins/$f
+ fi
+ done
+
+ case "$g" in
+ "ssh://"*)
+ # Build was triggered manually, so failure-to-apply
+ # is a real failure.
+ exit 1
+ ;;
+ esac
+
+ # Skip the build
+ exit 125
+ fi
+
+ patch_id=$(declare -A pw
+ source "artifacts/jenkins/pw/$c"
+ echo "${{pw[${{c}}_patch_id]}}")
+ build_name="$build_name-$g/$patch_id"
+ g=HEAD
+ precommit_container_rsync -az --del \
+ "$c/" ":$c/"
+ ;;
+ esac
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ # Now that artifacts/ include all necessary data (including
+ # artifacts/jenkins/pw/ directory -- rsync them into precommit
+ # container.
+ precommit_container_rsync -az --del \
+ artifacts/ :artifacts/
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ source precommit_container.sh
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ precommit_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ -print0 | xargs -0 -P0 -i@ xz -T0 @
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ pw_result=pass
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ pw_result=fail
+ ;;
+ *)
+ res=125
+ pw_result=ignore
+ ;;
+ esac
+
+ # pw-report.sh does not use artifacts/artifacts.precommit,
+ # so it is OK to use unsafe container.
+ build_container_exec \
+ ./jenkins-scripts/pw-report.sh --pw_dir "artifacts/jenkins/pw" \
+ --check test --result "$pw_result"
+ &> artifacts/jenkins/pw-report.log &
+ if ! wait $!; then
+ res=125
+ fi
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-precommit-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ precommit_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ --pw_dir artifacts/jenkins/pw __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify failed"
+ exit 1
+ fi
+
+ precommit_container_rsync -az --del \
+ :artifacts/ artifacts/artifacts.precommit/
+ # Compress big files in artifacts.precommit/ to save disk space
+ # on ci.linaro.org. We keep all pre-commit builds for a month,
+ # which can result in many stored builds.
+ find artifacts/artifacts.precommit -size +1M ! -name "*.xz" \
+ ! -path "artifacts/artifacts.precommit/notify/*" \
+ ! -path "artifacts/artifacts.precommit/jenkins/*" -print0 \
+ | xargs -0 -P0 -i@ xz -T0 @
+
+ for f in mail-body.txt mail-subject.txt mail-recipients.txt; do
+ # copy the file if exists, and not emtpy.
+ # this is important for mail-recipient.txt, which may be empty.
+ if [ -s artifacts/artifacts.precommit/jenkins/$f ]; then
+ cp artifacts/artifacts.precommit/jenkins/$f artifacts/jenkins/$f
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: run-precommit
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: true
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-process-params:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-precommit-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/testresults-mail-body.txt"}}
+ failure: false
+ success: true
+ aborted: false
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ --security '{docker_security}' \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ 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}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ gdb_url: '{gdb_url}'
+ gdb_branch: '{gdb_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron}'
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout_build}'
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - precommit-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - precommit-parameters:
+ default_git: 'baseline'
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: true
+ display-name: 'TCWG Precommit {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - build-wrappers:
+ timeout: 300
+ builders:
+ - run-precommit:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - build-publishers:
+ email_on_failure: true
+ email_on_success: false
+
+- job-template:
+ name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect'
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: '{node}'
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_gnu-build.sh'
+ docker_arch: '{docker_arch}'
+ docker_security: '{docker_security}'
+ publishers:
+ - bisect-publishers
+# checksum: 7c5f55bcdc9846c45d5e1081ccd769f7
diff --git a/tcwg_kernel--gnu.yaml b/tcwg_kernel--gnu.yaml
new file mode 100644
index 0000000000..27c6dea69f
--- /dev/null
+++ b/tcwg_kernel--gnu.yaml
@@ -0,0 +1,948 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_kernel.yaml.in and tcwg_kernel/tcwg_kernel--gnu.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_kernel-gnu
+ toolchain_name: gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ qemu_url: https://gitlab.com/qemu-project/qemu.git
+ toolchain_ver:
+ - master:
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ qemu_branch: refs/heads/master
+ distro: default
+ target:
+ - aarch64
+ - arm
+ linux:
+ - next:
+ linux_url: https://git.linaro.org/kernel-org/linux-next.git
+ linux_branch: refs/heads/master
+ - mainline:
+ linux_url: https://git.linaro.org/kernel-org/linux.git
+ linux_branch: refs/heads/master
+ - stable:
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ - lts:
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-lts
+ linux_config:
+ - defconfig
+ - allmodconfig
+ - allyesconfig
+ - allnoconfig
+ jobs:
+ - 'tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-build'
+ - 'tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-bisect'
+ ci_project: 'tcwg_kernel'
+ ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+ - component-parameters:
+ component: qemu
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ 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}'
+ reference: gcc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - component-scm:
+ component: qemu
+ url: '{qemu_url}'
+ branch: '{qemu_branch}'
+ reference: qemu.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils gcc linux qemu; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ qemu_url: '{qemu_url}'
+ qemu_branch: '{qemu_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ triggers:
+ - pollscm:
+ cron: 'H H H/4 * *'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_kernel-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 1440
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_kernel-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 21fcc9ec2c44ef1ce4b73f029292dfeb
diff --git a/tcwg_kernel--llvm.yaml b/tcwg_kernel--llvm.yaml
new file mode 100644
index 0000000000..8a86ad91ac
--- /dev/null
+++ b/tcwg_kernel--llvm.yaml
@@ -0,0 +1,948 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_kernel.yaml.in and tcwg_kernel/tcwg_kernel--llvm.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_kernel-llvm
+ toolchain_name: llvm
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ llvm_url: https://github.com/llvm/llvm-project.git
+ qemu_url: https://gitlab.com/qemu-project/qemu.git
+ toolchain_ver:
+ - master:
+ binutils_branch: refs/heads/master
+ llvm_branch: refs/heads/main
+ qemu_branch: refs/heads/master
+ distro: default
+ target:
+ - aarch64
+ - arm
+ linux:
+ - next:
+ linux_url: https://git.linaro.org/kernel-org/linux-next.git
+ linux_branch: refs/heads/master
+ - mainline:
+ linux_url: https://git.linaro.org/kernel-org/linux.git
+ linux_branch: refs/heads/master
+ - stable:
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ - lts:
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-lts
+ linux_config:
+ - defconfig
+ - allmodconfig
+ - allyesconfig
+ - allnoconfig
+ jobs:
+ - 'tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-build'
+ - 'tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-bisect'
+ ci_project: 'tcwg_kernel'
+ ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-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
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)"
+
+- parameter:
+ name: all-component-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+ - component-parameters:
+ component: qemu
+ default_git: '{default_git}'
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - all-component-parameters:
+ default_git: '{default_git}'
+ - choice:
+ name: update_baseline
+ choices:
+ - onsuccess
+ - force
+ - init
+ - ignore
+ description: "What to do with baseline in this build"
+ - choice:
+ name: notify
+ choices:
+ - ignore
+ - onregression
+ - precommit
+ description: "Whether to notify developers about the result of this build"
+ - default-parameters:
+ distro: '{distro}'
+
+
+- property:
+ name: build-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - '{ci_project}--{ci_config}-bisect'
+ queue-scanning: 'ALL'
+
+
+- property:
+ name: bisect-properties
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - '{ci_project}--.*-bisect'
+ queue-scanning: 'BUILDABLE'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: binutils
+ url: '{binutils_url}'
+ branch: '{binutils_branch}'
+ reference: binutils-gdb.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - component-scm:
+ component: qemu
+ url: '{qemu_url}'
+ branch: '{qemu_branch}'
+ reference: qemu.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- builder:
+ name: trigger-followup-builds-1
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+
+ trap "" EXIT
+
+- builder:
+ name: trigger-followup-builds-2
+ builders:
+ - trigger-builds:
+ - project: '{ci_project}--{ci_config}-build'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{ci_project}--{ci_config}-bisect'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build-notify
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Only send notifications for forced successful
+ # (aka "onregression") builds; never for failed builds.
+ echo "Build failed. Using option notify=ignore."
+ notify=ignore
+ fi
+
+ # Basic notification -- create entry in interesting-commits.
+ # Note that we add --notify to the manifest -- we will need this
+ # later in round-robin-baseline.sh when re-writing history
+ # to update notifications files in interesting-commits and jira.
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts --notify "$notify" \
+ __stage init __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-init.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-init failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-init failed"
+ exit 1
+ fi
+
+ # Full notification
+ echo "NOTE: Notify developers about this build"
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-notify.sh \
+ @@rr[top_artifacts] artifacts __stage full __verbose true \
+ __build_script {build_script} \
+ &> ./artifacts/jenkins/notify-full.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: notify-full failed\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: notify-full failed"
+ fi
+
+ # Failsafe for avoid spamming developers.
+ if [ "$notify" = "ignore" ] \
+ && [ -f artifacts/jenkins/mail-recipients.txt ]; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \
+ >> artifacts/jenkins/error-mail-body.txt
+ mv artifacts/jenkins/mail-recipients.txt \
+ artifacts/jenkins/mail-recipients.bak
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-exit-on-failure
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+ # Only successful builds run beyond this point.
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-baseline
+ builders:
+ - shell: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Update baseline branch of base-artifacts.
+ # If we made it this far, then the build is successful
+ # (possibly because it was forced to be declared successful).
+ if [ "$update_baseline" = "ignore" ]; then
+ trap "" EXIT
+ exit 0
+ fi
+
+ # We may need jira token while rewriting history.
+ if [ -f $HOME/.jipdate.yml ]; then
+ (
+ # BE CAREFUL WITH TCWG_JIRA_TOKEN
+ set +x
+ build_container_exec \
+ sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \
+ "$HOME/.jipdate.yml"
+ )
+ fi
+
+ build_container_exec \
+ ./jenkins-scripts/round-robin-baseline.sh \
+ @@rr[top_artifacts] artifacts \
+ __build_script {build_script} \
+ __push_base_artifacts true \
+ __rewrite_base_artifacts true \
+ __commit_artifacts {commit_artifacts} \
+ __rewrite_num 100 \
+ &> ./artifacts/jenkins/rewrite.log &
+
+ if ! wait $!; then
+ echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \
+ > artifacts/jenkins/error-mail-recipients.txt
+ echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \
+ >> artifacts/jenkins/error-mail-body.txt
+ echo "ERROR: round-robin-baseline.sh failed"
+ # We have failed to update the baseline, so let's fail and
+ # not notify developers.
+ exit 1
+ fi
+
+ trap "" EXIT
+
+- builder:
+ name: run-push-lnt-results
+ builders:
+ - trigger-builds:
+ - project: tcwg-update-lnt-results
+ predefined-parameters: |
+ ci_project={ci_project}
+ ci_config={ci_config}
+
+
+- builder:
+ name: run-build-init
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ build_name="#$BUILD_NUMBER"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ if [ "{precommit}" = "True" ]; then
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ update_baseline=ignore
+ EOF
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+ unstable-return: 125
+
+- builder:
+ name: run-build-skip-if-queue
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # 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.
+ # Re. skipping post-commit build if pre-commit queue is
+ # not empty -- it's just a favor to pre-commit builds.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ for job_type in build; do
+ url="${{JOB_URL%-build/}}-$job_type"
+ inQueue=$(curl -s "$url/api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ "$inQueue" != "false" ]; then
+ echo "SKIP SCM BUILD"
+ touch artifacts/jenkins/skip-scm-build
+ build_name="$build_name-skip-scm-build"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Mark build unstable aka a skipped build
+ exit 125
+ fi
+ done
+ fi
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-start-manifest
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ docker_opts=(
+ --distro $distro
+ )
+
+ ./jenkins-scripts/start-container-docker.sh --prefix build_ \
+ "${{docker_opts[@]}}" > build_container.sh
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+
+ # Run the build script to fetch base-artifacts/, which are
+ # required to fetch baseline sources to apply patches to in
+ # pw-apply.sh below. This also initializes the build manifest
+ # with all below settings; we then import this manifest below.
+ #
+ # The parameter __finish_after makes the build script stop
+ # after fetching the baseline and "__" avoids saving this parameter
+ # in the manifest, so that we don't see this option in the main
+ # run of the build script below.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ %%rr[top_artifacts] artifacts \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" \
+ ==rr[mode] "build" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" \
+ __finish_at reset_artifacts
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}})
+ source build_container.sh
+ trap "cleanup_all_containers" EXIT
+ EOF
+
+ # Now that we have "trap cleanup_all_containers EXIT" in
+ # run-build.env we need to reset the trap at the end of every
+ # step to preserve container[s] for the next step.
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-process-params
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ branch_opt=()
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in binutils linux llvm qemu; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \
+ || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "gb=\$GIT_BRANCH_$i"
+ gb=$(echo $gb | sed 's+origin/++')
+ eval "g=\$GIT_URL_$i#$gb"
+ fi
+ i=$(($i+1))
+
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt+=("==rr[${{c}}_git]" "$g")
+ fi
+ done
+
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}})
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-main
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+
+ # Run the build script to from the manifest created above.
+ #
+ # The parameter __start_at makes the build script start right
+ # where the above run finished. This allows us to use read-only
+ # bind-mount for base-artifacts/, which, otherwise, may require
+ # multi-gig rsync.
+ build_container_exec \
+ ./jenkins-scripts/{build_script} \
+ @@rr[top_artifacts] artifacts \
+ "${{branch_opt[@]}}" \
+ __start_at reset_artifacts+ &
+ res=0 && wait $! || res=$?
+
+ # Update build_name
+ if [ -f artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ "$update_baseline" != "onsuccess" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
+ # so stop here and do nothing else. From jenkins point of view ...
+ # - if $res==0: build is successful, so proceed with all
+ # followup steps -- notify, push, trigger precommit.
+ # - if $res==123: build has a regression, so proceed with triggering
+ # followup builds and sending precommit notifications; but stop
+ # before run-push-baseline by checking artifacts/failed.
+ # - if $res is anything else: build has an unexpected failure, so
+ # skip the rest of the steps by setting UNSTABLE build status.
+ # This will cause all followup conditional-steps to skip due to
+ # "current-status" condition.
+ #
+ # See comment before round-robin.sh:check_regression() for details.
+ case $res in
+ 0)
+ ;;
+ 123)
+ echo 123 > artifacts/failed
+ ;;
+ *)
+ res=125
+ ;;
+ esac
+
+ if [ $res = 125 ]; then
+ # We had unexpected failure in the build scripts, so can't
+ # proceed with triggers and notifications. Mark this build
+ # as UNSTABLE, which will skip all following conditional-steps.
+ exit 125
+ fi
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ trap "" EXIT
+ unstable-return: 125
+
+- builder:
+ name: run-build-fini
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ source artifacts/jenkins/run-build.env
+ set -ex
+ # The "trap cleanup_all_containers EXIT" statement in
+ # artifacts/jenkins/run-build.env will remove build and precommit
+ # containers.
+
+- builder:
+ name: run-build
+ builders:
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-init:
+ precommit: false
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-skip-if-queue:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-start-manifest:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-process-params:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'false'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-main:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-notify:
+ build_script: '{build_script}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-exit-on-failure:
+ dummy: dummy
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-baseline:
+ build_script: '{build_script}'
+ commit_artifacts: 'true'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-push-lnt-results:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - run-build-fini:
+ dummy: dummy
+
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'artifacts/jenkins'
+ files: 'status.html'
+ keep-all: true
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ reply-to: linaro-toolchain@lists.linaro.org
+ subject: |
+ ${{FILE,path="artifacts/jenkins/mail-subject.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: {email_on_failure}
+ success: {email_on_success}
+ aborted: false
+ send-to:
+ - recipients
+ - email-ext:
+ recipients: |
+ ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}}
+ body: |
+ ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_git
+ default: ""
+ description: "Bad git_url#branch/SHA1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ cat >> artifacts/jenkins/run-build.env <<EOF
+ build_name="$build_name"
+ EOF
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %%rel_artifacts artifacts \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ -- \
+ ==rr[ci_project] '{ci_project}' \
+ ==rr[ci_config] '{ci_config}' \
+ $extra_build_params \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+ unstable-return: 125
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds-1:
+ dummy: dummy
+ - trigger-followup-builds-2:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ - conditional-step:
+ condition-kind: current-status
+ steps:
+ - shell: |
+ #!/bin/bash
+ set -ex
+
+ if [ -f artifacts/failed ]; then
+ # Mark failed build as FAILURE; no further steps will run.
+ exit $(cat artifacts/failed)
+ fi
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+ - email-ext:
+ recipients: |
+ maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org
+ failure: true
+ success: false
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-build
+ project-type: freestyle
+ defaults: global
+ properties:
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - build-parameters:
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ qemu_url: '{qemu_url}'
+ qemu_branch: '{qemu_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ triggers:
+ - pollscm:
+ cron: 'H H H/4 * *'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_kernel-build.sh'
+ publishers:
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
+
+- job-template:
+ name: tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-bisect
+ project-type: freestyle
+ defaults: global
+ properties:
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ parameters:
+ - bisect-parameters:
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: false
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
+ workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 1440
+ builders:
+ - run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+ build_script: 'tcwg_kernel-build.sh'
+ publishers:
+ - bisect-publishers
+# checksum: 0393a774793d14619defde1293bb624f
diff --git a/tcwg_kernel-gnu.yaml b/tcwg_kernel-gnu.yaml
deleted file mode 100644
index 264961afdb..0000000000
--- a/tcwg_kernel-gnu.yaml
+++ /dev/null
@@ -1,514 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_kernel.yaml.in and tcwg_kernel/tcwg_kernel-gnu.def. Do not edit.
-# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
-- project:
- name: tcwg_kernel-gnu
- toolchain_name: gnu
- components: binutils gcc linux qemu
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- gcc_url: https://github.com/gcc-mirror/gcc.git
- qemu_url: git://git.qemu.org/qemu.git
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- gcc_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
- qemu_branch: refs/heads/master
- distro: lts_1
- target:
- - aarch64
- - arm
- linux:
- - next:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
- linux_branch: refs/heads/master
- - mainline:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- linux_branch: refs/heads/master
- - stable:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- linux_branch: refs/heads/linux-rolling-stable
- - lts:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- linux_branch: refs/heads/linux-rolling-lts
- linux_config:
- - defconfig
- - allmodconfig
- - allyesconfig
- - allnoconfig
- jobs:
- - 'tcwg_kernel-gnu-build-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- - 'tcwg_kernel-gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
-
-- view:
- name: tcwg_kernel-gnu
- view-type: list
- regex: 'tcwg_kernel-gnu.*'
-
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: linux
- url: '{linux_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- 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}'
- reference: gcc.git
- - component-scm:
- component: linux
- url: '{linux_url}'
- branch: '{linux_branch}'
- reference: linux.git
- - component-scm:
- component: qemu
- url: '{qemu_url}'
- branch: '{qemu_branch}'
- reference: qemu.git
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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"
- fi
- i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- build_name="#$BUILD_NUMBER-$current_project"
- echo "$build_name" > artifacts/jenkins/build-name
- # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- 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 \
- --distro $distro \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- job-template:
- name: tcwg_kernel-gnu-build-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_kernel-gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}"
- queue-scanning: 'ALL'
- parameters:
- - 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'
- distro: '{distro}'
- disabled: false
- node: tcwg-x86_64-build
- concurrent: false
- display-name: 'TCWG Build tcwg_kernel/{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
- scm:
- - build-scms:
- binutils_url: '{binutils_url}'
- binutils_branch: '{binutils_branch}'
- gcc_url: '{gcc_url}'
- gcc_branch: '{gcc_branch}'
- qemu_url: '{qemu_url}'
- qemu_branch: '{qemu_branch}'
- linux_url: '{linux_url}'
- linux_branch: '{linux_branch}'
- triggers:
- - pollscm:
- cron: 'H H H/7 * *'
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- build_script: 'tcwg_kernel-build.sh'
- components: '{components}'
- rr_project: 'tcwg_kernel-gnu'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_kernel-gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "tcwg_kernel-.*-bisect-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_kernel'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- distro: '{distro}'
- disabled: false
- node: tcwg-x86_64-build
- concurrent: false
- display-name: 'TCWG Bisect tcwg_kernel/{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 1440
- builders:
- - run-bisect:
- build_script: 'tcwg_kernel-build.sh'
- rr_project: 'tcwg_kernel-gnu'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- publishers:
- - bisect-publishers
-# checksum: fde5c7375d108236b594b9adf1de0627
diff --git a/tcwg_kernel-llvm.yaml b/tcwg_kernel-llvm.yaml
deleted file mode 100644
index 7bf12994ab..0000000000
--- a/tcwg_kernel-llvm.yaml
+++ /dev/null
@@ -1,514 +0,0 @@
-# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_kernel.yaml.in and tcwg_kernel/tcwg_kernel-llvm.def. Do not edit.
-# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
-- project:
- name: tcwg_kernel-llvm
- toolchain_name: llvm
- components: binutils linux llvm qemu
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- llvm_url: https://github.com/llvm/llvm-project.git
- qemu_url: git://git.qemu.org/qemu.git
- toolchain_ver:
- - master:
- binutils_branch: refs/heads/master
- llvm_branch: refs/heads/main
- qemu_branch: refs/heads/master
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
- llvm_branch: refs/heads/release/12.x
- qemu_branch: refs/heads/master
- distro: lts_1
- target:
- - aarch64
- - arm
- linux:
- - next:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
- linux_branch: refs/heads/master
- - mainline:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- linux_branch: refs/heads/master
- - stable:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- linux_branch: refs/heads/linux-rolling-stable
- - lts:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- linux_branch: refs/heads/linux-rolling-lts
- linux_config:
- - defconfig
- - allmodconfig
- - allyesconfig
- - allnoconfig
- jobs:
- - 'tcwg_kernel-llvm-build-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- - 'tcwg_kernel-llvm-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
-
-- view:
- name: tcwg_kernel-llvm
- view-type: list
- regex: 'tcwg_kernel-llvm.*'
-
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#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
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: '{distro}'
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
-
-- parameter:
- 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'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: linux
- url: '{linux_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: llvm
- url: '{llvm_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: qemu
- url: '{qemu_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-# Beware: git branch names need the 'refs/heads/' prefix while tags
-# need 'refs/tags/'.
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - '{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-# SCMs must start with jenkins-scripts and then be ordered alphabetically.
-# Same alphabetical order must be followed in .def files. The reason behind
-# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
-# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
-# order that they are declared here/.
-- scm:
- name: build-scms
- scm:
- - jenkins-scripts
- - component-scm:
- component: binutils
- url: '{binutils_url}'
- branch: '{binutils_branch}'
- reference: binutils-gdb.git
- - component-scm:
- component: linux
- url: '{linux_url}'
- branch: '{linux_branch}'
- reference: linux.git
- - component-scm:
- component: llvm
- url: '{llvm_url}'
- branch: '{llvm_branch}'
- reference: llvm-project.git
- - component-scm:
- component: qemu
- url: '{qemu_url}'
- branch: '{qemu_branch}'
- reference: qemu.git
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - 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
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
-
- 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"
- fi
- i=$(($i+1))
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch" \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- --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
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-trigger-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- 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
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
- distro: '{distro}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
- - credentials-binding:
- - text:
- credential-id: TCWG_JIRA_PASSWORD
- variable: TCWG_JIRA_PASSWORD
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- build_name="#$BUILD_NUMBER-$current_project"
- echo "$build_name" > artifacts/jenkins/build-name
- # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- 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 \
- --distro $distro \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
- -- \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params \
- --scripts_branch "$scripts_branch"
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - 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
-#END: tcwg/round-robin.yaml.inc
-
-- job-template:
- name: tcwg_kernel-llvm-build-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_kernel-llvm-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}"
- queue-scanning: 'ALL'
- parameters:
- - 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'
- distro: '{distro}'
- disabled: false
- node: tcwg-x86_64-build
- concurrent: false
- display-name: 'TCWG Build tcwg_kernel/{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
- scm:
- - build-scms:
- binutils_url: '{binutils_url}'
- binutils_branch: '{binutils_branch}'
- llvm_url: '{llvm_url}'
- llvm_branch: '{llvm_branch}'
- qemu_url: '{qemu_url}'
- qemu_branch: '{qemu_branch}'
- linux_url: '{linux_url}'
- linux_branch: '{linux_branch}'
- triggers:
- - pollscm:
- cron: 'H H H/7 * *'
- wrappers:
- - build-wrappers:
- timeout: 600
- builders:
- - run-build:
- build_script: 'tcwg_kernel-build.sh'
- components: '{components}'
- rr_project: 'tcwg_kernel-llvm'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- publishers:
- - build-publishers
-
-- job-template:
- name: tcwg_kernel-llvm-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "tcwg_kernel-.*-bisect-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_kernel'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- distro: '{distro}'
- disabled: false
- node: tcwg-x86_64-build
- concurrent: false
- display-name: 'TCWG Bisect tcwg_kernel/{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 1440
- builders:
- - run-bisect:
- build_script: 'tcwg_kernel-build.sh'
- rr_project: 'tcwg_kernel-llvm'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- publishers:
- - bisect-publishers
-# checksum: 587ec73da3360cc9bbb81319887e82fb
diff --git a/tcwg_kernel.yaml.in b/tcwg_kernel.yaml.in
index 50f8b8e999..2a0a09e015 100644
--- a/tcwg_kernel.yaml.in
+++ b/tcwg_kernel.yaml.in
@@ -2,14 +2,13 @@
- project:
name: tcwg_kernel-#{TOOLCHAIN}
toolchain_name: #{TOOLCHAIN}
- components: #{COMPONENTS}
binutils_url: git://sourceware.org/git/binutils-gdb.git
#if TOOLCHAIN_gnu
gcc_url: https://github.com/gcc-mirror/gcc.git
#elif TOOLCHAIN_llvm
llvm_url: https://github.com/llvm/llvm-project.git
#endif
- qemu_url: git://git.qemu.org/qemu.git
+ qemu_url: https://gitlab.com/qemu-project/qemu.git
toolchain_ver:
- master:
binutils_branch: refs/heads/master
@@ -19,31 +18,22 @@
llvm_branch: refs/heads/main
#endif
qemu_branch: refs/heads/master
- distro: lts
- - release:
- binutils_branch: refs/heads/binutils-2_36-branch
-#if TOOLCHAIN_gnu
- gcc_branch: refs/heads/releases/gcc-10
-#elif TOOLCHAIN_llvm
- llvm_branch: refs/heads/release/12.x
-#endif
- qemu_branch: refs/heads/master
- distro: lts_1
+ distro: default
target:
- aarch64
- arm
linux:
- next:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+ linux_url: https://git.linaro.org/kernel-org/linux-next.git
linux_branch: refs/heads/master
- mainline:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
+ linux_url: https://git.linaro.org/kernel-org/linux.git
linux_branch: refs/heads/master
- stable:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
linux_branch: refs/heads/linux-rolling-stable
- lts:
- linux_url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
linux_branch: refs/heads/linux-rolling-lts
linux_config:
- defconfig
@@ -51,44 +41,29 @@
- allyesconfig
- allnoconfig
jobs:
- - 'tcwg_kernel-#{TOOLCHAIN}-build-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
- - 'tcwg_kernel-#{TOOLCHAIN}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
-
-- view:
- name: tcwg_kernel-#{TOOLCHAIN}
- view-type: list
- regex: 'tcwg_kernel-#{TOOLCHAIN}.*'
+ - 'tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-build'
+ - 'tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-bisect'
+ ci_project: 'tcwg_kernel'
+ ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
#include tcwg/round-robin.yaml.inc
- job-template:
- name: tcwg_kernel-#{TOOLCHAIN}-build-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}
+ name: tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-build
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_kernel-#{TOOLCHAIN}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}"
- queue-scanning: 'ALL'
+ - build-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- 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: 'default'
distro: '{distro}'
disabled: false
node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Build tcwg_kernel/{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ display-name: 'TCWG Build {ci_project}/{ci_config}'
workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
scm:
- build-scms:
@@ -107,43 +82,35 @@
linux_branch: '{linux_branch}'
triggers:
- pollscm:
- cron: 'H H H/7 * *'
+ cron: 'H H H/4 * *'
wrappers:
- build-wrappers:
timeout: 600
builders:
- run-build:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_kernel-build.sh'
- components: '{components}'
- rr_project: 'tcwg_kernel-#{TOOLCHAIN}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- - build-publishers
+ - build-publishers:
+ email_on_failure: false
+ email_on_success: true
- job-template:
- name: tcwg_kernel-#{TOOLCHAIN}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}
+ name: tcwg_kernel--{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}-bisect
project-type: freestyle
defaults: global
properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "tcwg_kernel-.*-bisect-.*"
- queue-scanning: 'BUILDABLE'
+ - bisect-properties:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
parameters:
- bisect-parameters:
- ci_project: 'tcwg_kernel'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
distro: '{distro}'
disabled: false
node: tcwg-x86_64-build
concurrent: false
- display-name: 'TCWG Bisect tcwg_kernel/{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
+ display-name: 'TCWG Bisect {ci_project}/{ci_config}'
workspace: workspace/tcwg_kernel_$EXECUTOR_NUMBER
scm:
- jenkins-scripts
@@ -152,8 +119,8 @@
timeout: 1440
builders:
- run-bisect:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
build_script: 'tcwg_kernel-build.sh'
- rr_project: 'tcwg_kernel-#{TOOLCHAIN}'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config}'
publishers:
- bisect-publishers
diff --git a/tcwg_kernel/tcwg_kernel-gnu.def b/tcwg_kernel/tcwg_kernel--gnu.def
index 52240f19c5..443032583c 100644
--- a/tcwg_kernel/tcwg_kernel-gnu.def
+++ b/tcwg_kernel/tcwg_kernel--gnu.def
@@ -2,6 +2,6 @@
-v COMPONENTS=gcc
-v COMPONENTS=linux
-v COMPONENTS=qemu
--v PURPOSE=ci
-v RR=tcwg_kernel
-v TOOLCHAIN=gnu
+-v SQUAD_GRP=
diff --git a/tcwg_kernel/tcwg_kernel-llvm.def b/tcwg_kernel/tcwg_kernel--llvm.def
index e2bb22541c..836e8f221f 100644
--- a/tcwg_kernel/tcwg_kernel-llvm.def
+++ b/tcwg_kernel/tcwg_kernel--llvm.def
@@ -2,6 +2,6 @@
-v COMPONENTS=linux
-v COMPONENTS=llvm
-v COMPONENTS=qemu
--v PURPOSE=ci
-v RR=tcwg_kernel
-v TOOLCHAIN=llvm
+-v SQUAD_GRP=
diff --git a/tcwg_monitoring.yaml b/tcwg_monitoring.yaml
deleted file mode 100644
index a1856a0a03..0000000000
--- a/tcwg_monitoring.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
-- project:
- name: tcwg_monitoring
- slave_name:
- - tcwg-apm-01
- - tcwg-apm-02
- - tcwg-apm-03
- - tcwg-sq-01
- - tcwg-sq-02
- - tcwg-tk1-10
- - build-01
- - build-02
- - build-03
- - build-04
- - build-05
- - build-06
- - build-07
- - build-08
- - build-09
- - build-10
- - dev-01
- - dev-02
- jobs:
- - 'tcwg_monitoring_{slave_name}'
-
-- view:
- name: tcwg_monitoring
- view-type: list
- regex: 'tcwg_monitoring_.*'
-
-- property:
- name: default-properties
- properties:
- - authorization:
- linaro:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 300
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
-
-- scm:
- name: jenkins
- scm:
- - git:
- url: https://git.linaro.org/people/christophe.lyon/jenkins.git
- refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
- branches:
- - $scripts_branch
- skip-tag: true
- wipe-workspace: true
-
-- job-template:
- name: tcwg_monitoring_{slave_name}
- project-type: freestyle
- defaults: global
- properties:
- - default-properties
- parameters:
- - default-parameters
- disabled: false
- node: tcwg-coordinator
- concurrent: true
- display-name: 'TCWG Monitoring {slave_name}'
- scm:
- - jenkins
- triggers:
- # Every 30 minutes
- - timed: '12,42 * * * *'
- wrappers:
- - timeout:
- timeout: 600
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- - build-name:
- name: '#$BUILD_NUMBER-{slave_name}'
- builders:
- - shell: |
- #!/bin/bash
- set -ex
- # Add .tcwglab suffix when needed, to use the right
- # .ssh/config settings (mainly the connexion port)
- case {slave_name} in
- # Use port 22
- apm-*|tcwg-m1-*)
- slave_name={slave_name}
- ;;
- *)
- # Use port 2222
- slave_name={slave_name}.tcwglab
- ;;
- esac
- ./check-one-slave.sh $slave_name
- publishers:
- - email-ext:
- recipients: 'christophe.lyon@linaro.org'
- aborted: true
diff --git a/tcwg_monitoring_disk_users.yaml b/tcwg_monitoring_disk_users.yaml
index 278a6acaef..e75440d6fd 100644
--- a/tcwg_monitoring_disk_users.yaml
+++ b/tcwg_monitoring_disk_users.yaml
@@ -2,9 +2,7 @@
name: tcwg_monitoring_disk_users
slave_name:
- dev-01.tcwglab
- - dev-02.tcwglab
- - tcwg-sq-01.tcwglab
- - tcwg-sq-02.tcwglab
+ - tcwg-ex42-01
- tcwg-tk1-10.tcwglab
jobs:
- 'tcwg_monitoring_disk_users_{slave_name}'
@@ -18,11 +16,12 @@
name: default-properties
properties:
- authorization:
- linaro:
- - job-build
- - job-cancel
- - job-read
- - job-extended-read
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-build
+ - job-cancel
- build-discarder:
days-to-keep: 30
num-to-keep: 300
@@ -51,7 +50,7 @@
name: jenkins
scm:
- git:
- url: https://git.linaro.org/people/christophe.lyon/jenkins.git
+ url: https://git.linaro.org/toolchain/monitoring-scripts.git
refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
branches:
- $scripts_branch
@@ -73,7 +72,6 @@
scm:
- jenkins
triggers:
- # Every 30 minutes
- timed: '@daily'
wrappers:
- timeout:
diff --git a/tensorflow-asv/thunderx-asv.sh b/tensorflow-asv/thunderx-asv.sh
new file mode 100644
index 0000000000..223d66ae63
--- /dev/null
+++ b/tensorflow-asv/thunderx-asv.sh
@@ -0,0 +1,15 @@
+#!/bin/bash -ex
+
+sudo apt-get -q update
+sudo apt-get install -y ipmitool
+
+ipmitool -C3 -I lanplus -H 172.27.64.54 -I lanplus -U root -P Huawei12#$ sol activate
+cd /root/asv-test
+git pull
+./gen_commit_list.sh
+./get_commit_list.sh
+./gen_asv_commit_list.sh
+asv run HASHFILE:asv_commit_list
+asv publish --html-dir tensorflow-manylinux-nightly-asv-bench
+
+scp -r tensorflow-manylinux-nightly-asv-bench theodore.grey@people.linaro.org:~/public_html/ \ No newline at end of file
diff --git a/test-definitions-validation.yaml b/test-definitions-validation.yaml
index 425686390e..37b80f50e7 100644
--- a/test-definitions-validation.yaml
+++ b/test-definitions-validation.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
parameters:
diff --git a/testdef-docker-image-armhf.yaml b/testdef-docker-image-armhf.yaml
deleted file mode 100644
index cd7224ae10..0000000000
--- a/testdef-docker-image-armhf.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-- job:
- name: testdef-docker-image-armhf
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- disabled: false
- node: build-armhf
- display-name: 'Test Definitions Docker images'
- scm:
- - git:
- # Monitor new tags.
- url: https://git.linaro.org/qa/test-definitions.git
- refspec: '+refs/tags/*:refs/remotes/origin/tags/*'
- branches:
- - 'refs/tags/*'
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: testdef-docker-image/builders-armhf.sh
- publishers:
- - email:
- recipients: 'milosz.wasilewski@linaro.org'
diff --git a/testdef-docker-image.yaml b/testdef-docker-image.yaml
deleted file mode 100644
index f447660ebd..0000000000
--- a/testdef-docker-image.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-- job:
- name: testdef-docker-image
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-discover
- linaro:
- - job-read
- - job-extended-read
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- disabled: false
- node: build-arm64
- display-name: 'Test Definitions Docker images'
- scm:
- - git:
- # Monitor new tags.
- url: https://git.linaro.org/qa/test-definitions.git
- refspec: '+refs/tags/*:refs/remotes/origin/tags/*'
- branches:
- - 'refs/tags/*'
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- - copy-to-slave:
- includes:
- - config.json
- relative-to: 'somewhereElse'
- - credentials-binding:
- - text:
- credential-id: DOCKER_AUTH
- variable: DOCKER_AUTH
- builders:
- - shell:
- !include-raw: testdef-docker-image/builders.sh
- publishers:
- - email:
- recipients: 'milosz.wasilewski@linaro.org'
diff --git a/trigger-96boards-reference-centos-installer-staging.yaml b/trigger-96boards-reference-centos-installer-staging.yaml
deleted file mode 100644
index de362bdfeb..0000000000
--- a/trigger-96boards-reference-centos-installer-staging.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-- job:
- name: trigger-96boards-reference-centos-installer-staging
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- disabled: true
- node: triggers
- display-name: 'Trigger for Reference Platform - CentOS Installer (staging)'
- triggers:
- - pollurl:
- cron: '@hourly'
- polling-node: build
- urls:
- - url: 'http://repo.linaro.org/rpm/linaro-staging/centos-7/repo/'
- check-content:
- - simple: true
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: '96boards-reference-centos-installer-staging'
diff --git a/trigger-96boards-reference-centos-installer.yaml b/trigger-96boards-reference-centos-installer.yaml
deleted file mode 100644
index 680d4c643a..0000000000
--- a/trigger-96boards-reference-centos-installer.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-- job:
- name: trigger-96boards-reference-centos-installer
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- disabled: true
- node: triggers
- display-name: 'Trigger for Reference Platform - CentOS Installer'
- triggers:
- - pollurl:
- cron: '@hourly'
- polling-node: build
- urls:
- - url: 'http://repo.linaro.org/rpm/linaro-overlay/centos-7/repo/'
- check-content:
- - simple: true
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: '96boards-reference-centos-installer'
diff --git a/trigger-96boards-reference-debian-installer-staging.yaml b/trigger-96boards-reference-debian-installer-staging.yaml
deleted file mode 100644
index df3d72b5a6..0000000000
--- a/trigger-96boards-reference-debian-installer-staging.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-- job:
- name: trigger-96boards-reference-debian-installer-staging
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- disabled: false
- node: triggers
- display-name: 'Trigger for Reference Platform - Debian Installer (staging)'
- triggers:
- - pollurl:
- cron: '@hourly'
- polling-node: build
- urls:
- - url: 'http://obs.linaro.org/ERP:/staging/Debian_9/debian-installer/Release'
- check-content:
- - simple: true
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: rpb-kernel-latest-metapackage
- predefined-parameters: |
- TARGET_REPO=ERP:staging
- OBS_RELEASE=Debian_9
diff --git a/trigger-96boards-reference-debian-installer.yaml b/trigger-96boards-reference-debian-installer.yaml
deleted file mode 100644
index fdd916bf65..0000000000
--- a/trigger-96boards-reference-debian-installer.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-- job:
- name: trigger-96boards-reference-debian-installer
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- disabled: false
- node: triggers
- display-name: 'Trigger for Reference Platform - Debian Installer'
- triggers:
- - pollurl:
- cron: '@hourly'
- polling-node: build
- urls:
- - url: 'http://obs.linaro.org/ERP:/19.03/Debian_9/debian-installer/Release'
- check-content:
- - simple: true
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: '96boards-reference-debian-installer'
diff --git a/trigger-android-weekly-builds.yaml b/trigger-android-weekly-builds.yaml
index 8528f696f6..7ef21d7f7d 100644
--- a/trigger-android-weekly-builds.yaml
+++ b/trigger-android-weekly-builds.yaml
@@ -10,7 +10,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
disabled: false
@@ -24,10 +24,8 @@
- trigger-builds:
- project:
- 'linaro-art-build-metrics'
- - 'android-lcr-reference-hikey960-q'
- - 'android-lcr-reference-hikey960-master'
- - 'android-lcr-reference-hikey960-master-auto'
- 'android-lcr-reference-x15-master'
+ - 'android-lcr-reference-x15-master-auto'
- 'lkft-aosp-member-wrapper'
- 'android-hikey-optee-master'
- 'armnn-ci-benchmarking'
diff --git a/trigger-ci-job-configs.yaml b/trigger-ci-job-configs.yaml
index d237d8d555..58d339c161 100644
--- a/trigger-ci-job-configs.yaml
+++ b/trigger-ci-job-configs.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- build-discarder:
@@ -103,7 +103,7 @@
fi
jenkins-jobs --version
- python run-jjb.py
+ python3 run-jjb.py
publishers:
- email:
recipients: 'linaro-infrastructure-errors@lists.linaro.org'
diff --git a/trigger-daily.yaml b/trigger-daily.yaml
index 47334ddd0d..1ea12920fe 100644
--- a/trigger-daily.yaml
+++ b/trigger-daily.yaml
@@ -18,4 +18,3 @@
- timestamps
builders:
- trigger-builds:
- - project: 'ledge-oe'
diff --git a/trigger-hikey-stable.yaml b/trigger-hikey-stable.yaml
deleted file mode 100644
index 52abffbb6e..0000000000
--- a/trigger-hikey-stable.yaml
+++ /dev/null
@@ -1,90 +0,0 @@
-- job:
- name: trigger-hikey-stable
- 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
- disabled: true
- node: triggers
- 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/}'
- 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}
-
- 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}
-
- cat "${params}"
- echo "=========================="
- cat "${f_api_callbacks}"
-
- publishers:
- - email:
- recipients: 'yongqin.liu@linaro.org'
diff --git a/trigger-ldcg-onednn-benchmarks.yaml b/trigger-ldcg-onednn-benchmarks.yaml
new file mode 100644
index 0000000000..93b1890ba4
--- /dev/null
+++ b/trigger-ldcg-onednn-benchmarks.yaml
@@ -0,0 +1,23 @@
+- job:
+ name: trigger-ldcg-onednn-benchmarks
+ project-type: freestyle
+ defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ disabled: false
+ node: triggers
+ display-name: "Trigger for OneDNN benchmarks"
+ triggers:
+ - timed: '@weekly'
+ wrappers:
+ - timestamps
+ builders:
+ - trigger-builds:
+ - project:
+ - 'ldcg-onednn-benchmarks'
diff --git a/trigger-ldcg-tensorflow-asv-benchmarks.yaml b/trigger-ldcg-tensorflow-asv-benchmarks.yaml
new file mode 100644
index 0000000000..9c2173d36b
--- /dev/null
+++ b/trigger-ldcg-tensorflow-asv-benchmarks.yaml
@@ -0,0 +1,23 @@
+- job:
+ name: trigger-ldcg-tensorflow-asv-benchmarks
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ disabled: false
+ node: triggers
+ display-name: 'Trigger for Tensorflow benchmarks run with asv'
+ triggers:
+ - pollscm:
+ cron: 'H/5 * * * 6'
+ wrappers:
+ - timestamps
+ builders:
+ - trigger-builds:
+ - project:
+ - 'ldcg-tensorflow-asv-benchmarks'
diff --git a/trigger-ldcg-tensorflow-io.yaml b/trigger-ldcg-tensorflow-io.yaml
new file mode 100644
index 0000000000..6817560bdc
--- /dev/null
+++ b/trigger-ldcg-tensorflow-io.yaml
@@ -0,0 +1,35 @@
+- job:
+ name: trigger-ldcg-tensorflow-io
+ project-type: freestyle
+ defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ disabled: false
+ node: triggers
+ display-name: 'Trigger for Tensorflow IO upstream'
+ scm:
+ - git:
+ url: https://github.com/tensorflow/io.git
+ refspec: +refs/heads/master:refs/remotes/origin/master
+ name: origin
+ branches:
+ - refs/heads/master
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+ triggers:
+ - pollscm:
+ cron: 'H/5 * * * *'
+ wrappers:
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
+ publishers:
+ - trigger-parameterized-builds:
+ - project: 'ldcg-python-manylinux-tensorflow-io'
+ predefined-parameters: buildgit=true
diff --git a/trigger-ldcg-tensorflow-text.yaml b/trigger-ldcg-tensorflow-text.yaml
new file mode 100644
index 0000000000..f736c8a0a8
--- /dev/null
+++ b/trigger-ldcg-tensorflow-text.yaml
@@ -0,0 +1,35 @@
+- job:
+ name: trigger-ldcg-tensorflow-text
+ project-type: freestyle
+ defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ disabled: false
+ node: triggers
+ display-name: 'Trigger for Tensorflow Text upstream'
+ scm:
+ - git:
+ url: https://github.com/tensorflow/text.git
+ refspec: +refs/heads/master:refs/remotes/origin/master
+ name: origin
+ branches:
+ - refs/heads/master
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+ triggers:
+ - pollscm:
+ cron: 'H/5 * * * *'
+ wrappers:
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
+ publishers:
+ - trigger-parameterized-builds:
+ - project: 'ldcg-python-manylinux-tensorflow-text'
+ predefined-parameters: buildgit=true
diff --git a/trigger-linux-stable-rc.yaml b/trigger-linux-stable-rc.yaml
deleted file mode 100644
index 66a8ba0a5e..0000000000
--- a/trigger-linux-stable-rc.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-- job:
- name: trigger-linux-stable-rc
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- disabled: false
- node: triggers
- display-name: 'Trigger for Linux Stable RC'
- scm:
- - git:
- remotes:
- - linux-stable-rc:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
- - linux-stable:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- branches:
- - linux-stable-rc/linux-4.4.y
- - linux-stable-rc/linux-4.9.y
- - linux-stable-rc/linux-4.14.y
- - linux-stable-rc/linux-4.19.y
- - linux-stable-rc/linux-5.4.y
- - linux-stable-rc/linux-5.5.y
- - linux-stable-rc/linux-5.6.y
- - linux-stable-rc/linux-5.7.y
- - linux-stable-rc/linux-5.8.y
- - linux-stable-rc/linux-5.9.y
- - linux-stable-rc/linux-5.10.y
- - linux-stable-rc/linux-5.11.y
- - linux-stable-rc/linux-5.12.y
- name: linux
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_BRANCH#linux-stable-rc/}-${GIT_REVISION,length=8}'
-
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- MAKE_KERNELVERSION=$(make kernelversion)
- KERNEL_BRANCH=${GIT_BRANCH#linux-stable-rc/}
- KERNEL_DESCRIBE=$(git describe --always --abbrev=12)
-
- 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
-
- - trigger-builds:
- - project: linaro-hikey-stable-rc-4.4-merge-and-tag
- property-file: lkft-linux-4.4.y.txt
- - project: openembedded-lkft-linux-stable-rc-4.4
- property-file: lkft-linux-4.4.y.txt
- - project: openembedded-lkft-linux-stable-rc-4.9
- property-file: lkft-linux-4.9.y.txt
- - project: openembedded-lkft-linux-stable-rc-4.14
- property-file: lkft-linux-4.14.y.txt
- - project: openembedded-lkft-linux-stable-rc-4.19
- property-file: lkft-linux-4.19.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.4
- property-file: lkft-linux-5.4.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.5
- property-file: lkft-linux-5.5.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.6
- property-file: lkft-linux-5.6.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.7
- property-file: lkft-linux-5.7.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.8
- property-file: lkft-linux-5.8.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.9
- property-file: lkft-linux-5.9.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.10
- property-file: lkft-linux-5.10.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.11
- property-file: lkft-linux-5.11.y.txt
- - project: openembedded-lkft-linux-stable-rc-5.12
- property-file: lkft-linux-5.12.y.txt
diff --git a/trigger-lkft-android-common-presubmit.yaml b/trigger-lkft-android-common-presubmit.yaml
deleted file mode 100644
index d0fa415d7e..0000000000
--- a/trigger-lkft-android-common-presubmit.yaml
+++ /dev/null
@@ -1,70 +0,0 @@
-- job:
- name: trigger-lkft-android-common-presubmit
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for the cts presubmit test'
- scm:
- - git:
- remotes:
- - android-common:
- url: https://android.googlesource.com/kernel/common
- branches:
- # needs to update the following configs:
- # lkft-android-common-gateway.yaml
- # lkft-gki-kernel.yaml
- - android-common/android11-5.4
- - android-common/android12-5.4
- - android-common/android12-5.10
- - android-common/android13-5.10
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H * * 6'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#android-common/}'
- 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}-presubmit"
- 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-parameters.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}"
- echo "CALLER_JOB_NAME=${JOB_NAME}" >> "${params}"
- echo "CALLER_BUILD_NUMBER=${BUILD_NUMBER}" >> "${params}"
- cat "${params}"
-
- - trigger-builds:
- - project: lkft-android-common-gateway
- property-file: lkft-parameters.txt
- publishers:
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
diff --git a/trigger-lkft-android-common-weekly-android11.yaml b/trigger-lkft-android-common-weekly-android11.yaml
deleted file mode 100644
index cc583c1ad9..0000000000
--- a/trigger-lkft-android-common-weekly-android11.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: trigger-lkft-android-common-weekly-android11
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for builds on android common kernel weekly'
- scm:
- - git:
- remotes:
- - android-common:
- url: https://android.googlesource.com/kernel/common
- branches:
- - android-common/android11-5.4
- - android-common/android13-5.10
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H 8,22 * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#android-common/}'
- 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}
-
- 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"
- ;;
- "Xandroid11-5.4")
- build_configs_to_be_triggered="lkft-db845c-android11-android11-5.4-gki lkft-hikey960-android11-android11-5.4-gki"
- ;;
- "Xandroid13-5.10")
- build_configs_to_be_triggered="lkft-db845c-aosp-master-android13-5.10-gki lkft-hikey960-aosp-master-android13-5.10-gki"
- ;;
- "X*")
- build_configs=""
- ;;
- esac
- echo "ANDROID_BUILD_CONFIG_TO_BE_TRIGGERED=${build_configs_to_be_triggered}" >>${f_api_callbacks}
-
- - inject:
- properties-file: all-kernels.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-gki-kernel
- property-file: all-kernels.txt
- publishers:
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
diff --git a/trigger-lkft-android-common-weekly.yaml b/trigger-lkft-android-common-weekly.yaml
deleted file mode 100644
index 32c196eca8..0000000000
--- a/trigger-lkft-android-common-weekly.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-- job:
- name: trigger-lkft-android-common-weekly
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for builds on android common kernel bi-weekly'
- 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 H 1,15 * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#android-common/}'
- 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}
-
- case "X${KERNEL_BRANCH_REAL}" in
- "Xandroid12-5.10")
- build_configs_to_be_triggered="lkft-member-wrapper"
- ;;
- "Xandroid12-5.4")
- build_configs_to_be_triggered="lkft-db845c-aosp-master-5.4-gki lkft-hikey960-aosp-master-5.4-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}
-
- - inject:
- properties-file: all-kernels.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-gki-kernel
- property-file: all-kernels.txt
- publishers:
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
diff --git a/trigger-lkft-android-common.yaml b/trigger-lkft-android-common.yaml
deleted file mode 100644
index 2f501867d5..0000000000
--- a/trigger-lkft-android-common.yaml
+++ /dev/null
@@ -1,71 +0,0 @@
-- job:
- name: trigger-lkft-android-common
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 400
- disabled: false
- node: triggers
- display-name: 'Trigger for changes on android common kernel'
- scm:
- - git:
- remotes:
- - android-common:
- url: https://android.googlesource.com/kernel/common
- - linux-stable:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- refspec: +refs/heads/linux-5.4.y:refs/remotes/linux-stable/linux-5.4.y +refs/heads/master:refs/remotes/master/master
- branches:
- - android-common/android-mainline
- - android-common/android13-5.10
- - android-common/android12-5.10
- - android-common/android12-5.4
- - android-common/android11-5.4
- - android-common/android11-5.4-lts
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H/6 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#android-common/}'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- MAKE_KERNELVERSION="$(make kernelversion)"
- KERNEL_BRANCH="${GIT_BRANCH#android-common/}"
- KERNEL_DESCRIBE="${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}"
-
- echo "KERNEL_DESCRIBE=${KERNEL_DESCRIBE}" > "properties.txt"
- echo "KERNEL_BRANCH=${KERNEL_BRANCH}" >> "properties.txt"
-
- params="lkft-parameters.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}"
- echo "CALLER_JOB_NAME=${JOB_NAME}" >> "${params}"
- echo "CALLER_BUILD_NUMBER=${BUILD_NUMBER}" >> "${params}"
- cat "${params}"
-
- - trigger-builds:
- - project: lkft-android-common-gateway
- property-file: lkft-parameters.txt
- publishers:
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
diff --git a/trigger-lkft-aosp-common.yaml b/trigger-lkft-aosp-common.yaml
deleted file mode 100644
index d64492104c..0000000000
--- a/trigger-lkft-aosp-common.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- job:
- name: trigger-lkft-aosp-common
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for changes on aosp common 4.14/4.19 branches'
- scm:
- - git:
- remotes:
- - common:
- url: https://android.googlesource.com/kernel/common
- - linux-stable:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- refspec: +refs/heads/linux-4.14.y:refs/remotes/linux-stable/linux-4.14.y +refs/heads/linux-4.19.y:refs/remotes/linux-stable/linux-4.19.y
- branches:
- - common/android-4.14-stable
- - common/android-4.19-stable
- - common/android-4.4-o
- - common/android-4.4-p
- - common/android-4.9-o
- - common/android-4.9-p
- - common/android-4.9-q
- - common/android-4.14-p
- - common/android-4.14-q
- - common/android-4.19-q
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H/3 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#common/}'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- MAKE_KERNELVERSION=$(make kernelversion)
- KERNEL_BRANCH=$(echo $GIT_BRANCH|sed s,common/,,)
- KERNEL_DESCRIBE=${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}
-
- echo KERNEL_DESCRIBE=${KERNEL_DESCRIBE} > properties.txt
- echo KERNEL_BRANCH=${KERNEL_BRANCH} >> properties.txt
-
- params=lkft-parameters-hikey.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
-
- if [ "X${KERNEL_BRANCH}X" = "Xandroid-4.14-stableX" ] || [ "X${KERNEL_BRANCH}X" = "Xandroid-4.19-stableX" ]; then
- # only trigger the lkft-omap-merge-mirrors build job for the android-4.14-stable and android-4.19-stable branches
- cp "${params}" lkft-parameters-x15.txt
- fi
-
- - trigger-builds:
- - project: lkft-omap-merge-mirrors
- property-file: lkft-parameters-x15.txt
- - project: lkft-hikey-merge-mirrors
- property-file: lkft-parameters-hikey.txt
diff --git a/trigger-lkft-hikey-4.14.yaml b/trigger-lkft-hikey-4.14.yaml
deleted file mode 100644
index dd218653c3..0000000000
--- a/trigger-lkft-hikey-4.14.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-- job:
- name: trigger-lkft-hikey-4.14
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- parameters:
- - string:
- name: KERNEL_BRANCH
- default: 'android-hikey-linaro-4.14'
- disabled: false
- node: triggers
- display-name: 'Trigger for LKFT HiKey builds (4.14 branch)'
- scm:
- - git:
- remotes:
- - android-hikey-linaro-4.14:
- url: https://android.googlesource.com/kernel/hikey-linaro
- refspec: +refs/heads/android-hikey-linaro-4.14:refs/remotes/android-hikey-linaro-4.14/android-hikey-linaro-4.14
- - linux-stable-4.14:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- refspec: +refs/heads/linux-4.14.y:refs/remotes/linux-stable-4.14/linux-4.14.y
- branches:
- - android-hikey-linaro-4.14/android-hikey-linaro-4.14
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm: 'H H/3 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
- MAKE_KERNELVERSION=$(make kernelversion)
- KERNEL_DESCRIBE=${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}
- echo KERNEL_DESCRIBE=${KERNEL_DESCRIBE} > lkft_parameters
- echo SRCREV_kernel=${GIT_COMMIT} >> lkft_parameters
- echo MAKE_KERNELVERSION=${MAKE_KERNELVERSION} >> lkft_parameters
- cat lkft_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'lkft-hikey-android-8.1-4.14'
- condition: SUCCESS
- property-file: lkft_parameters
diff --git a/trigger-lkft-hikey-stable.yaml b/trigger-lkft-hikey-stable.yaml
deleted file mode 100644
index 7a21d1411a..0000000000
--- a/trigger-lkft-hikey-stable.yaml
+++ /dev/null
@@ -1,96 +0,0 @@
-- job:
- name: trigger-lkft-hikey-stable
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 100
- disabled: false
- node: triggers
- display-name: 'Trigger for HiKey/HiKey960 Stable kernels'
- scm:
- - git:
- remotes:
- - hikey-stable:
- url: https://android-git.linaro.org/git/kernel/hikey-linaro.git
- - linux-stable:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- refspec: +refs/heads/linux-4.4.y:refs/remotes/linux-stable/linux-4.4.y +refs/heads/linux-4.9.y:refs/remotes/linux-stable/linux-4.9.y +refs/heads/linux-4.14.y:refs/remotes/linux-stable/linux-4.14.y +refs/heads/linux-4.19.y:refs/remotes/linux-stable/linux-4.19.y
- branches:
- - hikey-stable/android-4.4-o-hikey
- - hikey-stable/android-4.4-p-hikey
- - hikey-stable/android-4.9-o-hikey
- - hikey-stable/android-4.9-p-hikey
- - hikey-stable/android-4.9-q-hikey
- - hikey-stable/android-4.14-p-hikey
- - hikey-stable/android-4.14-q-hikey
- - hikey-stable/android-4.19-q-hikey
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H/3 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_BRANCH#hikey-stable/}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- MAKE_KERNELVERSION=$(make kernelversion)
- KERNEL_BRANCH=${GIT_BRANCH#hikey-stable/}
- KERNEL_DESCRIBE=${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}
-
- 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}
-
- - inject:
- properties-file: all-kernels.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-hikey-4.4-o
- property-file: lkft-android-4.4-o-hikey.txt
- - project: lkft-hikey-4.4-p
- property-file: lkft-android-4.4-p-hikey.txt
- - project: lkft-hikey-4.9-o
- property-file: lkft-android-4.9-o-hikey.txt
- - project: lkft-hikey-aosp-4.9-premerge-ci
- property-file: lkft-android-4.9-p-hikey.txt
- - project: lkft-hikey-10.0-4.9-q
- property-file: lkft-android-4.9-q-hikey.txt
- - project: lkft-hikey-aosp-4.14-premerge-ci
- property-file: lkft-android-4.14-p-hikey.txt
- - project: lkft-hikey-10.0-4.14-q
- property-file: lkft-android-4.14-q-hikey.txt
- - project: lkft-hikey-android-10.0-gsi-4.19
- property-file: lkft-android-4.19-q-hikey.txt
diff --git a/trigger-lkft-linaro-hikey.yaml b/trigger-lkft-linaro-hikey.yaml
deleted file mode 100644
index 22cde9d622..0000000000
--- a/trigger-lkft-linaro-hikey.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-- job:
- name: trigger-lkft-linaro-hikey
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for changes on aosp hikey kernel'
- scm:
- - git:
- remotes:
- - linaro-hikey:
- url: https://android-git.linaro.org/git/kernel/hikey-linaro.git
- - linux-stable:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- refspec: +refs/heads/linux-4.14.y:refs/remotes/linux-stable/linux-4.14.y +refs/heads/linux-4.19.y:refs/remotes/linux-stable/linux-4.19.y
- branches:
- - linaro-hikey/android-hikey-linaro-4.14-stable-lkft
- - linaro-hikey/android-hikey-linaro-4.19-stable-lkft
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H/3 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#linaro-hikey/}'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- MAKE_KERNELVERSION=$(make kernelversion)
- KERNEL_BRANCH=${GIT_BRANCH#linaro-hikey/}
- KERNEL_DESCRIBE=${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}
- SRCREV_kernel=${GIT_COMMIT}
-
- 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=${SRCREV_kernel} >> $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}
-
- build_configs_4_14_stable="lkft-hikey-aosp-master-4.14-stable-lkft lkft-hikey960-aosp-master-4.14-stable-lkft lkft-hikey960-android11-4.14-stable-lkft"
- build_configs_4_19_stable="lkft-hikey-aosp-master-4.19-stable-lkft lkft-hikey960-aosp-master-4.19-stable-lkft lkft-hikey960-android11-4.19-stable-lkft"
-
- build_configs=""
- case "X${KERNEL_BRANCH}" in
- "Xandroid-hikey-linaro-4.14-stable-lkft")
- build_configs="${build_configs_4_14_stable}"
- ;;
- "Xandroid-hikey-linaro-4.19-stable-lkft")
- build_configs="${build_configs_4_19_stable}"
- ;;
- "X*")
- build_configs=""
- ;;
- esac
-
- rm -fr params_*.txt
- for build_config in ${build_configs}; do
- f_params="params_${KERNEL_BRANCH}_${build_config}.txt"
-
- cat << __EOF__ > ${f_params}
- ANDROID_BUILD_CONFIG=${build_config}
- KERNEL_DESCRIBE=${KERNEL_DESCRIBE}
- KERNEL_BRANCH=${KERNEL_BRANCH}
- SRCREV_kernel=${SRCREV_kernel}
- MAKE_KERNELVERSION=${MAKE_KERNELVERSION}
- __EOF__
-
- cat ${f_params}
- done
-
- - inject:
- properties-file: all-kernels.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-generic-mirror-build
- property-file: params_android-hikey-linaro-4.14-stable-lkft_lkft-hikey-aosp-master-4.14-stable-lkft.txt
- - project: lkft-generic-mirror-build
- property-file: params_android-hikey-linaro-4.14-stable-lkft_lkft-hikey960-aosp-master-4.14-stable-lkft.txt
- - project: lkft-generic-mirror-build
- property-file: params_android-hikey-linaro-4.14-stable-lkft_lkft-hikey960-android11-4.14-stable-lkft.txt
- - project: lkft-generic-mirror-build
- property-file: params_android-hikey-linaro-4.19-stable-lkft_lkft-hikey-aosp-master-4.19-stable-lkft.txt
- - project: lkft-generic-mirror-build
- property-file: params_android-hikey-linaro-4.19-stable-lkft_lkft-hikey960-aosp-master-4.19-stable-lkft.txt
- - project: lkft-generic-mirror-build
- property-file: params_android-hikey-linaro-4.19-stable-lkft_lkft-hikey960-android11-4.19-stable-lkft.txt
diff --git a/trigger-lkft-linaro-omap.yaml b/trigger-lkft-linaro-omap.yaml
deleted file mode 100644
index d852d1ce1b..0000000000
--- a/trigger-lkft-linaro-omap.yaml
+++ /dev/null
@@ -1,107 +0,0 @@
-- job:
- name: trigger-lkft-linaro-omap
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for changes on linaro omap kernels'
- scm:
- - git:
- remotes:
- - linaro-omap:
- url: https://android-git.linaro.org/git/kernel/omap.git
- - linux-stable:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- refspec: +refs/heads/linux-4.14.y:refs/remotes/linux-stable/linux-4.14.y +refs/heads/linux-4.19.y:refs/remotes/linux-stable/linux-4.19.y
- branches:
- - linaro-omap/android-beagle-x15-4.14-stable-lkft
- - linaro-omap/android-beagle-x15-4.19-stable-lkft
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H/3 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#linaro-hikey/}'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- MAKE_KERNELVERSION=$(make kernelversion)
- KERNEL_BRANCH=${GIT_BRANCH#linaro-omap/}
- KERNEL_DESCRIBE=${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}
- SRCREV_kernel=${GIT_COMMIT}
-
- 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=${SRCREV_kernel} >> $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}
-
- build_configs_4_14_stable="lkft-x15-aosp-master-4.14-stable-lkft"
- build_configs_4_19_stable="lkft-x15-aosp-master-4.19-stable-lkft"
-
- build_configs=""
- case "X${KERNEL_BRANCH}" in
- "Xandroid-beagle-x15-4.14-stable-lkft")
- build_configs="${build_configs_4_14_stable}"
- ;;
- "Xandroid-beagle-x15-4.19-stable-lkft")
- build_configs="${build_configs_4_19_stable}"
- ;;
- "X*")
- build_configs=""
- ;;
- esac
-
- rm -fr params_*.txt
- for build_config in ${build_configs}; do
- f_params="params_${KERNEL_BRANCH}_${build_config}.txt"
-
- cat << __EOF__ > ${f_params}
- ANDROID_BUILD_CONFIG=${build_config}
- KERNEL_DESCRIBE=${KERNEL_DESCRIBE}
- KERNEL_BRANCH=${KERNEL_BRANCH}
- SRCREV_kernel=${SRCREV_kernel}
- MAKE_KERNELVERSION=${MAKE_KERNELVERSION}
- __EOF__
-
- cat ${f_params}
- done
-
- - inject:
- properties-file: all-kernels.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-generic-omap-build
- property-file: params_android-beagle-x15-4.14-stable-lkft_lkft-x15-aosp-master-4.14-stable-lkft.txt
- - project: lkft-generic-omap-build
- property-file: params_android-beagle-x15-4.19-stable-lkft_lkft-x15-aosp-master-4.19-stable-lkft.txt
diff --git a/trigger-lkft-notify-developer.yaml b/trigger-lkft-notify-developer.yaml
deleted file mode 100644
index 6e01db40b4..0000000000
--- a/trigger-lkft-notify-developer.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-- job:
- name: trigger-lkft-notify-developer
- 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
- disabled: false
- node: triggers
- concurrent: false
- display-name: 'Trigger LKFT Notify Developer'
- scm:
- - git:
- url: https://github.com/Linaro/lkft-tools.git
- refspec: +refs/heads/*:refs/remotes/origin/*
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- clean:
- before: true
- triggers:
- - timed: 'H/5 * * * *'
- wrappers:
- - timeout:
- timeout: 60
- - timestamps
- builders:
- - shell: |
- #!/bin/bash
-
- set -ex
-
- pip install --user -r requirements.txt
-
- python ./bin/trigger_lkft_notify_developer.py
-
- - trigger-builds:
- - project: lkft-notify-developer
- block: false
- parameter-factories:
- - factory: filebuild
- file-pattern: "*.build_notify_parameters"
- no-files-found-action: SKIP
-
- publishers:
- - workspace-cleanup:
- include:
- - "*_parameters"
- - email:
- recipients: 'dan.rue@linaro.org daniel.diaz@linaro.org'
diff --git a/trigger-lkft-notify-kselftest-next.yaml b/trigger-lkft-notify-kselftest-next.yaml
index 9519fddb5e..c7a37ad9c6 100644
--- a/trigger-lkft-notify-kselftest-next.yaml
+++ b/trigger-lkft-notify-kselftest-next.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-build
- job-cancel
- build-discarder:
diff --git a/trigger-lkft-omap.yaml b/trigger-lkft-omap.yaml
deleted file mode 100644
index 1e445542ec..0000000000
--- a/trigger-lkft-omap.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-- job:
- name: trigger-lkft-omap
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for changes on aosp omap kernels'
- scm:
- - git:
- remotes:
- - omap:
- url: https://android.googlesource.com/kernel/omap
- - linux-stable:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- refspec: +refs/heads/linux-4.14.y:refs/remotes/linux-stable/linux-4.14.y +refs/heads/linux-4.19.y:refs/remotes/linux-stable/linux-4.19.y
- branches:
- - omap/android-beagle-x15-4.14
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H H/3 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${PROPFILE,file="properties.txt",property="KERNEL_DESCRIBE"}-${GIT_BRANCH#omap/}'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- MAKE_KERNELVERSION=$(make kernelversion)
- KERNEL_BRANCH=${GIT_BRANCH#omap/}
- KERNEL_DESCRIBE=${MAKE_KERNELVERSION}-${GIT_COMMIT:0:12}
- SRCREV_kernel=${GIT_COMMIT}
-
- 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=${SRCREV_kernel} >> $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}
-
- # generate the configs for build
- build_configs_4_14="lkft-x15-aosp-master-4.14"
- build_configs_4_19="lkft-x15-aosp-master-4.19"
-
- build_configs=""
- case "X${KERNEL_BRANCH}" in
- "Xandroid-beagle-x15-4.14")
- build_configs="${build_configs_4_14}"
- ;;
- "Xandroid-beagle-x15-4.19")
- build_configs="${build_configs_4_19}"
- ;;
- "X*")
- build_configs=""
- ;;
- esac
-
- rm -fr params_*.txt
- for build_config in ${build_configs}; do
- f_params="params_${KERNEL_BRANCH}_${build_config}.txt"
-
- echo "ANDROID_BUILD_CONFIG=${build_config}" > ${f_params}
- echo "KERNEL_DESCRIBE=${KERNEL_DESCRIBE}" >> ${f_params}
- echo "KERNEL_BRANCH=${KERNEL_BRANCH}" >> ${f_params}
- echo "SRCREV_kernel=${SRCREV_kernel}" >> ${f_params}
- echo "MAKE_KERNELVERSION=${MAKE_KERNELVERSION}" >> ${f_params}
-
- cat ${f_params}
- done
-
- - inject:
- properties-file: all-kernels.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-generic-omap-build
- property-file: params_android-beagle-x15-4.14_lkft-x15-aosp-master-4.14.txt
- - project: lkft-generic-omap-build
- property-file: params_android-beagle-x15-4.19_lkft-x15-aosp-master-4.19.txt
-
diff --git a/trigger-lkft-prebuilts.yaml b/trigger-lkft-prebuilts.yaml
deleted file mode 100644
index 2d69896562..0000000000
--- a/trigger-lkft-prebuilts.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-- job:
- name: trigger-lkft-prebuilts
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 180
- num-to-keep: 150
- disabled: false
- node: triggers
- display-name: 'Trigger for android-mainline prebuilt gki kernel'
- scm:
- - git:
- remotes:
- - android-mainline:
- url: https://android.googlesource.com/kernel/prebuilts/mainline/arm64
- branches:
- - android-mainline/master
- 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"}'
- builders:
- - shell: |
- #!/bin/bash -ex
- git clean -fdx
- env
-
- wget https://android-git.linaro.org/platform/prebuilts/linaro-prebuilts.git/plain/host/bin/extract_kernel.py -O extract_kernel.py
- chmod +x extract_kernel.py
- KERNEL_BRANCH=${GIT_BRANCH%/master}-prebuilts
- MAKE_KERNELVERSION=$(python2 ./extract_kernel.py --input kernel-mainline-gz-allsyms --output-release|sed 's/-g.*$//')
- build_number=$(grep kernel-build-id prebuilt-info.txt|cut -d: -f2|tr -d ' ')
- KERNEL_DESCRIBE=${MAKE_KERNELVERSION}-${build_number}
-
- 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
-
- cp lkft-${KERNEL_BRANCH}.txt lkft-db845c-aosp-master-mainline-gki-prebuilts.txt
- echo "ANDROID_BUILD_CONFIG=lkft-db845c-aosp-master-mainline-gki-prebuilts" >> lkft-db845c-aosp-master-mainline-gki-prebuilts.txt
-
- # 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}
-
- - inject:
- properties-file: all-kernels.txt
- - shell:
- !include-raw:
- - lkft/common/api-callbacks.sh
-
- - trigger-builds:
- - project: lkft-generic-build
- property-file: lkft-db845c-aosp-master-mainline-gki-prebuilts.txt
- publishers:
- - email:
- recipients: 'lkft-maintainers@lists.linaro.org'
diff --git a/trigger-lt-qcom-bootloaders.yaml b/trigger-lt-qcom-bootloaders.yaml
deleted file mode 100644
index b24056caea..0000000000
--- a/trigger-lt-qcom-bootloaders.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-- job:
- name: trigger-lt-qcom-bootloaders
- 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 Qualcomm Bootloader builds'
- scm:
- - git:
- url: https://git.linaro.org/git/landing-teams/working/qualcomm/db-boot-tools.git
- refspec: +refs/heads/*:refs/remotes/origin/*
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- - timed: '@monthly'
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: 'lt-qcom-bootloader-dragonboard410c'
- - project: 'lt-qcom-bootloader-dragonboard820c'
- - project: 'lt-qcom-bootloader-dragonboard845c'
- - project: 'lt-qcom-bootloader-rb5'
- publishers:
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-debian-sid-images.yaml b/trigger-lt-qcom-debian-sid-images.yaml
deleted file mode 100644
index f581239f2a..0000000000
--- a/trigger-lt-qcom-debian-sid-images.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-- job:
- name: trigger-lt-qcom-debian-sid-images
- 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 Qualcomm Debian Sid based images'
- scm:
- - git:
- url: https://git.linaro.org/git/ci/fai.git
- refspec: +refs/heads/master:refs/remotes/origin/master
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- - pollurl:
- cron: '@hourly'
- polling-node: build
- urls:
- - url: 'http://obs.linaro.org/linaro-overlay-sid/sid/Release'
- check-content:
- - simple: true
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: 'lt-qcom-debian-images-dragonboard410c'
- - project: 'lt-qcom-debian-images-dragonboard820c'
- - project: 'lt-qcom-debian-images-dragonboard845c'
- - project: 'lt-qcom-debian-images-qrb5165-rb5'
- publishers:
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: 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 7b191851fa..0000000000
--- 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 25c9d4e509..0000000000
--- 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 663cf6d8eb..0000000000
--- 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 5288ce9fb0..0000000000
--- 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-aosp-4.14.0.yaml b/trigger-lt-qcom-linux-aosp-4.14.0.yaml
deleted file mode 100644
index 8051cd8b1a..0000000000
--- a/trigger-lt-qcom-linux-aosp-4.14.0.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-- job:
- name: trigger-lt-qcom-linux-aosp-4.14.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 4.14 (AOSP) 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/android/qcomlt-4.14
- 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
- cat qcomlt_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'lt-qcom-linux-aosp'
- condition: SUCCESS
- property-file: qcomlt_parameters
diff --git a/trigger-lt-qcom-linux-automerge-repo-manifest.yaml b/trigger-lt-qcom-linux-automerge-repo-manifest.yaml
deleted file mode 100644
index df0bbe4577..0000000000
--- a/trigger-lt-qcom-linux-automerge-repo-manifest.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-- scm:
- name: configs
- scm:
- - git:
- url: https://git.linaro.org/landing-teams/working/qualcomm/configs.git
- refspec: +refs/heads/*:refs/remotes/origin/*
- name: origin
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: false
-
-- job:
- name: trigger-lt-qcom-linux-automerge-repo-manifest
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- - job-workspace
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: QCOMLT_CONFIG_REPO_URL
- default: 'ssh://git.linaro.org/landing-teams/working/qualcomm/configs.git'
- - string:
- name: QCOMLT_CONFIG_BRANCH
- default: 'repo'
- disabled: false
- node: triggers
- display-name: 'Qualcomm LT Integration Automerge Config Update'
- scm:
- - configs
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- - ssh-agent-credentials:
- users:
- - 'LT_QUALCOMM_PRIVATE_KEY_SSH'
- builders:
- - shell:
- !include-raw: lt-qcom-linux-automerge-repo-manifest/builders.sh
- publishers:
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org amit.kucheria@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-linux-automerge.yaml b/trigger-lt-qcom-linux-automerge.yaml
deleted file mode 100644
index e30b41bf70..0000000000
--- a/trigger-lt-qcom-linux-automerge.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-- scm:
- name: repo-manifest
- scm:
- - repo:
- manifest-url: https://git.linaro.org/landing-teams/working/qualcomm/configs.git
- manifest-branch: repo
- manifest-file: automerge-ci.xml
-
-- scm:
- name: rrcache
- scm:
- - git:
- url: https://git.linaro.org/landing-teams/working/qualcomm/automerge-rrcache.git
- refspec: +refs/heads/*:refs/remotes/origin/*
- name: origin
- basedir: rrcache
- branches:
- - refs/heads/master
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
-
-- scm:
- name: linux-tag
- scm:
- - git:
- url: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- refspec: +refs/tags/*:refs/remotes/origin/tags/*
- name: origin
- basedir: linus
- branches:
- - refs/tags/v4.*
- - refs/tags/v5.*
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
-
-- job:
- name: trigger-lt-qcom-linux-automerge
- 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 Qualcomm LT Integration Tree Automerge'
- scm:
- - repo-manifest
- - rrcache
- - linux-tag
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: 'lt-qcom-linux-automerge'
- publishers:
- - 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 7c77026386..0000000000
--- 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-release.yaml
deleted file mode 100644
index 0ec0764096..0000000000
--- a/trigger-lt-qcom-linux-release.yaml
+++ /dev/null
@@ -1,87 +0,0 @@
-- job:
- name: trigger-lt-qcom-linux-release
- 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
- parameters:
- - string:
- name: RELEASE_BASE_URL
- 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'
- - string:
- name: MACHINES
- default: 'apq8016-sbc sdm845-db845c qrb5165-rb5'
- disabled: false
- node: triggers
- display-name: 'Trigger for LT Qualcomm Linux Release build'
- triggers:
- - timed: 'H/5 * * * *'
- wrappers:
- - timestamps
- builders:
- - shell: |
- #!/bin/bash
- set -ex
-
- pip3 install --user python-dateutil beautifulsoup4
- rm -rf configs
- 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 \
- > release_parameters
- ret=$?
- cat release_parameters
- if [ $ret -ne 0 ]; then
- echo "warning: no new linaro ci build available"
- fi
- - inject:
- properties-file: release_parameters
- - shell: |
- #!/bin/bash
-
- set -ex
- export LINARO_CI_BASE_URL="${RELEASE_URL}"
- export KERNEL_BUILD_MACHINE_AVAIL=True
-
- if [ -z "${RELEASE_NAME}" ]; then
- ret=1
- else
- echo "RELEASE_NAME=${RELEASE_NAME}" > lt_qcom_parameters
- set +e
- ./configs/lt-qcom-linux-test/linaroci.py \
- >> lt_qcom_parameters
- ret=$?
- cat lt_qcom_parameters
- fi
-
- if [ $ret -ne 0 ]; then
- echo "warning: linaro ci kernel already built"
- 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-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-release/get_latest_kernel_release_build.py
deleted file mode 100755
index 298ca44551..0000000000
--- a/trigger-lt-qcom-linux-release/get_latest_kernel_release_build.py
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-import os
-import errno
-import urllib.request
-import urllib.error
-import hashlib
-
-TRACK_URLS_DIR = '.url_change'
-
-try:
- os.makedirs(TRACK_URLS_DIR)
-except OSError as err:
- if err.errno != errno.EEXIST:
- raise
-
-release_base_url = os.getenv('RELEASE_BASE_URL', 'http://snapshots.linaro.org/member-builds/qcomlt/kernel')
-release_names = os.getenv('RELEASE_NAMES', 'release_qcomlt-4.14').split()
-
-release_name = ''
-release_url = ''
-found = False
-
-for release_name in release_names:
- release_url = "%s/%s" % (release_base_url, release_name)
-
- cksum_file = os.path.join(TRACK_URLS_DIR, release_name)
- checksums = []
- try:
- f = open(cksum_file, 'r')
- checksums = f.read().split()
- except IOError as err:
- if err.errno != errno.ENOENT:
- raise
-
- try:
- f = urllib.request.urlopen(release_url)
- except urllib.error.HTTPError as e:
- if e.code == 404:
- continue
- else:
- raise
- page = f.read()
-
- md5 = hashlib.md5()
- md5.update(page)
- cksum = md5.hexdigest()
- if cksum not in checksums:
- with open(cksum_file, 'a+') as f:
- f.write("%s\n" % cksum)
- found = True
- break
-
-if found:
- print("RELEASE_NAME=%s" % release_name)
- print("RELEASE_URL=%s" % release_url)
- sys.exit(0)
-
-sys.exit(1)
diff --git a/trigger-lt-qcom-linux.yaml b/trigger-lt-qcom-linux.yaml
index b2e50e098a..e09e69bb0d 100644
--- a/trigger-lt-qcom-linux.yaml
+++ b/trigger-lt-qcom-linux.yaml
@@ -1,23 +1,66 @@
- project:
name: trigger-lt-qcom-linux
+
+ # defaults
+ repo: 'https://git.codelinaro.org/linaro/qcomlt/kernel.git'
+ configs_arm64: 'defconfig distro.config'
+ configs_arm: 'multi_v7_defconfig distro.config'
+ branch: 'release/qcomlt-{version}'
+ trigger:
+ - 'refs/heads/release/qcomlt-{version}'
+ refspec: '+refs/heads/*:refs/remotes/origin/*'
+ debian: ''
+
jobs:
- - 'trigger-lt-qcom-linux-{flavor}':
- flavor: 'mainline'
- kernelci: 'mainline'
- - 'trigger-lt-qcom-linux-{flavor}':
+ - 'trigger-lt-qcom-linux-{version}':
+ version: '5.7'
+ flavor: 'release'
+ debian: 'linux'
+ - 'trigger-lt-qcom-linux-{version}':
+ version: '5.9'
+ flavor: 'release'
+ debian: 'linux'
+ - 'trigger-lt-qcom-linux-{version}':
+ version: '5.10'
+ flavor: 'release'
+ debian: 'linux'
+ - 'trigger-lt-qcom-linux-{version}':
+ version: '5.13'
+ flavor: 'release'
+ debian: 'linux'
+ - 'trigger-lt-qcom-linux-{version}':
+ version: '5.15'
+ flavor: 'release'
+ debian: 'linux'
+ - 'trigger-lt-qcom-linux-{version}':
+ branch: 'integration-linux-qcomlt'
+ trigger:
+ - 'refs/heads/{branch}'
+ version: 'integration'
flavor: 'integration'
- kernelci: 'qcom-lt'
+ - 'trigger-lt-qcom-linux-{version}':
+ branch: 'master'
+ trigger:
+ - 'refs/tags/v4.*'
+ - 'refs/tags/v5.*'
+ - 'refs/tags/v6.*'
+ refspec: '+refs/heads/master:refs/remotes/origin/master +refs/tags/*:refs/remotes/origin/tags/*'
+ version: 'mainline'
+ repo: 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'
+ configs_arm64: 'defconfig'
+ configs_arm: 'multi_v7_defconfig'
+ flavor: 'mainline'
+
- job-template:
- name: 'trigger-lt-qcom-linux-{flavor}'
+ name: 'trigger-lt-qcom-linux-{version}'
project-type: freestyle
- defaults: global
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
- job-workspace
- linaro-landing-team-qualcomm-personnel:
+ linaro-qualcomm-ci:
- job-read
- job-extended-read
- job-build
@@ -25,42 +68,57 @@
- build-discarder:
days-to-keep: 30
num-to-keep: 30
+ artifact-num-to-keep: 1
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: '{repo}'
+ refspec: '{refspec}'
+ name: origin
+ branches: '{trigger}'
+ skip-tag: true
+ shallow-clone: false
+ wipe-workspace: false
triggers:
- - timed: 'H/5 * * * *'
+ - pollscm:
+ cron: '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
+ echo KERNEL_VERSION=$(make kernelversion) > qcomlt_parameters
+ echo KERNEL_DESCRIBE=$(git describe --always) >> qcomlt_parameters
+ echo KERNEL_REPO_URL={repo} >> qcomlt_parameters
+ if [ "{flavor}" = "mainline" ]; then
+ echo KERNEL_BRANCH=master >> qcomlt_parameters
+ else
+ echo KERNEL_BRANCH=$(echo $GIT_BRANCH | sed 's|origin/||') >> qcomlt_parameters
fi
- - inject:
- properties-file: lt_qcom_parameters
+ echo KERNEL_FLAVOR={flavor} >> qcomlt_parameters
+ echo KERNEL_DEBIAN={debian} >> qcomlt_parameters
+ echo TARGET_REPO=linaro-overlay-sid >> qcomlt_parameters
+ echo KDEB_CHANGELOG_DIST=unstable >> qcomlt_parameters
+
+ echo KERNEL_CONFIGS_arm={configs_arm} >> qcomlt_parameters
+ echo KERNEL_CONFIGS_arm64={configs_arm64} >> 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: 'leonardo.sandoval@linaro.org dmitry.baryshkov@linaro.org'
+ failure: true
+ still-failing: true
diff --git a/trigger-lt-qcom-openembedded-images-dunfell.yaml b/trigger-lt-qcom-openembedded-images-dunfell.yaml
deleted file mode 100644
index ba6ada738c..0000000000
--- a/trigger-lt-qcom-openembedded-images-dunfell.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-- job:
- name: trigger-lt-qcom-openembedded-images-dunfell
- 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: 1
- num-to-keep: 30
- artifact-num-to-keep: 30
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm OE builds (dunfell)'
- scm:
- - repo:
- manifest-url: https://github.com/96boards/oe-rpb-manifest.git
- manifest-branch: qcom/dunfell
- triggers:
- - pollscm:
- cron: '@hourly'
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: 'lt-qcom-openembedded-rpb-dunfell'
- publishers:
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-openembedded-images-master.yaml b/trigger-lt-qcom-openembedded-images-master.yaml
deleted file mode 100644
index 323824a8b9..0000000000
--- a/trigger-lt-qcom-openembedded-images-master.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-- job:
- name: trigger-lt-qcom-openembedded-images-master
- 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: 1
- num-to-keep: 30
- artifact-num-to-keep: 30
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm OE builds (master)'
- scm:
- - repo:
- manifest-url: https://github.com/96boards/oe-rpb-manifest.git
- manifest-branch: qcom/master
- triggers:
- - pollscm:
- cron: '@daily'
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: 'lt-qcom-openembedded-rpb-master'
- - project: 'lt-qcom-linux-testimages'
- - project: 'lt-qcom-linux-testimages-desktop'
- publishers:
- - email-ext:
- recipients: 'anibal.limon@linaro.org nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-lt-qcom-u-boot.yaml b/trigger-lt-qcom-u-boot.yaml
deleted file mode 100644
index 6c7f24392c..0000000000
--- a/trigger-lt-qcom-u-boot.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-- job:
- name: trigger-lt-qcom-u-boot
- 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
- parameters:
- - string:
- name: UBOOT_REPO_URL
- default: 'https://gitlab.denx.de/u-boot/u-boot.git'
- - string:
- name: UBOOT_BRANCH
- default: 'master'
- disabled: false
- node: triggers
- display-name: 'Trigger for Qualcomm U-Boot build'
- scm:
- - git:
- url: ${UBOOT_REPO_URL}
- refspec: +refs/heads/${UBOOT_BRANCH}:refs/remotes/origin/${UBOOT_BRANCH}
- name: origin
- branches:
- - refs/heads/${UBOOT_BRANCH}
- shallow-clone: true
- wipe-workspace: false
- triggers:
- - pollscm: '0 0 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
-
- echo UBOOT_REPO_URL=${UBOOT_REPO_URL} > qcomlt_parameters
- echo UBOOT_BRANCH=${UBOOT_BRANCH} >> qcomlt_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'lt-qcom-u-boot'
- 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-yocto-meta-qcom.yaml b/trigger-lt-qcom-yocto-meta-qcom.yaml
deleted file mode 100644
index 899e8b69e1..0000000000
--- a/trigger-lt-qcom-yocto-meta-qcom.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-- job:
- name: trigger-lt-qcom-yocto-meta-qcom-master
- 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: 1
- num-to-keep: 30
- artifact-num-to-keep: 30
- disabled: false
- node: triggers
- display-name: 'Trigger for YP meta-qcom'
- triggers:
- - timed: '@daily'
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: 'lt-qcom-yocto-meta-qcom-master'
- publishers:
- - email-ext:
- recipients: 'nicolas.dechesne@linaro.org'
- failure: true
- still-failing: true
diff --git a/trigger-ofp-perf-tests.yaml b/trigger-ofp-perf-tests.yaml
index c1a13e8b3f..87551b8ff7 100644
--- a/trigger-ofp-perf-tests.yaml
+++ b/trigger-ofp-perf-tests.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/trigger-openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml b/trigger-openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml
deleted file mode 100644
index 31919b6bbc..0000000000
--- a/trigger-openembedded-lkft-linaro-hikey-stable-rc-4.4.yaml
+++ /dev/null
@@ -1,69 +0,0 @@
-- job:
- name: trigger-openembedded-lkft-linaro-hikey-stable-rc-4.4
- 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
- parameters:
- - string:
- name: LINUX_TAG_PATTERN
- default: "4.4.*-rc*-hikey-*"
- description: "Linux tag to build (from lkft/arm64-stable-rc and linux-stable trees)."
- disabled: false
- node: triggers
- display-name: 'Trigger for LKFT - Linux Stable RC 4.4 + HiKey'
- wrappers:
- - timestamps
- builders:
- - shell: |
- #!/bin/bash -e
-
- test -d arm64-stable-rc || git init arm64-stable-rc
- cd arm64-stable-rc
-
- git remote add arm64-stable-rc https://git.linaro.org/lkft/arm64-stable-rc.git || true
- git remote add linux-stable-4.4 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git || true
-
- git fetch --no-tags arm64-stable-rc +refs/tags/4.4.*:refs/tags/4.4.*
- git fetch --no-tags linux-stable-4.4 +refs/tags/v4.4.*:refs/tags/v4.4.*
-
- tag=$(git tag -l "${LINUX_TAG_PATTERN}" | sort -V | tail -n1)
- git checkout ${tag}
-
- echo KERNEL_BRANCH=$(git describe --tags --abbrev=0) > ${WORKSPACE}/lkft_parameters
- echo KERNEL_DESCRIBE=$(git describe --always --tags) >> ${WORKSPACE}/lkft_parameters
- echo SRCREV_kernel=$(git rev-parse HEAD) >> ${WORKSPACE}/lkft_parameters
- echo MAKE_KERNELVERSION=$(make kernelversion) >> ${WORKSPACE}/lkft_parameters
- cat ${WORKSPACE}/lkft_parameters
-
- . ${WORKSPACE}/lkft_parameters
- echo "#${BUILD_NUMBER}-${SRCREV_kernel:0:8}" > ${WORKSPACE}/version.txt
- - build-name-setter:
- name: 'version.txt'
- file: true
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'openembedded-lkft-linaro-hikey-stable-rc-4.4'
- condition: SUCCESS
- property-file: lkft_parameters
- - email-ext:
- recipients: 'lkft-maintainers@lists.linaro.org, sumit.semwal@linaro.org, fathi.boudra@linaro.org, milosz.wasilewski@linaro.org'
- body: |
- Project: ${PROJECT_NAME}
- Build number: ${BUILD_NUMBER}
- Build status: ${BUILD_STATUS}
- Build URL: ${BUILD_URL}
-
- New upstream tag:
- https://git.linaro.org/lkft/arm64-stable-rc.git
- always: true
diff --git a/trigger-openembedded-lkft-linux-devel-ddiaz.yaml b/trigger-openembedded-lkft-linux-devel-ddiaz.yaml
deleted file mode 100644
index a10913b4a2..0000000000
--- a/trigger-openembedded-lkft-linux-devel-ddiaz.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-- job:
- name: trigger-openembedded-lkft-linux-devel-ddiaz
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: KERNEL_REPO
- default: 'https://github.com/mrchapp/linux.git'
- - string:
- name: KERNEL_BRANCH
- default: 'shuah-fixes-onmaster'
- - string:
- name: TARGET_MACHINE
- default: 'hikey'
- disabled: false
- node: triggers
- display-name: 'Trigger for LKFT - Linux Developer (ddiaz)'
- scm:
- - git:
- url: https://github.com/mrchapp/linux.git
- refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
- branches:
- - origin/${KERNEL_BRANCH}
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
- git clean -fdx
- echo KERNEL_REPO=${KERNEL_REPO} >> lkft_parameters
- echo KERNEL_DESCRIBE=$(git describe --always) >> lkft_parameters
- echo KERNEL_REV=${GIT_COMMIT} >> lkft_parameters
- echo MAKE_KERNELVERSION=$(make kernelversion) >> lkft_parameters
- cat lkft_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'openembedded-lkft-linux-developer'
- condition: SUCCESS
- property-file: lkft_parameters
diff --git a/trigger-openembedded-lkft-linux-mainline.yaml b/trigger-openembedded-lkft-linux-mainline.yaml
deleted file mode 100644
index 2ad33d8596..0000000000
--- a/trigger-openembedded-lkft-linux-mainline.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-- job:
- name: trigger-openembedded-lkft-linux-mainline
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- parameters:
- - string:
- name: KERNEL_BRANCH
- default: 'master'
- disabled: false
- node: triggers
- display-name: 'Trigger for LKFT - Linux Mainline'
- scm:
- - git:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
- branches:
- - origin/${KERNEL_BRANCH}
- 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
- git clean -fdx
- echo KERNEL_DESCRIBE=$(git describe --always) > lkft_parameters
- echo SRCREV_kernel=${GIT_COMMIT} >> lkft_parameters
- echo MAKE_KERNELVERSION=$(make kernelversion) >> lkft_parameters
- cat lkft_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'openembedded-lkft-linux-mainline'
- condition: SUCCESS
- property-file: lkft_parameters
diff --git a/trigger-openembedded-lkft-linux-next.yaml b/trigger-openembedded-lkft-linux-next.yaml
deleted file mode 100644
index 2c383503ef..0000000000
--- a/trigger-openembedded-lkft-linux-next.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-- job:
- name: trigger-openembedded-lkft-linux-next
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- parameters:
- - string:
- name: KERNEL_BRANCH
- default: 'master'
- disabled: false
- node: triggers
- display-name: 'Trigger for LKFT - Linux Next'
- scm:
- - git:
- url: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
- refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
- branches:
- - origin/${KERNEL_BRANCH}
- 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
- git clean -fdx
- echo KERNEL_DESCRIBE=$(git describe --always) > lkft_parameters
- echo SRCREV_kernel=${GIT_COMMIT} >> lkft_parameters
- echo MAKE_KERNELVERSION=$(make kernelversion) >> lkft_parameters
- cat lkft_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'openembedded-lkft-linux-next'
- condition: SUCCESS
- property-file: lkft_parameters
diff --git a/trigger-openembedded-lkft-linux-stable-rc-ddiaz.yaml b/trigger-openembedded-lkft-linux-stable-rc-ddiaz.yaml
deleted file mode 100644
index 2846b77379..0000000000
--- a/trigger-openembedded-lkft-linux-stable-rc-ddiaz.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-- job:
- name: trigger-openembedded-lkft-linux-stable-rc-ddiaz
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- disabled: false
- node: triggers
- display-name: 'Trigger for LKFT - Linux Stable RC (ddiaz)'
- scm:
- - git:
- url: https://github.com/mrchapp/linux.git
-# refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
-# branches:
-# - origin/${KERNEL_BRANCH}
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
- git clean -fdx
- export MAKE_KERNELVERSION=$(make kernelversion)
- export KERNEL_VERSION=$(echo ${MAKE_KERNELVERSION} | egrep -o "[3-5]\.[0-9][0-9]?")
-
- ( echo KERNEL_REPO=${GIT_URL}; \
- echo KERNEL_DESCRIBE=$(git describe --always) >> lkft_parameters; \
- echo KERNEL_REV=${GIT_COMMIT} >> lkft_parameters; \
- echo MAKE_KERNELVERSION=${MAKE_KERNELVERSION} >> lkft_parameters; \
- echo KERNEL_VERSION=${KERNEL_VERSION} >> lkft_parameters; \
- echo KERNEL_BRANCH=linux-${KERNEL_VERSION}.y-rc >> lkft_parameters; \
- ) > lkft_parameters
- cat lkft_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'ddiaz-oe-lkft'
- condition: SUCCESS
- property-file: lkft_parameters
diff --git a/trigger-openembedded-lkft-shuah-next-onmaster.yaml b/trigger-openembedded-lkft-shuah-next-onmaster.yaml
deleted file mode 100644
index 09c916b8c4..0000000000
--- a/trigger-openembedded-lkft-shuah-next-onmaster.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-- job:
- name: trigger-openembedded-lkft-shuah-next-onmaster
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- daniel.diaz@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- parameters:
- - string:
- name: KERNEL_REPO
- default: 'https://github.com/mrchapp/linux.git'
- - string:
- name: KERNEL_BRANCH
- default: 'shuah-next-onmaster'
- - string:
- name: TEST_SUITES
- default: 'kselftests'
- - string:
- name: NOTIFICATION_EMAIL
- default: 'daniel.diaz@linaro.org'
- disabled: false
- node: triggers
- display-name: 'Trigger for shuah/next rebased on mainline'
- scm:
- - git:
- url: ${KERNEL_REPO}
- refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
- name: origin
- branches:
- - origin/${KERNEL_BRANCH}
- skip-tag: true
- shallow-clone: false
- wipe-workspace: false
- triggers:
- - pollscm:
- cron: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - shell: |
- #!/bin/bash -e
- git clean -fdx
- #echo KERNEL_DESCRIBE=$(git describe --always)
- #echo MAKE_KERNELVERSION=$(make kernelversion)
- (
- echo KERNEL_REPO=${KERNEL_REPO}
- echo KERNEL_REV=${GIT_COMMIT}
- echo TEST_SUITES=${TEST_SUITES}
- echo NOTIFICATION_EMAILL=${NOTIFICATION_EMAIL}
- echo TARGET_MACHINE=juno
- ) >> lkft_parameters
- cat lkft_parameters
- publishers:
- - trigger-parameterized-builds:
- - project:
- - 'openembedded-lkft-linux-developer'
- condition: SUCCESS
- property-file: lkft_parameters
diff --git a/trigger-private-ci-job-configs.yaml b/trigger-private-ci-job-configs.yaml
index 481b7e170c..4c79119237 100644
--- a/trigger-private-ci-job-configs.yaml
+++ b/trigger-private-ci-job-configs.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-discover
- linaro:
+ everyone-flat:
- job-build
- job-read
- job-extended-read
diff --git a/trigger-private-ci-job-configs/poll-jobs.sh b/trigger-private-ci-job-configs/poll-jobs.sh
index ef9cd3d472..78033a3213 100755
--- a/trigger-private-ci-job-configs/poll-jobs.sh
+++ b/trigger-private-ci-job-configs/poll-jobs.sh
@@ -33,5 +33,5 @@ export GIT_PREVIOUS_COMMIT=$(git rev-parse HEAD~1)
export GIT_COMMIT=${GERRIT_PATCHSET_REVISION}
jenkins-jobs --version
wget -q https://git.linaro.org/ci/job/configs.git/plain/run-jjb.py -O run-jjb.py
-python run-jjb.py
+python3 run-jjb.py
diff --git a/trigger-qemu-upstream.yaml b/trigger-qemu-upstream.yaml
index 1dda4e5bed..f567bf8216 100644
--- a/trigger-qemu-upstream.yaml
+++ b/trigger-qemu-upstream.yaml
@@ -14,7 +14,7 @@
display-name: 'Trigger for Qemu upstream'
scm:
- git:
- url: git://git.qemu.org/qemu.git
+ url: https://gitlab.com/qemu-project/qemu.git
refspec: +refs/heads/master:refs/remotes/origin/master
name: origin
branches:
diff --git a/trigger-robher-aosp.yaml b/trigger-robher-aosp.yaml
deleted file mode 100644
index 3005d760a1..0000000000
--- a/trigger-robher-aosp.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-- job:
- name: trigger-robher-aosp
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- logrotate:
- days-to-keep: 60
- num-to-keep: 60
- disabled: false
- node: triggers
- display-name: 'Trigger for Rob Herring - AOSP build playground'
- scm:
- - git:
- url: git://anongit.freedesktop.org/mesa/mesa
- branches:
- - origin/master
- - origin/android/*
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- subdir: external/mesa3d
- triggers:
- - pollscm: 'H H/5 * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - trigger-builds:
- - project: 'robher-aosp'
diff --git a/trigger-rpb-kernel-noupstream.yaml b/trigger-rpb-kernel-noupstream.yaml
deleted file mode 100644
index da602973fa..0000000000
--- a/trigger-rpb-kernel-noupstream.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-- job:
- name: trigger-rpb-kernel-noupstream
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- parameters:
- - string:
- name: KERNEL_GIT_BRANCH
- default: 'erp-noupstream'
- - string:
- name: KERNEL_GIT_URL
- default: 'https://github.com/Linaro/rpk.git'
- disabled: false
- node: triggers
- display-name: 'Trigger for Reference Platform - Linux Kernel (RPK erp-noupstream branch)'
- scm:
- - git:
- url: ${KERNEL_GIT_URL}
- refspec: +refs/heads/${KERNEL_GIT_BRANCH}:refs/remotes/origin/${KERNEL_GIT_BRANCH}
- name: origin
- branches:
- - refs/heads/${KERNEL_GIT_BRANCH}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - trigger-builds:
- - project: '96boards-reference-kernel-enterprise'
- - project: 'rpb-reference-kernel-rpm'
diff --git a/trigger-rpb-kernel.yaml b/trigger-rpb-kernel.yaml
deleted file mode 100644
index 48f26c3d82..0000000000
--- a/trigger-rpb-kernel.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-- job:
- name: trigger-rpb-kernel
- project-type: freestyle
- defaults: global
- logrotate:
- daysToKeep: 30
- numToKeep: 30
- properties:
- - authorization:
- anonymous:
- - job-read
- parameters:
- - string:
- name: KERNEL_GIT_BRANCH
- default: 'master'
- - string:
- name: KERNEL_GIT_URL
- default: 'https://github.com/Linaro/rpk.git'
- disabled: false
- node: triggers
- display-name: 'Trigger for Reference Platform - Linux Kernel (RPK master branch)'
- scm:
- - git:
- url: ${KERNEL_GIT_URL}
- refspec: +refs/heads/${KERNEL_GIT_BRANCH}:refs/remotes/origin/${KERNEL_GIT_BRANCH}
- name: origin
- branches:
- - refs/heads/${KERNEL_GIT_BRANCH}
- skip-tag: true
- shallow-clone: true
- wipe-workspace: false
- triggers:
- - pollscm: 'H/5 * * * *'
- wrappers:
- - timestamps
- - build-name:
- name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
- builders:
- - trigger-builds:
- - project:
- - '96boards-b2260'
diff --git a/trigger-rpb-openembedded.yaml b/trigger-rpb-openembedded.yaml
deleted file mode 100644
index 6087b1f4b5..0000000000
--- a/trigger-rpb-openembedded.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-- project:
- name: trigger-rpb-openembedded
- jobs:
- - 'trigger-rpb-openembedded-{branch}':
- branch: master
- - 'trigger-rpb-openembedded-{branch}':
- branch: dunfell
- - 'trigger-rpb-openembedded-{branch}':
- branch: zeus
- - 'trigger-rpb-openembedded-{branch}':
- branch: warrior
-
-- job-template:
- name: 'trigger-rpb-openembedded-{branch}'
- project-type: freestyle
- defaults: global
- properties:
- - authorization:
- anonymous:
- - job-read
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
- artifact-num-to-keep: 30
- disabled: false
- node: triggers
- display-name: 'Trigger for Reference Platform - OpenEmbedded ({branch})'
- scm:
- - repo:
- manifest-url: https://github.com/96boards/oe-rpb-manifest.git
- manifest-branch: '{branch}'
- triggers:
- - pollscm:
- cron: '@daily'
- wrappers:
- - timestamps
- builders:
- - trigger-builds:
- - project: 'rpb-openembedded-{branch}'
diff --git a/trigger-schneider-openembedded-dunfell-rzn1d-4.19.yaml b/trigger-schneider-openembedded-dunfell-rzn1d-4.19.yaml
index f42be5e309..e60487c20e 100644
--- a/trigger-schneider-openembedded-dunfell-rzn1d-4.19.yaml
+++ b/trigger-schneider-openembedded-dunfell-rzn1d-4.19.yaml
@@ -156,12 +156,6 @@
- authorization:
anonymous:
- job-discover
- ryan.harkin@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
ralph.siemsen@linaro.org:
- job-build
- job-read
@@ -205,4 +199,4 @@
predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
publishers:
- email:
- recipients: 'ryan.harkin@linaro.org'
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-schneider-openembedded-dunfell-rzn1d-5.10.yaml b/trigger-schneider-openembedded-dunfell-rzn1d-5.10.yaml
new file mode 100644
index 0000000000..3fd3223812
--- /dev/null
+++ b/trigger-schneider-openembedded-dunfell-rzn1d-5.10.yaml
@@ -0,0 +1,202 @@
+- scm:
+ name: poky
+ scm:
+ - git:
+ url: http://git.yoctoproject.org/git/poky
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-linaro
+ scm:
+ - git:
+ url: git://git.linaro.org/openembedded/meta-linaro.git
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-openembedded
+ scm:
+ - git:
+ url: https://github.com/openembedded/meta-openembedded
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-rauc
+ scm:
+ - git:
+ url: https://github.com/rauc/meta-rauc
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-security
+ scm:
+ - git:
+ url: https://git.yoctoproject.org/git/meta-security
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-virtualization
+ scm:
+ - git:
+ url: https://git.yoctoproject.org/git/meta-virtualization
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-backports
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/meta-backports.git
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-dip-base
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/meta-dip-base.git
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-Yocto-Linux-Distro
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-Yocto-Linux-Distro.git
+ refspec: +refs/heads/linaro-dunfell:refs/remotes/origin/linaro-dunfell
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/linaro-dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-linux
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-linux.git
+ refspec: +refs/heads/lces2-5.10-lts:refs/remotes/origin/lces2-5.10-lts
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/lces2-5.10-lts
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-uboot
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-uboot.git
+ refspec: +refs/heads/lces2-2020.07:refs/remotes/origin/lces2-2020.07
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/lces2-2020.07
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-secureboot
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-secureboot.git
+ refspec: +refs/heads/linaro:refs/remotes/origin/linaro
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/linaro
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- job:
+ name: trigger-schneider-openembedded-dunfell-rzn1d-5.10
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-discover
+ ralph.siemsen@linaro.org:
+ - job-build
+ - job-read
+ - job-extended-read
+ - job-configure
+ - job-cancel
+ schneider-linaro-git:
+ - job-read
+ - job-extended-read
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ disabled: false
+ node: triggers
+ display-name: 'Trigger for Schneider Openembedded project (linaro-dunfell rzn1d 5.10)'
+ scm:
+ - poky
+ - meta-linaro
+ - meta-openembedded
+ - meta-rauc
+ - meta-security
+ - meta-virtualization
+ - meta-backports
+ - meta-dip-base
+ - DIP-Yocto-Linux-Distro
+ - DIP-linux
+ - DIP-uboot
+ - DIP-secureboot
+ triggers:
+ - pollscm: 'H 12,6 * * *'
+ wrappers:
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
+ - ssh-agent-credentials:
+ users:
+ - '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ builders:
+ - trigger-builds:
+ - project: 'schneider-openembedded-dunfell-5.10'
+ predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
+ publishers:
+ - email:
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-schneider-openembedded-dunfell-rzn1d-5.4.yaml b/trigger-schneider-openembedded-dunfell-rzn1d-5.4.yaml
index 2d85d37414..eab748dd6c 100644
--- a/trigger-schneider-openembedded-dunfell-rzn1d-5.4.yaml
+++ b/trigger-schneider-openembedded-dunfell-rzn1d-5.4.yaml
@@ -156,12 +156,6 @@
- authorization:
anonymous:
- job-discover
- ryan.harkin@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
ralph.siemsen@linaro.org:
- job-build
- job-read
@@ -174,7 +168,7 @@
- build-discarder:
days-to-keep: 30
num-to-keep: 30
- disabled: false
+ disabled: true
node: triggers
display-name: 'Trigger for Schneider Openembedded project (linaro-dunfell rzn1d 5.4)'
scm:
@@ -205,4 +199,4 @@
predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
publishers:
- email:
- recipients: 'ryan.harkin@linaro.org'
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-schneider-openembedded-dunfell-soca9-4.19.yaml b/trigger-schneider-openembedded-dunfell-soca9-4.19.yaml
index 76a8ffe3a1..877d0e0b03 100644
--- a/trigger-schneider-openembedded-dunfell-soca9-4.19.yaml
+++ b/trigger-schneider-openembedded-dunfell-soca9-4.19.yaml
@@ -156,12 +156,6 @@
- authorization:
anonymous:
- job-discover
- ryan.harkin@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
ralph.siemsen@linaro.org:
- job-build
- job-read
@@ -195,4 +189,4 @@
predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
publishers:
- email:
- recipients: 'ryan.harkin@linaro.org'
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-schneider-openembedded-dunfell-soca9-5.10.yaml b/trigger-schneider-openembedded-dunfell-soca9-5.10.yaml
new file mode 100644
index 0000000000..93de43e254
--- /dev/null
+++ b/trigger-schneider-openembedded-dunfell-soca9-5.10.yaml
@@ -0,0 +1,192 @@
+- scm:
+ name: poky
+ scm:
+ - git:
+ url: http://git.yoctoproject.org/git/poky
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-linaro
+ scm:
+ - git:
+ url: git://git.linaro.org/openembedded/meta-linaro.git
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-openembedded
+ scm:
+ - git:
+ url: https://github.com/openembedded/meta-openembedded
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-rauc
+ scm:
+ - git:
+ url: https://github.com/rauc/meta-rauc
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-security
+ scm:
+ - git:
+ url: https://git.yoctoproject.org/git/meta-security
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-virtualization
+ scm:
+ - git:
+ url: https://git.yoctoproject.org/git/meta-virtualization
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-backports
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/meta-backports.git
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: meta-dip-base
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/meta-dip-base.git
+ refspec: +refs/heads/dunfell:refs/remotes/origin/dunfell
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-Yocto-Linux-Distro
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-Yocto-Linux-Distro.git
+ refspec: +refs/heads/linaro-dunfell:refs/remotes/origin/linaro-dunfell
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/linaro-dunfell
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-linux
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-linux.git
+ refspec: +refs/heads/soca9-5.10-lts:refs/remotes/origin/soca9-5.10-lts
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/soca9-5.10-lts
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-uboot
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-uboot.git
+ refspec: +refs/heads/soca9-2020.07:refs/remotes/origin/soca9-2020.07
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/soca9-2020.07
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- scm:
+ name: DIP-secureboot
+ scm:
+ - git:
+ url: ssh://git@dev-private-git.linaro.org/schneider/DIP-secureboot.git
+ refspec: +refs/heads/linaro:refs/remotes/origin/linaro
+ credentials-id: '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ name: origin
+ branches:
+ - refs/heads/linaro
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: false
+- job:
+ name: trigger-schneider-openembedded-dunfell-soca9-5.10
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-discover
+ ralph.siemsen@linaro.org:
+ - job-build
+ - job-read
+ - job-extended-read
+ - job-configure
+ - job-cancel
+ schneider-linaro-git:
+ - job-read
+ - job-extended-read
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ disabled: false
+ node: triggers
+ display-name: 'Trigger for Schneider Openembedded project (linaro-dunfell soca9 5.10)'
+ scm:
+ - DIP-linux
+ - DIP-uboot
+ triggers:
+ - pollscm: 'H 12,6 * * *'
+ wrappers:
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
+ - ssh-agent-credentials:
+ users:
+ - '768c1ba1-6052-4b97-a531-7e4fabda6979'
+ builders:
+ - trigger-builds:
+ - project: 'schneider-openembedded-dunfell-5.10'
+ predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
+ publishers:
+ - email:
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-schneider-openembedded-dunfell-soca9-5.4.yaml b/trigger-schneider-openembedded-dunfell-soca9-5.4.yaml
index ba158b4b83..98539b75cc 100644
--- a/trigger-schneider-openembedded-dunfell-soca9-5.4.yaml
+++ b/trigger-schneider-openembedded-dunfell-soca9-5.4.yaml
@@ -156,12 +156,6 @@
- authorization:
anonymous:
- job-discover
- ryan.harkin@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
ralph.siemsen@linaro.org:
- job-build
- job-read
@@ -174,7 +168,7 @@
- build-discarder:
days-to-keep: 30
num-to-keep: 30
- disabled: false
+ disabled: true
node: triggers
display-name: 'Trigger for Schneider Openembedded project (linaro-dunfell soca9 5.4)'
scm:
@@ -195,4 +189,4 @@
predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
publishers:
- email:
- recipients: 'ryan.harkin@linaro.org'
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-schneider-openembedded-warrior-rzn1d-4.19.yaml b/trigger-schneider-openembedded-warrior-rzn1d-4.19.yaml
index d88dbb9ff1..14c925055e 100644
--- a/trigger-schneider-openembedded-warrior-rzn1d-4.19.yaml
+++ b/trigger-schneider-openembedded-warrior-rzn1d-4.19.yaml
@@ -156,12 +156,6 @@
- authorization:
anonymous:
- job-discover
- ryan.harkin@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
ralph.siemsen@linaro.org:
- job-build
- job-read
@@ -205,4 +199,4 @@
predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
publishers:
- email:
- recipients: 'ryan.harkin@linaro.org'
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-schneider-openembedded-warrior-soca9-4.19.yaml b/trigger-schneider-openembedded-warrior-soca9-4.19.yaml
index e6090c5857..07334de741 100644
--- a/trigger-schneider-openembedded-warrior-soca9-4.19.yaml
+++ b/trigger-schneider-openembedded-warrior-soca9-4.19.yaml
@@ -156,12 +156,6 @@
- authorization:
anonymous:
- job-discover
- ryan.harkin@linaro.org:
- - job-build
- - job-read
- - job-extended-read
- - job-configure
- - job-cancel
ralph.siemsen@linaro.org:
- job-build
- job-read
@@ -195,4 +189,4 @@
predefined-parameters: GIT_COMMIT=${GIT_COMMIT}
publishers:
- email:
- recipients: 'ryan.harkin@linaro.org'
+ recipients: 'ralph.siemsen@linaro.org'
diff --git a/trigger-tvm-ci-build.yaml b/trigger-tvm-ci-build.yaml
index 129b9841db..a6fdcfc284 100644
--- a/trigger-tvm-ci-build.yaml
+++ b/trigger-tvm-ci-build.yaml
@@ -9,9 +9,9 @@
- build-discarder:
days-to-keep: 30
num-to-keep: 30
- disabled: false
+ disabled: true
node: triggers
- display-name: 'Trigger for tvm-ci-build'
+ display-name: 'DELETE ME'
scm:
- git:
url: https://github.com/apache/tvm.git
diff --git a/trigger-zephyr-upstream.yaml b/trigger-zephyr-upstream.yaml
index 78dddfc738..683be7d553 100644
--- a/trigger-zephyr-upstream.yaml
+++ b/trigger-zephyr-upstream.yaml
@@ -6,7 +6,7 @@
- authorization:
anonymous:
- job-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/tvm-ci-build.yaml b/tvm-ci-build.yaml
index e8aa418f17..3cd16eece5 100644
--- a/tvm-ci-build.yaml
+++ b/tvm-ci-build.yaml
@@ -1,6 +1,6 @@
- job:
name: tvm-ci-build
- display-name: 'TVM - CI Build'
+ display-name: 'DELETE ME'
concurrent: true
project-type: freestyle
defaults: global
@@ -11,7 +11,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -34,7 +34,7 @@
default: 'https://validation.linaro.org/RPC2/'
- string:
name: GIT_COM_ID
- disabled: false
+ disabled: true
node: docker-buster-arm64
wrappers:
- timestamps
diff --git a/u-boot-am57xx-evm.yaml b/u-boot-am57xx-evm.yaml
index a121e16a7f..3b85c7baf1 100644
--- a/u-boot-am57xx-evm.yaml
+++ b/u-boot-am57xx-evm.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
diff --git a/u-boot-upstream.yaml b/u-boot-upstream.yaml
index bb4f633738..9fa9bf56c0 100644
--- a/u-boot-upstream.yaml
+++ b/u-boot-upstream.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -15,7 +15,7 @@
- build-discarder:
days-to-keep: 30
num-to-keep: 30
- disabled: false
+ disabled: true
node: docker-xenial-amd64
display-name: 'U-Boot upstream (mainline)'
scm:
diff --git a/uadk-openssl.yaml b/uadk-openssl.yaml
index e7795adfac..5fdb3f7d79 100644
--- a/uadk-openssl.yaml
+++ b/uadk-openssl.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -17,19 +17,19 @@
num-to-keep: 30
artifact-num-to-keep: 10
- github:
- url: https://github.com/Linaro/openssl-uadk
+ url: https://github.com/Linaro/uadk_engine
disabled: false
node: d06-uadk
display-name: 'UADK - User Space Accelerator Development Kit (engine for OpenSSL)'
concurrent: false
scm:
- git:
- url: https://github.com/Linaro/openssl-uadk.git
+ url: https://github.com/Linaro/uadk_engine.git
refspec: +refs/pull/*:refs/remotes/origin/pr/*
name: origin
branches:
- ${sha1}
- basedir: uadk
+ basedir: uadk_engine
skip-tag: true
shallow-clone: true
wipe-workspace: true
@@ -44,12 +44,10 @@
- timestamps
builders:
- shell:
- !include-raw: uadk/builders-openssl.sh
+ !include-raw: uadk/builders.sh
- build-name-setter:
name: 'version.txt'
file: true
publishers:
- - archive:
- artifacts: 'uadk-openssl.tar.xz'
- email:
recipients: 'haojian.zhuang@linaro.org'
diff --git a/uadk.yaml b/uadk.yaml
index a5803992e2..8d22d65fd9 100644
--- a/uadk.yaml
+++ b/uadk.yaml
@@ -7,7 +7,7 @@
anonymous:
- job-read
- job-extended-read
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -50,7 +50,5 @@
name: 'version.txt'
file: true
publishers:
- - archive:
- artifacts: 'uadk.tar.xz'
- email:
recipients: 'haojian.zhuang@linaro.org'
diff --git a/uadk/builders-openssl.sh b/uadk/builders-openssl.sh
deleted file mode 100755
index 326b00355c..0000000000
--- a/uadk/builders-openssl.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/bash -e
-
-if [ -z "${WORKSPACE}" ]; then
- # Local build
- export WORKSPACE=${PWD}
-fi
-
-echo "#${BUILD_NUMBER}-${ghprbActualCommit:0:8}" > ${WORKSPACE}/version.txt
-
-# Build dependencies already pre-installed on the node
-#sudo apt update -q=2
-#sudo apt install -q=2 --yes --no-install-recommends zlib1g-dev libnuma-dev
-
-# clean up directories
-rm -rf uadk-master uadk-shared-v2
-
-# use UADK master
-git clone --depth 1 https://github.com/Linaro/uadk.git ${WORKSPACE}/uadk-master
-cd ${WORKSPACE}/uadk-master
-autoreconf -vfi
-
-# shared build for v2
-./configure \
- --host aarch64-linux-gnu \
- --target aarch64-linux-gnu \
- --prefix=${WORKSPACE}/uadk-shared-v2/usr/local \
- --includedir=${WORKSPACE}/uadk-shared-v2/usr/local/include/uadk \
- --disable-static \
- --enable-shared
-make -j$(nproc)
-make install && make clean
-sudo \
- LD_LIBRARY_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/lib/ \
- PATH=${WORKSPACE}/uadk-shared-v2/usr/local/bin:${PATH} \
- C_INCLUDE_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/include/ \
- ${WORKSPACE}/uadk-master/test/sanity_test.sh
-
-cd ${WORKSPACE}/uadk
-autoreconf -vfi
-
-./configure \
- --prefix=${WORKSPACE}/uadk-shared-v2/usr/local \
- --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
-
-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/uadk/builders.sh b/uadk/builders.sh
index b45ff8a144..28f55178b1 100755
--- a/uadk/builders.sh
+++ b/uadk/builders.sh
@@ -1,9 +1,294 @@
#!/bin/bash -e
+export UADK_VER_ENV="v2"
+LOCK_FILE="/var/lock/uadk-lock"
+BIN_DIR="usr/local/bin"
+INC_DIR="usr/local/include"
+LIB_DIR="usr/local/lib"
+UACCE_PATH="/sys/class/uacce"
+
+lock() {
+ exit_code=1
+ pending=0
+ while [ "$exit_code" != 0 ]; do
+ exit_code=0
+ mkdir ${LOCK_FILE} &> /dev/null || exit_code=$?
+ #mkdir ${LOCK_FILE} || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ if [ "$pending" = 0 ]; then
+ # Some script is accessing hardware
+ echo "Wait for other building script finishing."
+ pending=1
+ fi
+ fi
+ done
+}
+
+unlock() {
+ if [ -d ${LOCK_FILE} ]; then
+ rmdir ${LOCK_FILE}
+ echo "Release lock"
+ fi
+}
+
+ctrlc_handler() {
+ echo "Ctrl-C caught...performing clean up"
+ unlock
+ # Exit with error code
+ exit 2
+}
+
+# Check whether prebuilt package exists.
+# If it exists, install binaries and libraries directly.
+check_prebuilt_package() {
+ exit_code=0
+ cd ${WORKSPACE}
+ case $1 in
+ "openssl")
+ if [ -d ${WORKSPACE}/openssl ]; then
+ cd ${WORKSPACE}/openssl
+ git checkout OpenSSL_1_1_1a || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ cd ${WORKSPACE}
+ rm -fr ${WORKSPACE}/openssl
+ git clone https://github.com/openssl/openssl.git
+ cd ${WORKSPACE}/openssl
+ fi
+ else
+ git clone https://github.com/openssl/openssl.git
+ cd ${WORKSPACE}/openssl
+ fi
+ git checkout OpenSSL_1_1_1a
+ COMMIT=`git log HEAD^..HEAD | grep commit`
+ NAME=`ls ../openssl-*.tar.xz`
+ NAME=${NAME#*openssl-}
+ ;;
+ *)
+ echo "Invalid package name: $1"
+ return 1
+ ;;
+ esac
+ NAME=`echo ${NAME} | cut -b 1-8`
+ if [ -z ${NAME} ]; then
+ echo "Can not find package ${NAME}."
+ return 1
+ fi
+ COMMIT=${COMMIT#*commit }
+ COMMIT=`echo ${COMMIT} | cut -b 1-8`
+ if [ ${NAME} = ${COMMIT} ]; then
+ echo "Prebuilt package ${NAME} is found."
+ cd ${WORKSPACE}
+ case $1 in
+ "openssl")
+ rm -fr ${WORKSPACE}/openssl
+ tar -xJf openssl-${NAME}.tar.xz
+ cd ${WORKSPACE}/openssl
+ ./config --prefix=${LIB_ROOT}/usr/local
+ make install &> /dev/null
+ ;;
+ esac
+ return 0
+ fi
+ echo "Package name ${NAME} could not match commit name ${COMMIT}."
+ return 1
+}
+
+# Check whether repo is downloaded since pull request occurs.
+# If it exists, skip to fetch repo with master branch.
+check_existed_repo() {
+ exit_code=0
+ cd ${WORKSPACE}
+ case $1 in
+ "uadk")
+ if [ ! -d ${WORKSPACE}/uadk ]; then
+ echo "Clone UADK repo."
+ git clone --depth 1 https://github.com/Linaro/uadk.git
+ fi
+ cd ${WORKSPACE}/uadk
+ ;;
+ "ssluadk")
+ if [ ! -d ${WORKSPACE}/uadk_engine ]; then
+ echo "Clone OPENSSL-UADK repo."
+ git clone --depth 1 https://github.com/Linaro/uadk_engine.git
+ fi
+ cd ${WORKSPACE}/uadk_engine
+ ;;
+ *)
+ echo "Invalid repo name: $1"
+ return 1
+ ;;
+ esac
+ return 0
+}
+
+# Delete uadk and ssluadk repo while build is finished.
+clean_repo() {
+ rm -fr ${WORKSPACE}/uadk
+ rm -fr ${WORKSPACE}/uadk_engine
+}
+
+build_uadk() {
+ echo "Prepare to build UADK repo."
+ exit_code=0
+ check_existed_repo uadk || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ return $exit_code
+ fi
+
+ cd ${WORKSPACE}/uadk
+ autoreconf -vfi
+
+ # static build for v2
+ exit_code=0
+ ./configure \
+ --prefix=${WORKSPACE}/uadk-static-v2/usr/local \
+ --includedir=${WORKSPACE}/uadk-static-v2/${INC_DIR}/uadk \
+ --enable-static --disable-shared --with-static_drv
+ make -j$(nproc) || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to build UADK statically."
+ return $exit_code
+ fi
+ make install
+ exit_code=0
+ if [ -d "$UACCE_PATH" ]; then
+ sudo \
+ LD_LIBRARY_PATH=${WORKSPACE}/uadk-static-v2/usr/local/lib/ \
+ PATH=${WORKSPACE}/uadk-static-v2/usr/local/bin:${PATH} \
+ ${WORKSPACE}/uadk/test/sanity_test.sh || exit_code=$?
+ fi
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to run UADK tests with static build."
+ fi
+
+ sh cleanup.sh
+ autoreconf -vfi
+
+ # shared build for v2
+ exit_code=0
+ ./configure \
+ --prefix=${WORKSPACE}/uadk-shared-v2/usr/local
+ make -j$(nproc) || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to build UADK statically."
+ return $exit_code
+ fi
+ make install
+ exit_code=0
+ if [ -d "$UACCE_PATH" ]; then
+ sudo \
+ LD_LIBRARY_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/lib/ \
+ PATH=${WORKSPACE}/uadk-shared-v2/usr/local/bin:${PATH} \
+ ${WORKSPACE}/uadk/test/sanity_test.sh || exit_code=$?
+ fi
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to run UADK tests with dynamic build."
+ fi
+
+ return 0
+}
+
+build_openssl() {
+ exit_code=0
+ check_prebuilt_package openssl || exit_code=$?
+ if [ "$exit_code" = 0 ]; then
+ return 0
+ fi
+
+ ./config --prefix=${LIB_ROOT}/usr/local
+ exit_code=0
+ make -j$(nproc) || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to build OpenSSL ($exit_code)"
+ return $exit_code
+ fi
+ make install || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to install OpenSSL ($exit_code)"
+ return $exit_code
+ fi
+
+ # get the first 8 bytes of commit number
+ COMMIT=`git log HEAD^..HEAD | grep commit`
+ COMMIT=${COMMIT#*commit }
+ COMMIT=`echo ${COMMIT} | cut -b 1-8`
+ cd ${WORKSPACE}
+ # clean old packages
+ rm -f openssl-*.tar.xz || exit_code=$?
+ echo "rm ssl $exit_code"
+ # create new package
+ tar -cJf openssl-${COMMIT}.tar.xz openssl || exit_code=$?
+ echo "tar ssl $exit_code"
+ return 0
+}
+
+build_uadk_openssl() {
+ echo "Prepare to build OPENSSL-UADK repo."
+ exit_code=0
+ check_existed_repo ssluadk || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ return $exit_code
+ fi
+
+ cd ${WORKSPACE}/uadk_engine
+ autoreconf -i -f -v
+ ./configure --prefix=${LIB_ROOT}/usr/local \
+ --libdir=${LIB_ROOT}/${LIB_DIR}/engines-1.1
+
+ exit_code=0
+ LD_LIBRARY_PATH=${LIB_ROOT}/${LIB_DIR}:${LIB_ROOT}/${LIB_DIR}/engines-1.1 \
+ PATH=${LIB_ROOT}/${BIN_DIR}:${PATH} \
+ C_INCLUDE_PATH=${LIB_ROOT}/${INC_DIR} \
+ make || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to build uadk_engine ($exit_code)"
+ return $exit_code
+ fi
+ exit_code=0
+ make install || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to install uadk_engine ($exit_code)"
+ return $exit_code
+ fi
+ exit_code=0
+ sudo \
+ LD_LIBRARY_PATH=${LIB_ROOT}/${LIB_DIR}:${LIB_ROOT}/${LIB_DIR}/engines-1.1 \
+ PATH=${LIB_ROOT}/${BIN_DIR}/:${PATH} \
+ C_INCLUDE_PATH=${LIB_ROOT}/${INC_DIR}/ \
+ openssl engine -t uadk_engine || exit_code=$?
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to verify uadk_engine engine ($exit_code)"
+ return $exit_code
+ fi
+ exit_code=0
+ if [ -d "$UACCE_PATH" ]; then
+ sudo \
+ LD_LIBRARY_PATH=${LIB_ROOT}/${LIB_DIR}:${LIB_ROOT}/${LIB_DIR}/engines-1.1 \
+ PATH=${LIB_ROOT}/${BIN_DIR}/:${PATH} \
+ C_INCLUDE_PATH=${LIB_ROOT}/${INC_DIR}/ \
+ test/sanity_test.sh || exit_code=$?
+ fi
+ if [ "$exit_code" != 0 ]; then
+ echo "Fail to run sanity test ($exit_code)"
+ return $exit_code
+ fi
+
+ return $exit_code
+}
+
+# Initialize trap to call ctrlc_handler function when signal 2 (SIGINT) is
+# received.
+trap "ctrlc_handler" 2
+
if [ -z "${WORKSPACE}" ]; then
# Local build
export WORKSPACE=${PWD}
fi
+LIB_ROOT=${WORKSPACE}/uadk-shared-v2
+export PKG_CONFIG_PATH=${LIB_ROOT}/${LIB_DIR}/pkgconfig/
+
+# Prevent multiple building scripts to access hardware
+lock
echo "#${BUILD_NUMBER}-${ghprbActualCommit:0:8}" > ${WORKSPACE}/version.txt
@@ -11,26 +296,33 @@ echo "#${BUILD_NUMBER}-${ghprbActualCommit:0:8}" > ${WORKSPACE}/version.txt
#sudo apt update -q=2
#sudo apt install -q=2 --yes --no-install-recommends zlib1g-dev libnuma-dev
-cd ${WORKSPACE}/uadk
-autoreconf -vfi
-
-# shared build for v2
-./conf.sh && make -j$(nproc)
-make install DESTDIR=${WORKSPACE}/uadk-shared-v2 && make clean
-sudo \
- LD_LIBRARY_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/lib/ \
- PATH=${WORKSPACE}/uadk-shared-v2/usr/local/bin:${PATH} \
- C_INCLUDE_PATH=${WORKSPACE}/uadk-shared-v2/usr/local/include/ \
- ${WORKSPACE}/uadk/test/sanity_test.sh
-
-# static build for v2
-./conf.sh --static && make -j$(nproc)
-make install DESTDIR=${WORKSPACE}/uadk-static-v2 && make clean
-sudo \
- LD_LIBRARY_PATH=${WORKSPACE}/uadk-static-v2/usr/local/lib/ \
- PATH=${WORKSPACE}/uadk-static-v2/usr/local/bin:${PATH} \
- C_INCLUDE_PATH=${WORKSPACE}/uadk-static-v2/usr/local/include/ \
- ${WORKSPACE}/uadk/test/sanity_test.sh
-
-cd ${WORKSPACE}
-tar -cJf uadk.tar.xz uadk-*-v*/
+rm -fr ${WORKSPACE}/uadk-shared-v2
+rm -fr ${WORKSPACE}/uadk-static-v2
+
+exit_code=0
+
+# Build OPENSSL
+build_openssl || exit_code=$?
+if [ "$exit_code" != 0 ]; then
+ clean_repo
+ unlock
+ exit 1
+fi
+# Build UADK
+build_uadk || exit_code=$?
+if [ "$exit_code" != 0 ]; then
+ clean_repo
+ unlock
+ exit 1
+fi
+# Build UADK-OPENSSL
+build_uadk_openssl || exit_code=$?
+if [ "$exit_code" != 0 ]; then
+ clean_repo
+ unlock
+ exit 1
+fi
+
+clean_repo
+unlock
+echo "Run build script successfully!"
diff --git a/upload-deb-package.yaml b/upload-deb-package.yaml
new file mode 100644
index 0000000000..9852e93714
--- /dev/null
+++ b/upload-deb-package.yaml
@@ -0,0 +1,53 @@
+- job:
+ name: upload-deb-package
+ description: upload packages to new repository
+ project-type: freestyle
+ defaults: global
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ everyone-flat:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+ parameters:
+ - string:
+ name: source
+ description: 'zip or dsc source url'
+ - string:
+ name: zip
+ description: 'is source a zip?'
+ default: false
+ - string:
+ name: repo
+ description: 'repository to upload to'
+ default: 'linaro-staging-sid'
+ disabled: false
+ node: deb.ctt.linaro.org
+ display-name: 'Upload packages to repositories'
+ wrappers:
+ - timestamps
+ - build-name:
+ name: '#${BUILD_NUMBER}: ${ENV,var="source"}'
+ builders:
+ - shell:
+ !include-raw: build-package/upload-deb.sh
+ publishers:
+ - email-ext:
+ recipients: '$DEFAULT_RECIPIENTS, linaro-infrastructure-errors@lists.linaro.org'
+ attach-build-log: true
+ failure: true
+ still-failing: true
+ subject: 'build-package: ${ENV,var="source"} failed'
+ body: |
+ Build ${BUILD_NUMBER} for ${ENV,var="source"} failed
+ Build Log: ${BUILD_URL}/consoleText
+ Build URL: ${BUILD_URL}
+ send-to:
+ - requester
diff --git a/yocto-check-layer.yaml b/yocto-check-layer.yaml
index 3c69a4f444..1006c9ead1 100644
--- a/yocto-check-layer.yaml
+++ b/yocto-check-layer.yaml
@@ -11,7 +11,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro-landing-team-qualcomm-personnel:
+ linaro-qualcomm-ci:
- job-build
- job-cancel
parameters:
diff --git a/zephyr-net.yaml b/zephyr-net.yaml
index 53b3216de1..4563d043aa 100644
--- a/zephyr-net.yaml
+++ b/zephyr-net.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -55,7 +55,7 @@
default: ''
# - string:
# name: TWISTER_EXTRA
-# default: '--testcase-root samples/net/sockets/dumb_http_server'
+# default: '--testsuite-root samples/net/sockets/dumb_http_server'
disabled: false
node: master
child-workspace: .
@@ -112,7 +112,7 @@
- shell:
!include-raw: lite-common/install-toolchains.sh
- shell: |
- echo TWISTER_EXTRA="--testcase-root samples/net/sockets/dumb_http_server --testcase-root samples/net/sockets/dumb_http_server_mt -x=BUILD_VERSION=ci_build_version" >env_var_parameters
+ echo TWISTER_EXTRA="--testsuite-root samples/net/sockets/dumb_http_server --testsuite-root samples/net/sockets/dumb_http_server_mt -x=BUILD_VERSION=ci_build_version" >env_var_parameters
- inject:
properties-file: env_var_parameters
- shell:
@@ -144,6 +144,6 @@
git clone --depth 1 https://github.com/pfalcon/lite-build-tools
./configs/zephyr-net/submit-test.sh
- publishers:
- - email:
- recipients: 'paul.sokolovsky@linaro.org'
+# publishers:
+# - email:
+# recipients: 'first.last@linaro.org'
diff --git a/zephyr-net/builders.sh b/zephyr-net/builders.sh
index 4bd42352d6..a38f45e4b8 100755
--- a/zephyr-net/builders.sh
+++ b/zephyr-net/builders.sh
@@ -10,7 +10,7 @@ sudo apt-get -q=2 -y install ninja-build gperf python3-ply \
set -ex
-sudo pip3 install west
+sudo pip3 install west psutil
west --version
git clone -b ${BRANCH} https://github.com/zephyrproject-rtos/zephyr.git
@@ -29,7 +29,7 @@ echo "EXTERNAL_BUILD_ID=$(git rev-parse --short=8 HEAD)-${BUILD_NUMBER}" >> ${WO
# docker volume under ${HOME}/srv/toolchain/.
# Note that Zephyr SDK is needed even when building with the gnuarmemb
# toolchain, ZEPHYR_SDK_INSTALL_DIR is needed to find things like conf.
-export ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-0.12.4"
+export ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-0.15.0"
export GNUARMEMB_TOOLCHAIN_PATH="${HOME}/srv/toolchain/gcc-arm-none-eabi-8-2019-q3-update"
# Set build environment variables
@@ -72,7 +72,7 @@ time ${ZEPHYR_BASE}/scripts/twister \
CCACHE_DIR=${CCACHE_DIR} ccache --show-stats
# Put report where rsync below will pick it up.
-cp ${OUTDIR}/twister.csv ${OUTDIR}/${PLATFORM}/
+cp ${OUTDIR}/twister.json ${OUTDIR}/${PLATFORM}/
cd ${ZEPHYR_BASE}
# OUTDIR is already per-platform, but it may get contaminated with unrelated
diff --git a/zephyr-upstream-arm.yaml b/zephyr-upstream-arm.yaml
index b0a213626f..9247cb6ea6 100644
--- a/zephyr-upstream-arm.yaml
+++ b/zephyr-upstream-arm.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -35,7 +35,7 @@
- string:
name: GIT_COMMIT
default: 'master'
- disabled: false
+ disabled: true
node: master
child-workspace: .
display-name: 'Zephyr project (arm)'
diff --git a/zephyr-upstream.yaml b/zephyr-upstream.yaml
index 39a5a45794..7f96298f2a 100644
--- a/zephyr-upstream.yaml
+++ b/zephyr-upstream.yaml
@@ -8,7 +8,7 @@
- job-read
- job-extended-read
- job-workspace
- linaro:
+ everyone-flat:
- job-read
- job-extended-read
- job-build
@@ -38,7 +38,7 @@
- string:
name: TWISTER_EXTRA
default: '--enable-slow -x=BUILD_VERSION=ci_build_version'
- disabled: false
+ disabled: true
node: master
child-workspace: .
display-name: 'Zephyr project (main)'
@@ -135,12 +135,11 @@
export DEVICE_TYPE=frdm-kw41z
;;
disco_l475_iot1)
- #export DEVICE_TYPE=disco-l475-iot1
- echo "disco_l475_iot1: LAVA testing temporarily disabled due to device instability (LSS-2160)"
+ export DEVICE_TYPE=disco-l475-iot1
;;
lpcxpresso55s69_cpu0)
export DEVICE_TYPE=lpcxpresso55s69
- LAVA_SERVER="staging.validation.linaro.org/RPC2/"
+ #LAVA_SERVER="staging.validation.linaro.org/RPC2/"
;;
qemu_cortex_m3)
export DEVICE_TYPE=qemu
@@ -177,4 +176,4 @@
publishers:
- email:
- recipients: 'fathi.boudra@linaro.org kumar.gala@linaro.org gpitney@ti.com vincent.wan@linaro.org paul.sokolovsky@linaro.org erwan.gouriou@linaro.org'
+ recipients: 'fathi.boudra@linaro.org erwan.gouriou@linaro.org'
diff --git a/zephyr-upstream/builders.sh b/zephyr-upstream/builders.sh
index 92689509f2..89030f3797 100755
--- a/zephyr-upstream/builders.sh
+++ b/zephyr-upstream/builders.sh
@@ -12,12 +12,12 @@ sudo apt-get -q=2 update
sudo apt-get -q=2 -y install git ninja-build g++ gperf python3-ply \
rsync device-tree-compiler \
python3-pip python3-serial python3-setuptools python3-wheel \
- python3-requests python3-pyelftools util-linux rename srecord \
+ python3-requests util-linux rename srecord \
protobuf-compiler python3-protobuf
set -ex
-sudo pip3 install west
+sudo pip3 install west pyelftools psutil cryptography pyasn1 pyyaml cbor>=1.0.0 imgtool>=1.9.0 jinja2 click
west --version
git clone -b ${BRANCH} https://github.com/zephyrproject-rtos/zephyr.git
@@ -35,7 +35,7 @@ echo "GIT_COMMIT_ID=$(git rev-parse --short=8 HEAD)" > ${WORKSPACE}/env_var_para
# docker volume under ${HOME}/srv/toolchain/.
# Note that Zephyr SDK is needed even when building with the gnuarmemb
# toolchain, ZEPHYR_SDK_INSTALL_DIR is needed to find things like conf.
-export ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-0.12.4"
+export ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-0.15.0"
export GNUARMEMB_TOOLCHAIN_PATH="${HOME}/srv/toolchain/gcc-arm-none-eabi-9-2019-q4-major"
# Set build environment variables
@@ -75,7 +75,7 @@ time ${ZEPHYR_BASE}/scripts/twister \
CCACHE_DIR=${CCACHE_DIR} ccache --show-stats
# Put report where rsync below will pick it up.
-cp ${OUTDIR}/twister.csv ${OUTDIR}/${PLATFORM}/
+cp ${OUTDIR}/twister.json ${OUTDIR}/${PLATFORM}/
cd ${ZEPHYR_BASE}
# OUTDIR is already per-platform, but it may get contaminated with unrelated
diff --git a/zephyr-upstream/submit_for_testing.py b/zephyr-upstream/submit_for_testing.py
index 537d3835c1..bf36d396d8 100644
--- a/zephyr-upstream/submit_for_testing.py
+++ b/zephyr-upstream/submit_for_testing.py
@@ -64,6 +64,7 @@ excluded_tests = {
# banners appear over and over again), and isn't handled by current
# test job.
"tests/drivers/watchdog/wdt_basic_api": "Output doesn't match LAVA test monitor patterns",
+ "zephyr/tests/boot/test_mcuboot/boot.mcuboot": "Sysbuild apps aren't yet supported",
}
# Templates base path
@@ -184,7 +185,7 @@ def parse_yaml_harness_config(yaml_node):
if config.get("type") == "one_line":
return config["regex"][0]
elif config.get("type") == "multi_line":
- if "ordered" not in config or config["ordered"] == "true":
+ if "ordered" not in config or config["ordered"] in ("true", True):
# For ordered regular expressions, we can simply join them into one,
# while allowing any character in between via (.*)
return ".*".join(config["regex"])