-- Leo's gemini proxy

-- Connecting to gmi.osiux.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=es_AR

howto launch gitlab ci from other gitlab ci repo using trigger


AUTHOR: Osiris Alejandro Gomez

EMAIL: osiux@osiux.com

DATE: 2023-02-14 20:07


[IMG]

[1]


Hace tiempo que decidí compartir mis *links* ^1[2] *favoritos* y para esto la secuencia era la siguiente:


En el teléfono espía:


1. Registrar y categorizar *link* en `simpletask` ^2[3]

2. Realizar un *commit* y ejecutar `git push` luego de varios *links*


En la *notebook*:


1. Obtener los últimos cambios del *repo* `links` ^3[4]

2. Realizar un *merge* si había cambios locales

3. Realizar un *commit* y ejecutar `git push` con `links.txt` actualizado

4. Ejecutar `links2org` para obtener `links.gmi` actualizado

5. Revisar `links.gmi` y hacer *commit* en el *repo* `blog` ^4[5]

6. Enviar cambios del *repo* `blog` a *GitLab*

7. Verificar que la *CI* publique el sitio en https://osiux.gitlab.io/[6]

8. Verificar que https://osiux.com/[7] 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` y `blog`)

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:


1. Registrar y categorizar *link* en `simpletask`

2. Realizar un *commit* y ejecutar `git push` luego de varios *links*


En la notebook:


1. No tengo que hacer nada de nada!


En GitLab:


1. Se obtienen los últimos cambios y se dispara la *CI*

2. Verificar que la *CI* publique el sitio en https://osiux.gitlab.io/osiux-links/[8]

3. 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[9] con reglas que permiten instalar todas las depdencias necesarias para procesar `links.txt` y convertirlo a `links.gmi` para luego generar `links.html`


El contenido de `.gitlab-ci.yml` es el siguiente:


image: iquiw/alpine-emacs

before_script:
  - apk update && apk add bash gawk moreutils make curl
  - awk --version
  - emacs --version

pages:
  script:
  - make requirements
  - make links
  - make org2html
  - make public2tgz
  artifacts:
    paths:
    - public
  only:
  - develop

update_blog:
  trigger:
    project: osiux/osiux.gitlab.io
    branch: master

Ahora el archivo `links.gmi` 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


`lists.sh` es para amantes de las listas[10]

`todo.txt` es una lista de tareas[11]

bookmarks vs links.txt[12]


ChangeLog


`2023-02-14 20:45`[13] agregar *howto launch gitlab ci from other gitlab ci repo using trigger*


1: file:img/2023-02-06-osiux-links-trigger-osiux-blog.png

2: %5Bfile:2021-01-29-bookmarks-vs-links.gmi%5D(2021-01-29-bookmarks-vs-links.gmi)

3: https://github.com/mpcjanssen/simpletask-android

4: https://gitlab.com/osiux/osiux-links.git

5: https://gitlab.com/osiux/osiux.gitlab.io.git

6: https://osiux.gitlab.io/

7: https://osiux.com/

8: https://osiux.gitlab.io/osiux-links/

9: https://gitlab.com/osiux/osiux-links/-/blob/develop/Makefile

10: 2022-07-20-lists.sh-es-para-amantes-de-las-listas.gmi

11: 2021-03-16-todo-txt-es-una-lista-de-tareas.gmi

12: 2021-01-29-bookmarks-vs-links.gmi

13: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/95bf2c903e5d778799811ddf6e5a12c277f03678

-- Response ended

-- Page fetched on Fri May 17 04:57:27 2024