Intro ao GitHub Actions: Mostrando artigos no seu READ.me
Tags: braziliandevs, github, tutorial, githubbrasil
Published: 2022-04-26 16:37:56


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](https://dev.to/github/github-co-pilot-pair-programming-com-inteligencia-artificial-1m43).

  

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 -->
```

  

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

  

  

2. 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](https://lh5.googleusercontent.com/pLJMTqeeV0LcO2nxI0I-MDdWoPVBaiyGA9Yii3I51di7NbjBF1Edm54RGGDMh3QMzmcvLFXXrDxqVmAZiP_VOyS5TUTjsyWSeDSHythn_8llpF1CI28jYkxZOFtNlO7Ke5ahR0w)

  

3. 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.*
    

4. Agora vamos escrever nossa Action, colando o seguinte código no arquivo ```blog-post-workflow.yml ``` ([código inspirado nesse repo](https://github.com/gautamkrishnar/blog-post-workflow)):

  

  

```
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.

  

```

  

## 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](https://docs.github.com/pt/actions/learn-github-actions/understanding-github-actions), 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](https://lh4.googleusercontent.com/jMf2o46bi1zAhOuuyzY1cpDeshv7xB_2xrgU6YS4Hu8qRc3cUG_PFbz7wtFWE74SVCKrufkY8qw5-b94UOjRS4ZVgsA8EoB03jxurh82ah9LlJk-i0FeDNzeV9IFUFUr4Zl3gci8wclHb5DS)
  

  

## 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](https://twitter.com/githubbrasil), segue lá :D