diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 913626d3f4eb02dff3d11a3174a94fddcdc2c022..af96d417d9bd0ec08cfeb12654af854fb680ac18 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,23 +1,56 @@
-# Exemplo usando make e artifacts.
-
 before_script:
-    # Vamos precisar do build-essential para compilar
     - apt-get update && apt-get install -y build-essential
 
+# Você pode definir estágios de integração contínua. Estes três estágios
+# abaixo são os mais comuns. A ordem em que aparecem define a ordem de
+# execução. De forma que os 'jobs' marcados como estágio 'build' executarão
+# antes dos jobs 'test', que por sua vez executa antes dos jobs 'deploy'.
+# O estágio seguinte só é executado se todos os jobs do estágio anterior
+# completarem com sucesso.
+# NOTA: ATUALMENTE NÃO EXISTE UMA FORMA DE PASSAR O RESULTADO DE UM ESTÁGIO
+# PARA OUTRO, POR EXEMPLO O ARQUIVO COMPILADO EM 'BUILD' PARA SER TESTADO NO
+# ESTÁGIO 'TEST'. EXISTE UMA SOLUÇÃO PREVISTA PARA O GITLAB 8.4.
+stages:
+    - build
+    - test
+    - deploy
+
 job1:
+    # Aqui aparece a definição sobre de qual estágio o job faz parte. Se
+    # nenhum for especificado, o gitlab assume que o estágio é 'test'.
+    # Repare que o valor foi atribuído na mesma linha, mas poderia ser na
+    # linha de baixo, como é feito na maioria dos casos.
+    stage: build
+    tags:
+        - debian
     script:
-        # Executa comando make
+        - echo "Estágio 'build'"
         - make
-    # Os artefatos são anexados a build e acessíveis na interface do Gitlab.
-    # Você pode querer anexar binários gerados, arquivos .deb ou qualquer
-    # coisa que seja fruto da build.
-    artifacts:
-        # paths define os diretórios/arquivos que serão arquivados, pode
-        # colocar uma lista deles.
-        paths:
-            - build/
-        # Também é possível arquivar todos os arquivos não monitorados pelo
-        # git.
-        # - untracked: true
+
+job2:
+    # Esse job só será executado se todos os jobs do estágio 'build'
+    # terminarem com sucesso.
+    stage: test
     tags:
         - debian
+    script:
+        - echo "Estágio 'test'"
+        # Como dito, ainda não é possível passar arquivos de um estágio para
+        # outro, por isso o comando abaixo vai falhar.
+        - ./run-test.sh
+
+job3:
+    # Os jobs marcados como 'deploy' são os últimos a serem executados.
+    stage: deploy
+    tags:
+        - debian
+    script:
+        - echo "Estágio 'deploy'"
+        # Aqui você pode fazer upload de algo para um servidor. Para isso
+        # (atualmente) você precisa gerar um par de chaves e colocar a chave
+        # privada em alguma variável que é passada para os scripts
+        # abaixo como variável de ambiente. Defina essa variável em
+        # <projeto>/Settings/Variables. O script deve então salvar essa
+        # variável (chave privada) em um arquivo para poder utilizá-la com
+        # ssh.
+        #- script_que_vai_copiar_para_servidor.sh