SlideShare une entreprise Scribd logo
1  sur  14
Introducton to
Github Actions for
CI/CD automation
Hernand Azevedo
Android Developer
@hernandazevedo
hernand.azevedo@gmail.com
@hazevedo
Github Actions
O GitHub Actions facilita a automação de
todos os workflows de software para CI e CD.
Com isso você pode testar e implantar código
direto do GitHub através de estratégias de CI
e/ou CD.
Máquinas
● GitHub-hosted runners
● Self-hosted runners
GitHub-hosted runners oferecem um jeito rápido e simples para rodar seus
workflows, enquanto self-hosted runners são um jeito altamente
configurável de rodar seus workflows no seu próprio ambiente.
Máquinas
GitHub-hosted runners:
● Receba atualizações automáticas para o sistema operacional, pacotes e ferramentas pré-
instalados e o app a ser hospedado.
● São gerenciados e mantidos pelo GitHub.
● Fornece uma nova execução de instância para cada workflow.
● Use minutos grátis em seu plano GitHub, com taxas por minuto aplicadas após ultrapassar os
minutos grátis.
Self-hosted runners:
● Receba atualizações automáticas apenas para o aplicativo hospedado. Você é responsável por
atualizar o sistema operacional e todos os outros softwares.
● Pode usar serviços em nuvem ou máquinas locais pelos quais você já pagou.
● São personalizáveis para seu hardware, sistema operacional, software e requisitos de segurança.
● Não precisa ter uma nova execução de instância para cada workflow.
● São gratuitos para usar com o GitHub Actions, mas você é responsável pelo custo de manutenção
de suas máquinas runner.
Github hosted runners
Virtual environment YAML workflow label
Windows Server 2019 windows-latest or windows-2019
Windows Server 2016 windows-2016
Ubuntu 20.04 ubuntu-latest or ubuntu-20.04
Ubuntu 18.04 ubuntu-18.04
macOS Big Sur 11 macos-11
macOS Catalina 10.15 macos-latest or macos-10.15
Workflow
● Um workflow é um processo configurável que pode ter
um ou mais jobs para executar alguma automação
● Você pode configurar seus workflows com arquivos *.yml
e seguindo o padrão YAML na pasta .github/workflows
do seu repositório de github.
● Você define no workflow os eventos que vão startar sua
execução.(push, pull reques, tag)
Workflow triggers events
name: Pull request verification name: Lib generation and publication
Job
● Define as tarefas (steps) para a execução do workflow
● Um workflow pode ter um ou mais jobs
● Jobs podem ser paralelos ou sequenciais
● Cada job no Github Hosted Runners é executado em uma nova
instância de uma máquina virtual
● runs-on: macos-latest /** windows-latest , ubuntu-
latest, etc */
Action
● Uma action é uma tarefa a ser executada dentro do
workflow (exemplos: baixar o código do github, executar
um comando de build, etc)
● Existem 2 tipos de actions: local actions ou actions
publicadas para a comunidade
Exemplos: Local action
https://github.com/jeffeb3/hello-world-composite-run-steps-action
Exemplo action publicada para a comunidade
https://github.com/actions/cache
● Para usar uma action você precisa especificar o local da
action no seu step usando a propriedade abaixo:
- uses: actions/checkout@v2 (action da comunidade)
- uses: ./.github/actions/hello (action local)
Secrets e Envs
- name: Run pr check
env:
GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }}
RENAMED_VAR: ${{ env.ANOTHER_ENV_VAR }}
GITHUB_TOKEN_STATIC: 'borracha'
STATIC_ENV_VAR: 'Mona the Octocat'
Hands on
Dúvidas?

Contenu connexe

Tendances

Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
MINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIAMINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIAArmando Couto
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containerstdc-globalcode
 
Aula 3 - Curso Git e Github - Webschool
Aula 3 - Curso Git e Github - WebschoolAula 3 - Curso Git e Github - Webschool
Aula 3 - Curso Git e Github - WebschoolBruno Orlandi
 
Mini curso Git - 2º dia
Mini curso Git - 2º diaMini curso Git - 2º dia
Mini curso Git - 2º diaArmando Couto
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta gitDiogo Souza Machado
 
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelosEvandro Silvestre
 
Aula 6 - Curso Git e Github - Webschool
Aula 6 - Curso Git e Github - WebschoolAula 6 - Curso Git e Github - Webschool
Aula 6 - Curso Git e Github - WebschoolBruno Orlandi
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers tdc-globalcode
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteWaldyr Felix
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubGilson Junior
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?tdc-globalcode
 
Github para colaboradores livres
Github para colaboradores livresGithub para colaboradores livres
Github para colaboradores livresThiago Sciotta
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoMauricio Magnani Jr
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)Carlos Duarte do Nascimento
 

Tendances (20)

Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Git ...ftw!
Git ...ftw!  Git ...ftw!
Git ...ftw!
 
MINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIAMINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIA
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Aula 3 - Curso Git e Github - Webschool
Aula 3 - Curso Git e Github - WebschoolAula 3 - Curso Git e Github - Webschool
Aula 3 - Curso Git e Github - Webschool
 
Mini curso Git - 2º dia
Mini curso Git - 2º diaMini curso Git - 2º dia
Mini curso Git - 2º dia
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
 
Aula 6 - Curso Git e Github - Webschool
Aula 6 - Curso Git e Github - WebschoolAula 6 - Curso Git e Github - Webschool
Aula 6 - Curso Git e Github - Webschool
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
 
Apresentacao deploy
Apresentacao deployApresentacao deploy
Apresentacao deploy
 
Dashboard slides
Dashboard slidesDashboard slides
Dashboard slides
 
Git
GitGit
Git
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHub
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
 
Github para colaboradores livres
Github para colaboradores livresGithub para colaboradores livres
Github para colaboradores livres
 
[CEFETMG] - Introdução ao Github
[CEFETMG] - Introdução ao Github[CEFETMG] - Introdução ao Github
[CEFETMG] - Introdução ao Github
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo Moderno
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)
 

Similaire à Github actions

Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitC. Augusto Proiete
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteComunidade NetPonto
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoFabricio Nogueira
 
Git that like a boss: Grupo RBS
Git that like a boss: Grupo RBSGit that like a boss: Grupo RBS
Git that like a boss: Grupo RBSEvandro Eisinger
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Denis Santos
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Introdução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsIntrodução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsGuillaume Falourd
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvPedro Fernandes Vieira
 

Similaire à Github actions (20)

GitHub Actions
GitHub ActionsGitHub Actions
GitHub Actions
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Gitlab CI/CD com python
Gitlab CI/CD com pythonGitlab CI/CD com python
Gitlab CI/CD com python
 
Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com Git
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto Proiete
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Node.js in GitHub Actions
Node.js in GitHub ActionsNode.js in GitHub Actions
Node.js in GitHub Actions
 
Git that like a boss: Grupo RBS
Git that like a boss: Grupo RBSGit that like a boss: Grupo RBS
Git that like a boss: Grupo RBS
 
Ferramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando gitFerramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando git
 
Gerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHubGerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHub
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017
 
Git flow na prática
Git flow na práticaGit flow na prática
Git flow na prática
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Introdução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsIntrodução ao Github actions - TDC Connections
Introdução ao Github actions - TDC Connections
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenv
 

Github actions

  • 1. Introducton to Github Actions for CI/CD automation
  • 3. Github Actions O GitHub Actions facilita a automação de todos os workflows de software para CI e CD. Com isso você pode testar e implantar código direto do GitHub através de estratégias de CI e/ou CD.
  • 4.
  • 5. Máquinas ● GitHub-hosted runners ● Self-hosted runners GitHub-hosted runners oferecem um jeito rápido e simples para rodar seus workflows, enquanto self-hosted runners são um jeito altamente configurável de rodar seus workflows no seu próprio ambiente.
  • 6. Máquinas GitHub-hosted runners: ● Receba atualizações automáticas para o sistema operacional, pacotes e ferramentas pré- instalados e o app a ser hospedado. ● São gerenciados e mantidos pelo GitHub. ● Fornece uma nova execução de instância para cada workflow. ● Use minutos grátis em seu plano GitHub, com taxas por minuto aplicadas após ultrapassar os minutos grátis. Self-hosted runners: ● Receba atualizações automáticas apenas para o aplicativo hospedado. Você é responsável por atualizar o sistema operacional e todos os outros softwares. ● Pode usar serviços em nuvem ou máquinas locais pelos quais você já pagou. ● São personalizáveis para seu hardware, sistema operacional, software e requisitos de segurança. ● Não precisa ter uma nova execução de instância para cada workflow. ● São gratuitos para usar com o GitHub Actions, mas você é responsável pelo custo de manutenção de suas máquinas runner.
  • 7. Github hosted runners Virtual environment YAML workflow label Windows Server 2019 windows-latest or windows-2019 Windows Server 2016 windows-2016 Ubuntu 20.04 ubuntu-latest or ubuntu-20.04 Ubuntu 18.04 ubuntu-18.04 macOS Big Sur 11 macos-11 macOS Catalina 10.15 macos-latest or macos-10.15
  • 8. Workflow ● Um workflow é um processo configurável que pode ter um ou mais jobs para executar alguma automação ● Você pode configurar seus workflows com arquivos *.yml e seguindo o padrão YAML na pasta .github/workflows do seu repositório de github. ● Você define no workflow os eventos que vão startar sua execução.(push, pull reques, tag)
  • 9. Workflow triggers events name: Pull request verification name: Lib generation and publication
  • 10. Job ● Define as tarefas (steps) para a execução do workflow ● Um workflow pode ter um ou mais jobs ● Jobs podem ser paralelos ou sequenciais ● Cada job no Github Hosted Runners é executado em uma nova instância de uma máquina virtual ● runs-on: macos-latest /** windows-latest , ubuntu- latest, etc */
  • 11. Action ● Uma action é uma tarefa a ser executada dentro do workflow (exemplos: baixar o código do github, executar um comando de build, etc) ● Existem 2 tipos de actions: local actions ou actions publicadas para a comunidade Exemplos: Local action https://github.com/jeffeb3/hello-world-composite-run-steps-action Exemplo action publicada para a comunidade https://github.com/actions/cache ● Para usar uma action você precisa especificar o local da action no seu step usando a propriedade abaixo: - uses: actions/checkout@v2 (action da comunidade) - uses: ./.github/actions/hello (action local)
  • 12. Secrets e Envs - name: Run pr check env: GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} RENAMED_VAR: ${{ env.ANOTHER_ENV_VAR }} GITHUB_TOKEN_STATIC: 'borracha' STATIC_ENV_VAR: 'Mona the Octocat'

Notes de l'éditeur

  1. Source: https://github.com/features/actions
  2. Source: https://github.com/pricing
  3. https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#differences-between-github-hosted-and-self-hosted-runners
  4. https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#differences-between-github-hosted-and-self-hosted-runners
  5. https://pt.wikipedia.org/wiki/YAML#:~:text=YAML%20%C3%A9%20um%20formato%20de,Net%20e%20Oren%20Ben%2DKiki.
  6. https://gist.github.com/hernandazevedo/77739a00ec9e08494277c3e523ec075d https://github.com/hernandazevedo/fastlane-actions Exemplos mais complexos: https://github.com/ZupIT/beagle/