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
Pipeline #
# 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
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