image: python:3.10-bullseye stages: - build - deploy variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" GIT_SUBMODULE_STRATEGY: recursive cache: paths: - .cache/pip - venv/ before_script: - python -V - pip install virtualenv - virtualenv venv - source venv/bin/activate - pip install -r requirements.txt build-book: stage: build script: # Previous debug commands remain the same - | if [ "$CI_COMMIT_BRANCH" == "release" ]; then echo "Building production version" teachbooks build --publish book/ > >(tee stdout.log) 2> >(tee stderr.log >&2) else echo "Building draft version" teachbooks build book/ > >(tee stdout.log) 2> >(tee stderr.log >&2) fi # Cleanup steps - echo "Directory sizes before cleanup:" | tee -a build_debug.log - du -sh book/_build/* | tee -a build_debug.log - echo "Cleaning up build artifacts..." - rm -rf book/_build/.doctrees # - rm -rf book/_build/jupyter_execute # - find book/_build -name "*.ipynb" -delete # - find book/_build -name "__pycache__" -exec rm -rf {} + # - find book/_build -name "*.pyc" -delete # Keep debug output - echo "Final directory sizes after cleanup:" | tee -a build_debug.log - du -sh book/_build/* | tee -a build_debug.log - echo $CI_JOB_ID > build_job_id.txt artifacts: paths: - book/_build/html/** # - book/_build/html/**/*.html # - book/_build/html/**/*.css # - book/_build/html/**/*.js # - book/_build/html/_images/**/* # - book/_build/html/_static/**/*.{css,js,woff,woff2,ttf} - stdout.log - stderr.log - build_job_id.txt - build_debug.log # exclude: # - book/_build/html/**/*.ipynb # - book/_build/html/**/__pycache__/ # - book/_build/html/**/*.doctree # - book/_build/html/**/*.pickle expire_in: 1 week rules: - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "release" - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "release" when: always deploy-draft: stage: deploy needs: ["build-book"] script: - BUILD_JOB_ID=$(cat build_job_id.txt) - | curl -X POST https://mude.citg.tudelft.nl/hooks/book-deploy-draft \ -H "Content-Type: application/json" \ -H "X-Gitlab-Token: glpat-m4CzsDqHnXNn3Pf5Whyd" \ -d "{\"object_kind\":\"pipeline\",\"object_attributes\":{\"status\":\"success\",\"ref\":\"main\"},\"build_job_id\":$BUILD_JOB_ID}" environment: name: draft url: https://mude.citg.tudelft.nl/2024/book/draft rules: - if: $CI_COMMIT_BRANCH == "main" deploy-production: stage: deploy needs: ["build-book"] script: - BUILD_JOB_ID=$(cat build_job_id.txt) - | curl -X POST https://mude.citg.tudelft.nl/hooks/book-deploy-production \ -H "Content-Type: application/json" \ -H "X-Gitlab-Token: glpat-m4CzsDqHnXNn3Pf5Whyd" \ -d "{\"object_kind\":\"pipeline\",\"object_attributes\":{\"status\":\"success\",\"ref\":\"release\"},\"build_job_id\":$BUILD_JOB_ID}" environment: name: production url: https://mude.citg.tudelft.nl/2024/book rules: - if: $CI_COMMIT_BRANCH == "release"