Carregando...

GitHub Actions

12 de September de 2019

 

O Tão esperado CI e CD da GitHub baseado em actions chegou, recebi meu invite hoje e fui correndo testar.

Para você entrar na lista de espera faça sua inscrição neste link GitHub Actions. Quando receber seu invite sua conta e todos os seus repositórios recebem o botão Actions conforme imagem abaixo:

 

Bom vamos lá! Meu exemplo segue uma estrutura bem simples: Para rodar o build de um projeto em Swift, vou basear o script em um de meus projetos abertos, o MLTontiatorView.

Entrando nesta aba você verá um GetStarted com sugestões de workflows para ter uma base de onde começar. Infelizmente para Swift ainda não existe um workflow popular, então você verá um botão com texto azul Set up a workflow yourself. Clique nele e você entrará em uma tela de edição padrão do GitHub conforme imagem abaixo:

Pode limpar o conteudo e se basear neste código que vou adicionar aqui:
 


on:
  push:
    branches:    
      - develop
name: Build
jobs:
  test:
    name: Build
    runs-on: macOS-latest
    strategy:
        matrix:
          destination: ['platform=iOS Simulator,OS=12.2,name=iPhone X']
    steps:
      - name: Checkout
        uses: actions/checkout@master
      - name: Build
        run: |
          xcodebuild clean build -project MLTontiatorView.xcodeproj -scheme MLTontiatorView-iOS -destination "${destination}" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO
        env: 
         destination: ${{ matrix.destination }}

Você deve subistituir as partes:

  • branches > develop para a branch que deseja executar o workflow
  • - project para o arquivo xcodeproj do seu projeto
  • -scheme para o Target neste caso ios do deu projeto

O strategy matrix é bem simples, é um array de platforms que seu projeto vai executar. Em breve farei um novo post com outros exemplos de módulos que rodam em outras plataformas, como a tvOS. O objetivo aqui é fazer você rodar um build no seu projeto via Actions.

Feita a edição, o botão Start commit pode ser clicado, adicione o comentário referente a essa alteração e aguarde a action iniciar o processo.

OBS: Estou alterando o nome do arquivo de main.yml para Build.yml para separar os workflows. No caso, você pode criar um novo arquivo como, por exemplo, Tests.yml e configurar o workflow para rodar seus testes.

Quando você entrar novamente na aba Actions verá uma tela como esta: 

No botão Edit workflow você edita seu arquivo Build.yml.

Clicando no develop, você acessa a tela com os jobs executados em seu workflow com tempo e informações se eles tiveram sucesso ou não.

É isso pessoal, bons Actions!

Ah um detalhe: Em seu repositório local faça um checkout da branch onde você criou o yml. Você pode editá-lo localmente, pois os arquivos de workflow ficam armazenados na pasta .github/workflows/ .

Recomendo você rodar o comando xcodebuild na pasta do seu projeto para verificar se o build está rodando e testar o comando antes de rodar no Action, pois pode ser que alguma configuração fique diferente no seu projeto.

Na minha opinião, o processo de configuração e execução do workflow é muito rápido. As versões free tem um tempo de execução atrativo para projetos pequenos, mas como ainda estão em versão beta, alguns problemas podem ocorrer. Até a publicação deste post não consegui rodar um projeto Command Line simples e seus testes. Trabalharei um pouco nele e volto a postar novidades.

Obrigado pela leitura pessoal!

Alguns links úteis:

https://www.mokacoding.com/blog/xcodebuild-destination-options/

https://help.github.com/en/categories/automating-your-workflow-with-github-actions

https://github.com/actions/starter-workflows

Desenvolvido por Michel Lütz