fix: Fixes sensor service test that was flaky and moves docker stuff into it's own directory.
Some checks failed
CI / Run Tests (push) Failing after 12s

This commit is contained in:
2024-11-14 21:34:48 -05:00
parent d4b6f6ad2b
commit 89f3601c2c
7 changed files with 88 additions and 5 deletions

View File

@@ -15,7 +15,7 @@ jobs:
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v3
- name: Run Test
run: make test-docker
run: make test
- name: Cleanup.
if: always()
run: docker compose --file docker/docker-compose-test.yaml down

View File

@@ -17,13 +17,13 @@ run:
@swift run dewpoint-controller
start-mosquitto:
@docker-compose start mosquitto
@docker compose start mosquitto
stop-mosquitto:
@docker-compose rm -f mosquitto || true
@docker compose rm -f mosquitto || true
test-docker:
@docker-compose --file docker/docker-compose-test.yaml \
@docker compose --file docker/docker-compose-test.yaml \
--project-directory "${PWD}" \
run --build --remove-orphans -i --rm test
@docker-compose --file docker/docker-compose-test.yaml down
@docker compose --file docker/docker-compose-test.yaml down

14
docker/Dockerfile Executable file
View File

@@ -0,0 +1,14 @@
# Build the executable
FROM swift:5.10 AS build
WORKDIR /build
COPY ./Package.* ./
RUN swift package resolve
COPY . .
RUN swift build -c release -Xswiftc -g
# Run image
FROM swift:5.10-slim
WORKDIR /run
COPY --from=build /build/.build/release/dewpoint-controller /run
CMD ["/bin/bash", "-xc", "./dewpoint-controller"]

View File

@@ -0,0 +1,3 @@
FROM eclipse-mosquitto:latest
COPY ./mosquitto/config/mosquitto.conf /mosquitto/config/mosquitto.conf
EXPOSE 1883

7
docker/Dockerfile.test Normal file
View File

@@ -0,0 +1,7 @@
FROM swift:5.10
WORKDIR /app
COPY ./Package.* ./
RUN swift package resolve
COPY . .
RUN swift build
CMD ["/bin/bash", "-xc", "swift", "test"]

22
docker/docker-compose-test.yaml Executable file
View File

@@ -0,0 +1,22 @@
# run this with docker-compose run test
services:
test:
build:
context: .
dockerfile: docker/Dockerfile.test
working_dir: /app
depends_on:
- mosquitto
environment:
- MOSQUITTO_SERVER=mosquitto
command: /bin/bash -xc "swift test"
mosquitto:
build:
context: .
dockerfile: docker/Dockerfile.mosquitto
networks:
test:
driver: bridge
external: false

37
docker/docker-compose.yaml Executable file
View File

@@ -0,0 +1,37 @@
# run this with docker-compose run test
services:
server:
image: swift-mqtt-dewpoint:latest
restart: unless-stopped
env_file: .env
local:
container_name: local-server
build:
context: .
dockerfile: Dockerfile
depends_on:
- mosquitto
environment:
- MQTT_HOST=mosquitto
test:
build:
context: .
dockerfile: Dockerfile.test
working_dir: /app
depends_on:
- mosquitto
environment:
- MOSQUITTO_SERVER=mosquitto
command: /bin/bash -xc "swift test"
mosquitto:
build:
context: .
dockerfile: Dockerfile.mosquitto
networks:
test:
driver: bridge
external: false