diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 57faefa31a99afddc42891368d32c67615693f3a..fd79072fe27af380c1a03dcba65980b6b4129afc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,24 +1,31 @@
-# Usando cache
+# Serviços
 
-before_script:
-    - apt-get update && apt-get install -y build-essential
+# Serviços são imagens Docker que será 'linkadas' aos containers que
+# executarão as builds. Pode ser qualquer imagem do dockerhub.com.
+# Também é possível definir os serviços individualmente para cada job,
+# especificando o serviço dentro dele.
+services:
+    # Se quiser outra versão do postgres use postgres:9.3, por exemplo.
+    # Também estão disponíveis serviços para mysql, mongodb, redis e outros.
+    - postgres:latest
+
+# Essas são variáveis de ambiente que serão passadas para a build. Como
+# normalmente você irá utilizar um banco de dados de testes, não deve ser
+# problema passar senhas por aqui. Mas se preferir também é possível definir
+# variáveis secretas no Gitlab, em <project>/Settings/Variables
+variables:
+  POSTGRES_DB: simmc
+  POSTGRES_USER: simmc
+  POSTGRES_PASSWORD: "123mudar"
 
 job1:
     script:
-        - make
-    artifacts:
-        paths:
-            - build/
-    cache:
-        # Todos os arquivos não monitorados pelo git serão 'cacheados',
-        # significando que serão copiados e (potencialmente) reutilizados em
-        # builds futuras.
-        untracked: true
-        # Também é possível utilizar o campo 'paths', como em 'artifacts'.
-        # Muito útil para fazer cache do vendor/ em aplicações rails,
-        # node_modules/ em aplicações node, ou até cache do apt.
-        paths:
-            - /var/cache/apt/archives/
+        # Exibe as variáveis de ambiente configuradas
+        - env
+        # Mostra que o serviço está configurado no /etc/hosts como uma
+        # máquina de mesmo nome (postgres, no caso)
+        - cat /etc/hosts
+        # Mostra que o serviço está acessível
+        - ping -W1 -c1 postgres
     tags:
         - debian
-
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 36b541779712c84c36e60602309bd1877a9ca798..0000000000000000000000000000000000000000
--- a/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-CC=gcc
-CFLAGS=-I.
-OBJ = hello.o
-BIN = hello
-DEST = build
-
-all: hello
-	mkdir -p $(DEST)
-	mv $(BIN) $(DEST)
-
-%.o: %.c
-	$(CC) -c -o $@ $< $(CFLAGS)
-
-$(BIN): $(OBJ)
-	$(CC) -o $@ $^ $(CFLAGS)
-
-clean:
-	rm -f $(OBJ)
-	rm -rf $(DEST)
diff --git a/hello.c b/hello.c
deleted file mode 100644
index 5e3ef85c4db9f923bfcc48ad502a7be5f743a6b6..0000000000000000000000000000000000000000
--- a/hello.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-
-int main(int argc, char** argv) {
-    printf("hello world\n");
-    return (0);
-}
diff --git a/hello.o b/hello.o
deleted file mode 100644
index 71e4bd747d5c33101988f2086a43bc31545c6975..0000000000000000000000000000000000000000
Binary files a/hello.o and /dev/null differ
diff --git a/run-test.sh b/run-test.sh
deleted file mode 100755
index 3ca8c004fafc845b404c039490fbf30e3605c15d..0000000000000000000000000000000000000000
--- a/run-test.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-# Script que testa o hello. Esse é só um exemplo, existem inúmeras ferramentas de testes
-# por aí, procure não reinventar a roda.
-
-BIN="build/hello"
-
-# Testa se arquivo existe e é executável
-if ! test -x $BIN; then
-    echo "Binário inexistente"
-    exit 1
-fi
-
-# Testa código de retorno
-res=$(./$BIN)
-ret=$?
-echo -n "Testando código de retorno... "
-if test $ret -ne 0; then
-    echo "ERRO: Programa retornou erro $ret: $res"
-    exit 1
-fi
-echo "OK"
-
-# Testa valor de retorno
-expected="hello world"
-echo -n "Testando valor de retorno... "
-if test "$res" != "$expected"; then
-    echo "ERRO: Programa deveria retornar $expected, mas retornou \"$res\"."
-    exit 1
-fi
-echo "OK"
-
-# Se chegou até aqui, sucesso!
-echo "Todos os testes passaram!"
-
-exit 0