Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
cc0f87f
chore: make mender-orchestrator-support commercial
danielskinstad Oct 3, 2025
0493e06
Merge pull request #566 from danielskinstad/orch-support-commercial
danielskinstad Oct 6, 2025
4b7297a
test: mark mender-orchestrator-support and demo as commercial
danielskinstad Oct 7, 2025
130a1f0
Merge pull request #569 from danielskinstad/support-test
danielskinstad Oct 7, 2025
c7627c7
chore: Remove `mender-app-update-module`
lluiscampos Oct 9, 2025
fb2f679
chore: Remove /etc/timezone dependency in mender-configure
elkoniu Oct 9, 2025
b9a37b7
Merge pull request #570 from lluiscampos/MEN-8742-remove-app-update-m…
lluiscampos Oct 10, 2025
3e86e8d
Merge pull request #571 from elkoniu/fix-timezone-file
elkoniu Oct 10, 2025
602d196
ci: Update submodule link
elkoniu Oct 8, 2025
9b3dd9f
chore: Do not use hardcoded Debian version in scripts
elkoniu Oct 9, 2025
01f557f
chore: Update test scripts to support multiple Debian versions
elkoniu Oct 9, 2025
a81aa8a
ci: Update workflows to run on various Debian versions
elkoniu Oct 9, 2025
901beb9
ci: Refactor workflow templates
elkoniu Oct 13, 2025
056c33e
ci: Unify reading CI env variable
elkoniu Oct 13, 2025
c0e0f7a
Merge pull request #565 from elkoniu/update-tests-for-debian-13
elkoniu Oct 15, 2025
3d9a465
chore: Define, build and test packages for mender-docker-compose
vpodzime Oct 15, 2025
fd5b821
Merge pull request #572 from vpodzime/master-docker_compose_pkgs
vpodzime Oct 17, 2025
ba087c5
test: Update mender-test-containers to the latest master
vpodzime Oct 21, 2025
a0237f2
Merge pull request #573 from mendersoftware/master-test_conts_downgrade
vpodzime Oct 21, 2025
7797615
chore: bump tests/mender_test_containers from `b127f92` to `c42b778`
dependabot[bot] Nov 1, 2025
f4cc0b3
Merge pull request #574 from mendersoftware/dependabot/submodules/tes…
danielskinstad Nov 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 99 additions & 33 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ variables:
MENDER_CLI_VERSION:
value: "master"
description: "Version of mender-cli repository"
MENDER_APP_UPDATE_MODULE_VERSION:
value: "master"
description: "Version of mender-app-update-module repository"
MENDER_SETUP_VERSION:
value: "master"
description: "Version of mender-setup repository"
Expand All @@ -44,6 +41,9 @@ variables:
MENDER_ORCHESTRATOR_SUPPORT_VERSION:
value: "main"
description: "Version of mender-orchestrator-support repository"
MENDER_CONTAINER_MODULES_VERSION:
value: "main"
description: "Version of mender-container-modules repository"

# Bucket name
S3_BUCKET_NAME: "mender"
Expand Down Expand Up @@ -212,13 +212,12 @@ build:orig:all:
- fi
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-connect $MENDER_CONNECT_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-configure $MENDER_CONFIGURE_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-container-modules $MENDER_CONTAINER_MODULES_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-artifact $MENDER_ARTIFACT_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-cli $MENDER_CLI_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-app-update-module $MENDER_APP_UPDATE_MODULE_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-setup $MENDER_SETUP_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-snapshot $MENDER_SNAPSHOT_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-flash $MENDER_FLASH_VERSION true
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-orchestrator-support $MENDER_ORCHESTRATOR_SUPPORT_VERSION true
- find output -type f
artifacts:
paths:
Expand Down Expand Up @@ -248,15 +247,15 @@ build:pkgs:device-components:
- fi
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-connect $MENDER_CONNECT_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-configure $MENDER_CONFIGURE_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-app-update-module $MENDER_APP_UPDATE_MODULE_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-container-modules $MENDER_CONTAINER_MODULES_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-setup $MENDER_SETUP_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-snapshot $MENDER_SNAPSHOT_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-flash $MENDER_FLASH_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-orchestrator-support $MENDER_ORCHESTRATOR_SUPPORT_VERSION
- if [ -n "${MENDER_PRIVATE_REPO_ACCESS_TOKEN}" ]; then
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-gateway $MENDER_GATEWAY_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-monitor $MENDER_MONITOR_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-orchestrator $MENDER_ORCHESTRATOR_VERSION
- ./docker-build-package $BUILD $DISTRO $RELEASE $ARCH mender-orchestrator-support $MENDER_ORCHESTRATOR_SUPPORT_VERSION
- fi
- find output -type f
artifacts:
Expand Down Expand Up @@ -309,19 +308,23 @@ test:check-python3-formatting:
rules:
- if: '$TEST_MENDER_DIST_PACKAGES == "true"'

# This template setups the Docker based environment to test the packages
# from a specified Debian version
.test:pkgs:
stage: test
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:dind
tags:
#- mender-qa-worker-generic
- hetzner-amd-beefy
needs:
# Note that we are only testing packages from Debian bullseye
- "build:pkgs:device-components: [crosscompile, debian, bullseye, amd64]"
- "build:pkgs:device-components: [crosscompile, debian, bullseye, armhf]"
- "build:pkgs:workstation-tools: [crosscompile, debian, bullseye, amd64]"
# Bellow will be overwritten in the final pipeline definition with something like
# "build:pkgs:workstation-tools: [crosscompile, debian, trixie, amd64]"
needs: []
variables:
GIT_SUBMODULE_STRATEGY: recursive
# Bellow two variables need to be defined in the final pipeline and
# match each other to property reflect Debian version
# DEBIAN_VERSION (example: 11)
# DEBIAN_VERSION_NAME (example: "bullseye")
before_script:
# DinD setup in Mender CI runners
- unset DOCKER_HOST
Expand All @@ -342,54 +345,54 @@ test:check-python3-formatting:
- apk --update --no-cache add git
- git submodule sync --recursive
- git submodule update --init --recursive
- git submodule status --recursive
# Log in to pull test image from registry.gitlab.com
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
# Install dependencies
- apk --update --no-cache add python3 py3-pip gcc openssh-client make openssl-dev
libffi-dev libc-dev python3-dev bash musl-dev rust cargo
- pip3 install --break-system-packages -r tests/requirements.txt
- PIP_BREAK_SYSTEM_PACKAGES=1 pip3 install -r tests/requirements.txt
script:
- cd tests
- REFERENCE_DIST=debian-bullseye-amd64
- |-
commercial_tests_flags=""
if [ -f ${CI_PROJECT_DIR}/output/commercial/${REFERENCE_DIST}/mender-gateway-deb-version ] &&
[ -f ${CI_PROJECT_DIR}/output/commercial/${REFERENCE_DIST}/mender-monitor-deb-version ]; then
if [ -f ${CI_PROJECT_DIR}/output/commercial/debian-${DEBIAN_VERSION_NAME}-amd64/mender-gateway-deb-version ] &&
[ -f ${CI_PROJECT_DIR}/output/commercial/debian-${DEBIAN_VERSION_NAME}-amd64/mender-monitor-deb-version ]; then
commercial_tests_flags="--commercial-tests"
commercial_tests_flags="$commercial_tests_flags --mender-gateway-version $MENDER_GATEWAY_VERSION"
commercial_tests_flags="$commercial_tests_flags --mender-gateway-deb-version $(cat ${CI_PROJECT_DIR}/output/commercial/${REFERENCE_DIST}/mender-gateway-deb-version)"
commercial_tests_flags="$commercial_tests_flags --mender-gateway-deb-version $(cat ${CI_PROJECT_DIR}/output/commercial/debian-${DEBIAN_VERSION_NAME}-amd64/mender-gateway-deb-version)"
commercial_tests_flags="$commercial_tests_flags --mender-monitor-version $MENDER_MONITOR_VERSION"
commercial_tests_flags="$commercial_tests_flags --mender-monitor-deb-version $(cat ${CI_PROJECT_DIR}/output/commercial/${REFERENCE_DIST}/mender-monitor-deb-version)"
commercial_tests_flags="$commercial_tests_flags --mender-monitor-deb-version $(cat ${CI_PROJECT_DIR}/output/commercial/debian-${DEBIAN_VERSION_NAME}-amd64/mender-monitor-deb-version)"
commercial_tests_flags="$commercial_tests_flags --mender-orchestrator-version $MENDER_ORCHESTRATOR_VERSION"
commercial_tests_flags="$commercial_tests_flags --mender-orchestrator-deb-version $(cat ${CI_PROJECT_DIR}/output/commercial/${REFERENCE_DIST}/mender-orchestrator-deb-version)"
commercial_tests_flags="$commercial_tests_flags --mender-orchestrator-deb-version $(cat ${CI_PROJECT_DIR}/output/commercial/debian-${DEBIAN_VERSION_NAME}-amd64/mender-orchestrator-deb-version)"
# NOTE: Although mender-orchestrator-support is built with no closed source secrets, it cannot be tested without mender-orchestrator so it belongs to "commercial tests"
commercial_tests_flags="$commercial_tests_flags --mender-orchestrator-support-version $MENDER_ORCHESTRATOR_SUPPORT_VERSION"
commercial_tests_flags="$commercial_tests_flags --mender-orchestrator-support-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-orchestrator-support-deb-version)"
commercial_tests_flags="$commercial_tests_flags --mender-orchestrator-support-deb-version $(cat ${CI_PROJECT_DIR}/output/commercial/debian-${DEBIAN_VERSION_NAME}-amd64/mender-orchestrator-support-deb-version)"
fi
- python3 -m pytest -v
--mender-client-version $MENDER_VERSION
--mender-client-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-client*-deb-version)
--mender-client-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/debian-${DEBIAN_VERSION_NAME}-amd64/mender-client*-deb-version)
--mender-connect-version $MENDER_CONNECT_VERSION
--mender-connect-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-connect-deb-version)
--mender-connect-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/debian-${DEBIAN_VERSION_NAME}-amd64/mender-connect-deb-version)
--mender-configure-version $MENDER_CONFIGURE_VERSION
--mender-configure-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-configure-deb-version)
--mender-app-update-module-version $MENDER_APP_UPDATE_MODULE_VERSION
--mender-app-update-module-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-app-update-module-deb-version)
--mender-configure-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/debian-${DEBIAN_VERSION_NAME}-amd64/mender-configure-deb-version)
--mender-setup-version $MENDER_SETUP_VERSION
--mender-setup-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-setup-deb-version)
--mender-setup-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/debian-${DEBIAN_VERSION_NAME}-amd64/mender-setup-deb-version)
--mender-snapshot-version $MENDER_SNAPSHOT_VERSION
--mender-snapshot-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-snapshot-deb-version)
--mender-snapshot-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/debian-${DEBIAN_VERSION_NAME}-amd64/mender-snapshot-deb-version)
--mender-flash-version $MENDER_FLASH_VERSION
--mender-flash-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/${REFERENCE_DIST}/mender-flash-deb-version)
--mender-flash-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/debian-${DEBIAN_VERSION_NAME}-amd64/mender-flash-deb-version)
--mender-container-modules-version $MENDER_CONTAINER_MODULES_VERSION
--mender-container-modules-deb-version $(cat ${CI_PROJECT_DIR}/output/opensource/debian-${DEBIAN_VERSION_NAME}-amd64/mender-container-modules-deb-version)
${commercial_tests_flags}
--junit-xml results.xml
artifacts:
reports:
junit: tests/results.xml

test:pkgs:device-components:
.test:pkgs:device-components:
extends: .test:pkgs
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/arm32v7/debian:bullseye
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/arm32v7/debian:${DEBIAN_VERSION_NAME}
tags:
- hetzner-arm
rules:
Expand All @@ -399,12 +402,43 @@ test:pkgs:device-components:
- if: '$TEST_MENDER_DIST_PACKAGES == "true" && $MENDER_VERSION == "master"'
before_script:
- apt-get update
- apt-get -yyq install bash git python3-pip wget sudo
- apt-get -yyq install bash git python3-pip wget sudo python3-venv
- git submodule sync --recursive
- git submodule update --init --recursive
- pip3 install -r tests/requirements.txt
- git submodule status --recursive
- python3 -m venv venv
- source venv/bin/activate
- PIP_BREAK_SYSTEM_PACKAGES=1 pip3 install -r tests/requirements.txt

test:pkgs:device-components:bullseye:
extends: .test:pkgs:device-components
needs:
- "build:pkgs:device-components: [crosscompile, debian, bullseye, amd64]"
- "build:pkgs:device-components: [crosscompile, debian, bullseye, armhf]"
variables:
DEBIAN_VERSION: 11
DEBIAN_VERSION_NAME: "bullseye"

test:pkgs:device-components:bookworm:
extends: .test:pkgs:device-components
needs:
- "build:pkgs:device-components: [crosscompile, debian, bookworm, amd64]"
- "build:pkgs:device-components: [crosscompile, debian, bookworm, armhf]"
variables:
DEBIAN_VERSION: 12
DEBIAN_VERSION_NAME: "bookworm"

test:pkgs:device-components:trixie:
extends: .test:pkgs:device-components
needs:
- "build:pkgs:device-components: [crosscompile, debian, trixie, amd64]"
- "build:pkgs:device-components: [crosscompile, debian, trixie, armhf]"
variables:
DEBIAN_VERSION: 13
DEBIAN_VERSION_NAME: "trixie"

test:install-script:
# This template allows testing installation sctip agains different Debian versions
.test:install-script:
rules:
- if: '$TEST_MENDER_DIST_PACKAGES == "true"'
extends: .test:pkgs
Expand All @@ -416,6 +450,38 @@ test:install-script:
reports:
junit: scripts/tests/results.xml

test:install-script:bullseye:
extends: .test:install-script
needs:
- "build:pkgs:device-components: [crosscompile, debian, bullseye, amd64]"
- "build:pkgs:device-components: [crosscompile, debian, bullseye, armhf]"
- "build:pkgs:workstation-tools: [crosscompile, debian, bullseye, amd64]"
variables:
DEBIAN_VERSION: 11
DEBIAN_VERSION_NAME: "bullseye"

test:install-script:bookworm:
extends: .test:install-script
needs:
- "build:pkgs:device-components: [crosscompile, debian, bookworm, amd64]"
- "build:pkgs:device-components: [crosscompile, debian, bookworm, armhf]"
- "build:pkgs:workstation-tools: [crosscompile, debian, bookworm, amd64]"
variables:
DEBIAN_VERSION: 12
DEBIAN_VERSION_NAME: "bookworm"

test:install-script:trixie:
extends: .test:install-script
needs:
- "build:pkgs:device-components: [crosscompile, debian, trixie, amd64]"
- "build:pkgs:device-components: [crosscompile, debian, trixie, armhf]"
- "build:pkgs:workstation-tools: [crosscompile, debian, trixie, amd64]"
variables:
DEBIAN_VERSION: 13
DEBIAN_VERSION_NAME: "trixie"

# This is a template for testing workstation-tools agains different Debian version
# which will be redefined when template will be extended.
.test:pkgs:workstation-tools:
variables:
DEBIAN_VERSION: 12
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ can be one of the following values:
The `package-name` and `version` define what should be built. Possible package
names correspond to the Mender components:

- `mender-app-update-module`
- `mender-artifact`
- `mender-cli`
- `mender-client4`
Expand Down
15 changes: 7 additions & 8 deletions docker-build-package
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,6 @@ declare -A mender_gateway_props=(
[commercial]="true"
)

declare -A mender_app_update_module_props=(
[recipe_name]="mender-app-update-module"
[src_url]="https://github.com/mendersoftware/app-update-module"
[arch_indep]="true"
[commercial]="false"
)

declare -A mender_setup_props=(
[recipe_name]="mender-setup"
[src_url]="https://github.com/mendersoftware/mender-setup"
Expand All @@ -100,6 +93,12 @@ declare -A mender_orchestrator_support_props=(
[recipe_name]="mender-orchestrator-support"
[src_url]="https://github.com/mendersoftware/mender-orchestrator-support"
[arch_indep]="true"
[commercial]="true"
)
declare -A mender_container_modules_props=(
[recipe_name]="mender-container-modules"
[src_url]="https://github.com/mendersoftware/mender-container-modules"
[arch_indep]="true"
[commercial]="false"
)

Expand All @@ -112,11 +111,11 @@ declare -a packages=(
mender_flash_props
mender_gateway_props
mender_monitor_props
mender_app_update_module_props
mender_setup_props
mender_snapshot_props
mender_orchestrator_props
mender_orchestrator_support_props
mender_container_modules_props
)

# Parse args
Expand Down
13 changes: 0 additions & 13 deletions recipes/mender-app-update-module/debian-master/control

This file was deleted.

This file was deleted.

8 changes: 0 additions & 8 deletions recipes/mender-app-update-module/debian-master/rules

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ if [ ! -f "$CONFIG" ]; then
CONFIG_DIR=$(dirname "$CONFIG")
[ -e "$CONFIG_DIR" ] || mkdir -p "$CONFIG_DIR"

# get the system's current time zone
TIMEZONE=$(cat /etc/timezone)
# Debian 13 no longer supports /etc/timezone - file not exists
# Instead /etc/localtime should be used as a timezone source
TIMEZONE=$(readlink -f /etc/localtime | sed 's|.*zoneinfo/||')

# if running on a Raspberry PI, set both timezone and mender-demo-raspberrypi-led keys
if [ -e /sys/class/leds/led0/trigger ]; then
Expand Down
13 changes: 13 additions & 0 deletions recipes/mender-container-modules/debian-master/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Source: mender-container-modules
Maintainer: Mender Team <mender@northern.tech>
Section: admin
Priority: optional
Standards-Version: 3.9.2
Build-Depends: debhelper (>= 9)

Package: mender-docker-compose
Architecture: all
Depends: jq, docker-ce-cli | docker.io, docker-compose-plugin | docker-compose, mender-update, ${misc:Depends}
Description: Mender docker-compose Update Module
mender-docker-compose provides the docker-compose Mender Update Module that allows Mender to
install and update Docker Compose projects on devices.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright 2023 Northern.tech AS
Copyright 2025 Northern.tech AS

All content in this project is licensed under the Apache License v2, unless
indicated otherwise.
Expand Down Expand Up @@ -179,4 +179,3 @@ indicated otherwise.
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/usr/share/mender/modules/v3/docker-compose
10 changes: 10 additions & 0 deletions recipes/mender-container-modules/debian-master/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/make -f

%:
dh $@

override_dh_auto_install:
DESTDIR=debian/tmp make install

override_dh_auto_test:
true
Loading