mirror of
https://github.com/balena-os/balena-supervisor.git
synced 2024-12-19 05:37:53 +00:00
4c948c8854
Signed-off-by: Christina Ying Wang <christina@balena.io>
127 lines
3.2 KiB
YAML
127 lines
3.2 KiB
YAML
version: '2.3'
|
|
|
|
services:
|
|
# Override the supervisor service configuration. The tests will
|
|
# be run through the `sut` service
|
|
balena-supervisor:
|
|
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
|
|
network_mode: 'bridge'
|
|
networks:
|
|
- default
|
|
environment:
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/run/dbus/system_bus_socket
|
|
# Required to skip device mounting in test env
|
|
TEST: 1
|
|
depends_on:
|
|
- docker
|
|
- dbus
|
|
- dbus-services
|
|
volumes:
|
|
- dbus:/run/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
|
|
|
|
dbus:
|
|
image: balenablocks/dbus
|
|
stop_grace_period: 3s
|
|
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
|
|
stop_grace_period: 3s
|
|
depends_on:
|
|
- dbus
|
|
volumes:
|
|
- dbus:/run/dbus
|
|
environment:
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/run/dbus/system_bus_socket
|
|
|
|
docker:
|
|
image: docker:dind
|
|
stop_grace_period: 3s
|
|
privileged: true
|
|
environment:
|
|
DOCKER_TLS_CERTDIR: ''
|
|
command: --tls=false # --debug
|
|
tmpfs:
|
|
# Prevent dind creating a bunch of anonymous volumes on host
|
|
- /var/lib/docker
|
|
|
|
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
|
|
- docker
|
|
- dbus
|
|
- dbus-services
|
|
stop_grace_period: 3s
|
|
volumes:
|
|
- dbus:/run/dbus
|
|
# Set required supervisor configuration variables here
|
|
environment:
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DBUS_SYSTEM_BUS_ADDRESS: unix:path=/run/dbus/system_bus_socket
|
|
BALENA_SUPERVISOR_ADDRESS: http://balena-supervisor: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/boot/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
|
|
|
|
networks:
|
|
default:
|