diff --git a/i-form-data-repository/.gitignore b/i-form-data-repository/.gitignore index 8b4106d..2c7f99d 100644 --- a/i-form-data-repository/.gitignore +++ b/i-form-data-repository/.gitignore @@ -73,3 +73,7 @@ data/.minio.sys # Celery celerybeat-schedule + +# Local testing +local_wheels/* +!local_wheels/.gitkeep diff --git a/i-form-data-repository/Dockerfile b/i-form-data-repository/Dockerfile index 5a32464..1720b4f 100644 --- a/i-form-data-repository/Dockerfile +++ b/i-form-data-repository/Dockerfile @@ -30,6 +30,14 @@ COPY ./ . RUN curl -fsSL https://rpm.nodesource.com/setup_20.x | bash - && \ dnf install -y nodejs +ARG INSTALL_LOCAL_WHEELS=false +COPY ./local_wheels/ ./local_wheels/ +RUN if [ "$INSTALL_LOCAL_WHEELS" = "true" ]; then \ + if ls ./local_wheels/invenio_theme_iform*.whl ./local_wheels/invenio_config_iform*.whl 1> /dev/null 2>&1; then \ + pipenv run pip install --no-deps --force-reinstall ./local_wheels/invenio_theme_iform*.whl ./local_wheels/invenio_config_iform*.whl; \ + fi \ + fi + ENV WEBPACKEXT_PROJECT="invenio_assets.webpack:rspack_project" RUN cp -r ./static/. ${INVENIO_INSTANCE_PATH}/static/ && \ cp -r ./assets/. ${INVENIO_INSTANCE_PATH}/assets/ && \ diff --git a/i-form-data-repository/local_wheels/.gitkeep b/i-form-data-repository/local_wheels/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/justfile b/justfile index 5dbacc6..133823a 100644 --- a/justfile +++ b/justfile @@ -86,3 +86,23 @@ deploy *args: fmt: bun run prettier --write "**/*.{js,jsx,ts,tsx,html,css,scss,sass,svelte,yaml,json,markdown}" + +test-local: + #!/usr/bin/env bash + echo "Building fresh wheels for local packages..." + mkdir -p i-form-data-repository/local_wheels + rm -f i-form-data-repository/local_wheels/*.whl + + (cd ../invenio-theme-iform && rm -rf dist && uvx --from build pyproject-build -w) + cp ../invenio-theme-iform/dist/*.whl i-form-data-repository/local_wheels/ + + (cd ../invenio-config-iform && rm -rf dist && uvx --from build pyproject-build -w) + cp ../invenio-config-iform/dist/*.whl i-form-data-repository/local_wheels/ + + echo "Rebuilding and restarting local docker stack..." + cd i-form-data-repository + docker compose -f docker-compose.full.yml --env-file ../.env build --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 restart frontend + docker compose -f docker-compose.full.yml --env-file ../.env exec worker setup.sh + curl -skI https://127.0.0.1:8443/ || echo "HTTPS verification failed"