Intro ao GitHub Actions: Mostrando artigos no seu READ.me

Pachi 🥑 - Apr 26 '22 - - Dev Community

Apesar da Github ser mais conhecida como uma plataforma de open source e armazanamento de código, ela oferece uma variedade de ferramentas interessantes, como o Co-pilot que apresentei no meu último artigo.

Hoje vou apresentar para vocês o GitHub Actions, uma ferramenta de CI/CD (continuous integration/continuous delivery), que te permite automatizar seu workflow ou fluxo de trabalho, em português.

CI/CD: práticas combinadas de integração contínua e entrega contínua

Workflow: Ou fluxo de trabalho, é a seqüência de passos necessários para se automatizar processos de negócio, de acordo com um conjunto de regras

Pra que serve?

GittHub Actions permite que você automatize seus fluxos de trabalho em cada etapa do processo de desenvolvimento, desde a integração até a distribuição e a implantação.
Isso te permiti reduzir efetivamente o tempo gasto entre a ideia inicial e a aplicação dessa ideia.

O que são as Actions?

As actions, ou ações, do GitHub Actions são scripts empacotados para automatizar tarefas em um fluxo de trabalho na GitHub.
O GitHub Actions pode ser configurado para disparar fluxos de trabalho complexos com base nas suas necessidades. Assim você obtem um fluxo de trabalho automatizado, confiável e sustentável que resulta na diminuição significativa do tempo de desenvolvimento.

Criando seu primeiro Fluxo de trabalho

Como estamos falando sobre Github no Dev.to, o exemplo que vou mostrar para vocês permite que você exiba no seu READ.me do Github os 5 últimos artigos que você postou no Dev.to.

  1. Dentro do seu READ.me, adicione o código abaixo e salve:
# Blog posts
<!-- BLOG-POST-LIST:START -->
<!-- BLOG-POST-LIST:END -->
Enter fullscreen mode Exit fullscreen mode

P.S. eu usei o título Blog posts mas você pode usar o que quiser depois do # nessa primeira linha.

  1. Agora, nesse repositório, crie uma pasta com o nome .github e dentro dela uma outra pasta chamada workflows, aqui é aonde você vai colocar suas actions:

screeshot of github repo

  1. Vamos criar nossa action que vai atualizar nossa READ.me com os ultimos artigos do nosso dev.to, nesse exemplo eu chamei o meu arquivo de blog-post-workflow, mas você pode dar o nome que quiser.

As actions são arquivos yml, então não esqueça de colocar o .yml após o nome quando for criar esse arquivo.

  1. Agora vamos escrever nossa Action, colando o seguinte código no arquivo blog-post-workflow.yml (código inspirado nesse repo):
name: Latest blog post workflow #nome de sua escolha
on:
    schedule: # Roda fluxo de trabalho automaticamente
    - cron: '0 * * * *' # Roda a cada uma hora
    workflow_dispatch: # Roda fluxo de trabalho manualmente pelo Github Actions

    jobs:
        update-readme-with-blog:
        name: Update this repo's README with latest blog posts
        runs-on: ubuntu-latest
        steps:
            - name: Checkout
            uses: actions/checkout@v2
            - name: Pull in dev.to posts
            uses: gautamkrishnar/blog-post-workflow@master
            with:
                feed_list: "https://dev.to/feed/pachicodes" # Troque pachicodes pelo seu usuário.



Enter fullscreen mode Exit fullscreen mode

A anatomia de uma Action

No exemplo acima temos:

  • name: O nome da sua action, a sua escolha

  • on: o código dentro do on vai ditar quando essa action será rodada, nesse caso usamos schedule, para que ela rode automaticamente em um certo horário. Já o - cron: '0 * * * *' diz que nossa action rodará a cada hora completa.

  • jobs: Os “trabalhos” que essa action vai rodar. Aqui temos o name explicando o que a action faz, runs-on para definir aonde vai rodar.
    Por último, ainda dentro de jobs, temos os steps, que são os passos que essa action vai seguir, com o nome do step e o uses.
    Nesse exemplo primeiro estamos fazendo um Checkout e depois pegando os artigos do Dev.to.

Você pode aprender em mais detalhes aqui na documentação oficial, está em português.

Como essa Action roda a cada hora, você provavelmente não vai ver o resultado imetiatamente, mas assim que rodar, você terá uma lista como essa:

screenshot do meu read.me com meus artigos recentes

Conclusão

O Github Actions é uma ferramenta super útil de automatização, que você e seu time podem usar para uma variedade de fluxos de trabalhos:

Criar release de versão, rodar testes, fazer deploy, instalar dependencias, atualizar seu perfil no GitHub e muito mais.

Se você já usa Github Actions, comenta aqui e me fala quais os usos principais que você e/ou seu time tem para essa ferramenta.

E se você ainda não segue a página oficial da GitHub Brasil no twitter, segue lá :D

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .