diff --git a/Cargo.lock b/Cargo.lock index 85dbcb8..d7b6fcf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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" diff --git a/Makefile b/Makefile index 603ad5d..4017a77 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/build b/build new file mode 100755 index 0000000..85adacf --- /dev/null +++ b/build @@ -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