-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgitlab.txt
More file actions
77 lines (48 loc) · 4.43 KB
/
gitlab.txt
File metadata and controls
77 lines (48 loc) · 4.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
- fork: acessar o repositório que sequer contribuir e clicar em "fork"
- ao fazer isso será criado um repositório na minha conta igual ao repositório que eu quero contribuir, mas esse repositório é meu
- as mudanças feita nesse repositório valem só pra mim, se eu quiser que essas mudanças entrem no repositório que eu fiz fork, precisa criar uma merge request
gitlab pages:
- na criação do repositório, definir como gitlab pages, dessa forma ele será acessível em https://<username>.github.io/<repository-name>
Integração Contínua:
- O código é commitado no repositório compartilhado com frequência, Objetivo é evitar grandes conflitos de merge, ou seja, (“inferno de integração”)
– Um servidor de compilação cria software automaticamente e executa testes de unidade e testes de integração para identificar regressões
Entrega Contínua
- Os incrementos publicáveis são “entregues” com frequência, possivelmente automaticamente, à medida que os testes de unidade e os testes de aceitação são aprovados
- Objetivo é encurtar os ciclos de lançamento, garantindo que o código de produção seja sempre despachável
– "Entrega" é qualquer mecanismo usado para liberar o código - pode ser tão simples quanto um merge com a branch oficial de lançamento
- Os recursos que passam nos testes de aceitação do cliente são implantados automaticamente na produção
– Reduz a latência de desenvolvimento de software para produção
– Minimiza as alterações lançadas em cada versão do software
– Exemplo: o Gitlab permite a mesclagem automática de um branch para master quando o conjunto de testes automatizado é concluído com sucesso
CI/CD
- permite que comandos shell sejam executados em resposta a commits
- Você pode definir e executar o seu próprio: Processo de compilação, Teste, Processo de empacotamento/implantação/fusão
- Execução do CI/CD depende de um arquivo .gitlab-ci.yml na raiz do projeto
- O USO DE CI/CD REQUER A ATIVAÇÃO DE UM EXECUTOR (RUNNER), a instalação do Gitlab do SLU atualmente não possui executores, mas uma conta gratuita no gitlab.com permite 400 minutos de tempo de execução por mês
- quando existe um arquivo .gitlab-ci.yml um pipeline é levantado no repositório fazendo build do que foi definido quando um push é feito
- Uma ação de confirmação resulta na execução de um pipeline, Um pipeline tem um ou mais estágios (stages), Um estágio tem um ou mais trabalhos (jobs)
- Cada tarefa é transferida para um executor, que executa os comandos desejados
Exercício aula
- tem uma VM rodando no virtual box ubuntu com ssh rodando na porta 22
- foi feito um redirecionamento de portas na configuração da VM ubuntu para que a porta 2222 do hospedeiro (PC real) redirecione para a porta 22 da VM, (porta do hospedeiro 2222, porta do convidado 22)
- no PC real, rodou-se o comando "ssh ubuntu@localhost -p 2222", dessa forma foi possível acessar por SSH a VM do virtual box pelo PC real windows
- Vamos instalar o runner do Gitlab na nossa máquina virtual Linux, para simular um ambiente de deploy em servidor de produção
– Nossa VM Linux vai ser nosso servidor de aplicação (vamos rodar projetos de backend e frontend nele)
– Além disso vai ser nosso servidor de deploy (em aplicações reais isso estaria em um servidor separado)
Passos para instalação:
– curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
– sudo apt-get install gitlab-runner
– Registrar o runner no gitlab com um token
no gitlab foi criado um grupo o nome sendo a minha matrícula
depois foi criado um runner no gitlab
é preciso registrar o runner na VM local:
gitlab-runner register --url https://gitlab.com --token [token]
definir o tipo como shell
rodar: sudo usermod -aG docker gitlab-runner. isso faz com que o gitlab-runner possa rodar o comando docker
sudo systemctl restart gitlab-runner
sudo visudo e adicionar no arquivo: gitlab-runner ALL=(ALL) NOPASSWD:ALL
no gitlab, dentro do grupo criado, foi criado um project com os arquivos de um projeto java com o arquivo .gitlab-ci.yml
ao fazer push nesse projeto, o build é executado usando o runner que está na VM ubuntu do virtual box
ao acessar localhost:888/hello-world é exibido o projeto no PC real
---------------------
GITLAB REGISTRY: armazenamento de imagens Docker que o gitlab possui