mirror of
https://github.com/Cian-H/iform-invenio.git
synced 2026-08-03 10:33:22 +01:00
Uwsgi (#1)
* Update devenv * Added uv for python package management * Clean up gunicorn config artifacts * Scaffolded site * Fixed configuration for 13.0 * Added iform config/theme * Added agent contracts to allow for more automation of work in repo * Added a local rebuild command to justfile for development * Fixed deployment persistence issues * Site polish and deployment streamlining * Updated justfile to include production deployment commands * Fixed deployment bugs * Fixed local test commands
This commit is contained in:
@@ -3,11 +3,11 @@ update auto-rollback="false":
|
||||
if [ ! -f update.lock ]; then
|
||||
touch update.lock
|
||||
just tag-version
|
||||
docker compose down
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env down
|
||||
git pull
|
||||
docker compose pull
|
||||
docker compose build
|
||||
docker compose up -d --wait
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env pull
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env build
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env up -d --wait
|
||||
rm update.lock
|
||||
if [ "{{auto-rollback}}" = "true" ]; then
|
||||
just healthcheck || just rollback
|
||||
@@ -29,7 +29,7 @@ tag-version:
|
||||
#!/usr/bin/env bash
|
||||
git tag backup-$(date +%Y%m%d-%H%M%S)
|
||||
mkdir -p versions
|
||||
docker compose images | grep -v "REPOSITORY" > versions/$(date +%Y%m%d-%H%M%S).txt
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env images | grep -v "REPOSITORY" > ../versions/$(date +%Y%m%d-%H%M%S).txt
|
||||
|
||||
healthcheck:
|
||||
#!/usr/bin/env bash
|
||||
@@ -66,9 +66,9 @@ rollback version="":
|
||||
|
||||
# Then check out the version and update
|
||||
git checkout $version
|
||||
docker compose down
|
||||
docker compose build --no-cache
|
||||
docker compose up -d
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env down
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env build --no-cache
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env up -d
|
||||
git switch $current_branch # Return to original branch
|
||||
|
||||
cleanup-versions:
|
||||
@@ -81,8 +81,81 @@ cleanup-versions:
|
||||
|
||||
deploy *args:
|
||||
./env.sh {{args}}
|
||||
docker compose up -d --wait
|
||||
docker compose exec -it worker setup.sh
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env up -d --wait
|
||||
cd i-form-data-repository && docker compose -f docker-compose.full.yml --env-file ../.env exec worker bash -c "invenio db init || true; invenio db create || true; invenio alembic upgrade || true; invenio index init || true"
|
||||
|
||||
fmt:
|
||||
bun run prettier --write "**/*.{js,jsx,ts,tsx,html,css,scss,sass,svelte,yaml,json,markdown}"
|
||||
|
||||
[working-directory("../invenio-theme-iform/")]
|
||||
build-theme-wheel:
|
||||
rm -rf dist
|
||||
direnv exec . uv build --package invenio-theme-iform
|
||||
|
||||
[working-directory("../invenio-config-iform/")]
|
||||
build-config-wheel:
|
||||
rm -rf dist
|
||||
direnv exec . uv build --package invenio-config-iform
|
||||
|
||||
build-wheels: build-theme-wheel build-config-wheel
|
||||
echo "Building fresh wheels for local packages..."
|
||||
mkdir -p i-form-data-repository/local_wheels
|
||||
rm -f i-form-data-repository/local_wheels/*.whl
|
||||
cp ../invenio-theme-iform/dist/*.whl i-form-data-repository/local_wheels/
|
||||
cp ../invenio-config-iform/dist/*.whl i-form-data-repository/local_wheels/
|
||||
|
||||
test-local: build-wheels
|
||||
#!/usr/bin/env bash
|
||||
echo "Rebuilding and restarting local docker stack..."
|
||||
cd i-form-data-repository
|
||||
docker compose -f docker-compose.full.yml --env-file ../.env down
|
||||
docker build -t i-form-data-repository:latest --no-cache --build-arg INSTALL_LOCAL_WHEELS=true .
|
||||
docker compose -f docker-compose.full.yml --env-file ../.env up -d --wait
|
||||
docker compose -f docker-compose.full.yml --env-file ../.env exec worker bash -c "invenio db init || true; invenio db create || true; invenio alembic upgrade || true; invenio index init || true"
|
||||
curl -skI https://127.0.0.1:8443/ || echo "HTTPS verification failed"
|
||||
# Production deployment commands using Docker/Podman
|
||||
|
||||
# Load AWS secrets (adjust path as needed)
|
||||
load-aws-secrets:
|
||||
@if [ -f aws_secrets.sh ]; then . ./aws_secrets.sh; else echo "AWS secrets file not found"; exit 1; fi
|
||||
|
||||
# First-time deployment to production
|
||||
prod-deploy: load-aws-secrets build-wheels
|
||||
#!/usr/bin/env bash
|
||||
echo "Deploying to production (first-time)..."
|
||||
git switch prod
|
||||
git pull origin prod
|
||||
# Build and start containers
|
||||
cd i-form-data-repository
|
||||
docker build -t i-form-data-repository:latest --no-cache --build-arg INSTALL_LOCAL_WHEELS=true .
|
||||
docker compose -f docker-compose.full.yml --env-file ../.env up -d --wait
|
||||
# Run initial database setup, migrations, and collect static assets
|
||||
docker compose -f docker-compose.full.yml --env-file ../.env exec worker bash -c " \
|
||||
invenio db init && \
|
||||
invenio db create && \
|
||||
invenio alembic upgrade head && \
|
||||
invenio collect -v && \
|
||||
invenio index init \
|
||||
"
|
||||
|
||||
# Update production without full redeploy (pull + migrations + static)
|
||||
prod-update: load-aws-secrets build-wheels
|
||||
#!/usr/bin/env bash
|
||||
echo "Updating production deployment..."
|
||||
git switch prod
|
||||
git pull origin prod
|
||||
cd i-form-data-repository
|
||||
docker build -t i-form-data-repository:latest --no-cache --build-arg INSTALL_LOCAL_WHEELS=true .
|
||||
docker compose -f docker-compose.full.yml --env-file ../.env up -d --wait
|
||||
docker compose -f docker-compose.full.yml --env-file ../.env exec worker bash -c " \
|
||||
invenio alembic upgrade head && \
|
||||
invenio collect -v \
|
||||
"
|
||||
|
||||
# Clean all build artefacts and environment
|
||||
prod-clean:
|
||||
@echo "Cleaning production build artefacts..."
|
||||
rm -rf .venv build dist *.egg-info
|
||||
find . -type d -name "__pycache__" -exec rm -r {} + || true
|
||||
rm -rf static node_modules
|
||||
echo "Clean complete. Re‑create environment before next deploy."
|
||||
|
||||
Reference in New Issue
Block a user