summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2023-07-09 18:37:08 +0300
committerLars Wirzenius <liw@liw.fi>2023-07-09 18:40:14 +0300
commit25b81f01eda60332270b35c8042bec044f972d0e (patch)
treeec9c53b8e808917eba38dd09f45b48f671b45da9
parent059df6da440b2139881fbadece0d3686f199eec1 (diff)
downloadambient-ci-25b81f01eda60332270b35c8042bec044f972d0e.tar.gz
feat: add scripts to build my ikiwiki sites
Sponsored-by: author
-rw-r--r--ikiwiki-ambient-script12
-rwxr-xr-xikiwiki.sh28
-rw-r--r--ikiwiki.yml56
3 files changed, 96 insertions, 0 deletions
diff --git a/ikiwiki-ambient-script b/ikiwiki-ambient-script
new file mode 100644
index 0000000..19cc585
--- /dev/null
+++ b/ikiwiki-ambient-script
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+set -xeuo pipefail
+
+export HOME=/workspace
+
+mkdir /workspace/html
+sed -i 's#^srcdir:.*#srcdir: /workspace/src#' ikiwiki.setup
+sed -i 's#^destdir:.*#destdir: /workspace/html#' ikiwiki.setup
+
+ikiwiki --setup ikiwiki.setup --libdir /workspace/deps --rebuild --verbose
+tar -cf "$1" -C /workspace/html .
diff --git a/ikiwiki.sh b/ikiwiki.sh
new file mode 100755
index 0000000..de71ea8
--- /dev/null
+++ b/ikiwiki.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+set -xeuo pipefail
+
+setup="$1"
+
+srcdir="$(sed -n '/^srcdir: */s///p' "$setup")"
+destdir="$(sed -n '/^destdir: */s///p' "$setup")"
+
+artifact="$(mktemp)"
+artifactdir="$(mktemp -d)"
+trap 'rm -rf "$artifact $artifactdir"' EXIT
+
+if [ ! -e "$srcdir/.ambient-script" ]; then
+ cp ikiwiki-ambient-script "$srcdir/.ambient-script"
+fi
+./ambient-run \
+ --image ~/tmp/ambient/ambient-ikiwiki.qcow2 \
+ --artifact "$artifact" \
+ --dependencies ~/.ikiwiki/ \
+ --log ~/tmp/ambient/log \
+ "$srcdir"
+
+remote=_ewww@web
+ssh "$remote" install -d /srv/http/web/.
+
+tar -C "$artifactdir" -xf "$artifact"
+rsync -a --del "$artifactdir/." "$remote:/srv/http/."
diff --git a/ikiwiki.yml b/ikiwiki.yml
new file mode 100644
index 0000000..81346c8
--- /dev/null
+++ b/ikiwiki.yml
@@ -0,0 +1,56 @@
+- hosts: image
+ tasks:
+
+ - name: "add PGP key for Lars's APT repository"
+ copy:
+ content: |
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ mQINBFrLO7kBEADdz6mHstYmKU5Dp6OSjxWtWaqTDOX1sJdmmaIK/9EKVIH0Maxp
+ 5kvVO5G6mULLAjv/kLG0MxasHPrq8I2A/y8AqKAGVL8QelwLjQMIFZ30/VbGQPHS
+ +T5TZXEnoQtNce1GUhFwJ38ZyjjwHBFV9tSec7rZ2Q3YeM3nNnGPf6DacXGfEOPO
+ HIN4sXAN2hzNXNjKRzTIvxQseb6nr7afUh/SlZ3yhQOCrIzmYlD7tP9WJe7ofL0p
+ JY4pDQYw8rT6nC2BE/ioemh84kERCT1vCe+OVFlSRuMlqfEv+ZpKQ+itOmPDQ/lM
+ jpUm1K2hrW/lWpxT/ZxHKo/w1K36J5WshgMZxfUu5BMCL9LMqMcrXNhNjDMfxDMM
+ 3yBPOvQ4ls6fecOZ/bsFo1p8VzMk/w/eG8vPs5yuNa5XxN95yFMXoOHGb5Xbu8D4
+ 6yiW+Af70LbiSNpGdmNdneiGB2fY38NxBukPw5u3S5qG8HedSmMr1RvSr5kHoAAe
+ UbOY+BYaaKsTAT7+1skUW1o3FJSqoRKCHAzTsMWC6zzhR8hRn7jVrrguH1hGbqq5
+ TZSCFQZExuTJ7uXrTLG0WoBXIjB5wWNcSeXn8myUWYB51nJNF4tJBouZOz9JwWGl
+ kiAQkrHnBttLQWdW9FyjbIoTZMtpvVx+m6ObGTGdGL1cNlLAvWprMXGc+QARAQAB
+ tDJJY2sgQVBUIHJlcG9zaXRvcnkgc2lnbmluZyBrZXkgKDIwMTgpIDxsaXdAbGl3
+ LmZpPokCTgQTAQgAOBYhBKL1uyDoXyxUH3O717Wr+TZVS6PGBQJayzu5AhsDBQsJ
+ CAcCBhUICQoLAgQWAgMBAh4BAheAAAoJELWr+TZVS6PGB5QQANTcikhRUHwt9N4h
+ dGc/Hp6CbqdshMoWlwpFskttoVDxQG5OAobuZl5XyzGcmja1lT85RGkZFfbca0IZ
+ LnXOLLSAu51QBkXNaj4OhjK/0uQ+ITrvL6RQSXNgHiUTR/W2XD1GIUq6nBqe2GSN
+ 31S1baYKKVj5QIMsi7Dq8ls3BBXuPCE+xTSaNmGWjes2t9pPidcRvxsksCLY1qgw
+ P1GFXBeMkBQ29kBP87SUL15SIk7OiQLlEURCy5iRls5rt/YEsdEpRWIb0Tm5Nrjv
+ 2M3VM+iBhfNXTwj0rJ34mlycF1qQmA7YcTEobT7z587GPY0VWzBpQUnEQj7rQWPM
+ cDYY0b+I6kQ8VKOaL4wVAtE98d7HzFIrIrwhTKufnrWrVDPYsmLZ+LPC1jiF7JBD
+ SR6Vftb+SdDR9xoE1yRuXbC6IfoW+5/qQNrdQ2mm9BFw5jOonBqchs18HTTf3441
+ 6SWwP9fY3Vi+IZphPPi0Gf85oMStgnv/Wnw6LacEL32ek39Desero/D8iGLZernK
+ Q2mC9mua5A/bYGVhsNWyURNFkKdbFa+/wW3NfdKYyZnsSfo+jJ2luNewrhAY7Kod
+ GWXTer9RxzTGA3EXFGvNr+BBOOxSj0SfWTl0Olo7J5dnxof+jLAUS1VHpceHGHps
+ GSJSdir7NkZidgwoCPA7BTqsb5LN
+ =dXB0
+ -----END PGP PUBLIC KEY BLOCK-----
+ dest: /etc/apt/trusted.gpg.d/ci-prod.asc
+
+ - name: "add Lars's APT repository"
+ apt_repository:
+ repo: |
+ deb http://ci-prod-controller.vm.liw.fi/debian unstable-ci main
+
+ - name: "install tools for ikiwiki"
+ apt:
+ name:
+ - ikiwiki
+ - pandoc
+ - pandoc-filter-diagram
+
+ - name: "install rustup"
+ shell: |
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rustup.sh
+ sh /tmp/rustup.sh -y --no-modify-path
+
+ vars:
+ ansible_python_interpreter: /usr/bin/python3