Mostrando entradas con la etiqueta gitlab. Mostrar todas las entradas
Mostrando entradas con la etiqueta gitlab. Mostrar todas las entradas

viernes, septiembre 17, 2021

Comandos Basicos Git

 Esto es solo una lista de referencia rápida de comandos básicos de git:

Primero esta el setup inicial:

$ git config --global user.name "Lalo Landa"
$ git config --global user.email lalolanda@example.com

Esta información será guardada en el archivo ~/.gitconfig

$git clone

Este es el comando que te permite clonar en tu maquina un repositorio

$git status

Ver el estatus del directorio actual, este comando te dirá si tienes cambios realizados pero no empujados aun al repositorio. 

$git log

Mostrara un listado de los commits mas recientes, su fecha y comentarios

$git show

Te dará detalles del ultimo commit indicando los cambios específicos que se hicieron, se puede ver los detalles de un commit si al comando se le agrega el hash a detallar.

$git commit <file>

Es el comando que permite agregar los cambios al repositorio

$git add <file>

Permite agregar archivos para que también formen parte del repositorio 

$git pull

Este comando sincroniza el repositorio local en base al contenido el repositorio origen

$git push

Con este comando podemos empujar nuestros cambios comprometidos al repositorio remoto

$git stash

Este comando te permite guardar tus cambios locales que después puedes volver a trabajar con git stash pop

$git branch <nombre>

Creas un branch del mismo repositorio

$git checkout <branch>

Con este comando te cambias al branch donde quieres trabajar


Mas información: https://git-scm.com


miércoles, abril 07, 2021

Invocando un pipeline de gitlab a través de la API

Este es un ejemplo muy sencillo de como ejecutar un pipeline a través del uso de su API sobrescribiendo un valor en de una variable previamente definida

En esta sección: CI / CD -> Settings -> Variables he definido una variable simple llamada GREETING con el valor Hola

mi archivo .gitlab-ci.yaml es el siguiente:

image: "tonymoyoy/ubuntu_ansible:v1"


stages:
    - build
    - test

build:
    stage: build
    script:
        - echo $GREETING
        - echo "Construyendo"
        - mkdir build
        - touch build/info2.txt
    artifacts:
        paths:
            - build/

test:
    stage: test
    script:
        - echo "Probando"
        - test -f "build/info2.txt"

En la sección: CI / CD -> Settings -> Pipeline triggers agregue un trigger llamado pew, el cual genera un Token

Con esto podemos usar curl para iniciar el pipeline, en este caso sobre el branch master y proporcionando el valor Hello a la variable GREETING


curl -X POST \
    -F token=<YOUR-TRIGGER-TOKEN> \
    -F "ref=master" \
    -F "variables[GREETING]=Hello" \
http://<YOURGITLAB>/api/v4/projects/4/trigger/pipeline


En el log del pipeline podremos ver que tomo el valor de la variable:



sábado, marzo 27, 2021

Probando Ansible Playbook en un Docker Container con Gitlab

 Estoy probando ansible y quería tener un setup sencillo para que gitlab hiciera pruebas del código en un contenedor de docker a través de un pipeline, por el momento aquí dejo algo sencillo, tengo este playbook:


simple_playbook.yml

---
- hosts: all
  connection: local
  tasks:
          - name: curl instalation
            apt: pkg=curl update_cache=yes

La conexión es local para ya que no es necesario trabajar con llaves ssh al estar aplicando las pruebas al contendor cada vez.

el archivo .gitlab-ci.yml es el siguiente:

image: "tonymoyoy/ubuntu_ansible:v2"

stages:
    - build
    - test

build:
    stage: build
    script:
        - echo $HOSTNAME > hosts
        - echo "Running ansible playbook"
        - ansible-playbook -i hosts local-playbook.yml

test:
    stage: test
    script:
        - echo "Test pending"

La forma que logre que se ejecutara en el contenedor fue agregando el hostname a un archivo y luego haciendo referencia al archivo hosts como variable del comando ansible-playbook

En este caso use la variable HOSTNAME de gitlab-ci (ver https://docs.gitlab.com/ee/ci/variables/) aunque también pude simplemente usar el comando hostname y enviar el resultado a el archivo, intente hacer la llamada después del comando ansible-playbook pero no encontré una forma de hacerlo funcionar.

Espero que este material puede servir de referencia para alguien