#+LINK_HOME: index.html
#+INCLUDE: header.org
Hace tiempo que decidí compartir mis links 1 favoritos y para esto la secuencia era la siguiente:
En el teléfono espía:
- Registrar y categorizar link en
simpletask
2 - Realizar un commit y ejecutar
git push
luego de varios links
En la notebook:
- Obtener los últimos cambios del repo
links
3 - Realizar un merge si había cambios locales
- Realizar un commit y ejecutar
git push
conlinks.txt
actualizado - Ejecutar
links2org
para obtenerlinks.org
actualizado - Revisar
links.org
y hacer commit en el repoblog
4 - Enviar cambios del repo
blog
a GitLab - Verificar que la CI publique el sitio en https://osiux.gitlab.io/
- Verificar que https://osiux.com/ obtenga los cambios de GitLab
Y esta secuencia tenía varios inconvenientes:
- depender de la notebook para publicar
- realizar commits en 2 repos diferentes (
links
yblog
) - circuito de pasos manuales con muchos tiempos muertos
- muy baja frecuencia de publicación
automate all the things #
Luego de pensar un poco, cómo podía simplificar la operatoria y al mismo tiempo automatizar el circuito, logré resolverlo eficientemente de la siguiente manera:
En el teléfono espía:
- Registrar y categorizar link en
simpletask
- Realizar un commit y ejecutar
git push
luego de varios links
En la notebook:
- No tengo que hacer nada de nada!
En GitLab:
- Se obtienen los últimos cambios y se dispara la CI
- Verificar que la CI publique el sitio en https://osiux.gitlab.io/osiux-links/
- Verificar que https//osiux.com/ obtenga los cambios de GitLab
El cambio es enorme! Ahora puedo publicar directamente desde el teléfono
espía, basta con ejecutar git push
y GitLab hace su
magia! :)
Y luego de varias pruebas, ya no son necesarias las vericaciones, en general siempre funciona como se espera!
dónde esta la magia? #
La magia esta en .gitlab-ci.yml
del repo
osiux-links
, este repo además de almacenar el listado de
links en el archivo links.txt
, contiene un
Makefile
5 con reglas que permiten instalar todas las
depdencias necesarias para procesar links.txt
y convertirlo
a links.org
para luego generar links.html
El contenido de .gitlab-ci.yml
es el siguiente:
1image: iquiw/alpine-emacs
2
3before_script:
4 - apk update && apk add bash gawk moreutils make curl
5 - awk --version
6 - emacs --version
7
8pages:
9 script:
10 - make requirements
11 - make links
12 - make org2html
13 - make public2tgz
14 artifacts:
15 paths:
16 - public
17 only:
18 - develop
19
20update_blog:
21 trigger:
22 project: osiux/osiux.gitlab.io
23 branch: master
Ahora el archivo links.org
se genera dinámicamente en
GitLab, ya lo eliminé del repo blog
y puedo actualizar
y compartir links desde el teléfono espía y despreocuparme de la
publicación automatizada!
Te sugiero leer #
ChangeLog #
2023-02-14 20:45
agregar howto launch gitlab ci from other gitlab ci repo using trigger