Refactor to break out scheduler

This commit is contained in:
2025-10-23 20:23:03 -04:00
parent 84312d0b50
commit a9dc5ffdc1
66 changed files with 5796 additions and 705 deletions

View File

@@ -4,6 +4,28 @@ version: '3'
dotenv: ['.env.local', '.env']
vars:
version: '{{ coalesce .version .v "latest" }}'
folder: '{{ coalesce .folder .f "nginx" }}'
registry: '{{ coalesce .registry .r "gitea.bensherriff.com/bsherriff" }}'
platform: '{{ coalesce .platform .p "linux/amd64,linux/arm64" }}'
image: '{{.registry}}/aviation-{{.folder}}:{{.version}}'
build_date:
sh: date -u +%Y-%m-%dT%H:%M:%SZ
vcs_ref:
sh: git rev-parse HEAD
context: '{{ coalesce .context .ctx "." }}'
dockerfile: >
{{- if or (eq .folder "nginx") (eq .folder "ui") -}}
{{.folder}}/Dockerfile
{{- else if eq .folder "api" -}}
crates/api/Dockerfile
{{- else if eq .folder "scheduler" -}}
crates/scheduler/Dockerfile
{{- else -}}
{{ fail (printf "Invalid folder '%s'. Valid: nginx, ui, api, scheduler" .folder) }}
{{- end -}}
tasks:
default:
cmds:
@@ -18,66 +40,101 @@ tasks:
dev-servers:
deps:
- task: run-api
- task: run-scheduler
- task: run-ui
# API Commands
build-api:
dir: api
cmds:
- cargo build
dir: crates/api
cmd: cargo build
format-api:
dir: api
cmds:
- cargo fmt
dir: crates/api
cmd: cargo fmt
run-api:
dir: api
cmds:
- cargo run
dir: crates/api
cmd: cargo run
silent: true
# Scheduler Commands
build-scheduler:
dir: crates/scheduler
cmd: cargo build
format-scheduler:
dir: crates/scheduler
cmd: cargo fmt
run-scheduler:
dir: crates/scheduler
cmd: cargo run
silent: true
# UI Commands
build-ui:
dir: ui
cmds:
- npm run build
cmd: npm run build
format-ui:
dir: ui
cmds:
- npm run format
cmd: npm run format
clean-ui:
dir: ui
cmds:
- rm -rf node_modules dist stats.html
cmd: rm -rf node_modules dist stats.html
run-ui:
dir: ui
cmds:
- npm run dev
cmd: npm run dev
silent: true
# Docker Commands
docker-backend:
cmds:
- docker compose --profile backend up -d
cmd: docker compose --profile backend up -d
docker-up:
cmds:
- docker compose --profile backend --profile api up -d
cmd: docker compose --profile backend --profile api up -d
docker-down:
cmds:
- docker compose --profile backend --profile api down
cmd: docker compose --profile backend --profile api down
docker-clean:
cmds:
- docker compose --profile backend --profile api down -v
cmd: docker compose --profile backend --profile api down -v
docker-refresh:
cmds:
- task: docker-clean
- task: docker-up
docker-build:
build:
desc: Build a specific docker image from a folder
cmds:
- docker compose build
- |
docker buildx build \
-f {{.dockerfile}} \
-t {{.image}} \
--load \
--build-arg BUILD_DATE={{.build_date}} \
--build-arg BUILD_VERSION={{.version}} \
--build-arg VCS_REF={{.vcs_ref}} \
{{.context}}
push:
desc: Build and push a specific docker image from a folder
cmds:
- |
docker buildx create \
--use \
--driver docker-container \
--bootstrap \
--name default-builder \
--platform {{.platform}} \
|| true
ignore_error: true
- |
docker buildx build \
-f {{.dockerfile}} \
--platform {{.platform}} \
-t {{.image}} \
--push \
--build-arg BUILD_DATE={{.build_date}} \
--build-arg BUILD_VERSION={{.version}} \
--build-arg VCS_REF={{.vcs_ref}} \
{{.context}}
.
psql:
cmds:
- docker exec -it aviation-postgres psql -U ${POSTGRES_USER} -d ${POSTGRES_DB} -P pager=off
cmd: docker exec -it aviation-postgres psql -U ${POSTGRES_USER} -d ${POSTGRES_DB} -P pager=off
cert:
cmds: