diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-03-12 18:08:38 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-03-12 18:08:38 -0400 |
| commit | 02bf1874ef7a5d474dbf421cde3eda81e05807d5 (patch) | |
| tree | 4dd9e45ba8349f1b56fa41829d73375a95cda7f2 | |
| parent | 8f19e3fcb83dd7c7f61f82378a9904697361a87c (diff) | |
Set up a Debian-based builder, to make it easier to distribute this to AMIs.
| -rw-r--r-- | .envrc | 1 | ||||
| -rw-r--r-- | Dockerfile.builder | 11 | ||||
| -rwxr-xr-x | tools/build-builder | 13 | ||||
| -rwxr-xr-x | tools/build-debian | 17 | ||||
| -rwxr-xr-x | tools/version | 11 |
5 files changed, 53 insertions, 0 deletions
@@ -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' |
