Merge branch 'better-builds' into develop

master
Jef Roosens 2021-03-23 10:42:41 +01:00
commit c411fc5d6c
Signed by: Jef Roosens
GPG Key ID: B580B976584B5F30
3 changed files with 68 additions and 15 deletions

20
Cargo.lock generated
View File

@ -313,6 +313,16 @@ dependencies = [
"cfg-if 1.0.0",
]
[[package]]
name = "fej"
version = "0.0.1"
dependencies = [
"reqwest",
"rocket",
"rocket_contrib",
"serde",
]
[[package]]
name = "filetime"
version = "0.2.14"
@ -1254,16 +1264,6 @@ dependencies = [
"unicode-xid 0.1.0",
]
[[package]]
name = "rust-api"
version = "0.1.0"
dependencies = [
"reqwest",
"rocket",
"rocket_contrib",
"serde",
]
[[package]]
name = "rustc_version"
version = "0.2.3"

View File

@ -1,6 +1,4 @@
IMAGE := chewingbever/fej
TAG := 0.0.1-dev
shell := /bin/bash
all: debug
@ -16,11 +14,11 @@ release:
.PHONY: release
image: Dockerfile
@ docker build -t '$(IMAGE):$(TAG)' .
@ ./build '$(IMAGE)'
.PHONY: image
push: image
@ docker push '$(IMAGE):$(TAG)'
push:
@ ./build '$(IMAGE)' push
.PHONY: push
# Run

55
build 100755
View File

@ -0,0 +1,55 @@
#!/usr/bin/env bash
# Simple guard to check input args
[[ $# -eq 1 ]] || [[ $# -eq 2 ]] || {
>&2 echo "Usage: ./build IMAGE [ACTION]"
exit 1
}
# Extract current version from Cargo.toml & get current branch
patch_version="$(grep -Po '(?<=version = ").*(?=")' Cargo.toml | head -n1)"
major_version="$(echo "$patch_version" |
sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+)/\1/')"
minor_version="$(echo "$patch_version" |
sed -E 's/([0-9]+).([0-9]+).([0-9]+)/\1.\2/')"
branch="$(git branch --show-current)"
if [[ "$branch" = "master" ]]; then
tags=("$patch_version" "$minor_version" "$major_version" "latest" )
elif [[ "$branch" = "develop" ]]; then
tags=("$patch_version-dev" "$minor_version-dev" "$major_version-dev" )
else
tags=("$branch")
fi
tag_flags=()
for tag in "${tags[@]}"; do
tag_flags+=("-t $1:$tag")
done
# Run the actual build command
docker build $tag_flags .
if [[ "$2" = push ]]; then
[[ "$branch" =~ ^develop|master$ ]] || {
>&2 echo "You can only push from develop or master."
exit 2
}
for tag in "${tags[@]}"; do
docker push "$1:$tag"
done
elif [[ "$2" = run ]]; then
docker run \
--rm \
--interactive \
--tty \
--publish 8000:8000 \
"$1:$tags"
fi