diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba455abc44d5b3e077a801ed70d08a86523e1436..2b1b3b62c47498fc7c7befafad7916a65ad485ea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,42 +1,35 @@ -image: python:3.10-bullseye +image: ruby:3.2.2-bookworm stages: - build - deploy variables: - PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + LC_ALL: C.UTF-8 -cache: - paths: - - .cache/pip - - venv/ - -before_script: - - python -V - - pip install virtualenv - - virtualenv venv - - source venv/bin/activate - - pip install -r requirements.txt - - apt-get update && apt-get install -y jq # Install jq - -build-book: +build-page: stage: build + variables: + JEKYLL_ENV: ${{ CI_COMMIT_BRANCH == "publish" && "production" || "development" }} + before_script: + - gem install bundler + - bundle install + - chmod +x ./build-page.sh script: - | if [ "$CI_COMMIT_BRANCH" == "publish" ]; then - echo "Building production version" - teachbooks build --publish book/ > >(tee stdout.log) 2> >(tee stderr.log >&2) + echo "Running on publish branch" + ./build-page.sh "/" true + elif [ "$CI_COMMIT_BRANCH" == "main" ]; then + echo "Running on main branch" + ./build-page.sh "/2024/draft" false else - echo "Building draft version" - teachbooks build book/ > >(tee stdout.log) 2> >(tee stderr.log >&2) + echo "Running on other branches" + ./build-page.sh "/draft" false fi artifacts: paths: - - book/_build/html - - stdout.log - - stderr.log - expire_in: 1 week + - public rules: - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "publish" - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "publish" @@ -44,46 +37,44 @@ build-book: deploy-draft: stage: deploy - needs: ["build-book"] + needs: ["build-page"] script: - | - BUILD_JOB_ID=$(curl -s -H "PRIVATE-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/pipelines/${CI_PIPELINE_ID}/jobs?scope[]=success" | jq '.[] | select(.name=="build-book") | .id') - curl -X POST https://mude.citg.tudelft.nl/hooks/book-deploy-draft \ + curl -X POST https://mude.citg.tudelft.nl/hooks/website-deploy-draft \ -H "Content-Type: application/json" \ - -H "X-Gitlab-Token: glpat-m4CzsDqHnXNn3Pf5Whyd" \ + -H "X-Gitlab-Token: glpat-sQ82fiSMo1kCi2TpgSfr" \ -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 + url: https://mude.citg.tudelft.nl/2024/draft rules: - - if: $CI_COMMIT_BRANCH == "main" + - if: $CI_COMMIT_BRANCH == "main" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" + when: always deploy-production: stage: deploy - needs: ["build-book"] + needs: ["build-page"] script: - | - BUILD_JOB_ID=$(curl -s -H "PRIVATE-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/pipelines/${CI_PIPELINE_ID}/jobs?scope[]=success" | jq '.[] | select(.name=="build-book") | .id') - curl -X POST https://mude.citg.tudelft.nl/hooks/book-deploy-production \ + curl -X POST https://mude.citg.tudelft.nl/hooks/website-deploy \ -H "Content-Type: application/json" \ - -H "X-Gitlab-Token: glpat-m4CzsDqHnXNn3Pf5Whyd" \ + -H "X-Gitlab-Token: glpat-sQ82fiSMo1kCi2TpgSfr" \ -d '{ "object_kind": "pipeline", "object_attributes": { "status": "success", "ref": "publish" - }, - "build_job_id": "'$BUILD_JOB_ID'" + } }' environment: name: production - url: https://mude.citg.tudelft.nl/2024/book + url: https://mude.citg.tudelft.nl/2024 rules: - - if: $CI_COMMIT_BRANCH == "publish" \ No newline at end of file + - if: $CI_COMMIT_BRANCH == "publish" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "publish" + when: always \ No newline at end of file