Este workflow tem como objetivo criar uma Feature Candidate (FC) automaticamente a partir de uma branch relacionada a um ticket do Jira. Ele extrai o ID do Jira a partir do nome da branch de origem e cria uma nova branch no formato fc/{JIRA_ID}.
Execução
O workflow é definido como uma GitHub Action Composite Action, o que significa que ele pode ser chamado dentro de outros workflows para padronizar a criação de Feature Candidates.
Etapas do Workflow
Faz o checkout do código-fonte no repositório para a máquina de execução.
Detalhes
• A action actions/checkout@v4 é usada para clonar o repositório.
• O parâmetro fetch-depth: 0 garante que todo o histórico do repositório seja baixado, permitindo operações avançadas como criação de branches baseadas no histórico completo.
Nesta etapa, são realizados os seguintes passos:
-
Ajusta as permissões da pasta de trabalho (chown).
-
Extrai o ID do Jira do nome da branch atual (GITHUB_REF_NAME).
-
Cria uma nova branch chamada fc/{JIRA_ID}.
-
Configura as credenciais do Git para realizar commits.
-
Faz o push da nova branch para o repositório remoto.
• JIRA_ID=$(echo "${GITHUB_REF_NAME}" | grep -oE '[0-9]+$'):
• Obtém o nome da branch atual (GITHUB_REF_NAME).
• Extrai o ID do Jira no final do nome da branch.
• Exemplo: Se a branch for feature/PROJ-1234, o script extrairá 1234.
• BRANCH_NAME="fc/${JIRA_ID}": Define o nome da nova branch como fc/{JIRA_ID}.
• git config user.name "GitHub Actions Bot" e git config user.email "devops@logcomex.com":
• Configura o usuário do Git para fazer commits e pushes automatizados.
• git checkout -b $BRANCH_NAME || echo "Branch already exists":
• Tenta criar a branch fc/{JIRA_ID}.
• Se a branch já existir, exibe uma mensagem informativa.
• git push --set-upstream origin $BRANCH_NAME || echo "Push failed":
• Faz o push da nova branch para o repositório remoto.
• Se o push falhar (por exemplo, se a branch já existir no repositório), apenas exibe um aviso.
• Este workflow depende de o nome da branch seguir um padrão específico (feature/PROJ-1234 ou similar) para extrair corretamente o ID do Jira.
• Se a branch já existir no repositório remoto, o push não será executado, e apenas um aviso será exibido.
• Para que a ação funcione corretamente, o GitHub Actions precisa ter permissões suficientes para criar e fazer push de branches no repositório.