Files
Veyra/deploy/remote-build.sh
T

18 lines
636 B
Bash

#!/usr/bin/env bash
set -euo pipefail
root="${1:?Deployment directory required}"
sha="${2:?Commit SHA required}"
[[ "$root" =~ ^/[a-zA-Z0-9_/-]+$ && "$root" != / && "$root" != *..* && "$sha" =~ ^[0-9a-f]{40}$ ]] || exit 2
exec 9>"$root/.build.lock"
flock -w 1800 9
cd "$root/builds/$sha"
bash deploy/check.sh
docker build -t "sundynix/veyra:$sha" .
release="$root/releases/$sha"
umask 077
mkdir -p "$release"
cp deploy/docker-compose.yml deploy/release.sh "$release/"
docker save "sundynix/veyra:$sha" | gzip > "$release/image.tar.gz"
(cd "$release" && sha256sum image.tar.gz > image.tar.gz.sha256)
echo "Verified image prepared: $sha"