aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2022-03-02 10:46:16 +0000
committerPeter Maydell <peter.maydell@linaro.org>2022-03-02 10:46:16 +0000
commit44efeb90b2d06635fd4052fa080b2a2ea480501f (patch)
treee8144a3d3385b747e4f20355d114af9ceadfcbe4 /scripts
parentc26fc53906b175b3639e030a287e7188534009b9 (diff)
parentb904a9096f112795e47986448c145f5970d33c33 (diff)
Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-and-semihosting-280222-1' into staging
Testing and semihosting updates: - restore TESTS/IMAGES filtering to docker tests - add NOUSER to alpine image - bump lcitool version - move arm64/s390x cross build images to lcitool - add aarch32 runner CI scripts - expand testing to more vectors - update s390x jobs to focal for gitlab/travis - disable threadcount for all sh4 - fix semihosting SYS_HEAPINFO and test # gpg: Signature made Mon 28 Feb 2022 18:46:41 GMT # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full] # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-testing-and-semihosting-280222-1: tests/tcg: port SYS_HEAPINFO to a system test semihosting/arm-compat: replace heuristic for softmmu SYS_HEAPINFO tests/tcg: completely disable threadcount for sh4 gitlab: upgrade the job definition for s390x to 20.04 travis.yml: Update the s390x jobs to Ubuntu Focal tests/tcg: add vectorised sha512 versions tests/tcg: add sha512 test tests/tcg: build sha1-vector with O3 and compare tests/tcg/ppc64: clean-up handling of byte-reverse gitlab: add a new aarch32 custom runner definition scripts/ci: allow for a secondary runner scripts/ci: add build env rules for aarch32 on aarch64 tests/docker: introduce debian-riscv64-test-cross tests/docker: update debian-s390x-cross with lcitool tests/docker: update debian-arm64-cross with lcitool tests/lcitool: update to latest version tests/docker: add NOUSER for alpine image tests/docker: restore TESTS/IMAGES filtering Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/ci/setup/build-environment.yml25
-rw-r--r--scripts/ci/setup/gitlab-runner.yml38
2 files changed, 63 insertions, 0 deletions
diff --git a/scripts/ci/setup/build-environment.yml b/scripts/ci/setup/build-environment.yml
index 599896cc5b..9182e0c253 100644
--- a/scripts/ci/setup/build-environment.yml
+++ b/scripts/ci/setup/build-environment.yml
@@ -19,6 +19,13 @@
- '((ansible_version.major == 2) and (ansible_version.minor >= 8)) or (ansible_version.major >= 3)'
msg: "Unsuitable ansible version, please use version 2.8.0 or later"
+ - name: Add armhf foreign architecture to aarch64 hosts
+ command: dpkg --add-architecture armhf
+ when:
+ - ansible_facts['distribution'] == 'Ubuntu'
+ - ansible_facts['architecture'] == 'aarch64'
+ - ansible_facts['distribution_version'] == '20.04'
+
- name: Update apt cache / upgrade packages via apt
apt:
update_cache: yes
@@ -115,6 +122,24 @@
- ansible_facts['distribution'] == 'Ubuntu'
- ansible_facts['distribution_version'] == '20.04'
+ - name: Install armhf cross-compile packages to build QEMU on AArch64 Ubuntu 20.04
+ package:
+ name:
+ - binutils-arm-linux-gnueabihf
+ - gcc-arm-linux-gnueabihf
+ - libblkid-dev:armhf
+ - libc6-dev:armhf
+ - libffi-dev:armhf
+ - libglib2.0-dev:armhf
+ - libmount-dev:armhf
+ - libpcre2-dev:armhf
+ - libpixman-1-dev:armhf
+ - zlib1g-dev:armhf
+ when:
+ - ansible_facts['distribution'] == 'Ubuntu'
+ - ansible_facts['distribution_version'] == '20.04'
+ - ansible_facts['architecture'] == 'aarch64'
+
- name: Install basic packages to build QEMU on EL8
dnf:
# This list of packages start with tests/docker/dockerfiles/centos8.docker
diff --git a/scripts/ci/setup/gitlab-runner.yml b/scripts/ci/setup/gitlab-runner.yml
index 1127db516f..33128be85d 100644
--- a/scripts/ci/setup/gitlab-runner.yml
+++ b/scripts/ci/setup/gitlab-runner.yml
@@ -69,3 +69,41 @@
name: gitlab-runner
state: started
enabled: yes
+
+ - name: Download secondary gitlab-runner
+ get_url:
+ dest: /usr/local/bin/gitlab-runner-arm
+ url: "https://s3.amazonaws.com/gitlab-runner-downloads/v{{ gitlab_runner_version }}/binaries/gitlab-runner-{{ gitlab_runner_os }}-arm"
+ owner: gitlab-runner
+ group: gitlab-runner
+ mode: u=rwx,g=rwx,o=rx
+ when:
+ - ansible_facts['distribution'] == 'Ubuntu'
+ - ansible_facts['architecture'] == 'aarch64'
+ - ansible_facts['distribution_version'] == '20.04'
+
+ - name: Register secondary gitlab-runner
+ command: "/usr/local/bin/gitlab-runner-arm register --non-interactive --url {{ gitlab_runner_server_url }} --registration-token {{ gitlab_runner_registration_token }} --executor shell --tag-list aarch32,{{ ansible_facts[\"distribution\"]|lower }}_{{ ansible_facts[\"distribution_version\"] }} --description '{{ ansible_facts[\"distribution\"] }} {{ ansible_facts[\"distribution_version\"] }} {{ ansible_facts[\"architecture\"] }} ({{ ansible_facts[\"os_family\"] }})'"
+ when:
+ - ansible_facts['distribution'] == 'Ubuntu'
+ - ansible_facts['architecture'] == 'aarch64'
+ - ansible_facts['distribution_version'] == '20.04'
+
+ - name: Install the secondary gitlab-runner service using its own functionality
+ command: /usr/local/bin/gitlab-runner-arm install --user gitlab-runner --working-directory /home/gitlab-runner/arm -n gitlab-runner-arm
+ register: gitlab_runner_install_service_result
+ failed_when: "gitlab_runner_install_service_result.rc != 0 and \"already exists\" not in gitlab_runner_install_service_result.stderr"
+ when:
+ - ansible_facts['distribution'] == 'Ubuntu'
+ - ansible_facts['architecture'] == 'aarch64'
+ - ansible_facts['distribution_version'] == '20.04'
+
+ - name: Enable the secondary gitlab-runner service
+ service:
+ name: gitlab-runner-arm
+ state: started
+ enabled: yes
+ when:
+ - ansible_facts['distribution'] == 'Ubuntu'
+ - ansible_facts['architecture'] == 'aarch64'
+ - ansible_facts['distribution_version'] == '20.04'