Cómo usar un Taskfile: automatiza tu flujo de trabajo de desarrollo
Publicado el

Cómo usar un Taskfile: automatiza tu flujo de trabajo de desarrollo

Últimamente, he estado explorando maneras de optimizar mi flujo de trabajo y encontré algo genial llamado Taskfile. Si alguna vez has sentido que escribir los mismos comandos largos una y otra vez es una pérdida de tiempo (spoiler: lo es), entonces Taskfile es tu nuevo mejor amigo.

Entonces, ¿qué es un Taskfile?

Es básicamente una herramienta de automatización simplificada que te permite definir y ejecutar comandos fácilmente. En lugar de memorizar comandos complejos o configurar alias para todo, puedes crear una tarea y ejecutarla con un simple task <nombredetarea>.

Ten en cuenta que los comandos y todo lo que se muestra aquí se ejecutaron en el sistema operativo de Apple. Asegúrate de comprobar qué funcionaría en tu sistema operativo.

Configurar un Taskfile

Para usar Taskfile, necesitas tener instalado Task. Si aún no lo tienes, consulta la documentación oficial de Taskfile (https://taskfile.dev/installation/) y sigue los pasos según tu sistema operativo. ¡Es muy fácil, te lo prometo! jaja XS

Una vez instalado, puedes crear un archivo llamado Taskfile.yml en el directorio de tu proyecto (recuerda que tendrás que crear el archivo para cada directorio donde quieras usar Taskfile, así que los comandos y nombres también pueden cambiar en cada directorio. ¡Genial!).

Veamos un ejemplo y analicémoslo.


Mi archivo de tareas de hoy

Aquí tienes un archivo de tareas que he estado usando:

version: '3'

tasks:
  add-ssh-git:
    cmds:
      - ssh-keygen -t rsa -b 4096 -C "dignory.luna777@gmail.com"
      - eval $(ssh-agent -s)
      - ssh-add -K ~/.ssh/id_rsa
      - mkdir -p ~/.ssh
      - |
        cat << EOF > ~/.ssh/config
        Host *
          AddKeysToAgent yes
          UseKeychain yes
          IdentityFile ~/.ssh/id_rsa
        E
      - echo "SSH configuration added successfully."

  config-git:
    cmds:
      - git config --global user.email "dignory.luna777@gmail.com"
      - git config --global user.name "Dignory Carmona"

  start:
    cmds:
      - yarn install
      - yarn dev

  commit-react:
    cmds:
      - yarn build
      - git commit -a

  commit:
    cmds:
      - git add .
      - git commit
      - git push

  change-message:
    cmds:
      - git commit --amend
      - git push -f origin "main"

Vamos a desglosarlo, ¿vale?

Este Archivo de tareas contiene varias tareas de automatización útiles. Repasemos algunas de las claves:

1. Automatizando la configuración de la clave SSH para GitHub

¿Alguna vez has tenido problemas para configurar SSH para GitHub? Esta tarea lo hace con un solo comando:

task add-ssh-git

Esto hará lo siguiente:

  • Generar una clave SSH
  • Iniciar el agente SSH
  • Añadir la clave a tu sistema
  • Configurar un archivo de configuración SSH
  • Imprimir "Configuración SSH añadida correctamente".

¡Olvídate de la configuración manual! ¡Solo una tarea y listo!


2. Configurar Git con un solo comando

En lugar de ejecutar varios comandos Git cada vez que configuras un nuevo entorno, simplemente ejecuta:

task config-git

Configurará tu correo electrónico y nombre de usuario Git globalmente de una sola vez.


3. Iniciar tu servidor de desarrollo

¿Cansado de escribir yarn install y yarn dev por separado?

task start

Esto instalará las dependencias e iniciará el servidor de desarrollo en un solo paso.


4. Confirmar y enviar código más rápido (mi favorito y el más usado)

En lugar de escribir git add ., git commit y git push cada vez, simplemente usa:

task commit

¿Quieres cambiar el mensaje de confirmación después de enviar?

task change-message

Esto modificará la última confirmación y la forzará a enviar. Perfecto para esos momentos de "uy". 😅.


Algunos comandos comunes de terminal…

git branch -d branch_name # Eliminar una rama local
git push origin --delete branch_name # Eliminar una rama remota
git checkout -- . # Descartar todos los cambios no programados
git reset --hard # Restablecer todo a la última confirmación
git reset --soft HEAD~1 # Deshacer la última confirmación, pero mantener los cambios programados
git clean -fd # Eliminar archivos y directorios sin seguimiento

En fin, estoy pensando en añadir nuevos comandos de Git a mi archivo de tareas. A menudo olvido sus nombres porque no los uso con tanta frecuencia. ¿Alguna sugerencia de comandos?