2022-08-22 23:54:21 +00:00
|
|
|
version: '2.3'
|
|
|
|
|
|
|
|
services:
|
|
|
|
# Override the supervisor service configuration. The tests will
|
|
|
|
# be run through the `sut` service
|
|
|
|
balena-supervisor:
|
|
|
|
build:
|
|
|
|
context: ./
|
2022-11-02 18:56:48 +00:00
|
|
|
dockerfile: Dockerfile.template
|
|
|
|
args:
|
|
|
|
ARCH: ${ARCH:-amd64}
|
2022-11-08 23:41:52 +00:00
|
|
|
command: [ '/wait-for-it.sh', '--', '/usr/src/app/entry.sh' ]
|
2022-10-31 21:31:43 +00:00
|
|
|
stop_grace_period: 3s
|
2022-11-02 18:56:48 +00:00
|
|
|
# Use bridge networking for the tests
|
|
|
|
network_mode: 'bridge'
|
|
|
|
networks:
|
|
|
|
- default
|
|
|
|
environment:
|
|
|
|
DOCKER_HOST: tcp://docker:2375
|
|
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/run/dbus/system_bus_socket
|
2023-02-21 06:11:27 +00:00
|
|
|
# Required to skip device mounting in test env
|
|
|
|
TEST: 1
|
2022-11-02 18:56:48 +00:00
|
|
|
depends_on:
|
|
|
|
- docker
|
|
|
|
- dbus
|
|
|
|
- dbus-services
|
|
|
|
volumes:
|
|
|
|
- dbus:/run/dbus
|
|
|
|
- ./test/data/root:/mnt/root
|
2023-02-21 06:11:27 +00:00
|
|
|
- ./test/data/root/mnt/boot:/mnt/boot
|
2022-11-02 18:56:48 +00:00
|
|
|
- ./test/lib/wait-for-it.sh:/wait-for-it.sh
|
|
|
|
tmpfs:
|
2022-11-08 23:41:52 +00:00
|
|
|
- /data # sqlite3 database
|
2022-08-22 23:54:21 +00:00
|
|
|
|
2022-08-25 17:12:53 +00:00
|
|
|
dbus:
|
2022-09-29 20:52:29 +00:00
|
|
|
image: balenablocks/dbus
|
2022-10-31 21:31:43 +00:00
|
|
|
stop_grace_period: 3s
|
2022-09-29 20:52:29 +00:00
|
|
|
environment:
|
|
|
|
DBUS_CONFIG: session.conf
|
|
|
|
DBUS_ADDRESS: unix:path=/run/dbus/system_bus_socket
|
|
|
|
volumes:
|
|
|
|
- dbus:/run/dbus
|
|
|
|
|
|
|
|
# Fake system service to listen for supervisor
|
|
|
|
# requests
|
|
|
|
dbus-services:
|
|
|
|
build: ./test/lib/dbus
|
2022-10-31 21:31:43 +00:00
|
|
|
stop_grace_period: 3s
|
2022-09-29 20:52:29 +00:00
|
|
|
depends_on:
|
|
|
|
- dbus
|
|
|
|
volumes:
|
|
|
|
- dbus:/run/dbus
|
|
|
|
environment:
|
|
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/run/dbus/system_bus_socket
|
2022-08-25 17:12:53 +00:00
|
|
|
|
2022-08-22 23:54:21 +00:00
|
|
|
docker:
|
|
|
|
image: docker:dind
|
2022-10-31 21:31:43 +00:00
|
|
|
stop_grace_period: 3s
|
2022-08-22 23:54:21 +00:00
|
|
|
privileged: true
|
|
|
|
environment:
|
|
|
|
DOCKER_TLS_CERTDIR: ''
|
2022-11-02 18:56:48 +00:00
|
|
|
command: --tls=false # --debug
|
2022-08-22 23:54:21 +00:00
|
|
|
|
|
|
|
sut:
|
|
|
|
# Build the supervisor code for development and testing
|
|
|
|
build:
|
|
|
|
context: ./
|
|
|
|
dockerfile: Dockerfile.template
|
|
|
|
target: test
|
|
|
|
args:
|
|
|
|
# Change this if testing in another architecture
|
2022-09-29 20:52:29 +00:00
|
|
|
ARCH: ${ARCH:-amd64}
|
2022-11-02 18:56:48 +00:00
|
|
|
command:
|
|
|
|
[
|
|
|
|
'./test/lib/wait-for-it.sh',
|
|
|
|
'--supervisor',
|
|
|
|
'--',
|
|
|
|
'npm',
|
|
|
|
'run',
|
2022-11-08 23:41:52 +00:00
|
|
|
'test:integration'
|
2022-11-02 18:56:48 +00:00
|
|
|
]
|
2022-08-22 23:54:21 +00:00
|
|
|
depends_on:
|
|
|
|
- balena-supervisor
|
|
|
|
- docker
|
2022-08-25 17:12:53 +00:00
|
|
|
- dbus
|
2022-09-29 20:52:29 +00:00
|
|
|
- dbus-services
|
2022-10-31 21:31:43 +00:00
|
|
|
stop_grace_period: 3s
|
2022-09-29 20:52:29 +00:00
|
|
|
volumes:
|
|
|
|
- dbus:/run/dbus
|
2022-08-22 23:54:21 +00:00
|
|
|
# Set required supervisor configuration variables here
|
|
|
|
environment:
|
|
|
|
DOCKER_HOST: tcp://docker:2375
|
2022-09-29 20:52:29 +00:00
|
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/run/dbus/system_bus_socket
|
2022-11-02 18:56:48 +00:00
|
|
|
BALENA_SUPERVISOR_ADDRESS: http://balena-supervisor:48484
|
2022-08-24 20:02:19 +00:00
|
|
|
# Required by migrations
|
2023-02-21 06:11:27 +00:00
|
|
|
CONFIG_MOUNT_POINT: /mnt/boot/config.json
|
|
|
|
# Required to set mountpoints normally set in entry.sh
|
|
|
|
ROOT_MOUNTPOINT: /mnt/root
|
2022-08-25 17:12:53 +00:00
|
|
|
BOOT_MOUNTPOINT: /mnt/boot
|
2023-02-21 06:11:27 +00:00
|
|
|
HOST_OS_VERSION_PATH: /mnt/boot/os-release
|
2023-02-21 06:46:15 +00:00
|
|
|
STATE_MOUNTPOINT: /mnt/state
|
|
|
|
DATA_MOUNTPOINT: /mnt/data
|
|
|
|
DATABASE_PATH: /data/database.sqlite
|
2022-08-22 23:54:21 +00:00
|
|
|
# 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
|
2022-08-24 20:02:19 +00:00
|
|
|
- /mnt/root
|
2023-02-21 06:11:27 +00:00
|
|
|
- /mnt/boot
|
2023-02-21 06:46:15 +00:00
|
|
|
- /mnt/state
|
|
|
|
- /mnt/data
|
2022-09-29 20:52:29 +00:00
|
|
|
|
|
|
|
volumes:
|
|
|
|
dbus:
|
|
|
|
driver_opts:
|
|
|
|
# Use tmpfs to avoid files remaining between runs
|
|
|
|
type: tmpfs
|
|
|
|
device: tmpfs
|
2022-11-02 18:56:48 +00:00
|
|
|
|
|
|
|
networks:
|
|
|
|
default:
|