Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • exemplo/7
  • exemplo/6
  • exemplo/5
  • exemplo/4
  • exemplo/3
  • exemplo/10
  • exemplo/9
  • exemplo/8
  • exemplo/2
  • exemplo/1
  • master
11 results

Target

Select target project
  • Diego Giovane Pasqualin / gitlab-ci-by-example
  • Walmes Marques Zeviani / gitlab-ci-by-example
  • Daniel Bissani Furlin / gitlab-ci-by-example
  • Luiza Wille / gitlab-ci-by-example
  • Hamer Iboshi / gitlab-ci-by-example
  • lsa17 / gitlab-ci-by-example
  • Vytor Calixto / gitlab-ci-by-example
7 results
Select Git revision
  • master
  • exemplo/10
  • exemplo/9
  • exemplo/8
  • exemplo/7
  • exemplo/6
  • exemplo/5
  • exemplo/4
  • exemplo/2
  • exemplo/3
  • exemplo/1
11 results
Show changes

Commits on Source 4

6 files
+ 121
19
Compare changes
  • Side-by-side
  • Inline

Files

.gitlab-ci.yml

0 → 100644
+60 −0
Original line number Original line Diff line number Diff line
# Definindo estágios

before_script:
    - apt-get update && apt-get install -y build-essential

# Você pode definir estágios de integração contínua. Estes três estágios
# abaixo são os mais comuns. A ordem em que aparecem define a ordem de
# execução, de forma que os 'jobs' marcados como estágio 'build' executarão
# antes dos jobs 'test', que por sua vez executa antes dos jobs 'deploy'.
#
# O estágio seguinte só é executado se todos os jobs do estágio anterior
# completarem com sucesso.
#
# NOTA: ATUALMENTE NÃO EXISTE UMA FORMA DE PASSAR O RESULTADO DE UM ESTÁGIO
# PARA OUTRO, POR EXEMPLO O ARQUIVO COMPILADO EM 'BUILD' PARA SER TESTADO NO
# ESTÁGIO 'TEST'. EXISTE UMA SOLUÇÃO PREVISTA PARA O GITLAB 8.4.
stages:
    - build
    - test
    - deploy

job1:
    # Aqui aparece a definição sobre de qual estágio o job faz parte. Se
    # nenhum for especificado, o gitlab assume que o estágio é 'test'.
    # Repare que o valor foi atribuído na mesma linha, mas poderia ser na
    # linha de baixo, como é feito na maioria dos casos.
    stage: build
    tags:
        - debian
    script:
        - echo "Estágio 'build'"
        - make

job2:
    # Esse job só será executado se todos os jobs do estágio 'build'
    # terminarem com sucesso.
    stage: test
    tags:
        - debian
    script:
        - echo "Estágio 'test'"
        # Como dito, ainda não é possível passar arquivos de um estágio para
        # outro, por isso o comando abaixo vai falhar.
        - ./run-test.sh

job3:
    # Os jobs marcados como 'deploy' são os últimos a serem executados.
    stage: deploy
    tags:
        - debian
    script:
        - echo "Estágio 'deploy'"
        # Aqui você pode fazer upload de algo para um servidor. Para isso
        # (atualmente) você precisa gerar um par de chaves e colocar a chave
        # privada em alguma variável que é passada para os scripts
        # abaixo como variável de ambiente. Defina essa variável em
        # <projeto>/Settings/Variables. O script deve então salvar essa
        # variável (chave privada) em um arquivo para poder utilizá-la com
        # ssh.
        #- script_que_vai_copiar_para_servidor.sh

Makefile

0 → 100644
+19 −0
Original line number Original line Diff line number Diff line
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)

README.md

deleted100644 → 0
+0 −19
Original line number Original line Diff line number Diff line
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.

hello.c

0 → 100644
+6 −0
Original line number Original line Diff line number Diff line
#include <stdio.h>

int main(int argc, char** argv) {
    printf("hello world\n");
    return (0);
}

hello.o

0 → 100644
+1.47 KiB

File added.

No diff preview for this file type.

run-test.sh

0 → 100755
+36 −0
Original line number Original line Diff line number Diff line
#!/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