diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..f6ff4005ef7430535c25852defebc69483becd3c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+matrices_intro.html
+matrices_intro.pdf
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..966b3b6a2a980771b724301809a978f404ce660e
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,44 @@
+image: omalaspinas/pandoc:latest
+
+before_script:
+   ##
+   ## Run ssh-agent (inside the build environment)
+   ##
+   - eval $(ssh-agent -s)
+
+   ##
+   ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
+   ## We're using tr to fix line endings which makes ed25519 keys work
+   ## without extra base64 encoding.
+   ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
+   ##
+   - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
+
+   ##
+   ## Create the SSH directory and give it the right permissions
+   ##
+   - mkdir -p ~/.ssh
+   - chmod 700 ~/.ssh
+
+   ##
+   ## Add host id to known_hosts
+   ##
+   - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
+   - chmod 644 ~/.ssh/known_hosts
+
+
+
+build_only:
+  script:
+    - make
+    - make deploy
+    - rsync -avz prog_seq_c_tp malaspinas@129.194.185.180:/www/
+
+build_artifacts:
+  script:
+    - make
+  artifacts:
+    paths:
+      - "*.pdf"
+  only:
+    - tags