Skip to content
Snippets Groups Projects
Commit 8d90215c authored by Diego Giovane Pasqualin's avatar Diego Giovane Pasqualin
Browse files

Serviços

parent b9982491
Branches
No related tags found
No related merge requests found
# Usando cache # Serviços
before_script: # Serviços são imagens Docker que será 'linkadas' aos containers que
- apt-get update && apt-get install -y build-essential # 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: job1:
script: script:
- make # Exibe as variáveis de ambiente configuradas
artifacts: - env
paths: # Mostra que o serviço está configurado no /etc/hosts como uma
- build/ # máquina de mesmo nome (postgres, no caso)
cache: - cat /etc/hosts
# Todos os arquivos não monitorados pelo git serão 'cacheados', # Mostra que o serviço está acessível
# significando que serão copiados e (potencialmente) reutilizados em - ping -W1 -c1 postgres
# 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/
tags: tags:
- debian - 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)
#include <stdio.h>
int main(int argc, char** argv) {
printf("hello world\n");
return (0);
}
File deleted
#!/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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment