Files
Cleanuparr/code/Makefile
T

92 lines
4.2 KiB
Makefile

.DEFAULT_GOAL := no-default
no-default:
$(error You must specify a make target)
migrate-data:
ifndef name
$(error name is required. Usage: make migrate-data name=YourMigrationName)
endif
dotnet ef migrations add $(name) --context DataContext --project backend/Cleanuparr.Persistence.Sqlite/Cleanuparr.Persistence.Sqlite.csproj --startup-project backend/Cleanuparr.Api/Cleanuparr.Api.csproj --output-dir Migrations/Data
migrate-events:
ifndef name
$(error name is required. Usage: make migrate-events name=YourMigrationName)
endif
dotnet ef migrations add $(name) --context EventsContext --project backend/Cleanuparr.Persistence.Sqlite/Cleanuparr.Persistence.Sqlite.csproj --startup-project backend/Cleanuparr.Api/Cleanuparr.Api.csproj --output-dir Migrations/Events
migrate-users:
ifndef name
$(error name is required. Usage: make migrate-users name=YourMigrationName)
endif
dotnet ef migrations add $(name) --context UsersContext --project backend/Cleanuparr.Persistence.Sqlite/Cleanuparr.Persistence.Sqlite.csproj --startup-project backend/Cleanuparr.Api/Cleanuparr.Api.csproj --output-dir Migrations/Users
PG_DUMMY = DATABASE_PROVIDER=postgres POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_USER=postgres POSTGRES_PASS=postgres POSTGRES_DB=cleanuparr
migrate-postgres-data:
ifndef name
$(error name is required. Usage: make migrate-postgres-data name=YourMigrationName)
endif
$(PG_DUMMY) dotnet ef migrations add $(name) --context DataContext --project backend/Cleanuparr.Persistence.Postgres/Cleanuparr.Persistence.Postgres.csproj --startup-project backend/Cleanuparr.Api/Cleanuparr.Api.csproj --output-dir Migrations/Data
migrate-postgres-events:
ifndef name
$(error name is required. Usage: make migrate-postgres-events name=YourMigrationName)
endif
$(PG_DUMMY) dotnet ef migrations add $(name) --context EventsContext --project backend/Cleanuparr.Persistence.Postgres/Cleanuparr.Persistence.Postgres.csproj --startup-project backend/Cleanuparr.Api/Cleanuparr.Api.csproj --output-dir Migrations/Events
migrate-postgres-users:
ifndef name
$(error name is required. Usage: make migrate-postgres-users name=YourMigrationName)
endif
$(PG_DUMMY) dotnet ef migrations add $(name) --context UsersContext --project backend/Cleanuparr.Persistence.Postgres/Cleanuparr.Persistence.Postgres.csproj --startup-project backend/Cleanuparr.Api/Cleanuparr.Api.csproj --output-dir Migrations/Users
release-check:
@previous=$$(gh release view --json tagName --jq .tagName) || exit 1; \
published=$$(gh release view --json publishedAt --jq .publishedAt); \
echo "Previous release: $$previous ($$published)"; \
echo ""; \
if ! breaking=$$(gh api --paginate "repos/{owner}/{repo}/issues?labels=breaking&state=closed&since=$$published&per_page=100" \
--jq ".[] | select(.pull_request.merged_at > \"$$published\") | \" #\(.number) \(.title)\""); then \
echo "Failed to query pull request labels:" >&2; \
echo "$$breaking" >&2; \
exit 1; \
fi; \
if [ -n "$$breaking" ]; then \
echo "Breaking changes merged since $$previous:"; \
echo "$$breaking"; \
echo ""; \
echo "=> the next release must bump the MINOR"; \
else \
echo "No breaking changes merged since $$previous"; \
echo ""; \
echo "=> the next release can be a PATCH"; \
fi
release-notes:
ifndef version
$(error version is required. Usage: make release-notes version=2.11.0)
endif
@previous=$$(gh release view --json tagName --jq .tagName); \
gh api -X POST repos/{owner}/{repo}/releases/generate-notes \
-f tag_name=v$(version) -f target_commitish=main -f previous_tag_name=$$previous --jq .body
docker-build:
ifndef tag
$(error tag is required. Usage: make docker-build tag=latest version=1.0.0 user=... pat=...)
endif
ifndef version
$(error version is required. Usage: make docker-build tag=latest version=1.0.0 user=... pat=...)
endif
ifndef user
$(error user is required. Usage: make docker-build tag=latest version=1.0.0 user=... pat=...)
endif
ifndef pat
$(error pat is required. Usage: make docker-build tag=latest version=1.0.0 user=... pat=...)
endif
PACKAGES_PAT=$(pat) DOCKER_BUILDKIT=1 docker build \
--build-arg VERSION=$(version) \
--build-arg PACKAGES_USERNAME=$(user) \
--secret id=packages_pat,env=PACKAGES_PAT \
-t cleanuparr:$(tag) \
.