diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fb95ebccf8aae3eee0d473c1477b0d5a5f53e53a
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,27 @@
+image: python:3.12-alpine
+
+pages:
+  stage: deploy
+  script:
+  - apk add --update --no-cache make
+  - pip install -r requirements.txt
+  ##
+  ## Use a custom theme.
+  ## See https://gitlab.com/pages/pelican/-/blob/main/README.md#use-a-custom-theme
+  ##
+  #- pelican-themes --install /tmp/<theme-name>
+  - make publish
+  artifacts:
+    paths:
+    - public/
+  rules:
+    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
+
+test:
+  stage: test
+  script:
+  - apk update && apk add make
+  - pip install -r requirements.txt
+  - make publish
+  rules:
+    - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH