DEV Community

Marcelo Andrade R.
Marcelo Andrade R.

Posted on • Originally published at marceloandrader.github.io

Github Actions

Verificar que tu código esté bien en tu máquina local es algo que se debe hacer como parte del proceso de desarrollo, pero muchas veces cuando el cambio es muy pequeño y lo probaste en el browser y funciona, la opción más rápida es solo hacer commit y listo, no se ejecuta los tests, estilos de código, linters etc.

Aquí es dónde brillan las acciones de GitHub, es cómo tener una red de seguridad a nivel central, lo que permite hacer las acciones es tener workflows pre establecidos para realizar verificaciones en el código o realizar despliegues.

Si funciona en tu máquina debe poder funcionar en otras, por lo que un workflow que todo proyecto debe tener es el de pruebas sean unitarias y/o de aceptación. El workflow se define en un archivo .yaml que debe estar dentro del directorio .github/workflows el nombre puede ser cualquier cosa por ejemplo pruebas.yaml en este se define cuándo se quiere ejecutar el workflow por ejemplo en cada pull request, o en cada commit en branch específicos, incluso se puede definir una estrategia de tipo matriz en la que se ejecuta el workflow en diferentes configuraciones, por ejemplo en diferentes versiones del lenguaje de programación, esto es útil en el caso de librerías open source.

Luego se definen los trabajos (jobs) que se ejecutarán, cada job tiene una lista de steps, cada step puede ejecutarse directamente como comando bash o puede usar una imagen docker que ya tiene pre configurados los comandos a realizar.

Otra alternativa es también encontrar acciones pre-fabricadas en el marketplace para realizar acciones puntuales en tu código existen para todo, chat, code review, code quality, deployment, publishing, etc.

Ejemplo de workflow básico, que configura un proyecto php con la imagen setup-php y luego ejecuta composer tests y composer ecs que son scripts definidos en composer para ejecutar tests y estilo con easy-coding-standard:

name: Code Analysis

on:
    pull_request: null
    push:
        branches:
            - dev
            - staging
            - master

jobs:
    code_analysis:
        strategy:
            fail-fast: false
            matrix:
                actions:
                    -
                        name: Run tests
                        run: composer tests
                    -
                        name: Check code style
                        run: composer ecs

        name: ${{ matrix.actions.name }}
        runs-on: ubuntu-latest

        steps:
            -   uses: actions/checkout@v2
            # see https://github.com/shivammathur/setup-php
            -   uses: shivammathur/setup-php@v2
                with:
                    php-version: 7.4
                    coverage: none

            # composer install cache - https://github.com/ramsey/composer-install
            -   uses: "ramsey/composer-install@v1"

            -   run: ${{ matrix.actions.run }}
Enter fullscreen mode Exit fullscreen mode

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay