18 lines
636 B
Bash
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"
|