gentoo-overlay/dev-util/drone/files/drone-1.5.1.initd

63 lines
1.8 KiB
Plaintext

#!/sbin/openrc-run
# Copyright 2016-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="Drone CI - Automate software testing and delivery"
container_name_file=/var/run/drone-container.name
: ${DRONE_GITEA_SERVER:=http://localhost/
: ${DRONE_SERVER_HOST:=localhost}
: ${DRONE_SERVER_PROTO:=https}
: ${DRONE_GITEA_CLIENT_ID:=}
: ${DRONE_GITEA_CLIENT_SECRET:=}
: ${DOCKER_SOCKET:=/var/run/docker.sock}
# fixme this must be done better, in a more generic way
: ${MYSQL_SOCKET:=/var/run/mysqld/mysqld.sock}
: ${DRONE_DATABASE_DATASOURCE:=/data/drone.sqlite}
: ${DRONE_DATABASE_DRIVER:=sqlite}
: ${DRONE_RUNNER_CAPACITY:=2}
: ${DRONE_GIT_ALWAYS_AUTH:=false}
: ${DRONE_TLS_AUTOCERT:=false}
: ${DRONE_PUBLISH_PORT:=80:80}
depend() {
need docker
after mysql
}
pre_start() {
docker pull drone/drone:1.5.1
}
start() {
docker run \
--volume=${DOCKER_SOCKET}:${DOCKER_SOCKET} \
--volume=${MYSQL_SOCKET}:${MYSQL_SOCKET} \
--env=DRONE_GITEA_SERVER=${DRONE_GITEA_SERVER} \
--env=DRONE_GITEA_CLIENT_ID=${DRONE_GITEA_CLIENT_ID} \
--env=DRONE_GITEA_CLIENT_SECRET=${DRONE_GITEA_CLIENT_SECRET} \
--env=DRONE_GIT_ALWAYS_AUTH=${DRONE_GIT_ALWAYS_AUTH} \
--env=DRONE_RUNNER_CAPACITY=${DRONE_RUNNER_CAPACITY} \
--env=DRONE_SERVER_HOST=${DRONE_SERVER_HOST} \
--env=DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} \
--env=DRONE_TLS_AUTOCERT=${DRONE_TLS_AUTOCERT} \
--env=DRONE_DATABASE_DATASOURCE="${DRONE_DATABASE_DATASOURCE}" \
--env=DRONE_DATABASE_DRIVER=${DRONE_DATABASE_DRIVER} \
--publish=${DRONE_PUBLISH_PORT} \
--restart=always \
--detach=true \
--name=drone \
drone/drone:1.5.1 \
> ${container_name_file}
}
stop() {
docker container stop $(cat ${container_name_file})
}
stop_post() {
docker container rm $(cat ${container_name_file})
rm ${container_name_file}
}