...
 
Commits (6)
# Utilizando cache entre builds
before_script:
- apt-get update && apt-get install -y build-essential
job1:
script:
- make
artifacts:
paths:
- build/
# Com o comando abaixo será feito cache de todos os arquivos não
# monitorados pelo git. Eles serão automaticamente copiados no mesmo
# diretório em builds futuras.
cache:
untracked: true
# Também é possível utilizar o campo 'paths', como em 'artifacts'.
# Muito útil para fazer cache do vendor/ em aplicações rails ou
# node_modules/ em aplicações node.
paths:
- /var/cache/apt/archives/
tags:
- debian
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)
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.
#include <stdio.h>
int main(int argc, char** argv) {
printf("hello world\n");
return (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