Added Dockerfile and drone config to auto build and deploy new versions
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Dreaded_X 2023-01-17 17:30:24 +01:00
parent 5961efa731
commit 917deb717f
Signed by: Dreaded_X
GPG Key ID: 76BDEC4E165D8AD9
3 changed files with 68 additions and 0 deletions

2
.dockerignore Normal file
View File

@ -0,0 +1,2 @@
/target
.env

46
.drone.yml Normal file
View File

@ -0,0 +1,46 @@
kind: pipeline
type: docker
name: default
steps:
- name: build
image: docker
volumes:
- name: socket
path: /var/run/docker.sock
commands:
- DOCKER_BUILDKIT=1 docker build -t automation_rs .
- name: deploy
image: docker
volumes:
- name: socket
path: /var/run/docker.sock
environment:
MQTT_PASSWORD:
from_secret: MQTT_PASSWORD
HUE_TOKEN:
from_secret: HUE_TOKEN
NTFY_TOPIC:
from_secret: NTFY_TOPIC
commands:
- docker stop automation_rs || true
- docker rm automation_rs || true
- docker create -e MQTT_PASSWORD=$MQTT_PASSWORD -e HUE_TOKEN=$HUE_TOKEN -e NTFY_TOPIC=$NTFY_TOPIC --name automation_rs automation_rs
- docker network connect mqtt automation_rs
- docker network connect web automation_rs
- docker start automation_rs
when:
branch:
- master
event:
exclude:
- pull_request
volumes:
- name: socket
host:
path: /var/run/docker.sock

20
Dockerfile Normal file
View File

@ -0,0 +1,20 @@
FROM rustlang/rust:nightly-slim AS build
RUN cargo new --bin /app
RUN cargo new --lib /app/impl_cast
RUN cargo new --lib /app/google-home
COPY impl_cast/Cargo.toml /app/impl_cast
COPY google-home/Cargo.toml /app/google-home
COPY Cargo.toml Cargo.lock /app/
WORKDIR /app/
RUN --mount=type=cache,target=/usr/local/cargo/registry cargo build --release
COPY impl_cast/src/ /app/impl_cast/src/
COPY google-home/src/ /app/google-home/src/
COPY src/ /app/src/
RUN --mount=type=cache,target=/usr/local/cargo/registry set -e; touch /app/src/main.rs /app/src/lib.rs /app/google-home/src/lib.rs /app/impl_cast/src/lib.rs; cargo build --release
CMD ["/app/target/release/automation"]