diff options
author | Lars Wirzenius <liw@liw.fi> | 2023-12-20 19:57:46 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2023-12-20 19:57:46 +0200 |
commit | ad070f638cbc87e0c6d831d7737fcfe439d33ec1 (patch) | |
tree | 1ec3aba23735f6eba661970e1e72f6c482137890 /ansible/radicle.liw.fi.yml | |
parent | 19cf151f7a802b4fa566ede44de8ca39e3e72126 (diff) | |
download | ansibleness-ad070f638cbc87e0c6d831d7737fcfe439d33ec1.tar.gz |
radicle.liw.fi: set up native CI
Signed-off-by: Lars Wirzenius <liw@liw.fi>
Sponsored-by: author
Diffstat (limited to 'ansible/radicle.liw.fi.yml')
-rw-r--r-- | ansible/radicle.liw.fi.yml | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/ansible/radicle.liw.fi.yml b/ansible/radicle.liw.fi.yml index 9355239..14443a4 100644 --- a/ansible/radicle.liw.fi.yml +++ b/ansible/radicle.liw.fi.yml @@ -127,6 +127,134 @@ enabled: yes daemon_reload: yes + - name: "install script to install Radicle CI stuff" + copy: + content: | + #!/bin/bash + set -xeuo pipefail + + clone_install() { + local url dir root + url="$1" + dir="$2" + root="$3" + + if [ ! -e "$dir" ]; then + git clone "$url" "$dir" + else + (cd "$dir" && git pull) + fi + + (cd "$dir" && cargo install --path=. --root="$root") + } + + clone_install https://radicle.liw.fi/zwTxygwuz5LDGBq255RA2CbNGrz8.git radicle-ci-broker "$(pwd)/root" + clone_install https://radicle.liw.fi/z3qg5TKmN83afz2fj9z3fQjU8vaYE.git radicle-native-ci "$(pwd)/root" + + install root/bin/* $HOME/bin + dest: /home/liw/install-radicle-ci + owner: liw + group: liw + mode: 0755 + + - name: "install Radicle CI stuff" + shell: | + sudo -i -u liw bash -c 'cd /home/liw && install -d bin && ./install-radicle-ci' + + - name: "install systemd unit for Radicle node" + copy: + content: | + [Unit] + After=syslog.target network.target + Description=Radicle Node + + [Service] + Type=simple + ExecStart=/home/liw/.radicle/bin/radicle-node --listen 0.0.0.0:8776 + Environment=RAD_HOME=/home/liw/.radicle + KillMode=process + Restart=never + RestartSec=1 + User=liw + Group=liw + + [Install] + WantedBy=default.target + dest: /lib/systemd/system/radicle-node.service + + - name: "enable systemd unit for Radicle node" + systemd: + name: radicle-node + state: restarted + masked: no + enabled: yes + daemon_reload: yes + + - name: "install Radicle CI broker config" + copy: + content: | + default_adapter: native + adapters: + native: + command: /home/liw/bin/radicle-native-ci + env: + RADICLE_NATIVE_CI: /home/liw/native-ci.yaml + filters: + - !And + - !Repository "rad:zZnk3hS8C3WAhnv7mWcCUToCqpBs" + - !AnyPatch + dest: /home/liw/ci-broker.yaml + owner: liw + group: liw + mode: 0644 + + - name: "create state directory for Radicle native CI" + file: + state: directory + path: /home/liw/native-ci.state + owner: liw + group: liw + mode: 0755 + + - name: "install Radicle native CI config" + copy: + content: | + state: /srv/http + dest: /home/liw/native-ci.yaml + owner: liw + group: liw + mode: 0644 + + - name: "install systemd unit for Radicle CI broker" + copy: + content: | + [Unit] + After=radicle-node.service + Description=Radicle CI broker + + [Service] + Type=simple + Environment=RAD_HOME=/home/liw/.radicle + Environment=RUST_LOG=trace + ExecStart=bash -c '/home/liw/bin/ci-broker /home/liw/ci-broker.yaml >> /srv/http/broker.log' + KillMode=process + Restart=never + RestartSec=1 + User=liw + Group=liw + + [Install] + WantedBy=default.target + dest: /lib/systemd/system/radicle-ci-broker.service + + - name: "enable systemd unit for Radicle CI broker" + systemd: + name: radicle-ci-broker + state: restarted + masked: no + enabled: yes + daemon_reload: yes + vars: ansible_python_interpreter: /usr/bin/python3 |