mirror of
https://github.com/balena-os/balena-supervisor.git
synced 2024-12-18 21:27:54 +00:00
0500fe10bb
Moby v25 adds the dynamically generated MAC address to the Config field, which breaks the state engine, preventing the state from settling as the current state never matches the target state (empty mac address). This seems to be a bug in Moby that we reported in moby/moby#47228 The issue won't affect Balena devices until balenaEngine is updated, and this change fixes testing for now. Change-type: patch
105 lines
2.8 KiB
YAML
105 lines
2.8 KiB
YAML
version: '2.3'
|
|
|
|
services:
|
|
balena-supervisor-sut:
|
|
build:
|
|
context: ./
|
|
dockerfile: Dockerfile.template
|
|
args:
|
|
ARCH: ${ARCH:-amd64}
|
|
command: ['/wait-for-it.sh', '--', '/usr/src/app/entry.sh']
|
|
stop_grace_period: 3s
|
|
# Use bridge networking for the tests
|
|
environment:
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/shared/dbus/system_bus_socket
|
|
# Required to skip device mounting in test env
|
|
TEST: 1
|
|
depends_on:
|
|
- docker
|
|
- mock-systemd
|
|
volumes:
|
|
- dbus:/shared/dbus
|
|
- ./test/data/root:/mnt/root
|
|
- ./test/data/root/mnt/boot:/mnt/boot
|
|
- ./test/lib/wait-for-it.sh:/wait-for-it.sh
|
|
tmpfs:
|
|
- /data # sqlite3 database
|
|
- /mnt/root/tmp
|
|
|
|
# The service setup
|
|
mock-systemd:
|
|
image: ghcr.io/balena-os/mock-systemd-bus
|
|
# Necessary to run systemd in a container
|
|
privileged: true
|
|
volumes:
|
|
- dbus:/shared/dbus
|
|
environment:
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/shared/dbus/system_bus_socket
|
|
MOCK_SYSTEMD_UNITS: openvpn.service avahi.socket
|
|
|
|
docker:
|
|
image: docker:24-dind
|
|
stop_grace_period: 3s
|
|
privileged: true
|
|
environment:
|
|
DOCKER_TLS_CERTDIR: ''
|
|
command: --tls=false # --debug
|
|
|
|
sut:
|
|
# Build the supervisor code for development and testing
|
|
build:
|
|
context: ./
|
|
dockerfile: Dockerfile.template
|
|
target: test
|
|
args:
|
|
# Change this if testing in another architecture
|
|
ARCH: ${ARCH:-amd64}
|
|
command:
|
|
[
|
|
'./test/lib/wait-for-it.sh',
|
|
'--supervisor',
|
|
'--',
|
|
'npm',
|
|
'run',
|
|
'test:integration',
|
|
]
|
|
depends_on:
|
|
- balena-supervisor-sut
|
|
- docker
|
|
- mock-systemd
|
|
stop_grace_period: 3s
|
|
volumes:
|
|
- dbus:/shared/dbus
|
|
# Set required supervisor configuration variables here
|
|
environment:
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/shared/dbus/system_bus_socket
|
|
BALENA_SUPERVISOR_ADDRESS: http://balena-supervisor-sut:48484
|
|
# Required by migrations
|
|
CONFIG_MOUNT_POINT: /mnt/boot/config.json
|
|
# Required to set mountpoints normally set in entry.sh
|
|
ROOT_MOUNTPOINT: /mnt/root
|
|
BOOT_MOUNTPOINT: /mnt/boot
|
|
HOST_OS_VERSION_PATH: /mnt/root/etc/os-release
|
|
STATE_MOUNTPOINT: /mnt/state
|
|
DATA_MOUNTPOINT: /mnt/data
|
|
DATABASE_PATH: /data/database.sqlite
|
|
# Set required mounts as tmpfs or volumes here
|
|
# if specific files need to be backed up between tests,
|
|
# make sure to add them to the `testfs` configuration under
|
|
# .mochapodrc.yml
|
|
tmpfs:
|
|
- /data
|
|
- /mnt/root
|
|
- /mnt/boot
|
|
- /mnt/state
|
|
- /mnt/data
|
|
|
|
volumes:
|
|
dbus:
|
|
driver_opts:
|
|
# Use tmpfs to avoid files remaining between runs
|
|
type: tmpfs
|
|
device: tmpfs
|