pcmt/justfile

113 lines
3.0 KiB
Makefile
Raw Normal View History

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
# alias for tw.
frontend: tw
# build the application with debugging information.
build:
go mod tidy
go build -v -ldflags="-X main.version=$(git rev-parse --short HEAD)" .
# alias for build.
builddebug: build
# build the application without debugging information.
buildrelease:
go mod tidy
go build -v -trimpath -ldflags="-s -w -X main.version=$(git rev-parse --short HEAD)" .
# run the application.
run:
./pcmt -devel
# build and run the application
dev: build run
2023-05-03 23:58:40 +02:00
# prepare the app for production.
prod: tw buildrelease
2023-05-03 23:58:40 +02:00
# generate code based on ent schemas.
gen:
go generate -v ./ent
2023-05-21 18:54:28 +02:00
# add license headers to source code files.
2023-05-20 20:15:57 +02:00
addlicense:
go run github.com/google/addlicense@v1.1.1 \
-v -s=only \
-c "wanderer <a_mirre at utb dot cz>" \
-l "AGPL-3.0-only" \
-ignore "tmp/**" -ignore "assets/**" -ignore "config/testdata/**" \
-ignore "*.dhall" -ignore "node_modules/**" -ignore "devenv.yaml" \
.
# start pg.
dbstart:
mkdir -p tmp/db
podman run \
--name pg \
2023-05-28 18:58:32 +02:00
--replace \
--userns=keep-id \
--rm \
-it \
-e POSTGRES_PASSWORD=postgres \
2023-05-20 21:31:27 +02:00
-e POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256 --auth-local=scram-sha-256" \
-v $PWD/tmp/db:/var/lib/postgresql/data:Z \
-p 127.0.0.1:5432:5432 \
2023-08-01 02:20:59 +02:00
--health-cmd "sh -c 'pg_isready -U postgres -d postgres'" \
2023-07-19 22:17:40 +02:00
--health-on-failure kill \
--health-retries 3 \
--health-interval 10s \
--health-timeout 1s \
--health-start-period=5s \
docker.io/library/postgres:15.2-alpine3.17
# stop pg.
dbstop:
podman stop pg
2023-05-08 23:42:27 +02:00
# process svg template assets.
svgo:
svgo -i templates/svg-*.tmpl -i templates/svg/*.tmpl
2023-05-08 23:42:27 +02:00
# check Containerfile with hadolint.
hadolint:
{{cmd}} {{hadolintargs}} {{hadolintimg}}:{{hadolinttag}} < {{cfile}}
# build Container with kaniko.
kaniko:
{{cmd}} {{kanikoargs}}
# build container with podman.
container:
{{cmd}} {{args}}
2023-05-08 23:42:27 +02:00
# vim: set ts=2 ft=just syntax=make fenc=utf-8 ff=unix :