summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-03-12 18:08:38 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-03-12 18:08:38 -0400
commit02bf1874ef7a5d474dbf421cde3eda81e05807d5 (patch)
tree4dd9e45ba8349f1b56fa41829d73375a95cda7f2
parent8f19e3fcb83dd7c7f61f82378a9904697361a87c (diff)
Set up a Debian-based builder, to make it easier to distribute this to AMIs.
-rw-r--r--.envrc1
-rw-r--r--Dockerfile.builder11
-rwxr-xr-xtools/build-builder13
-rwxr-xr-xtools/build-debian17
-rwxr-xr-xtools/version11
5 files changed, 53 insertions, 0 deletions
diff --git a/.envrc b/.envrc
index 5aa5cd3..63d6803 100644
--- a/.envrc
+++ b/.envrc
@@ -1,3 +1,4 @@
+PATH_add tools
PATH_add target/debug
source_env_if_exists .envrc.local
diff --git a/Dockerfile.builder b/Dockerfile.builder
new file mode 100644
index 0000000..c04abde
--- /dev/null
+++ b/Dockerfile.builder
@@ -0,0 +1,11 @@
+FROM rust:1-slim-bookworm
+
+RUN apt-get update \
+ && apt-get install -y \
+ dpkg-dev \
+ && true
+
+RUN cargo install cargo-deb
+
+RUN mkdir /app
+WORKDIR /app
diff --git a/tools/build-builder b/tools/build-builder
new file mode 100755
index 0000000..702448f
--- /dev/null
+++ b/tools/build-builder
@@ -0,0 +1,13 @@
+#!/bin/bash -e
+
+## tools/build-builder
+##
+## Builds a Docker image containing the Debian package builder.
+
+cd "$(dirname "$0")/.."
+
+docker build \
+ --tag "aws-autoscaling-dns-builder:$(tools/version)" \
+ --tag "aws-autoscaling-dns-builder:latest" \
+ --file Dockerfile.builder \
+ .
diff --git a/tools/build-debian b/tools/build-debian
new file mode 100755
index 0000000..e589fa4
--- /dev/null
+++ b/tools/build-debian
@@ -0,0 +1,17 @@
+#!/bin/bash -e
+
+## tools/build-builder
+##
+## Builds a Debian package for the current tree. Output in ./target/debian.
+##
+## Requires the Debian builder (see tools/build-builder).
+
+cd "$(dirname "$0")/.."
+
+docker run \
+ --rm \
+ --interactive \
+ --tty \
+ --volume "$PWD:/app" \
+ "aws-autoscaling-dns-builder:$(tools/version)" \
+ cargo deb
diff --git a/tools/version b/tools/version
new file mode 100755
index 0000000..cc7e679
--- /dev/null
+++ b/tools/version
@@ -0,0 +1,11 @@
+#!/bin/bash -e
+
+## tools/version
+##
+## Print the current version of the project to stdout. Data comes from Cargo.
+
+cd "$(dirname "$0")/.."
+
+cargo metadata \
+ --format-version 1 |
+jq -r '.packages[] | select(.name == "aws-autoscaling-dns") | .version'