Compare commits

..
Author SHA1 Message Date
dboreham 4256150ed4 Use gitea not gitee 2023-03-16 12:42:49 -06:00
dboreham 758303acfd Remove example creds 2023-03-16 12:28:58 -06:00
dboreham 313677fcf2 Initial version 2023-03-16 12:27:23 -06:00
8 changed files with 44 additions and 105 deletions
+32
View File
@@ -0,0 +1,32 @@
# Deploy drone CI system
services:
drone:
image: drone/drone:2
environment:
- DRONE_GITEA_SERVER=http://gitea.local
- DRONE_GITEA_CLIENT_ID=put_the_real_client_id_here
- DRONE_GITEA_CLIENT_SECRET=put_the_real_secret_here
- DRONE_RPC_SECRET=super-duper-secret
- DRONE_SERVER_HOST=gitea.local # TODO: make this more generic
- DRONE_SERVER_PROTO=http
restart: always
volumes:
- ./drone:/data
ports:
- 80
- 443
drone-runner:
image: drone/drone-runner-docker:1
environment:
- DRONE_RPC_PROTO=http
- DRONE_RPC_HOST=drone
- DRONE_RPC_SECRET=super-duper-secret
- DRONE_RUNNER_CAPACITY=2
- DRONE_RUNNER_NAME=drone-runner-1
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 3000
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
if [[ -n "$CERC_SCRIPT_DEBUG" ]]; then
set -x
fi
mkdir -p ./drone
-14
View File
@@ -1,14 +0,0 @@
FROM ubuntu:22.04
# Install basic tools
RUN apt update && apt install -y gpg curl apt-transport-https ca-certificates lsb-release build-essential
# Add Docker repo
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Add NodeJS repo
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
# Install Docker and NodeJS packages.
RUN apt update && apt install -y docker-ce nodejs && rm -rf /var/lib/apt/lists/*
+1 -12
View File
@@ -1,17 +1,6 @@
## Deployment Notes
## Deployment notes
### Gitea
#### Build gitea/act_runner Docker Container
1. To build the `act_runner` container from Gitea, in another directory run:
```
git clone https://gitea.com/gitea/act_runner
cd act_runner
docker build -t cerc/act-runner:local .
```
#### Deploy Gitea Stack
1. `cd ./gitea`
1. Build the task executor container: `docker build -t cerc/act-runner-task-executor:local -f Dockerfile.task-executor .`
1. Run the script `./run-this-first.sh`
1. Bring up the gitea cluster `docker compose up -d`
1. Run the script `./initialize-gitea.sh`
-50
View File
@@ -1,50 +0,0 @@
# Example configuration file, it's safe to copy this as the default config file without any modification.
log:
# The level of logging, can be trace, debug, info, warn, error, fatal
level: info
runner:
# Where to store the registration result.
file: /data/.runner
# Execute how many tasks concurrently at the same time.
capacity: 1
# # Extra environment variables to run jobs.
# envs:
# A_TEST_ENV_NAME_1: a_test_env_value_1
# A_TEST_ENV_NAME_2: a_test_env_value_2
# # Extra environment variables to run jobs from a file.
# # It will be ignored if it's empty or the file doesn't exist.
# env_file: .env
# # The timeout for a job to be finished.
# # Please note that the Gitea instance also has a timeout (3h by default) for the job.
# # So the job could be stopped by the Gitea instance if it's timeout is shorter than this.
timeout: 3h
# Whether skip verifying the TLS certificate of the Gitea instance.
insecure: false
# The timeout for fetching the job from the Gitea instance.
fetch_timeout: 5s
# The interval for fetching the job from the Gitea instance.
fetch_interval: 2s
cache:
# Enable cache server to use actions/cache.
enabled: true
# The directory to store the cache data.
# If it's empty, the cache data will be stored in $HOME/.cache/actcache.
dir: ""
# The host of the cache server.
# It's not for the address to listen, but the address to connect from job containers.
# So 0.0.0.0 is a bad choice, leave it empty to detect automatically.
host: ""
# The port of the cache server.
# 0 means to use a random available port.
port: 0
container:
# Which network to use for the job containers. Could be bridge, host, none, or the name of a custom network.
network_mode: bridge
# Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker).
privileged: true
# And other options to be used when the container is started (eg, --add-host=my.gitea.url:host-gateway).
options: --add-host=gitea.local:host-gateway
+3 -20
View File
@@ -1,12 +1,13 @@
version: "3"
# TODO: remove version since it is now redundant
# remove this network definition unless there's a reason for it
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.19.1
image: gitea/gitea:1.18.3
environment:
- USER_UID=1000
- USER_GID=1000
@@ -18,7 +19,6 @@ services:
- GITEA__server__HTTP_PORT=3000
- GITEA__server__LOCAL_ROOT_URL=http://gitea.local:3000/
- GITEA__server__ROOT_URL=http://gitea.local:3000/
- GITEA__actions__ENABLED=true
- GITEA__security__INSTALL_LOCK=true
restart: always
networks:
@@ -48,20 +48,3 @@ services:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
runner:
image: cerc/act-runner:local
restart: always
environment:
- GITEA_RUNNER_REGISTRATION_TOKEN=eMdEwIzSo87nBh0UFWZlbp308j6TNWr3WhWxQqIc
- GITEA_INSTANCE_URL=http://gitea.local:3000
- GITEA_RUNNER_LABELS=ubuntu-latest:docker://cerc/act-runner-task-executor:local,ubuntu-22.04:docker://cerc/act-runner-task-executor:local
- CONFIG_FILE=/config/act-runner-config.yml
networks:
- gitea
extra_hosts:
- "gitea.local:host-gateway"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./act-runner:/data
- ./config:/config:ro
+3 -8
View File
@@ -7,7 +7,6 @@ GITEA_USER_EMAIL=${GITEA_USER}@example.com
GITEA_NEW_ORGANIZATION=cerc-io
GITEA_URL_PREFIX=http://localhost:3000
CERC_GITEA_TOKEN_NAME=laconic-so-publication-token
CERC_GITEA_RUNNER_REGISTRATION_TOKEN=eMdEwIzSo87nBh0UFWZlbp308j6TNWr3WhWxQqIc
if [[ -n "$CERC_SCRIPT_DEBUG" ]]; then
set -x
fi
@@ -18,7 +17,8 @@ if [[ -z ${CERC_SO_COMPOSE_PROJECT} ]] ; then
else
compose_command="docker compose -p ${CERC_SO_COMPOSE_PROJECT}"
fi
sleep 15
# HACK: sleep a bit because gitea may not be up yet (container reports it has started before service is available)
sleep 5
${compose_command} exec --user git server gitea admin user list --admin | grep -v -e "^ID" | awk '{ print $2 }' | grep ${GITEA_USER} > /dev/null
if [[ $? == 1 ]] ; then
# Then create if it wasn't found
@@ -44,7 +44,7 @@ if [[ ${token_found} != 1 ]] ; then
new_gitea_token=$( curl -s -X POST "${GITEA_URL_PREFIX}/api/v1/users/${GITEA_USER}/tokens" \
-u ${GITEA_USER}:${GITEA_PASSWORD} \
-H "Content-Type: application/json" \
-d '{"name":"'${CERC_GITEA_TOKEN_NAME}'", "scopes": [ "sudo" ] }' \
-d '{"name":"'${CERC_GITEA_TOKEN_NAME}'"}' \
| jq -r .sha1 )
echo "This is your gitea access token: ${new_gitea_token}. Keep it safe and secure, it can not be fetched again from gitea."
echo "To use with laconic-so set this environment variable: export CERC_NPM_AUTH_TOKEN=${new_gitea_token}"
@@ -76,10 +76,5 @@ if [[ $? != 0 ]] ; then
-d '{"username": "'${GITEA_NEW_ORGANIZATION}'"}' > /dev/null
echo "Created the organization ${GITEA_NEW_ORGANIZATION}"
fi
# Seed a token for act_runner registration.
docker compose -p ${CERC_SO_COMPOSE_PROJECT} exec db psql -U gitea -d gitea -c "INSERT INTO public.action_runner_token(token, owner_id, repo_id, is_active, created, updated, deleted) VALUES('${CERC_GITEA_RUNNER_REGISTRATION_TOKEN}', 0, 0, 'f', 1679000000, 1679000000, NULL);" >/dev/null
echo "Gitea was configured to use host name: gitea.local, ensure that this resolves to localhost, e.g. with sudo vi /etc/hosts"
echo "Success, gitea is properly initialized"
-1
View File
@@ -4,4 +4,3 @@ if [[ -n "$CERC_SCRIPT_DEBUG" ]]; then
fi
mkdir -p ./gitea
mkdir -p ./gitea/ssh
mkdir -p ./act-runner