[I-PIPE] ipipe-core-4.19.115-arm64-5 released
Download URL: https://xenomai.org/downloads/ipipe/v4.x/arm64/ipipe-core-4.19.115-arm64-5.patch Repository: https://git.xenomai.org/ipipe-arm64 Release tag: ipipe-core-4.19.115-arm64-5
Re: [Xenomai-images PATCH 1/4] ci: Build and test from gitlab.com
On 4/21/20 11:29 AM, Jan Kiszka wrote: On 21.04.20 11:19, Gylstorff Quirin wrote: On 4/21/20 11:09 AM, Jan Kiszka wrote: On 21.04.20 10:31, Q. Gylstorff wrote: From: Quirin Gylstorff Adapt scripts and gitlab-ci.yml to build on public available gitlab infrastructure. As the internal gitlab system has no artifact storage and it is not possible to deactivate arifact upload with a variable split the gitlab-ci.yml. The .gitlab-ci.yml in the root points to .ci/gitlab-com.yml. Why hidden ".ci/" and not just "ci/"? I modeled it after the .gitlab-ci.yml. If it is better to have it visible a will ajust that in a second patch set. Signed-off-by: Quirin Gylstorff --- .ci/gitlab-ci-base.yml | 153 ++ .ci/gitlab-com.yml | 26 +++ .ci/siemens-ci.yml | 22 +++ .gitlab-ci.yml | 145 + scripts/deploy_for_testing.sh | 4 +- scripts/get-build-id.sh | 29 scripts/install-lavacli.sh | 5 +- scripts/run-lava-tests.sh | 8 +- ...bone.yml => xenomai-beagle-bone-black.yml} | 4 +- tests/jobs/xenomai-hikey.yml | 4 +- tests/jobs/xenomai-ipc227e.yml | 6 +- tests/jobs/xenomai-minnow.yml | 6 +- tests/jobs/xenomai-qemu-amd64.yml | 6 +- tests/jobs/xenomai-qemu-arm64.yml | 6 +- tests/jobs/xenomai-qemu-armhf.yml | 6 +- ...omai-x86-64.yml => xenomai-x86-64-efi.yml} | 6 +- 16 files changed, 265 insertions(+), 171 deletions(-) create mode 100644 .ci/gitlab-ci-base.yml create mode 100644 .ci/gitlab-com.yml create mode 100644 .ci/siemens-ci.yml create mode 100755 scripts/get-build-id.sh rename tests/jobs/{xenomai-beaglebone.yml => xenomai-beagle-bone-black.yml} (91%) rename tests/jobs/{xenomai-x86-64.yml => xenomai-x86-64-efi.yml} (86%) diff --git a/.ci/gitlab-ci-base.yml b/.ci/gitlab-ci-base.yml new file mode 100644 index 000..e8d259f --- /dev/null +++ b/.ci/gitlab-ci-base.yml @@ -0,0 +1,153 @@ +# +# Xenomai Real-Time System +# +# Copyright (c) Siemens AG, 2019 - 2020 +# +# Authors: +# Quirin Gylstorff +# +# SPDX-License-Identifier: MIT +# +stages: + - build + - lava-test + +variables: + GIT_STRATEGY: clone + http_proxy: "$HTTP_PROXY" + https_proxy: "$HTTPS_PROXY" + ftp_proxy: "$FTP_PROXY" + no_proxy: "$NO_PROXY" + XENOMAI_BUILD_OPTION: ":opt-xenomai-next.yml" + LINUX_BUILD_OPTION: ":opt-linux-latest.yml" + ISAR_IMAGE: demo-image + ISAR_DISTRIBUTION: xenomai-demo + +default: + image: kasproject/kas-isar:latest + +# add lavacli to the container and install the ssh keys +# for the test infrastructure +.add-lava-ssh-config: + before_script: + - mkdir -p -m=700 ~/.ssh + - if [ -n "$https_proxy" ]; then echo "ProxyCommand socat - PROXY:$(echo $https_proxy | sed 's|.*://\([^:]*\).*|\1|'):%h:%p,proxyport=$(echo $https_proxy | sed 's|.*:\([0-9]*\)$|\1|')" >> ~/.ssh/config && chmod 600 ~/.ssh/config; fi; + - echo "$LAVA_SSH_UPLOAD_KEY" | tr -d '\r' > ~/.ssh/lava_id_rsa && chmod 600 ~/.ssh/lava_id_rsa + - echo "$LAVA_SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts + +.test: + extends: .add-lava-ssh-config + stage: lava-test + script: + - scripts/install-lavacli.sh + - export BUILD_JOB_ID=$(scripts/get-build-id.sh ${BUILD_JOB_NAME}) + - scripts/run-lava-tests.sh ${TARGET} + variables: + BUILD_JOB_NAME: "build:board-${TARGET}${TARGET_EXTENSION}" + only: + variables: + - $LAVA_SSH_USER + + +build:board-qemu-amd64: + extends: .build + variables: + TARGET: qemu-amd64 + +lava-test:qemu-amd64: + needs: [ "build:board-qemu-amd64" ] + dependencies: [ "build:board-qemu-amd64" ] + extends: .test + variables: + TARGET: qemu-amd64 + +build:board-qemu-armhf: + extends: .build + variables: + TARGET: qemu-armhf + +lava-test:qemu-armhf: + needs: [ "build:board-qemu-armhf" ] + extends: .test + variables: + TARGET: qemu-armhf + +build:board-qemu-arm64: + extends: .build + variables: + TARGET: qemu-arm64 + +lava-test:qemu-arm64: + needs: [ "build:board-qemu-arm64" ] + extends: .test + variables: + TARGET: qemu-arm64 + +build:board-hikey: + extends: .build + variables: + TARGET: hikey + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-hikey: + needs: [ "build:board-hikey" ] + extends: .test + variables: + TARGET: hikey + +build:board-beagle-bone-black: + extends: .build + variables: + TARGET: beagle-bone-black + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-beagle-bone-black: + needs: [ "build:board-beagle-bone-black" ] + extends: .test + variables: + TARGET: beagle-bone-black + +build:board-x86-64-efi: + extends: .build + variables: + TARGET: x86-64-efi + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-x86-64-
Re: FAILURE run_gdb:287: checking expression "primary_mode", expected "$", found "N"
On 21.04.20 02:27, Vitaly Chikunov via Xenomai wrote: 2. There is additional problem with gdb test, though. If I have in my `.gdbinit' value of `prompt' redefined - gdb test fails to recognize the prompt. I recommend adding `-nx' option to gdb arguments so that `.gdbinit' is not read by default. gdb --help: --nh Do not read ~/.gdbinit. --nx Do not read any .gdbinit files in any directory. I believe these changes will make xeno-test more robust. Good point! Should be added to the smokey gdb testcase where it starts gdb. Would you send a patch? 3. Also, note that `-k' switch is not worked. There are several test cases in smokey, gdb included, that terminate the test process on errors. Probably, those need to be changed to return an error code from the test main function. Not trivial in all cases. Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux
Re: [Xenomai-images PATCH 1/4] ci: Build and test from gitlab.com
On 21.04.20 11:19, Gylstorff Quirin wrote: On 4/21/20 11:09 AM, Jan Kiszka wrote: On 21.04.20 10:31, Q. Gylstorff wrote: From: Quirin Gylstorff Adapt scripts and gitlab-ci.yml to build on public available gitlab infrastructure. As the internal gitlab system has no artifact storage and it is not possible to deactivate arifact upload with a variable split the gitlab-ci.yml. The .gitlab-ci.yml in the root points to .ci/gitlab-com.yml. Why hidden ".ci/" and not just "ci/"? I modeled it after the .gitlab-ci.yml. If it is better to have it visible a will ajust that in a second patch set. Signed-off-by: Quirin Gylstorff --- .ci/gitlab-ci-base.yml | 153 ++ .ci/gitlab-com.yml | 26 +++ .ci/siemens-ci.yml | 22 +++ .gitlab-ci.yml | 145 + scripts/deploy_for_testing.sh | 4 +- scripts/get-build-id.sh | 29 scripts/install-lavacli.sh | 5 +- scripts/run-lava-tests.sh | 8 +- ...bone.yml => xenomai-beagle-bone-black.yml} | 4 +- tests/jobs/xenomai-hikey.yml | 4 +- tests/jobs/xenomai-ipc227e.yml | 6 +- tests/jobs/xenomai-minnow.yml | 6 +- tests/jobs/xenomai-qemu-amd64.yml | 6 +- tests/jobs/xenomai-qemu-arm64.yml | 6 +- tests/jobs/xenomai-qemu-armhf.yml | 6 +- ...omai-x86-64.yml => xenomai-x86-64-efi.yml} | 6 +- 16 files changed, 265 insertions(+), 171 deletions(-) create mode 100644 .ci/gitlab-ci-base.yml create mode 100644 .ci/gitlab-com.yml create mode 100644 .ci/siemens-ci.yml create mode 100755 scripts/get-build-id.sh rename tests/jobs/{xenomai-beaglebone.yml => xenomai-beagle-bone-black.yml} (91%) rename tests/jobs/{xenomai-x86-64.yml => xenomai-x86-64-efi.yml} (86%) diff --git a/.ci/gitlab-ci-base.yml b/.ci/gitlab-ci-base.yml new file mode 100644 index 000..e8d259f --- /dev/null +++ b/.ci/gitlab-ci-base.yml @@ -0,0 +1,153 @@ +# +# Xenomai Real-Time System +# +# Copyright (c) Siemens AG, 2019 - 2020 +# +# Authors: +# Quirin Gylstorff +# +# SPDX-License-Identifier: MIT +# +stages: + - build + - lava-test + +variables: + GIT_STRATEGY: clone + http_proxy: "$HTTP_PROXY" + https_proxy: "$HTTPS_PROXY" + ftp_proxy: "$FTP_PROXY" + no_proxy: "$NO_PROXY" + XENOMAI_BUILD_OPTION: ":opt-xenomai-next.yml" + LINUX_BUILD_OPTION: ":opt-linux-latest.yml" + ISAR_IMAGE: demo-image + ISAR_DISTRIBUTION: xenomai-demo + +default: + image: kasproject/kas-isar:latest + +# add lavacli to the container and install the ssh keys +# for the test infrastructure +.add-lava-ssh-config: + before_script: + - mkdir -p -m=700 ~/.ssh + - if [ -n "$https_proxy" ]; then echo "ProxyCommand socat - PROXY:$(echo $https_proxy | sed 's|.*://\([^:]*\).*|\1|'):%h:%p,proxyport=$(echo $https_proxy | sed 's|.*:\([0-9]*\)$|\1|')" >> ~/.ssh/config && chmod 600 ~/.ssh/config; fi; + - echo "$LAVA_SSH_UPLOAD_KEY" | tr -d '\r' > ~/.ssh/lava_id_rsa && chmod 600 ~/.ssh/lava_id_rsa + - echo "$LAVA_SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts + +.test: + extends: .add-lava-ssh-config + stage: lava-test + script: + - scripts/install-lavacli.sh + - export BUILD_JOB_ID=$(scripts/get-build-id.sh ${BUILD_JOB_NAME}) + - scripts/run-lava-tests.sh ${TARGET} + variables: + BUILD_JOB_NAME: "build:board-${TARGET}${TARGET_EXTENSION}" + only: + variables: + - $LAVA_SSH_USER + + +build:board-qemu-amd64: + extends: .build + variables: + TARGET: qemu-amd64 + +lava-test:qemu-amd64: + needs: [ "build:board-qemu-amd64" ] + dependencies: [ "build:board-qemu-amd64" ] + extends: .test + variables: + TARGET: qemu-amd64 + +build:board-qemu-armhf: + extends: .build + variables: + TARGET: qemu-armhf + +lava-test:qemu-armhf: + needs: [ "build:board-qemu-armhf" ] + extends: .test + variables: + TARGET: qemu-armhf + +build:board-qemu-arm64: + extends: .build + variables: + TARGET: qemu-arm64 + +lava-test:qemu-arm64: + needs: [ "build:board-qemu-arm64" ] + extends: .test + variables: + TARGET: qemu-arm64 + +build:board-hikey: + extends: .build + variables: + TARGET: hikey + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-hikey: + needs: [ "build:board-hikey" ] + extends: .test + variables: + TARGET: hikey + +build:board-beagle-bone-black: + extends: .build + variables: + TARGET: beagle-bone-black + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-beagle-bone-black: + needs: [ "build:board-beagle-bone-black" ] + extends: .test + variables: + TARGET: beagle-bone-black + +build:board-x86-64-efi: + extends: .build + variables: + TARGET: x86-64-efi + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-x86-64-efi: + needs: [ "build:board-x86-64-efi" ] +
Re: [Xenomai-images PATCH 1/4] ci: Build and test from gitlab.com
On 4/21/20 11:09 AM, Jan Kiszka wrote: On 21.04.20 10:31, Q. Gylstorff wrote: From: Quirin Gylstorff Adapt scripts and gitlab-ci.yml to build on public available gitlab infrastructure. As the internal gitlab system has no artifact storage and it is not possible to deactivate arifact upload with a variable split the gitlab-ci.yml. The .gitlab-ci.yml in the root points to .ci/gitlab-com.yml. Why hidden ".ci/" and not just "ci/"? I modeled it after the .gitlab-ci.yml. If it is better to have it visible a will ajust that in a second patch set. Signed-off-by: Quirin Gylstorff --- .ci/gitlab-ci-base.yml | 153 ++ .ci/gitlab-com.yml | 26 +++ .ci/siemens-ci.yml | 22 +++ .gitlab-ci.yml | 145 + scripts/deploy_for_testing.sh | 4 +- scripts/get-build-id.sh | 29 scripts/install-lavacli.sh | 5 +- scripts/run-lava-tests.sh | 8 +- ...bone.yml => xenomai-beagle-bone-black.yml} | 4 +- tests/jobs/xenomai-hikey.yml | 4 +- tests/jobs/xenomai-ipc227e.yml | 6 +- tests/jobs/xenomai-minnow.yml | 6 +- tests/jobs/xenomai-qemu-amd64.yml | 6 +- tests/jobs/xenomai-qemu-arm64.yml | 6 +- tests/jobs/xenomai-qemu-armhf.yml | 6 +- ...omai-x86-64.yml => xenomai-x86-64-efi.yml} | 6 +- 16 files changed, 265 insertions(+), 171 deletions(-) create mode 100644 .ci/gitlab-ci-base.yml create mode 100644 .ci/gitlab-com.yml create mode 100644 .ci/siemens-ci.yml create mode 100755 scripts/get-build-id.sh rename tests/jobs/{xenomai-beaglebone.yml => xenomai-beagle-bone-black.yml} (91%) rename tests/jobs/{xenomai-x86-64.yml => xenomai-x86-64-efi.yml} (86%) diff --git a/.ci/gitlab-ci-base.yml b/.ci/gitlab-ci-base.yml new file mode 100644 index 000..e8d259f --- /dev/null +++ b/.ci/gitlab-ci-base.yml @@ -0,0 +1,153 @@ +# +# Xenomai Real-Time System +# +# Copyright (c) Siemens AG, 2019 - 2020 +# +# Authors: +# Quirin Gylstorff +# +# SPDX-License-Identifier: MIT +# +stages: + - build + - lava-test + +variables: + GIT_STRATEGY: clone + http_proxy: "$HTTP_PROXY" + https_proxy: "$HTTPS_PROXY" + ftp_proxy: "$FTP_PROXY" + no_proxy: "$NO_PROXY" + XENOMAI_BUILD_OPTION: ":opt-xenomai-next.yml" + LINUX_BUILD_OPTION: ":opt-linux-latest.yml" + ISAR_IMAGE: demo-image + ISAR_DISTRIBUTION: xenomai-demo + +default: + image: kasproject/kas-isar:latest + +# add lavacli to the container and install the ssh keys +# for the test infrastructure +.add-lava-ssh-config: + before_script: + - mkdir -p -m=700 ~/.ssh + - if [ -n "$https_proxy" ]; then echo "ProxyCommand socat - PROXY:$(echo $https_proxy | sed 's|.*://\([^:]*\).*|\1|'):%h:%p,proxyport=$(echo $https_proxy | sed 's|.*:\([0-9]*\)$|\1|')" >> ~/.ssh/config && chmod 600 ~/.ssh/config; fi; + - echo "$LAVA_SSH_UPLOAD_KEY" | tr -d '\r' > ~/.ssh/lava_id_rsa && chmod 600 ~/.ssh/lava_id_rsa + - echo "$LAVA_SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts + +.test: + extends: .add-lava-ssh-config + stage: lava-test + script: + - scripts/install-lavacli.sh + - export BUILD_JOB_ID=$(scripts/get-build-id.sh ${BUILD_JOB_NAME}) + - scripts/run-lava-tests.sh ${TARGET} + variables: + BUILD_JOB_NAME: "build:board-${TARGET}${TARGET_EXTENSION}" + only: + variables: + - $LAVA_SSH_USER + + +build:board-qemu-amd64: + extends: .build + variables: + TARGET: qemu-amd64 + +lava-test:qemu-amd64: + needs: [ "build:board-qemu-amd64" ] + dependencies: [ "build:board-qemu-amd64" ] + extends: .test + variables: + TARGET: qemu-amd64 + +build:board-qemu-armhf: + extends: .build + variables: + TARGET: qemu-armhf + +lava-test:qemu-armhf: + needs: [ "build:board-qemu-armhf" ] + extends: .test + variables: + TARGET: qemu-armhf + +build:board-qemu-arm64: + extends: .build + variables: + TARGET: qemu-arm64 + +lava-test:qemu-arm64: + needs: [ "build:board-qemu-arm64" ] + extends: .test + variables: + TARGET: qemu-arm64 + +build:board-hikey: + extends: .build + variables: + TARGET: hikey + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-hikey: + needs: [ "build:board-hikey" ] + extends: .test + variables: + TARGET: hikey + +build:board-beagle-bone-black: + extends: .build + variables: + TARGET: beagle-bone-black + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-beagle-bone-black: + needs: [ "build:board-beagle-bone-black" ] + extends: .test + variables: + TARGET: beagle-bone-black + +build:board-x86-64-efi: + extends: .build + variables: + TARGET: x86-64-efi + BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-x86-64-efi: + needs: [ "build:board-x86-64-efi" ] + extends: .test + variables: + TARGET: x
Re: FAILURE run_gdb:287: checking expression "primary_mode", expected "$", found "N"
Jan, On Tue, Apr 21, 2020 at 07:10:55AM +0200, Jan Kiszka via Xenomai wrote: > On 21.04.20 04:43, Vitaly Chikunov via Xenomai wrote: > > On Tue, Apr 21, 2020 at 03:27:29AM +0300, Vitaly Chikunov via Xenomai wrote: > > > On Tue, Apr 21, 2020 at 01:18:50AM +0300, Vitaly Chikunov via Xenomai > > > wrote: > > > I recommend removing `static' from `breakpoint_target' definition, so > > > that symbol is exported without need of debuginfo. > > > > It turned out that removing `static' was not enough to pass binary > > stripping. I will investigate better solution further. > > Stripping must not happen - how did you build things? On debian, we have > "dh_strip -s --exclude=smokey" in the rules to ensure that smokey keeps its > debuginfos. Oh, yes I can disable stripping for snokey in our build system too. So there is no need to remove `static'. (But other two points remain.) Thanks!
Re: [Xenomai-images PATCH 1/4] ci: Build and test from gitlab.com
On 21.04.20 10:31, Q. Gylstorff wrote: From: Quirin Gylstorff Adapt scripts and gitlab-ci.yml to build on public available gitlab infrastructure. As the internal gitlab system has no artifact storage and it is not possible to deactivate arifact upload with a variable split the gitlab-ci.yml. The .gitlab-ci.yml in the root points to .ci/gitlab-com.yml. Why hidden ".ci/" and not just "ci/"? Signed-off-by: Quirin Gylstorff --- .ci/gitlab-ci-base.yml| 153 ++ .ci/gitlab-com.yml| 26 +++ .ci/siemens-ci.yml| 22 +++ .gitlab-ci.yml| 145 + scripts/deploy_for_testing.sh | 4 +- scripts/get-build-id.sh | 29 scripts/install-lavacli.sh| 5 +- scripts/run-lava-tests.sh | 8 +- ...bone.yml => xenomai-beagle-bone-black.yml} | 4 +- tests/jobs/xenomai-hikey.yml | 4 +- tests/jobs/xenomai-ipc227e.yml| 6 +- tests/jobs/xenomai-minnow.yml | 6 +- tests/jobs/xenomai-qemu-amd64.yml | 6 +- tests/jobs/xenomai-qemu-arm64.yml | 6 +- tests/jobs/xenomai-qemu-armhf.yml | 6 +- ...omai-x86-64.yml => xenomai-x86-64-efi.yml} | 6 +- 16 files changed, 265 insertions(+), 171 deletions(-) create mode 100644 .ci/gitlab-ci-base.yml create mode 100644 .ci/gitlab-com.yml create mode 100644 .ci/siemens-ci.yml create mode 100755 scripts/get-build-id.sh rename tests/jobs/{xenomai-beaglebone.yml => xenomai-beagle-bone-black.yml} (91%) rename tests/jobs/{xenomai-x86-64.yml => xenomai-x86-64-efi.yml} (86%) diff --git a/.ci/gitlab-ci-base.yml b/.ci/gitlab-ci-base.yml new file mode 100644 index 000..e8d259f --- /dev/null +++ b/.ci/gitlab-ci-base.yml @@ -0,0 +1,153 @@ +# +# Xenomai Real-Time System +# +# Copyright (c) Siemens AG, 2019 - 2020 +# +# Authors: +# Quirin Gylstorff +# +# SPDX-License-Identifier: MIT +# +stages: + - build + - lava-test + +variables: + GIT_STRATEGY: clone + http_proxy: "$HTTP_PROXY" + https_proxy: "$HTTPS_PROXY" + ftp_proxy: "$FTP_PROXY" + no_proxy: "$NO_PROXY" + XENOMAI_BUILD_OPTION: ":opt-xenomai-next.yml" + LINUX_BUILD_OPTION: ":opt-linux-latest.yml" + ISAR_IMAGE: demo-image + ISAR_DISTRIBUTION: xenomai-demo + +default: + image: kasproject/kas-isar:latest + +# add lavacli to the container and install the ssh keys +# for the test infrastructure +.add-lava-ssh-config: + before_script: +- mkdir -p -m=700 ~/.ssh +- if [ -n "$https_proxy" ]; then echo "ProxyCommand socat - PROXY:$(echo $https_proxy | sed 's|.*://\([^:]*\).*|\1|'):%h:%p,proxyport=$(echo $https_proxy | sed 's|.*:\([0-9]*\)$|\1|')" >> ~/.ssh/config && chmod 600 ~/.ssh/config; fi; +- echo "$LAVA_SSH_UPLOAD_KEY" | tr -d '\r' > ~/.ssh/lava_id_rsa && chmod 600 ~/.ssh/lava_id_rsa +- echo "$LAVA_SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts + +.test: + extends: .add-lava-ssh-config + stage: lava-test + script: +- scripts/install-lavacli.sh +- export BUILD_JOB_ID=$(scripts/get-build-id.sh ${BUILD_JOB_NAME}) +- scripts/run-lava-tests.sh ${TARGET} + variables: +BUILD_JOB_NAME: "build:board-${TARGET}${TARGET_EXTENSION}" + only: +variables: + - $LAVA_SSH_USER + + +build:board-qemu-amd64: + extends: .build + variables: +TARGET: qemu-amd64 + +lava-test:qemu-amd64: + needs: [ "build:board-qemu-amd64" ] + dependencies: [ "build:board-qemu-amd64" ] + extends: .test + variables: +TARGET: qemu-amd64 + +build:board-qemu-armhf: + extends: .build + variables: +TARGET: qemu-armhf + +lava-test:qemu-armhf: + needs: [ "build:board-qemu-armhf" ] + extends: .test + variables: +TARGET: qemu-armhf + +build:board-qemu-arm64: + extends: .build + variables: +TARGET: qemu-arm64 + +lava-test:qemu-arm64: + needs: [ "build:board-qemu-arm64" ] + extends: .test + variables: +TARGET: qemu-arm64 + +build:board-hikey: + extends: .build + variables: +TARGET: hikey +BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-hikey: + needs: [ "build:board-hikey" ] + extends: .test + variables: +TARGET: hikey + +build:board-beagle-bone-black: + extends: .build + variables: +TARGET: beagle-bone-black +BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-beagle-bone-black: + needs: [ "build:board-beagle-bone-black" ] + extends: .test + variables: +TARGET: beagle-bone-black + +build:board-x86-64-efi: + extends: .build + variables: +TARGET: x86-64-efi +BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-x86-64-efi: + needs: [ "build:board-x86-64-efi" ] + extends: .test + variables: +TARGET: x86-64-efi + +build:board-beagle-bone-black:xenomai-3.0.x: + extends: .build + variables: +TARGET: beagle-bone-black +XENOMAI_BUILD_OPTION: ":opt-xenomai-3.
[Xenomai-images PATCH 0/4] ci: Add configuration to run on gitlab.com
From: Quirin Gylstorff Add the configration to run the ci builds on gitlab.com or on-premise setups with gitlab artifacts enabled. Each completed pipeline creates around 1.5 GB aritfacts. An active pipeline can be seen at https://gitlab.com/Quirin.Gy/xenomai-images-test/pipelines. Quirin Gylstorff (4): ci: Build and test from gitlab.com ci: Add option to compress ext4-images. test/README: Update scripts/run-lava-tests: Add LAVA_MASTER_URL .ci/gitlab-ci-base.yml| 156 ++ .ci/gitlab-com.yml| 26 +++ .ci/siemens-ci.yml| 22 +++ .gitlab-ci.yml| 145 +--- .../0001-classes-ext4.img-Compress.patch | 31 opt-ext4-gz.yml | 24 +++ scripts/deploy_for_testing.sh | 4 +- scripts/get-build-id.sh | 29 scripts/install-lavacli.sh| 5 +- scripts/run-lava-tests.sh | 10 +- tests/README.md | 60 +-- ...bone.yml => xenomai-beagle-bone-black.yml} | 4 +- tests/jobs/xenomai-hikey.yml | 4 +- tests/jobs/xenomai-ipc227e.yml| 6 +- tests/jobs/xenomai-minnow.yml | 6 +- tests/jobs/xenomai-qemu-amd64.yml | 6 +- tests/jobs/xenomai-qemu-arm64.yml | 6 +- tests/jobs/xenomai-qemu-armhf.yml | 6 +- ...omai-x86-64.yml => xenomai-x86-64-efi.yml} | 6 +- 19 files changed, 369 insertions(+), 187 deletions(-) create mode 100644 .ci/gitlab-ci-base.yml create mode 100644 .ci/gitlab-com.yml create mode 100644 .ci/siemens-ci.yml create mode 100644 isar-patches/0001-classes-ext4.img-Compress.patch create mode 100644 opt-ext4-gz.yml create mode 100755 scripts/get-build-id.sh rename tests/jobs/{xenomai-beaglebone.yml => xenomai-beagle-bone-black.yml} (91%) rename tests/jobs/{xenomai-x86-64.yml => xenomai-x86-64-efi.yml} (86%) -- 2.20.1
[Xenomai-images PATCH 3/4] test/README: Update
From: Quirin Gylstorff Add missing targets and update CI variable description. Signed-off-by: Quirin Gylstorff --- tests/README.md | 59 - 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/tests/README.md b/tests/README.md index 01b956e..8bf97a5 100644 --- a/tests/README.md +++ b/tests/README.md @@ -8,9 +8,11 @@ sends them to the lava testlab. ## Test targets following images are test: +- qemu-armhf - qemu-arm64 - qemu-amd64 - x86-64-efi +- hikey - beagle-bone-black ## Deploy test @@ -85,20 +87,47 @@ Setup a lava environment by following the [installation guide](https://docs.lavasoftware.org/lava/first-installation.html) or use [lava-docker](https://github.com/kernelci/lava-docker). -# CI Variables +# CI Files + +To support different ci setups all ci files are stored in `.ci`. `.gitlab-ci.yml` in +the repository root use the settings to build on gitlab.com. To use another setup adapt +the [Custom CI configuration path](https://code.siemens.com/help/ci/pipelines/settings#custom-ci-configuration-path) + + +## CI Variables The following variables are used and set by the ci system: -- `HTTP_PROXY`: proxy settings -- `HTTPS_PROXY` : proxy settings -- `FTP_PROXY` : proxy settings -- `NO_PROXY` : proxy settings -- `LAVA_SSH_USER` : ssh user to connect to the LAVA master -- `LAVA_SSH_HOST` : ssh host name to connect to the LAVA master -- `LAVA_SSH_PORT` : ssh port used for the ssh tunnel -- `LAVA_SSH_UPLOAD_KEY` : private ssh key to connect to the LAVA master -- `LAVA_SSH_KNOWN_HOSTS` : Known hosts to connect via ssh to the host given by `LAVA_SSH_HOST` -- `LAVA_MASTER_ACCOUNT` : lava master account name to register lavacli for test execution -- `LAVA_MASTER_TOKEN`: token to connect with the lava master -- `LAVA_DEPLOY_DIR`: optional variable to define directory to store the build artifacts -- `LAVA_ARTIFACTS_URL` : optional variable where to get the artifacts for testing -- `BUILD_OPTIONS` : optional parameter. Used for triggers. Overwrite to build the newest ipipe together with xenomai or other combinations. +- proxy settings: + - `HTTP_PROXY`: http proxy + - `HTTPS_PROXY` : https proxy + - `FTP_PROXY` : ftp proxy + - `NO_PROXY` : no proxy + +- SSH settings: + - `LAVA_SSH_USER` : ssh user to connect to the LAVA master + - `LAVA_SSH_HOST` : ssh host name to connect to the LAVA master + - `LAVA_SSH_PORT` : ssh port used for the ssh tunnel + - `LAVA_SSH_UPLOAD_KEY` : private ssh key to connect to the LAVA master + - `LAVA_SSH_KNOWN_HOSTS` : Known hosts to connect via ssh to the host given by `LAVA_SSH_HOST` + +- LAVA settings: + - `LAVA_MASTER_ACCOUNT` : lava master account name to register lavacli for test execution + - `LAVA_MASTER_TOKEN`: token to connect with the lava master + - `LAVA_DEPLOY_DIR`: optional variable to define directory to store the build artifacts + - `LAVA_ARTIFACTS_URL` : optional variable where to get the artifacts for testing + - `LAVA_DEPLOY_DIR`: Directory to deploy the Artifacts in a build. Default /var/lib/lava/artifacts + - `LAVA_MASTER_PORT`: PORT to access the LAVA Master + +- General build settings + - `BUILD_OPTIONS` : optional parameter. Used for triggers. Overwrite to build the newest ipipe together with xenomai or other combinations. + - `DEPLOY_DIR_EXTENSION`: Extension path to store artifacts for the same target + - `USE_GITLAB_ARTIFACTS`: If set this changes the deploy url to a gitlab api URL + - `JOB_TEMPLATE_PATH`: Path to the test templates - Default tests/jobs/xenomai + - `TARGET_EXTENSION`: Extension of the build job name +## LAVA Template variable + +- `TARGET`: Name of the target in the LAVA Lab +- `BUILD_ARCH`: Architecture of the Target +- `DEPLOY_DIR`: Path to the test components will be generate by the script `scripts/run-lava-tests.sh` +- `ISAR_IMAGE`: Name of the ISAR image (e.g. demo-image) +- `ISAR_DISTRIBUTION`: Name of the ISAR DISTRIBUTION (e.g. xenomai-demo) -- 2.20.1
[Xenomai-images PATCH 4/4] scripts/run-lava-tests: Add LAVA_MASTER_URL
From: Quirin Gylstorff Allow to set the LAVA master URL. Signed-off-by: Quirin Gylstorff --- scripts/run-lava-tests.sh | 2 +- tests/README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/run-lava-tests.sh b/scripts/run-lava-tests.sh index 8566493..764f3a9 100755 --- a/scripts/run-lava-tests.sh +++ b/scripts/run-lava-tests.sh @@ -37,7 +37,7 @@ do sleep ${interval} timeout=$(expr ${timeout} - ${interval}) done -lava_master_uri=http://localhost:${lava_master_port} +lava_master_uri=${LAVA_MASTER_URL:-http://localhost}:${lava_master_port} # connect to lava master lavacli identities add --token ${LAVA_MASTER_TOKEN} --uri ${lava_master_uri} --username ${LAVA_MASTER_ACCOUNT} default diff --git a/tests/README.md b/tests/README.md index 8bf97a5..119f90f 100644 --- a/tests/README.md +++ b/tests/README.md @@ -117,6 +117,7 @@ The following variables are used and set by the ci system: - `LAVA_ARTIFACTS_URL` : optional variable where to get the artifacts for testing - `LAVA_DEPLOY_DIR`: Directory to deploy the Artifacts in a build. Default /var/lib/lava/artifacts - `LAVA_MASTER_PORT`: PORT to access the LAVA Master + - `LAVA_MASTER_URL`: URL to the LAVA Master - General build settings - `BUILD_OPTIONS` : optional parameter. Used for triggers. Overwrite to build the newest ipipe together with xenomai or other combinations. -- 2.20.1
[Xenomai-images PATCH 1/4] ci: Build and test from gitlab.com
From: Quirin Gylstorff Adapt scripts and gitlab-ci.yml to build on public available gitlab infrastructure. As the internal gitlab system has no artifact storage and it is not possible to deactivate arifact upload with a variable split the gitlab-ci.yml. The .gitlab-ci.yml in the root points to .ci/gitlab-com.yml. Signed-off-by: Quirin Gylstorff --- .ci/gitlab-ci-base.yml| 153 ++ .ci/gitlab-com.yml| 26 +++ .ci/siemens-ci.yml| 22 +++ .gitlab-ci.yml| 145 + scripts/deploy_for_testing.sh | 4 +- scripts/get-build-id.sh | 29 scripts/install-lavacli.sh| 5 +- scripts/run-lava-tests.sh | 8 +- ...bone.yml => xenomai-beagle-bone-black.yml} | 4 +- tests/jobs/xenomai-hikey.yml | 4 +- tests/jobs/xenomai-ipc227e.yml| 6 +- tests/jobs/xenomai-minnow.yml | 6 +- tests/jobs/xenomai-qemu-amd64.yml | 6 +- tests/jobs/xenomai-qemu-arm64.yml | 6 +- tests/jobs/xenomai-qemu-armhf.yml | 6 +- ...omai-x86-64.yml => xenomai-x86-64-efi.yml} | 6 +- 16 files changed, 265 insertions(+), 171 deletions(-) create mode 100644 .ci/gitlab-ci-base.yml create mode 100644 .ci/gitlab-com.yml create mode 100644 .ci/siemens-ci.yml create mode 100755 scripts/get-build-id.sh rename tests/jobs/{xenomai-beaglebone.yml => xenomai-beagle-bone-black.yml} (91%) rename tests/jobs/{xenomai-x86-64.yml => xenomai-x86-64-efi.yml} (86%) diff --git a/.ci/gitlab-ci-base.yml b/.ci/gitlab-ci-base.yml new file mode 100644 index 000..e8d259f --- /dev/null +++ b/.ci/gitlab-ci-base.yml @@ -0,0 +1,153 @@ +# +# Xenomai Real-Time System +# +# Copyright (c) Siemens AG, 2019 - 2020 +# +# Authors: +# Quirin Gylstorff +# +# SPDX-License-Identifier: MIT +# +stages: + - build + - lava-test + +variables: + GIT_STRATEGY: clone + http_proxy: "$HTTP_PROXY" + https_proxy: "$HTTPS_PROXY" + ftp_proxy: "$FTP_PROXY" + no_proxy: "$NO_PROXY" + XENOMAI_BUILD_OPTION: ":opt-xenomai-next.yml" + LINUX_BUILD_OPTION: ":opt-linux-latest.yml" + ISAR_IMAGE: demo-image + ISAR_DISTRIBUTION: xenomai-demo + +default: + image: kasproject/kas-isar:latest + +# add lavacli to the container and install the ssh keys +# for the test infrastructure +.add-lava-ssh-config: + before_script: +- mkdir -p -m=700 ~/.ssh +- if [ -n "$https_proxy" ]; then echo "ProxyCommand socat - PROXY:$(echo $https_proxy | sed 's|.*://\([^:]*\).*|\1|'):%h:%p,proxyport=$(echo $https_proxy | sed 's|.*:\([0-9]*\)$|\1|')" >> ~/.ssh/config && chmod 600 ~/.ssh/config; fi; +- echo "$LAVA_SSH_UPLOAD_KEY" | tr -d '\r' > ~/.ssh/lava_id_rsa && chmod 600 ~/.ssh/lava_id_rsa +- echo "$LAVA_SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts + +.test: + extends: .add-lava-ssh-config + stage: lava-test + script: +- scripts/install-lavacli.sh +- export BUILD_JOB_ID=$(scripts/get-build-id.sh ${BUILD_JOB_NAME}) +- scripts/run-lava-tests.sh ${TARGET} + variables: +BUILD_JOB_NAME: "build:board-${TARGET}${TARGET_EXTENSION}" + only: +variables: + - $LAVA_SSH_USER + + +build:board-qemu-amd64: + extends: .build + variables: +TARGET: qemu-amd64 + +lava-test:qemu-amd64: + needs: [ "build:board-qemu-amd64" ] + dependencies: [ "build:board-qemu-amd64" ] + extends: .test + variables: +TARGET: qemu-amd64 + +build:board-qemu-armhf: + extends: .build + variables: +TARGET: qemu-armhf + +lava-test:qemu-armhf: + needs: [ "build:board-qemu-armhf" ] + extends: .test + variables: +TARGET: qemu-armhf + +build:board-qemu-arm64: + extends: .build + variables: +TARGET: qemu-arm64 + +lava-test:qemu-arm64: + needs: [ "build:board-qemu-arm64" ] + extends: .test + variables: +TARGET: qemu-arm64 + +build:board-hikey: + extends: .build + variables: +TARGET: hikey +BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-hikey: + needs: [ "build:board-hikey" ] + extends: .test + variables: +TARGET: hikey + +build:board-beagle-bone-black: + extends: .build + variables: +TARGET: beagle-bone-black +BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-beagle-bone-black: + needs: [ "build:board-beagle-bone-black" ] + extends: .test + variables: +TARGET: beagle-bone-black + +build:board-x86-64-efi: + extends: .build + variables: +TARGET: x86-64-efi +BUILD_OPTIONS: ":opt-lava-test.yml" + +lava-test:board-x86-64-efi: + needs: [ "build:board-x86-64-efi" ] + extends: .test + variables: +TARGET: x86-64-efi + +build:board-beagle-bone-black:xenomai-3.0.x: + extends: .build + variables: +TARGET: beagle-bone-black +XENOMAI_BUILD_OPTION: ":opt-xenomai-3.0.x.yml" +BUILD_OPTIONS: ":opt-lava-test.yml" +DEPLOY_DIR_EXTENSION: "xenomai-3.0.x" + +lava-test
[Xenomai-images PATCH 2/4] ci: Add option to compress ext4-images.
From: Quirin Gylstorff The qemu test targets create uncompressed ext4-img around 1GB. This increases the time to uplaod and test a image with qemu. Reduce the time by adding a compress option to ext4-img.bbclass. Signed-off-by: Quirin Gylstorff --- .ci/gitlab-ci-base.yml| 3 ++ .../0001-classes-ext4.img-Compress.patch | 31 +++ opt-ext4-gz.yml | 24 ++ 3 files changed, 58 insertions(+) create mode 100644 isar-patches/0001-classes-ext4.img-Compress.patch create mode 100644 opt-ext4-gz.yml diff --git a/.ci/gitlab-ci-base.yml b/.ci/gitlab-ci-base.yml index e8d259f..6978ae9 100644 --- a/.ci/gitlab-ci-base.yml +++ b/.ci/gitlab-ci-base.yml @@ -53,6 +53,7 @@ build:board-qemu-amd64: extends: .build variables: TARGET: qemu-amd64 +BUILD_OPTIONS: ":opt-ext4-gz.yml" lava-test:qemu-amd64: needs: [ "build:board-qemu-amd64" ] @@ -65,6 +66,7 @@ build:board-qemu-armhf: extends: .build variables: TARGET: qemu-armhf +BUILD_OPTIONS: ":opt-ext4-gz.yml" lava-test:qemu-armhf: needs: [ "build:board-qemu-armhf" ] @@ -76,6 +78,7 @@ build:board-qemu-arm64: extends: .build variables: TARGET: qemu-arm64 +BUILD_OPTIONS: ":opt-ext4-gz.yml" lava-test:qemu-arm64: needs: [ "build:board-qemu-arm64" ] diff --git a/isar-patches/0001-classes-ext4.img-Compress.patch b/isar-patches/0001-classes-ext4.img-Compress.patch new file mode 100644 index 000..6b67295 --- /dev/null +++ b/isar-patches/0001-classes-ext4.img-Compress.patch @@ -0,0 +1,31 @@ +From 915eec01cf660b160b1eab551c60fba4aac13b4b Mon Sep 17 00:00:00 2001 +From: Quirin Gylstorff +Date: Fri, 17 Apr 2020 11:32:39 +0200 +Subject: [PATCH] classes/ext4.img: Compress + +change owner and add compress option + +Signed-off-by: Quirin Gylstorff +--- + meta/classes/ext4-img.bbclass | 5 + + 1 file changed, 5 insertions(+) + +diff --git a/meta/classes/ext4-img.bbclass b/meta/classes/ext4-img.bbclass +index 334dc64..dc091d9 100644 +--- a/meta/classes/ext4-img.bbclass b/meta/classes/ext4-img.bbclass +@@ -17,6 +17,11 @@ do_ext4_image() { + + sudo chroot ${BUILDCHROOT_DIR} /sbin/mke2fs ${MKE2FS_ARGS} \ + -F -d '${PP_ROOTFS}' '${PP_DEPLOY}/${EXT4_IMAGE_FILE}' ++sudo chown $(id -u):$(id -g) ${DEPLOY_DIR_IMAGE}/${EXT4_IMAGE_FILE} ++ ++if [ "${COMPRESS}" = "gz" ]; then ++gzip ${DEPLOY_DIR_IMAGE}/${EXT4_IMAGE_FILE} ++fi + } + + addtask ext4_image before do_image after do_image_tools +-- +2.20.1 + diff --git a/opt-ext4-gz.yml b/opt-ext4-gz.yml new file mode 100644 index 000..1a6502f --- /dev/null +++ b/opt-ext4-gz.yml @@ -0,0 +1,24 @@ +# +# Xenomai Real-Time System +# +# Copyright (c) Siemens AG, 2018 +# +# Authors: +# Quirin Gylstorff +# +# SPDX-License-Identifier: MIT +# + +header: + version: 8 + +repos: + isar: +patches: + 01-compress-ext4: +path: isar-patches/0001-classes-ext4.img-Compress.patch +repo: xenomai + +local_conf_header: + compress: | +COMPRESS = "gz" -- 2.20.1