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.
Github actions
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?

Mais conteúdo relacionado

PPTX
Interop git hubactions v2
PDF
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic Beanstalk
PDF
Hackaton
PPTX
Git e github
PPTX
Workshop git para iniciantes
PDF
Aula 5 - Curso Git e Github - Webschool
PDF
Git conceitos
Interop git hubactions v2
Desenvolvimento Ágil de Aplicações Java na Nuvem com o AWS Elastic Beanstalk
Hackaton
Git e github
Workshop git para iniciantes
Aula 5 - Curso Git e Github - Webschool
Git conceitos

Mais procurados (20)

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

Semelhante a Github actions (20)

PPTX
GitHub Actions
PDF
Introdução ao Git
PDF
GIT Básico
PDF
Gitlab CI/CD com python
PPTX
Controlo de Versões Distribuído com Git
PPTX
Controlo de Versões Distribuído com Git - C. Augusto Proiete
PDF
Introducao ao Git
PDF
Git e GitHub
PDF
Controle de Versão Distribuído com Git básico
PPTX
Git & GitHub for beginners
PDF
Aula de git luiza code - Slides git e github
PDF
Node.js in GitHub Actions
PDF
Git that like a boss: Grupo RBS
PPTX
Ferramentas para versionamento Utilizando git
PDF
Kernel Livepatching na prática: Hands On
PPTX
Gerenciando projetos com Git e GitHub
PDF
Carrefour E-commerce - Multicloud Brasil Day 2017
PDF
Git flow na prática
PDF
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
PDF
Introdução ao Github actions - TDC Connections
GitHub Actions
Introdução ao Git
GIT Básico
Gitlab CI/CD com python
Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Introducao ao Git
Git e GitHub
Controle de Versão Distribuído com Git básico
Git & GitHub for beginners
Aula de git luiza code - Slides git e github
Node.js in GitHub Actions
Git that like a boss: Grupo RBS
Ferramentas para versionamento Utilizando git
Kernel Livepatching na prática: Hands On
Gerenciando projetos com Git e GitHub
Carrefour E-commerce - Multicloud Brasil Day 2017
Git flow na prática
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Introdução ao Github actions - TDC Connections
Anúncio

Último (17)

PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Banco de Dados 2atualização de Banco de d
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Jira Software projetos completos com scrum
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
SEMINÁRIO DE IHC - A interface Homem-Máquina
Processamento da remessa no SAP ERP, SCM610 Col15
Analise Estatica de Compiladores para criar uma nova LP
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
ccursoammaiacursoammaiacursoammaia123456
Conceitos básicos de Redes Neurais Artificiais
Banco de Dados 2atualização de Banco de d
Aula de Engenharia de Software principais caracteristicas
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Jira Software projetos completos com scrum
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Tipos de servidor em redes de computador.pptx
Processos no SAP Extended Warehouse Management, EWM100 Col26

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.
  • 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'

Notas do Editor

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