diff --git a/gitlab-ci.yml b/gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..3e17332c0469ed166140bdb7d50ee19a01f15156 --- /dev/null +++ b/gitlab-ci.yml @@ -0,0 +1,56 @@ +image: docker:20.10.16 # Define the Docker image + +stages: # Define stages in the pipeline + - prepare + - build + - deploy + +prepare: + stage: prepare + tags: + - docker + services: + - docker:20.10.16-dind + before_script: + - echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin + script: + - docker pull $CI_REGISTRY_IMAGE:latest || true + - docker build + --cache-from $CI_REGISTRY_IMAGE:latest + --tag $CI_REGISTRY_IMAGE:latest . + - docker push $CI_REGISTRY_IMAGE:latest + +# Job to build documentation +build-docs: + stage: build + dependencies: + - prepare + image: + name: $CI_REGISTRY_IMAGE:latest + entrypoint: [""] + tags: + - docker + script: + - sphinx-build docs/source docs/build # Build the documentation + artifacts: + paths: + - docs/build # Save the build output for later stages + expire_in: 12 month # Optional: Set how long to keep the artifacts (default: 30 days) + +# Job to deploy documentation to GitLab Pages +pages: + stage: deploy + dependencies: + - build-docs + image: + name: $CI_REGISTRY_IMAGE:latest + entrypoint: [""] + tags: + - docker + script: + - mv docs/build public # Move the build output to the "public" directory + artifacts: + paths: + - public # Files in the "public" folder will be deployed to GitLab Pages + only: + - main # Only deploy if the changes are in the default branch