summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Vacek <patrickvacek@gmail.com>2020-03-03 10:05:36 +0100
committerGitHub <noreply@github.com>2020-03-03 10:05:36 +0100
commitbf39f0fec9ad410aa37d3001b11d9e731b39d6e7 (patch)
tree7584fa96d931353ee568e141c0cc210004cfb8e3
parentb7817c31a5c2096259be9715b44bd750a1d44acf (diff)
parent5f28db6a803ebb8082f92e96de95fbe130d4670e (diff)
downloadmeta-updater-bf39f0fec9ad410aa37d3001b11d9e731b39d6e7.tar.gz
Merge pull request #691 from advancedtelematic/feat/zeus/2020.3
Feat/zeus/2020.3
-rw-r--r--.gitignore1
-rw-r--r--classes/image_repo_manifest.bbclass2
-rw-r--r--classes/image_types_ostree.bbclass4
-rw-r--r--classes/sota.bbclass2
-rw-r--r--classes/sota_bleeding.inc1
-rw-r--r--classes/target_version_example.bbclass2
-rw-r--r--conf/distro/sota.conf.inc3
-rw-r--r--lib/oeqa/selftest/cases/testutils.py1
-rw-r--r--lib/oeqa/selftest/cases/updater_qemux86_64.py26
-rw-r--r--recipes-core/images/initramfs-ostree-image.bb4
-rw-r--r--recipes-sota/aktualizr/aktualizr_git.bb14
-rw-r--r--recipes-test/demo-config/files/30-ostree-pacman.toml2
-rw-r--r--recipes-test/demo-config/files/30-pacman-config.toml2
-rw-r--r--recipes-test/demo-config/secondary-config.bb22
-rw-r--r--recipes-test/demo-config/shared-conf.inc4
-rw-r--r--recipes-test/demo-network-config/files/25-dhcp-server.network4
-rw-r--r--recipes-test/demo-network-config/primary-network-config.bb2
-rw-r--r--recipes-test/demo-network-config/secondary-network-config.bb4
-rw-r--r--scripts/ci/Dockerfile.checkout13
-rwxr-xr-xscripts/ci/checkout-oe.sh78
-rwxr-xr-xscripts/ci/docker/setup_kvm.sh14
-rw-r--r--scripts/ci/gitlab/checkout.yml16
-rw-r--r--scripts/ci/gitlab/docker.yml37
-rw-r--r--scripts/ci/gitlab/tests.yml35
-rwxr-xr-xscripts/ci/oe-selftest.sh4
-rw-r--r--scripts/qemucommand.py1
26 files changed, 74 insertions, 224 deletions
diff --git a/.gitignore b/.gitignore
index 8d35cb3..147f162 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
1__pycache__ 1__pycache__
2*.pyc 2*.pyc
3.idea/
diff --git a/classes/image_repo_manifest.bbclass b/classes/image_repo_manifest.bbclass
index 0b311bd..72dc28f 100644
--- a/classes/image_repo_manifest.bbclass
+++ b/classes/image_repo_manifest.bbclass
@@ -9,8 +9,6 @@
9# For more information, see: 9# For more information, see:
10# https://web.archive.org/web/20161224194009/https://wiki.cyanogenmod.org/w/Doc:_Using_manifests 10# https://web.archive.org/web/20161224194009/https://wiki.cyanogenmod.org/w/Doc:_Using_manifests
11 11
12HOSTTOOLS_NONFATAL += "repo python"
13
14# Write build information to target filesystem 12# Write build information to target filesystem
15buildinfo_manifest () { 13buildinfo_manifest () {
16 if [ $(which repo) ]; then 14 if [ $(which repo) ]; then
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass
index 7e4a367..533d338 100644
--- a/classes/image_types_ostree.bbclass
+++ b/classes/image_types_ostree.bbclass
@@ -238,10 +238,10 @@ IMAGE_CMD_garagesign () {
238 target_version=${ostree_target_hash} 238 target_version=${ostree_target_hash}
239 if [ -n "${GARAGE_TARGET_VERSION}" ]; then 239 if [ -n "${GARAGE_TARGET_VERSION}" ]; then
240 target_version=${GARAGE_TARGET_VERSION} 240 target_version=${GARAGE_TARGET_VERSION}
241 bbwarn "Target version is overriden with GARAGE_TARGET_VERSION variable. It is a dangerous operation, make sure you've read the respective secion in meta-updater/README.adoc" 241 bbwarn "Target version is overriden with GARAGE_TARGET_VERSION variable. This is a dangerous operation! See https://docs.ota.here.com/ota-client/latest/build-configuration.html#_overriding_target_version"
242 elif [ -e "${STAGING_DATADIR_NATIVE}/target_version" ]; then 242 elif [ -e "${STAGING_DATADIR_NATIVE}/target_version" ]; then
243 target_version=$(cat "${STAGING_DATADIR_NATIVE}/target_version") 243 target_version=$(cat "${STAGING_DATADIR_NATIVE}/target_version")
244 bbwarn "Target version is overriden with target_version file. It is a dangerous operation, make sure you've read the respective secion in meta-updater/README.adoc" 244 bbwarn "Target version is overriden with target_version file. This is a dangerous operation! See https://docs.ota.here.com/ota-client/latest/build-configuration.html#_overriding_target_version"
245 fi 245 fi
246 246
247 # Push may fail due to race condition when multiple build machines try to push simultaneously 247 # Push may fail due to race condition when multiple build machines try to push simultaneously
diff --git a/classes/sota.bbclass b/classes/sota.bbclass
index 7bf17a4..71bd303 100644
--- a/classes/sota.bbclass
+++ b/classes/sota.bbclass
@@ -1,7 +1,5 @@
1DISTROOVERRIDES .= "${@bb.utils.contains('DISTRO_FEATURES', 'sota', ':sota', '', d)}" 1DISTROOVERRIDES .= "${@bb.utils.contains('DISTRO_FEATURES', 'sota', ':sota', '', d)}"
2 2
3HOSTTOOLS_NONFATAL += "java"
4
5SOTA_CLIENT ??= "aktualizr" 3SOTA_CLIENT ??= "aktualizr"
6SOTA_CLIENT_PROV ??= "aktualizr-shared-prov" 4SOTA_CLIENT_PROV ??= "aktualizr-shared-prov"
7SOTA_DEPLOY_CREDENTIALS ?= "1" 5SOTA_DEPLOY_CREDENTIALS ?= "1"
diff --git a/classes/sota_bleeding.inc b/classes/sota_bleeding.inc
index fc5947d..77d004b 100644
--- a/classes/sota_bleeding.inc
+++ b/classes/sota_bleeding.inc
@@ -1 +1,2 @@
1SRCREV_pn-aktualizr ?= "${AUTOREV}" 1SRCREV_pn-aktualizr ?= "${AUTOREV}"
2SRCREV_pn-aktualizr-native ?= "${AUTOREV}"
diff --git a/classes/target_version_example.bbclass b/classes/target_version_example.bbclass
index ef119fb..c0b5aec 100644
--- a/classes/target_version_example.bbclass
+++ b/classes/target_version_example.bbclass
@@ -1,7 +1,5 @@
1# Writes target version to be used by garage-sign 1# Writes target version to be used by garage-sign
2 2
3HOSTTOOLS += " git "
4
5deploy_target_version () { 3deploy_target_version () {
6 version=$(git --git-dir=${METADIR}/.repo/manifests/.git/ rev-parse HEAD) 4 version=$(git --git-dir=${METADIR}/.repo/manifests/.git/ rev-parse HEAD)
7 echo -n ${version} > ${STAGING_DATADIR_NATIVE}/target_version 5 echo -n ${version} > ${STAGING_DATADIR_NATIVE}/target_version
diff --git a/conf/distro/sota.conf.inc b/conf/distro/sota.conf.inc
index f6111bf..1d5f8df 100644
--- a/conf/distro/sota.conf.inc
+++ b/conf/distro/sota.conf.inc
@@ -16,4 +16,5 @@ INHERIT += "reproducible_build_simple"
16export SOURCE_DATE_EPOCH ?= "0" 16export SOURCE_DATE_EPOCH ?= "0"
17REPRODUCIBLE_TIMESTAMP_ROOTFS ?= "0" 17REPRODUCIBLE_TIMESTAMP_ROOTFS ?= "0"
18 18
19HOSTTOOLS_append = " sync sha256sum" 19HOSTTOOLS += "git sync sha256sum"
20HOSTTOOLS_NONFATAL += "java repo python"
diff --git a/lib/oeqa/selftest/cases/testutils.py b/lib/oeqa/selftest/cases/testutils.py
index ea7781b..3455fa8 100644
--- a/lib/oeqa/selftest/cases/testutils.py
+++ b/lib/oeqa/selftest/cases/testutils.py
@@ -49,6 +49,7 @@ def qemu_boot_image(imagename, **kwargs):
49 args.overlay = kwargs.get('overlay', None) 49 args.overlay = kwargs.get('overlay', None)
50 args.dry_run = kwargs.get('dry_run', False) 50 args.dry_run = kwargs.get('dry_run', False)
51 args.secondary_network = kwargs.get('secondary_network', False) 51 args.secondary_network = kwargs.get('secondary_network', False)
52 args.uboot_enable = kwargs.get('uboot_enable', 'yes')
52 53
53 qemu = QemuCommand(args) 54 qemu = QemuCommand(args)
54 cmdline = qemu.command_line() 55 cmdline = qemu.command_line()
diff --git a/lib/oeqa/selftest/cases/updater_qemux86_64.py b/lib/oeqa/selftest/cases/updater_qemux86_64.py
index 5f152ad..08220f4 100644
--- a/lib/oeqa/selftest/cases/updater_qemux86_64.py
+++ b/lib/oeqa/selftest/cases/updater_qemux86_64.py
@@ -112,6 +112,32 @@ class SharedCredProvTests(OESelftestTestCase):
112 verifyProvisioned(self, machine, hwid) 112 verifyProvisioned(self, machine, hwid)
113 113
114 114
115class SharedCredProvTestsNonOSTree(SharedCredProvTests):
116
117 def setUpLocal(self):
118 layer = "meta-updater-qemux86-64"
119 result = runCmd('bitbake-layers show-layers')
120 if re.search(layer, result.output) is None:
121 self.meta_qemu = metadir() + layer
122 runCmd('bitbake-layers add-layer "%s"' % self.meta_qemu)
123 else:
124 self.meta_qemu = None
125 self.append_config('MACHINE = "qemux86-64"')
126 self.append_config('SOTA_CLIENT_PROV = ""')
127 self.append_config('IMAGE_FSTYPES_remove = "ostreepush garagesign garagecheck"')
128 self.append_config('SOTA_HARDWARE_ID = "plain_reibekuchen_314"')
129
130 self.append_config('DISTRO = "poky"')
131 self.append_config('DISTRO_FEATURES_append = " systemd"')
132 self.append_config('VIRTUAL-RUNTIME_init_manager = "systemd"')
133 self.append_config('PREFERRED_RPROVIDER_virtual/network-configuration ??= "networkd-dhcp-conf"')
134 self.append_config('PACKAGECONFIG_pn-aktualizr = ""')
135 self.append_config('SOTA_DEPLOY_CREDENTIALS = "1"')
136 self.append_config('IMAGE_INSTALL_append += "aktualizr"')
137 self.append_config('IMAGE_INSTALL_append += " aktualizr-shared-prov"')
138 self.qemu, self.s = qemu_launch(machine='qemux86-64', uboot_enable='no')
139
140
115class ManualControlTests(OESelftestTestCase): 141class ManualControlTests(OESelftestTestCase):
116 142
117 def setUpLocal(self): 143 def setUpLocal(self):
diff --git a/recipes-core/images/initramfs-ostree-image.bb b/recipes-core/images/initramfs-ostree-image.bb
index 7e03f3d..936c59a 100644
--- a/recipes-core/images/initramfs-ostree-image.bb
+++ b/recipes-core/images/initramfs-ostree-image.bb
@@ -13,6 +13,8 @@ IMAGE_LINGUAS = ""
13 13
14LICENSE = "MIT" 14LICENSE = "MIT"
15 15
16IMAGE_CLASSES_remove = "image_repo_manifest"
17
16IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" 18IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
17 19
18# Avoid circular dependencies 20# Avoid circular dependencies
@@ -28,5 +30,3 @@ IMAGE_ROOTFS_EXTRA_SPACE = "0"
28IMAGE_OVERHEAD_FACTOR = "1.0" 30IMAGE_OVERHEAD_FACTOR = "1.0"
29 31
30BAD_RECOMMENDATIONS += "busybox-syslog" 32BAD_RECOMMENDATIONS += "busybox-syslog"
31
32IMAGE_PREPROCESS_COMMAND_remove = "buildinfo_manifest;"
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb
index 0aa5702..804f2c2 100644
--- a/recipes-sota/aktualizr/aktualizr_git.bb
+++ b/recipes-sota/aktualizr/aktualizr_git.bb
@@ -15,7 +15,7 @@ RDEPENDS_${PN}-ptest += "bash cmake curl net-tools python3-core python3-misc pyt
15PV = "1.0+git${SRCPV}" 15PV = "1.0+git${SRCPV}"
16PR = "7" 16PR = "7"
17 17
18GARAGE_SIGN_PV = "0.7.0-64-gc7c279f" 18GARAGE_SIGN_PV = "0.7.0-70-g3adf982"
19 19
20SRC_URI = " \ 20SRC_URI = " \
21 gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH};name=aktualizr \ 21 gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH};name=aktualizr \
@@ -27,10 +27,10 @@ SRC_URI = " \
27 ${@ d.expand("https://ats-tuf-cli-releases.s3-eu-central-1.amazonaws.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0;name=garagesign") if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''} \ 27 ${@ d.expand("https://ats-tuf-cli-releases.s3-eu-central-1.amazonaws.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0;name=garagesign") if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''} \
28 " 28 "
29 29
30SRC_URI[garagesign.md5sum] = "36dedbf79f71cb697a18251ea121bcc6" 30SRC_URI[garagesign.md5sum] = "7c4cbeacefd97eae69104d29cf5ff37a"
31SRC_URI[garagesign.sha256sum] = "f0a8e4bb258fd65a6f1fe561132d5ab3fe25b76aec0f1873993dc65bf2167608" 31SRC_URI[garagesign.sha256sum] = "e9a9b68eaa1ce4104eb2ab7f1f59d99742d50805e93216fb5b21d1f212aa3d82"
32 32
33SRCREV = "56ac8dafb552b1d15638162ca14e0b818ed5e65f" 33SRCREV = "9f2cc5d7b026eb1a1404f0c77ef6cb9377245423"
34BRANCH ?= "master" 34BRANCH ?= "master"
35 35
36S = "${WORKDIR}/git" 36S = "${WORKDIR}/git"
@@ -151,7 +151,7 @@ FILES_${PN} = " \
151 " 151 "
152 152
153FILES_${PN}-lib = " \ 153FILES_${PN}-lib = " \
154 ${libdir}/libaktualizr_lib.so \ 154 ${libdir}/libaktualizr.so \
155 " 155 "
156 156
157FILES_${PN}-resource-control = " \ 157FILES_${PN}-resource-control = " \
@@ -170,11 +170,11 @@ FILES_${PN}-secondary = " \
170 " 170 "
171 171
172FILES_${PN}-secondary-lib = " \ 172FILES_${PN}-secondary-lib = " \
173 ${libdir}/libaktualizr_secondary_lib.so \ 173 ${libdir}/libaktualizr_secondary.so \
174 " 174 "
175 175
176FILES_${PN}-sotatools-lib = " \ 176FILES_${PN}-sotatools-lib = " \
177 ${libdir}/libsota_tools_lib.so \ 177 ${libdir}/libsota_tools.so \
178 " 178 "
179 179
180FILES_${PN}-dev = "" 180FILES_${PN}-dev = ""
diff --git a/recipes-test/demo-config/files/30-ostree-pacman.toml b/recipes-test/demo-config/files/30-ostree-pacman.toml
deleted file mode 100644
index d2cf5b8..0000000
--- a/recipes-test/demo-config/files/30-ostree-pacman.toml
+++ /dev/null
@@ -1,2 +0,0 @@
1[pacman]
2type = "ostree"
diff --git a/recipes-test/demo-config/files/30-pacman-config.toml b/recipes-test/demo-config/files/30-pacman-config.toml
new file mode 100644
index 0000000..750cf5c
--- /dev/null
+++ b/recipes-test/demo-config/files/30-pacman-config.toml
@@ -0,0 +1,2 @@
1[pacman]
2type = @UPDATE_TYPE@
diff --git a/recipes-test/demo-config/secondary-config.bb b/recipes-test/demo-config/secondary-config.bb
index 58b18df..638f0ae 100644
--- a/recipes-test/demo-config/secondary-config.bb
+++ b/recipes-test/demo-config/secondary-config.bb
@@ -10,16 +10,32 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
10SECONDARY_SERIAL_ID ?= "" 10SECONDARY_SERIAL_ID ?= ""
11SOTA_HARDWARE_ID ?= "${MACHINE}-sndry" 11SOTA_HARDWARE_ID ?= "${MACHINE}-sndry"
12SECONDARY_HARDWARE_ID ?= "${SOTA_HARDWARE_ID}" 12SECONDARY_HARDWARE_ID ?= "${SOTA_HARDWARE_ID}"
13SECONDARY_UPDATE_TYPE ?= "ostree"
14
15UPDATE_TYPE = "${SECONDARY_UPDATE_TYPE}"
16python () {
17 update_type = d.getVar('UPDATE_TYPE')
18 if update_type not in [ 'ostree', 'file']:
19 bb.fatal('Unsupported type of an update specified for secondary: SECONDARY_UPDATE_TYPE = {}\n'
20 'Supported update types are: ostree and file'
21 .format(update_type))
22
23 if update_type == 'file':
24 d.setVar('UPDATE_TYPE', 'none')
25}
13 26
14SRC_URI = "\ 27SRC_URI = "\
15 file://30-ostree-pacman.toml \ 28 file://30-pacman-config.toml \
16 file://35-network-config.toml \ 29 file://35-network-config.toml \
17 file://45-id-config.toml \ 30 file://45-id-config.toml \
18 " 31 "
19 32
33
20do_install () { 34do_install () {
21 install -m 0700 -d ${D}${libdir}/sota/conf.d 35 install -m 0700 -d ${D}${libdir}/sota/conf.d
22 install -m 0644 ${WORKDIR}/30-ostree-pacman.toml ${D}${libdir}/sota/conf.d/30-ostree-pacman.toml 36
37 install -m 0644 ${WORKDIR}/30-pacman-config.toml ${D}${libdir}/sota/conf.d/30-pacman-config.toml
38 sed -i -e 's|@UPDATE_TYPE@|${UPDATE_TYPE}|g' ${D}${libdir}/sota/conf.d/30-pacman-config.toml
23 39
24 install -m 0644 ${WORKDIR}/35-network-config.toml ${D}${libdir}/sota/conf.d/35-network-config.toml 40 install -m 0644 ${WORKDIR}/35-network-config.toml ${D}${libdir}/sota/conf.d/35-network-config.toml
25 sed -i -e 's|@PORT@|${SECONDARY_PORT}|g' \ 41 sed -i -e 's|@PORT@|${SECONDARY_PORT}|g' \
@@ -36,7 +52,7 @@ do_install () {
36 52
37FILES_${PN} = " \ 53FILES_${PN} = " \
38 ${libdir}/sota/conf.d \ 54 ${libdir}/sota/conf.d \
39 ${libdir}/sota/conf.d/30-ostree-pacman.toml \ 55 ${libdir}/sota/conf.d/30-pacman-config.toml \
40 ${libdir}/sota/conf.d/35-network-config.toml \ 56 ${libdir}/sota/conf.d/35-network-config.toml \
41 ${libdir}/sota/conf.d/45-id-config.toml \ 57 ${libdir}/sota/conf.d/45-id-config.toml \
42 " 58 "
diff --git a/recipes-test/demo-config/shared-conf.inc b/recipes-test/demo-config/shared-conf.inc
index c5ab598..5523406 100644
--- a/recipes-test/demo-config/shared-conf.inc
+++ b/recipes-test/demo-config/shared-conf.inc
@@ -1,5 +1,5 @@
1SECONDARY_IP ?= "10.0.3.2" 1SECONDARY_IP ?= "192.168.254.2"
2SECONDARY_PORT ?= "9050" 2SECONDARY_PORT ?= "9050"
3PRIMARY_IP ?= "10.0.3.1" 3PRIMARY_IP ?= "192.168.254.1"
4PRIMARY_PORT ?= "9040" 4PRIMARY_PORT ?= "9040"
5PRIMARY_WAIT_TIMEOUT ?= "240" 5PRIMARY_WAIT_TIMEOUT ?= "240"
diff --git a/recipes-test/demo-network-config/files/25-dhcp-server.network b/recipes-test/demo-network-config/files/25-dhcp-server.network
index 4766f9a..03bb302 100644
--- a/recipes-test/demo-network-config/files/25-dhcp-server.network
+++ b/recipes-test/demo-network-config/files/25-dhcp-server.network
@@ -4,9 +4,9 @@ Name=enp0s4
4[Network] 4[Network]
5Description=Private internal network between aktualizr Primary and Secondary nodes 5Description=Private internal network between aktualizr Primary and Secondary nodes
6DHCPServer=yes 6DHCPServer=yes
7Address=10.0.3.1/24 7Address=192.168.254.1/24
8IPForward=yes 8IPForward=yes
9IPMasquerade=yes 9IPMasquerade=yes
10 10
11[DHCPServer] 11[DHCPServer]
12PoolOffset=10 \ No newline at end of file 12PoolOffset=10
diff --git a/recipes-test/demo-network-config/primary-network-config.bb b/recipes-test/demo-network-config/primary-network-config.bb
index 544a5ec..7ee873f 100644
--- a/recipes-test/demo-network-config/primary-network-config.bb
+++ b/recipes-test/demo-network-config/primary-network-config.bb
@@ -15,7 +15,7 @@ do_install() {
15 install -m 0644 ${WORKDIR}/27-dhcp-client-external.network ${D}${libdir}/systemd/network/ 15 install -m 0644 ${WORKDIR}/27-dhcp-client-external.network ${D}${libdir}/systemd/network/
16} 16}
17 17
18PRIMARY_IP ?= "10.0.3.1" 18PRIMARY_IP ?= "192.168.254.1"
19 19
20IP_ADDR = "${PRIMARY_IP}" 20IP_ADDR = "${PRIMARY_IP}"
21CONF_TYPE ?= "${@ 'multihomed' if d.getVar('MACHINE') == 'raspberrypi3' and d.getVar('RPI_WIFI_ENABLE') != '1' else 'static'}" 21CONF_TYPE ?= "${@ 'multihomed' if d.getVar('MACHINE') == 'raspberrypi3' and d.getVar('RPI_WIFI_ENABLE') != '1' else 'static'}"
diff --git a/recipes-test/demo-network-config/secondary-network-config.bb b/recipes-test/demo-network-config/secondary-network-config.bb
index ca83d53..b268cd3 100644
--- a/recipes-test/demo-network-config/secondary-network-config.bb
+++ b/recipes-test/demo-network-config/secondary-network-config.bb
@@ -19,9 +19,9 @@ do_install() {
19 install -m 0644 ${WORKDIR}/27-dhcp-client-external.network ${D}${libdir}/systemd/network/ 19 install -m 0644 ${WORKDIR}/27-dhcp-client-external.network ${D}${libdir}/systemd/network/
20} 20}
21 21
22SECONDARY_IP ?= "10.0.3.2" 22SECONDARY_IP ?= "192.168.254.2"
23IP_ADDR = "${SECONDARY_IP}" 23IP_ADDR = "${SECONDARY_IP}"
24CONF_TYPE = "static" 24CONF_TYPE ?= "${@ 'multihomed' if d.getVar('MACHINE') == 'raspberrypi3' and d.getVar('RPI_WIFI_ENABLE') != '1' else 'static'}"
25 25
26require network-config.inc 26require network-config.inc
27 27
diff --git a/scripts/ci/Dockerfile.checkout b/scripts/ci/Dockerfile.checkout
deleted file mode 100644
index 5210c6b..0000000
--- a/scripts/ci/Dockerfile.checkout
+++ /dev/null
@@ -1,13 +0,0 @@
1FROM debian:stretch-slim
2LABEL Description="Image for checking out updater-repo"
3
4RUN sed -i 's#deb http://deb.debian.org/debian stretch main#deb http://deb.debian.org/debian stretch main contrib#g' /etc/apt/sources.list
5RUN sed -i 's#deb http://deb.debian.org/debian stretch-updates main#deb http://deb.debian.org/debian stretch-updates main contrib#g' /etc/apt/sources.list
6RUN apt-get update -q && apt-get install -qy \
7 git \
8 repo \
9 xmlstarlet
10
11# checkout script
12RUN mkdir /scripts
13COPY checkout-oe.sh /scripts/
diff --git a/scripts/ci/checkout-oe.sh b/scripts/ci/checkout-oe.sh
deleted file mode 100755
index e8a2473..0000000
--- a/scripts/ci/checkout-oe.sh
+++ /dev/null
@@ -1,78 +0,0 @@
1#!/usr/bin/env bash
2
3set -euo pipefail
4
5set -x
6
7REMOTE_SOURCE=${REMOTE_SOURCE:-https://github.com/advancedtelematic}
8MANIFEST=${MANIFEST:-master}
9CURRENT_PROJECT=${CURRENT_PROJECT:-}
10
11# list of projects to pin to one version in the format:
12# "project:rev;project2:rev2..."
13PIN_LIST=${PIN_LIST:-}
14
15#CURRENT_REV=$(git rev-parse HEAD)
16LOCAL_REPO=$PWD
17
18mkdir -p updater-repo
19
20cd updater-repo
21
22if [ -d .repo/manifests ]; then
23 git -C .repo/manifests reset --hard
24fi
25
26repo init -m "${MANIFEST}.xml" -u "$REMOTE_SOURCE/updater-repo"
27
28# patch manifest:
29# - add a new "ats" remote that points to "$REMOTE_SOURCE"
30# - change projects that contain "advancedtelematic" to use the ats remote
31MANIFEST_FILE=".repo/manifests/${MANIFEST}.xml"
32xmlstarlet ed --omit-decl -L \
33 -s "/manifest" -t elem -n "remote" -v "" \
34 -i "/manifest/remote[last()]" -t attr -n "name" -v "ats" \
35 -i "/manifest/remote[last()]" -t attr -n "fetch" -v "$REMOTE_SOURCE" \
36 -d "/manifest/project[contains(@name, 'advancedtelematic')]/@remote" \
37 -i "/manifest/project[contains(@name, 'advancedtelematic')]" -t attr -n "remote" -v "ats" \
38 "$MANIFEST_FILE"
39
40# hack: sed on `advancedtelematic/` names, to remove this unwanted prefix
41sed -i 's#name="advancedtelematic/#name="#g' "$MANIFEST_FILE"
42
43# pin projects from the list
44(
45IFS=";"
46for pin in $PIN_LIST; do
47 IFS=":"
48 read -r project rev <<< "$pin"
49 xmlstarlet ed --omit-decl -L \
50 -d "/manifest/project[@name=\"$project\"]/@revision" \
51 -i "/manifest/project[@name=\"$project\"]/@revision" -t attr -n "revision" -v "$rev" \
52 -i "/manifest/project[@name=\"$project\"]" -t attr -n "revision" -v "$rev" \
53 "$MANIFEST_FILE"
54 IFS=";"
55done
56)
57
58# Remove the current project from the manifest if we have it checked out
59if [ -n "$CURRENT_PROJECT" ]; then
60 xmlstarlet ed --omit-decl -L \
61 -d "/manifest/project[@name=\"$CURRENT_PROJECT\"]" \
62 "$MANIFEST_FILE"
63fi
64
65repo manifest
66
67# Try to clean up the repos in case they are messed up, but this returns an
68# error code if the repos don't exist, which the subsequent repo sync will fix.
69repo forall -c 'git reset --hard ; git clean -fdx' || true
70
71repo sync -d --force-sync
72
73if [ -n "$CURRENT_PROJECT" ]; then
74 rm -f "$CURRENT_PROJECT"
75 ln -s "$LOCAL_REPO" "$CURRENT_PROJECT"
76fi
77
78repo manifest -r
diff --git a/scripts/ci/docker/setup_kvm.sh b/scripts/ci/docker/setup_kvm.sh
deleted file mode 100755
index 1ffbbf5..0000000
--- a/scripts/ci/docker/setup_kvm.sh
+++ /dev/null
@@ -1,14 +0,0 @@
1#!/usr/bin/env bash
2
3# This script makes the gid of the 'kvm' group to match the group
4# owner of '/dev/kvm'
5#
6# These two are not guaranteed to match when a docker image starts
7# with access to '/dev/kvm' that comes from the host
8
9set -euo pipefail
10
11kvm_gid=$(stat -c "%g" /dev/kvm)
12groupmod -g "$kvm_gid" kvm
13usermod -a -G kvm bitbake
14ln -s /bin/true /usr/bin/kvm-ok
diff --git a/scripts/ci/gitlab/checkout.yml b/scripts/ci/gitlab/checkout.yml
deleted file mode 100644
index 28c9177..0000000
--- a/scripts/ci/gitlab/checkout.yml
+++ /dev/null
@@ -1,16 +0,0 @@
1.bb_checkout:
2 # parameters:
3 # - MANIFEST
4 # - REMOTE_SOURCE
5 # - CURRENT_PROJECT (will be symlinked instead of pulled)
6
7 image: $BITBAKE_CHECKOUT_IMAGE
8 cache:
9 paths:
10 - updater-repo
11 artifacts:
12 expire_in: "1 day"
13 paths:
14 - updater-repo
15 script:
16 - /scripts/checkout-oe.sh
diff --git a/scripts/ci/gitlab/docker.yml b/scripts/ci/gitlab/docker.yml
deleted file mode 100644
index ba488c6..0000000
--- a/scripts/ci/gitlab/docker.yml
+++ /dev/null
@@ -1,37 +0,0 @@
1.bb_docker_local:
2 # intended to be run on meta-updater's master branch which contains the
3 # reference docker files
4 # parameters:
5 # - BITBAKE_IMAGE
6 # - BITBAKE_CHECKOUT_IMAGE
7 # - BITBKAE_IMAGE_MASTER
8 # - BITBAKE_CHECKOUT_IMAGE_MASTER
9 image: docker:18
10 stage: docker
11 services:
12 - docker:18-dind
13 script:
14 - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
15
16 - docker pull "$BITBAKE_IMAGE" || docker pull "$BITBKAE_IMAGE_MASTER" || true
17 - docker build --pull --cache-from "$BITBKAE_IMAGE_MASTER" --cache-from "$BITBAKE_IMAGE" -f ./scripts/ci/Dockerfile.bitbake -t "$BITBAKE_IMAGE" ./scripts/ci
18 - docker push "$BITBAKE_IMAGE"
19
20 - docker pull "$BITBAKE_CHECKOUT_IMAGE" || docker pull "$BITBAKE_CHECKOUT_IMAGE_MASTER" || true
21 - docker build --pull --cache-from "$BITBAKE_CHECKOUT_IMAGE_MASTER" --cache-from "$BITBAKE_CHECKOUT_IMAGE" -f ./scripts/ci/Dockerfile.checkout -t "$BITBAKE_CHECKOUT_IMAGE" ./scripts/ci
22 - docker push "$BITBAKE_CHECKOUT_IMAGE"
23
24.bb_docker_remote:
25 # intended to be run on other branches and repos: just pulls the last master image
26 # parameters:
27 # - BITBAKE_IMAGE
28 # - BITBAKE_CHECKOUT_IMAGE
29 image: docker:18
30 stage: docker
31 services:
32 - docker:18-dind
33 script:
34 - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
35
36 - docker pull "$BITBAKE_IMAGE"
37 - docker pull "$BITBAKE_CHECKOUT_IMAGE"
diff --git a/scripts/ci/gitlab/tests.yml b/scripts/ci/gitlab/tests.yml
deleted file mode 100644
index 4175412..0000000
--- a/scripts/ci/gitlab/tests.yml
+++ /dev/null
@@ -1,35 +0,0 @@
1.bitbake:
2 # parameters:
3 # - TEST_BUILD_DIR
4 # - TEST_MACHINE (defaults to qemux86-64)
5 # - BITBAKE_TARGETS
6 image: $BITBAKE_IMAGE
7 dependencies:
8 - Checkout
9 tags:
10 - bitbake
11 script:
12 - /scripts/configure.sh
13 - /scripts/build.sh $BITBAKE_TARGETS
14
15.oe-selftest:
16 # parameters:
17 # - TEST_BUILD_DIR
18 # - TEST_MACHINE (defaults to qemux86-64)
19 # - OE_SELFTESTS
20 image: $BITBAKE_IMAGE
21 dependencies:
22 - Checkout
23 tags:
24 - bitbake
25 variables:
26 TEST_AKTUALIZR_CREDENTIALS: $CI_PROJECT_DIR/credentials.zip
27 script:
28 - aws s3 cp s3://ota-gitlab-ci/hereotaconnect_prod.zip credentials.zip
29 - sudo /usr/local/bin/setup_kvm.sh
30 - |
31 # sg is needed after adding bitbake to the kvm group (see setup_kvm.sh)
32 sg kvm << EOS
33 /scripts/configure.sh
34 /scripts/oe-selftest.sh $OE_SELFTESTS
35 EOS
diff --git a/scripts/ci/oe-selftest.sh b/scripts/ci/oe-selftest.sh
index 178e7c1..d441d02 100755
--- a/scripts/ci/oe-selftest.sh
+++ b/scripts/ci/oe-selftest.sh
@@ -22,5 +22,9 @@ set -x
22# see https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=d3a94e5b9b3c107cf54d5639071cc6609c002f67 22# see https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=d3a94e5b9b3c107cf54d5639071cc6609c002f67
23mkdir -p "tmp/log" 23mkdir -p "tmp/log"
24 24
25# This is apparently required here now as well.
26git config --global user.email "meta-updater-ci@example.org"
27git config --global user.name "meta-updater-ci"
28
25oe-selftest -r "$@" 29oe-selftest -r "$@"
26) 30)
diff --git a/scripts/qemucommand.py b/scripts/qemucommand.py
index 86b5b9f..30929ac 100644
--- a/scripts/qemucommand.py
+++ b/scripts/qemucommand.py
@@ -40,7 +40,6 @@ def random_mac():
40 40
41class QemuCommand(object): 41class QemuCommand(object):
42 def __init__(self, args): 42 def __init__(self, args):
43 print(args)
44 self.enable_u_boot = True 43 self.enable_u_boot = True
45 self.dry_run = args.dry_run 44 self.dry_run = args.dry_run
46 self.overlay = args.overlay 45 self.overlay = args.overlay