Skip to main content

Aprovando e mantendo ações

Você pode aproveitar a automação e as práticas recomendadas de código aberto para lançar e manter ações.

Introdução

Depois de criar uma ação, você irá continuar lançando novas funcionalidades enquanto trabalha com contribuições da comunidade. Este tutorial descreve um exemplo de processo que você pode seguir para lançar e manter as ações em código aberto. O exemplo:

  • Aproveita GitHub Actions para integração contínua, atualizações de dependência, gerenciamento de versões e automação de tarefas.
  • Fornece confiança por meio de testes automatizados e cria selos.
  • Indica como a ação pode ser usada, de preferência como parte de um fluxo de trabalho mais amplo.
  • Sinaliza que tipo de contribuições da comunidade você recebe. (Por exemplo, problemas, pull requests ou relatórios de vulnerabilidade.)

Para um exemplo aplicado deste processo, consulte github-developer/javascript-action.

Desenvolver e lançar ações

Nesta seção, discutimos um processo exemplo para desenvolver e lançar ações e mostrar como usar GitHub Actions para automatizar o processo.

Sobre ações do JavaScript

As ações do JavaScript são repositórios do Node.js com metadados. No entanto, as ações do JavaScript têm propriedades adicionais comparadas aos projetos tradicionais do Node.js:

  • Os pacotes dependentes recebem commit ao lado do código, normalmente em uma forma compilada e minificada. Isto significa que as criações automatizadas e as contribuições seguras da comunidade são importantes.
  • As versões marcadas podem ser publicadas diretamente em GitHub Marketplace e consumidas pelos fluxos de trabalho em GitHub.
  • Muitas ações fazem uso de APIs de GitHub e de terceiros, por isso incentivamos testes robustos de ponta a ponta.

Configurando fluxos de trabalho de GitHub Actions

Para apoiar o processo de desenvolvedor na próxima seção, adicione dois fluxos de trabalho de GitHub Actions ao seu repositório:

  1. Adicione um fluxo de trabalho que é acionado quando um commit é enviado por push para um branch de recurso ou para o principal ou quando um pull request é criado. Configure o fluxo de trabalho para executar seus testes de unidade e integração. Por exemplo, consulte este fluxo de trabalho.
  2. Adicione um fluxo de trabalho que é acionado quando uma versão é publicada ou editada. Configure o fluxo de trabalho para garantir que as tags semânticas estejam prontas. Você pode usar uma ação como JasonEtco/build-and-tag-action para compilar e empacotar o arquivo de metadados e o JavaScript e fazer push forçado semântico maior, menor e tags de patch. Por exemplo, consulte este fluxo de trabalho. Para obter mais informações sobre tags semânticas, consulte "Sobre versão semântica".

Exemplo do processo de desenvolvedor

Aqui está um exemplo de processo que você pode seguir para executar os testes automaticamente, crie uma versão e publique em GitHub Marketplace e publique sua ação.

  1. Faça o trabalho de recurso nos branches por fluxo do GitHub. Para obter mais informações, consulte "fluxo do GitHub".

    • Sempre que um commit é enviado por push para o branch de recurso, seu fluxo de trabalho de teste irá executar os testes automaticamente.
  2. Crie pull requests para o branch principal para iniciar a discussão e revisão, fazendo merge quando estiver pronto.

    • Quando um pull request é aberto, seja em um branch ou bifurcação, seu fluxo de trabalho de testes executará novamente os testes, desta vez com o commit do merge.

    • Observação: por razões de segurança, fluxos de trabalho acionados por pull_request apartir das bifurcações restringiram as permissões de GITHUB_TOKEN e não têm acesso a segredos. Se seus testes ou outros fluxos de trabalho acionados após o pull request solicitar acesso a segredos, considere o uso de um evento diferente como um manual disparar ou um pull_request_target. Leia mais aqui.

  3. Crie uma versão semântica marcada. Você também pode publicar em GitHub Marketplace com uma caixa de seleção simples. Para mais informações, consulte "Gerenciando versões em um repositório" e "Publicando ações em GitHub Marketplace".

    • Quando uma versão é publicada ou editada, seu fluxo de trabalho de versão cuidará automaticamente da compilação e ajuste das tags.

    • Recomendamos criar versões usando tags com versão semântica – por exemplo, v1.1.3 – e mantendo tags maiores (v1) e menores (v1.) atuais para o último commit apropriado. Para obter mais informações, consulte "Sobre ações personalizadas" e "Sobre a versão semântica.

Resultados

Diferentemente de outras estratégias automatizadas de gerenciamento de versão, este processo não faz, de modo intencional, commit de dependências para o branch principal, apenas para os commits de versão com tag. Ao fazer isso, você incentiva os usuários da sua ação a fazerem referência a tags nomeadas ou shas, além de ajudar a garantir a segurança de pull requests de terceiros, fazendo a compilação você mesmo durante uma versão.

Usar versões semânticas significa que os usuários das suas ações podem fixar os seus fluxos de trabalho a uma versão e saber que podem continuar recebendo a última estabilidade recursos não relevantes, dependendo de seu nível de conforto:

Trabalhando com a comunidade

GitHub fornece ferramentas e guias para ajudar você a trabalhar com a comunidade de código aberto. Aqui estão algumas ferramentas que recomendamos a criação de uma comunicação bidirecional saudável. Ao fornecer os seguintes sinais à comunidade, você incentiva outras pessoas a usar, modificar e contribuir para sua ação:

Leia mais

Os exemplos em que os padrões similares são empregados incluem: