Configuring GitLab CE CI for a Rails 4 monolith
Configuring GitLab CE CI for a Rails 4 monolith
Configuring GitLab CE CI for a Rails 4 monolith
Estamos usando GitLab CE e precisamos de um pipeline simples para um monólito Rails 4 sem queimar runners compartilhados. Aqui vai o gitlab-ci.yml mínimo com runner Docker que estamos adotando agora.
Requisitos
- GitLab CE self-hosted.
- Runner registrado com executor Docker.
- Imagem base com Ruby 2.3, Node, Yarn e Postgres client.
.gitlab-ci.yml basico
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
image: ruby:2.3
services:
- postgres:9.6
variables:
POSTGRES_DB: app_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ""
stages:
- test
before_script:
- apt-get update && apt-get install -y nodejs yarn
- gem install bundler -v 1.17.3
- bundle install --path vendor/bundle
- cp config/database.ci.yml config/database.yml
- bundle exec rake db:create db:schema:load
rspec:
stage: test
script:
- bundle exec rspec
Dicas rapidas
- Use cache de
vendor/bundlepara acelerar jobs. - Crie
config/database.ci.ymlapontando para o service Postgres. - Para Chrome headless em system specs, adicione
chromiumechromedriver. - Se a base for maior, substitua
db:schema:loadpordb:structure:load.
Troubleshooting comum
- Erro de pool: ajuste
poolemdatabase.ci.ymlpara 5 se usar poucos workers. - Bundle lento: habilite mirror interno de gems ou cache por branch.
- RSpec quebrando por timezone: defina
TZ=UTCnasvariablesglobais.
Esta postagem está licenciada sob
CC BY 4.0
pelo autor.