diff options
author | Alex Auvolat <alex@adnab.me> | 2022-08-24 15:42:47 +0200 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2022-08-24 15:42:47 +0200 |
commit | 2e8923b383eb06c53261eee8e5c442b857fb67e4 (patch) | |
tree | 0ad148f75f7b54dfed2dbac8f43f6df9badc502a /app/drone-ci/integration | |
parent | 9848f3090f77363a2fda0f9fa673ebcf1fb8228c (diff) | |
download | nixcfg-2e8923b383eb06c53261eee8e5c442b857fb67e4.tar.gz nixcfg-2e8923b383eb06c53261eee8e5c442b857fb67e4.zip |
Move app files into cluster subdirectories; add prod garage
Diffstat (limited to 'app/drone-ci/integration')
-rw-r--r-- | app/drone-ci/integration/README.md | 74 | ||||
-rw-r--r-- | app/drone-ci/integration/docker-compose.yml | 32 |
2 files changed, 0 insertions, 106 deletions
diff --git a/app/drone-ci/integration/README.md b/app/drone-ci/integration/README.md deleted file mode 100644 index b3c1cc6..0000000 --- a/app/drone-ci/integration/README.md +++ /dev/null @@ -1,74 +0,0 @@ -## Install Debian - -We recommend Debian Bullseye - -## Install Docker CE from docker.io - -Do not use the docker engine shipped by Debian - -Doc: - - - https://docs.docker.com/engine/install/debian/ - - https://docs.docker.com/compose/install/ - -On a fresh install, as root: - -```bash -apt-get remove -y docker docker-engine docker.io containerd runc -apt-get update -apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null -apt-get update -apt-get install -y docker-ce docker-ce-cli containerd.io - -curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose -chmod +x /usr/local/bin/docker-compose -``` - -## Prepare the runner - -Nix folder must be populated before launching any build. - -```bash -docker run --rm -it -v /var/lib/drone/nix:/mnt nixpkgs/nix:nixos-21.05 cp -r /nix/{store,var} /mnt/ -``` - -This folder will grow over time and might need to be garbage collected. -As a rule of thumb, after running a full release of Garage, this folder will require 10GB. -Consider provisioning it with at least 20GB. - -## Launch the runner - -Because we use a shared nix folder, we set the number of concurrent builds to 1. -For more details and customizations, see `docker-compose.yml`. - -```bash -DRONE_NAME=lheureduthe DRONE_OWNER=quentin DRONE_SECRET=xxx docker-compose up -d -``` - -That's all folks. - -## Check if a given job is built by your runner - -```bash -export URL=https://drone.deuxfleurs.fr -export REPO=Deuxfleurs/garage -export BUILD=1312 -curl ${URL}/api/repos/${REPO}/builds/${BUILD} \ - | jq -c '[.stages[] | { name: .name, machine: .machine }]' -``` - -It will give you the following result: - -```json -[{"name":"default","machine":"1686a"},{"name":"release-linux-x86_64","machine":"vimaire"},{"name":"release-linux-i686","machine":"carcajou"},{"name":"release-linux-aarch64","machine":"caribou"},{"name":"release-linux-armv6l","machine":"cariacou"},{"name":"refresh-release-page","machine":null}] -``` - -## Random note - -This setup is done mainly to allow nix builds with some cache. -To use the cache in Drone, you must set your repository as trusted. -The command line tool does not work (it says it successfully set your repository as trusted but it did nothing): -the only way to set your repository as trusted is to connect on the DB and set the `repo_trusted` field of your repo to true. - diff --git a/app/drone-ci/integration/docker-compose.yml b/app/drone-ci/integration/docker-compose.yml deleted file mode 100644 index 1e37255..0000000 --- a/app/drone-ci/integration/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: '3.4' -services: - drone-runner: - image: drone/drone-runner-docker:latest - restart: always - environment: - - DRONE_RPC_PROTO=https - - DRONE_RPC_HOST=drone.deuxfleurs.fr - - DRONE_RPC_SECRET=${DRONE_SECRET} - - DRONE_RUNNER_CAPACITY=1 - - DRONE_DEBUG=true - - DRONE_LOGS_TRACE=true - - DRONE_RPC_DUMP_HTTP=true - - DRONE_RPC_DUMP_HTTP_BODY=true - - DRONE_RUNNER_NAME=${DRONE_NAME} - - DRONE_RUNNER_LABELS=nix:1 - #- DRONE_RUNNER_VOLUMES=/var/lib/drone/nix:/nix - ports: - - "3000:3000/tcp" - volumes: - - "/var/run/docker.sock:/var/run/docker.sock" - - "/var/lib/drone/nix:/var/lib/drone/nix" - - drone-gc: - image: drone/gc:latest - restart: always - environment: - - GC_DEBUG=true - - GC_CACHE=10gb - - GC_INTERVAL=10m - volumes: - - "/var/run/docker.sock:/var/run/docker.sock" |