* 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:
2026-07-16 12:05:06 +01:00
committed by GitHub
parent 15a179c2bf
commit 413c85096d
76 changed files with 8396 additions and 1143 deletions
+83 -10
View File
@@ -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. Recreate environment before next deploy."