pcmt/justfile

85 lines
2.2 KiB
Makefile

cmd := "podman"
cfile := "Containerfile"
tag := "docker.io/immawanderer/pcmt:testbuild"
args := "build -t "+ tag + " " + buildargs + " --no-cache --pull -f " + cfile
buildargs := "--build-arg VERSION=" + vcs_ref + " --build-arg BUILD_DATE=" + build_date + " --build-arg VCS_REF=" + vcs_ref
kanikoargs := "run -it -w=" + kanikowdir + " -v $(pwd):" + kanikowdir + ":z " + kanikoexecutorimg + " -f=" + cfile + " -c=" + kanikocontext + " --use-new-run --snapshotMode=redo --no-push " + buildargs
kanikoexecutorimg := "gcr.io/kaniko-project/executor:v1.9.0-debug"
kanikowdir := "/src"
kanikocontext := "."
vcs_ref := "$(git rev-parse --short HEAD || echo dev)"
build_date := "$(date -u +\"%Y-%m-%dT%H:%M:%SZ\")"
hadolintimg := "docker.io/hadolint/hadolint"
hadolinttag := "v2.12.0-alpine"
hadolintargs := "run --rm -i -v $(pwd):/src:z --workdir=/src"
# run tailwindcss tool in watch mode.
watch-tw:
npm i
npx tailwindcss -i ./assets/input/css/tailwind.css -o ./assets/public/css/pcmt.css --watch
# start browser-sync.
watch-brs:
npm i
npx browser-sync start --config bs.js
# build app stylesheets using the tailwindcss cli tool.
tw:
npm i
npx tailwindcss -i ./assets/input/css/tailwind.css -o ./assets/public/css/pcmt.css --minify
# build the application.
build:
go mod tidy
go build -v -ldflags="-X main.version=$(git rev-parse --short HEAD)" .
# run the application.
run:
./pcmt -devel
# build and run the application
dev: build run
# prepare the app for production.
prod: tw build
# generate code based on ent schemas.
gen:
go generate -v ./ent
# start pg.
dbstart:
mkdir -p tmp/db
podman run \
--name pg \
--userns=keep-id \
--rm \
-it \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256 --auth-local=scram-sha-256"
-v $PWD/tmp/db:/var/lib/postgresql/data \
-p 127.0.0.1:5432:5432 \
docker.io/library/postgres:15.2-alpine3.17
# stop pg.
dbstop:
podman stop pg
# process svg template assets.
svgo:
svgo -i templates/svg-*.tmpl
# check Containerfile with hadolint.
hadolint:
{{cmd}} {{hadolintargs}} {{hadolintimg}}:{{hadolinttag}} < {{cfile}}
# build Container with kaniko.
kaniko:
{{cmd}} {{kanikoargs}}
# build container with podman.
container:
{{cmd}} {{args}}
# vim: set ts=2 ft=just syntax=make fenc=utf-8 ff=unix :