Observação
Esta ação GitHub ainda não oferece suporte a projetos CircleCI integrados ao aplicativo CircleCI GitHub. Se o URL do seu projeto CircleCI for assim: https://app.circleci.com/projects/organizations/circleci%
, você está integrando com o aplicativo CircleCI GitHub e esta ação GitHub ainda não é suportada. Contate [email protected] com qualquer dúvida/feedback. Se o URL do seu projeto CircleCI for assim: https://app.circleci.com/projects/project-dashboard/github/
, você está usando a integração do aplicativo OAuth do CircleCI e esta ação do GitHub é compatível.
Acione seus pipelines do CircleCI a partir de qualquer evento no GitHub com GitHub Actions.
Crie um fluxo de trabalho do GitHub Action para o pipeline do CircleCI desejado.
Faça isso adicionando um arquivo YAML de fluxo de trabalho (usaremos main.yml
) a ./.github/workflows
.
Um gatilho release
é mostrado neste exemplo. Experimente qualquer um dos eventos do GitHub para acionar fluxos de trabalho: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
Selecione um nome e ID personalizados para a etapa para obter metadados contextuais adicionais em seu pipeline do CircleCI
em: lançamento: tipos: [publicado] trabalhos: trigger-circleci: executado em: etapas mais recentes do ubuntu: - nome: <nome personalizado> id: <id personalizado> usa: CircleCI-Public/[email protected] env: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
Crie um segredo criptografado chamado CCI_TOKEN
contendo o token de API pessoal que será usado para acionar os pipelines. Sugere-se que seja um usuário de máquina.
Adicione as definições dos parâmetros do pipeline à configuração do CircleCI. Esses dados serão inseridos pela ação GitHub quando acionados.
Adicione o seguinte ao topo do seu arquivo .circleci/config.yml
. Certifique-se de especificar a versão 2.1
versão: 2.1 parâmetros: GHA_Actor: tipo: string padrão: "" GHA_Action: tipo: string padrão: "" GHA_Event: tipo: string padrão: "" GHA_Meta: tipo: string padrão: ""
Use os dados do parâmetro do pipeline para executar fluxos de trabalho condicionalmente.
Veja: Exemplos
Parâmetros de entrada opcionais que permitem especificar metadados adicionais.
obrigatório: falso
description : um parâmetro de metadados adicional opcional. Estará disponível no pipeline CircleCI como GHA_Meta.
trabalhos: trigger-circleci: execução: etapas mais recentes do ubuntu: - nome: <nome personalizado> id: <id personalizado> usa: CircleCI-Public/[email protected] com: GHA_Meta: "<dados personalizados>" env: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
obrigatório: falso
description : O slug do projeto CircleCI do projeto de destino (ex: github/<org>/<repo>
). Se não for especificado, o slug do repositório GitHub atual será usado.
trabalhos: trigger-circleci: execução: etapas mais recentes do ubuntu: - nome: <nome personalizado> id: <id personalizado> usa: CircleCI-Public/[email protected] com: target-slug: "gh/<org>/<repo>" # Irá acionar o pipeline para ambiente de projeto externo: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
Campo | Tipo de dados | Descrição |
---|---|---|
id | string (uuid) | O ID exclusivo do pipeline. |
state | string (Enum: "criado" "com erro" "configuração pendente" "configuração" "pendente") | O estado atual do pipeline. |
number | inteiro (int64) | O número do pipeline. |
created_at | string (data-hora) | A data e hora em que o pipeline foi criado. |
Por padrão, quando um repositório está conectado ao CircleCI, se os fluxos de trabalho na configuração desse projeto não especificarem quaisquer condicionais ou filtros que de outra forma impediriam a execução, o fluxo de trabalho será executado em cada evento push
por padrão.
Isso pode significar que é possível executar acidentalmente um trabalho duas vezes, uma vez no evento push
do CircleCI, bem como outros eventos acionados pela ação do GitHub.
Se você depende do GitHub Actions para fornecer todos os seus gatilhos de API, certifique-se de que cada um dos fluxos de trabalho da configuração do CircleCI contenha uma condicional limitando sua execução apenas ao gatilho do GitHub Action.
Exemplo
fluxos de trabalho: # Este fluxo de trabalho está definido para ser acionado condicionalmente, # somente por meio da ação do GitHub. # Sem outros fluxos de trabalho não filtrados, os eventos push normais serão ignorados. teste: quando: << pipeline.parameters.GHA_Action >> trabalhos: - teste