# GitLab CI — Website deployment only # All Rust CI (test, clippy, fmt, benchmarks, coverage) runs on GitHub Actions. # This pipeline is only active on the `deploy` branch for website builds. workflow: rules: - if: $CI_COMMIT_BRANCH == "deploy" - when: never stages: - build - deploy website_build: stage: build image: node:22.12.0 variables: NPM_CONFIG_CACHE: "$CI_PROJECT_DIR/website/.npm" cache: key: "website-${CI_COMMIT_REF_SLUG}" paths: - website/.npm/ script: - cd website - npm ci - npm run build deploy_website: stage: deploy image: docker:24 needs: [] variables: CONTAINER_NAME: leanctx-web IMAGE_NAME: lean-ctx-web DOCKER_HOST: unix:///var/run/docker.sock script: - echo "Building website image from source (multi-stage Dockerfile)..." - test "$(git ls-files website/dist | wc -l)" -eq 0 - test "$(git ls-files website/node_modules | wc -l)" -eq 0 - cd website - docker build -t ${IMAGE_NAME}:latest . - echo "Stopping old container..." - docker stop ${CONTAINER_NAME} || true - docker rm ${CONTAINER_NAME} || true - echo "Starting new container..." - docker run -d --name ${CONTAINER_NAME} --network coolify --restart unless-stopped ${IMAGE_NAME}:latest - echo "Verifying..." - sleep 2 - docker ps --filter name=${CONTAINER_NAME} --format "{{.Status}}" - echo "Deploy complete!"