diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..36b541779712c84c36e60602309bd1877a9ca798
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,19 @@
+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/README.md b/README.md
deleted file mode 100644
index cbd32a969b3cfbb3c8d5504809384a8b83d56be8..0000000000000000000000000000000000000000
--- a/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-Esse repositório contém exemplos de uso do sistema de integração contínua do
-gitlab.
-
-Cada exemplo encontra-se em um ramo diferente, nomeado como
-`exemplo/X`, onde X é um inteiro crescente. Normalmente, quanto maior X, mais
-funcionalidades são apresentadas.
-
-Para ver o primeiro exemplo mude para o *branch* `exemplo/1` com o comando abaixo e
-abra o arquivo `.gitlab-ci.yml`.
-
-```
-git checkout -t origin/exemplo/1
-```
-
-Todos os *builds* feitos aparecem no item *Builds*, aba *All*, do menu lateral esquerdo
-no Gitlab.
-
-Clique no valor sob a coluna *Status* para ver detalhes do *build*. Repare
-no campo *Ref*, que indica o *branch* onde a *build* foi executada.
diff --git a/hello.c b/hello.c
new file mode 100644
index 0000000000000000000000000000000000000000..5e3ef85c4db9f923bfcc48ad502a7be5f743a6b6
--- /dev/null
+++ b/hello.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(int argc, char** argv) {
+    printf("hello world\n");
+    return (0);
+}
diff --git a/hello.o b/hello.o
new file mode 100644
index 0000000000000000000000000000000000000000..71e4bd747d5c33101988f2086a43bc31545c6975
Binary files /dev/null and b/hello.o differ
diff --git a/run-test.sh b/run-test.sh
new file mode 100755
index 0000000000000000000000000000000000000000..3ca8c004fafc845b404c039490fbf30e3605c15d
--- /dev/null
+++ b/run-test.sh
@@ -0,0 +1,36 @@
+#!/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