ci/cd: documentación

This commit is contained in:
f 2020-03-02 13:58:28 -03:00
parent c1aae557c3
commit d9af566fd1
No known key found for this signature in database
GPG key ID: 2AE5A13E321F953D

View file

@ -1,5 +1,21 @@
# Miniloom API
**Antes que nada solicitar la "master key" de Rails a otrx pirata
y colocarla en `config/master.key`.**
Si estás forkeando o solo trabajando localmente, podés eliminar
`config/credentials.yml.enc` y volverlo a crear con:
```bash
bundle exec rails credentials:edit
secret_key_base: "Reemplazar con bundle exec rake secret"
vapid:
public_key: "Correr bundle exec rake webpush:vapid"
private_key: "Correr bundle exec rake webpush:vapid"
```
## Desarrollo
* Instalar las herramientas de compilación de la distro
(`build-essential`, `base-devel`, etc.)
@ -14,3 +30,43 @@
* Crear o actualizar la base de datos con `bundle exec rake db:migrate`
* Correr el servidor de prueba con `bundle exec rails server -b 0.0.0.0`
## Despliegue
### Manual
* Generar una llave SSH con `ssh-keygen -t ed25519` (la contraseña es
opcional)
* Solicitar a otra pirata que agregue tu llave pública SSH
(`~/.ssh/id_ed25519.pub` por ejemplo) en `lumi@partidopirata.com.ar`.
* Correr `bundle exec cap production deploy`
### Automático (CI/CD)
* Editar `.gitlab-ci.yml` si es necesario
* Generar una llave privada SSH para el deploy y convertirla a una sola
línea para que Gitlab la acepte.
```bash
ssh-keygen -t ed25519 -f ~/.ssh/lumi
# Extraer la llave privada a una sola línea
cat ~/.ssh/lumi | tail -n +2 | head -n -1 | tr -d "\n"
```
* En [0xacab](https://0xacab.org/) (o cualquier Gitlab con CI/CD
habilitado) ir a Settings > CI/CD > Variables y crear las variables
protegidas y enmascaradas:
RAILS_MASTER_KEY: con el contenido de `config/master.key`
SSH_PRIVATE_KEY: la línea de la llave privada SSH
* Agregar la llave privada a `lumi@partidopirata.com.ar` para que GL
pueda ingresar.
```bash
ssh-copy-id -i ~/.ssh/lumi lumi@partidopirata.com.ar
```