O CodePipeline é a linha de montagem do software: você desenha os estágios uma vez (pegar o código, montar, aprovar, entregar) e cada versão passa por eles na ordem, sozinha. Se um estágio falha, a linha para ali — nada quebrado chega na produção.
É o que transforma CodeCommit, CodeBuild e CodeDeploy num fluxo só. Sem esteira, alguém roda cada peça à mão e esquece uma; com ela, todo commit percorre o mesmo caminho, com aprovação humana onde precisa e histórico de quem liberou o quê.
Cada um deles roda de verdade no terminal do CLImb, com a mesma saída e as mesmas mensagens de erro que a AWS devolve.
aws codepipeline list-pipelinesUSO
aws codepipeline list-pipelines
aws codebuild create-projectUSO
aws codebuild create-project --name <nome> \ --source type=GITHUB,location=https://github.com/<org>/<repo> \ --artifacts type=NO_ARTIFACTS \ --environment type=LINUX_CONTAINER,image=aws/codebuild/standard:7.0,computeType=BUILD_GENERAL1_SMALL \ --service-role arn:aws:iam::<conta>:role/<role>
aws codepipeline create-pipelineUSO
aws codepipeline create-pipeline --cli-input-json file://<planta>.json
aws codepipeline list-pipeline-executionsUSO
aws codepipeline list-pipeline-executions --pipeline-name <esteira>
aws codepipeline get-pipeline-executionUSO
aws codepipeline get-pipeline-execution --pipeline-name <esteira> --pipeline-execution-id <id>
aws codepipeline list-action-executionsUSO
aws codepipeline list-action-executions --pipeline-name <esteira> [--filter pipelineExecutionId=<id>]
aws codepipeline start-pipeline-executionUSO
aws codepipeline start-pipeline-execution --name <esteira>
aws codepipeline update-pipelineUSO
aws codepipeline update-pipeline --cli-input-json file://<planta>.json
aws codepipeline put-approval-resultUSO
aws codepipeline put-approval-result --pipeline-name <esteira> --stage-name <estágio> \ --action-name <ação> --result summary="<motivo>",status=Approved|Rejected --token <token>
aws codepipeline retry-stage-executionUSO
aws codepipeline retry-stage-execution --pipeline-name <esteira> --stage-name <estágio> \ --pipeline-execution-id <id> --retry-mode FAILED_ACTIONS|ALL_ACTIONS
aws codecommit put-fileUSO
aws codecommit put-file --repository-name <repo> --branch-name <branch> \ --file-content fileb://<arquivo> --file-path <caminho/no/repo> \ [--parent-commit-id <commit-da-ponta>] [--commit-message <texto>] [--name <autor>] [--email <email>]
aws codebuild batch-get-buildsUSO
aws codebuild batch-get-builds --ids <id-do-build> [<id2> ...]
aws codepipeline disable-stage-transitionUSO
aws codepipeline disable-stage-transition --pipeline-name <esteira> --stage-name <estágio> \ --transition-type Inbound|Outbound --reason <motivo>
aws codepipeline enable-stage-transitionUSO
aws codepipeline enable-stage-transition --pipeline-name <esteira> --stage-name <estágio> --transition-type Inbound|Outbound
aws codepipeline stop-pipeline-executionUSO
aws codepipeline stop-pipeline-execution --pipeline-name <esteira> --pipeline-execution-id <id> [--abandon] [--reason <texto>]
aws codepipeline delete-pipelineUSO
aws codepipeline delete-pipeline --name <esteira>
Cada atividade é um pedido de trabalho, do jeito que ele chega no dia a dia — você resolve digitando os comandos, não escolhendo alternativa.
O portal do RH já tem repositório (CodeCommit), deploy (CodeDeploy) e o time sabe usar o CodeBuild — mas alguém ainda roda cada peça à mão, e toda sexta uma fica esquecida. Hora da esteira. Veja se já existe alguma pipeline na conta.
A esteira passa o pacote de um estágio pro outro por um bucket do S3 — o artifact store. Pelo CLI ele precisa existir ANTES da esteira. Crie o bucket portal-rh-artefatos.
A planta da esteira já está pronta, no arquivo esteira-portal-rh.json (no trabalho, ela mora no repositório). Leia o arquivo e repare nos três estágios: Source (CodeCommit), Build (CodeBuild) e Deploy (CodeDeploy).
A planta chama o projeto de build portal-rh-build, que ainda não existe. Crie no CodeBuild com fonte e artefato do tipo CODEPIPELINE (quem entrega o código e recebe o pacote é a esteira), máquina LINUX_CONTAINER com a imagem aws/codebuild/standard:7.0 no tamanho BUILD_GENERAL1_SMALL, e a role arn:aws:iam::123456789012:role/codebuild-servico.
Tudo no lugar. Crie a esteira a partir da planta esteira-portal-rh.json. É o marco da trilha: repare que ela já sai rodando.
Pro inventário, liste as esteiras trazendo só nome e versão de cada uma, em texto puro.
Confira como a AWS guardou a portal-rh-esteira: estágios, ações e o metadata (ARN e datas).
Pra documentação do time, traga só os nomes dos estágios da portal-rh-esteira, na ordem.
A esteira está rodando desde a criação. Olhe o painel dela — e olhe de novo até os três estágios ficarem Succeeded. Cada olhada avança um estágio.
O painel completo é grande. Traga só estágio e status de cada um, em texto — o formato que cabe na mensagem do chat.
Liste as execuções da portal-rh-esteira: quando rodou, com que resultado e com qual commit.
A auditoria pergunta qual versão do código a última execução levou. Consulte a execução pelo id e veja o artifactRevisions.
O relatório de mudanças só quer o id do commit que a última execução levou.
Veja cada ação das execuções da esteira: o externalExecutionId de cada uma é o id do job de verdade — o build no CodeBuild, o deploy no CodeDeploy.
O time trocou a máquina de build e quer ver a esteira passar de novo, do começo. Dispare uma execução nova da portal-rh-esteira e acompanhe até o fim.
A gerente quer aprovar cada ida pra produção. A planta nova, esteira-portal-rh-v2.json, tem um estágio Aprovacao entre o build e o deploy (leia com cat se quiser). Aplique a planta nova na esteira.
Rode a esteira e acompanhe até ela parar no estágio Aprovacao. No painel, ache o token do pedido de aprovação.
A gerente conferiu a homologação e liberou. Aprove o pedido com o resumo Homologacao conferida.
Depois da aprovação, a esteira seguiu pro deploy. Acompanhe até a execução aprovada terminar.
Outra execução chegou na aprovação, mas é véspera de feriado e a gerente não quer deploy hoje. Rode a esteira, acompanhe até a aprovação e rejeite com o resumo Vespera de feriado.
Passou o feriado. Em vez de rodar tudo do zero, repita só o estágio Aprovacao da execução rejeitada — a gerente recebe um pedido novo, com outro token.
Aprove o pedido novo da execução repetida (resumo Liberado apos o feriado) e acompanhe até ela chegar na produção.
Um dev trocou o buildspec da main por um com exit 1 (um teste que sempre falha). Reproduza: crie o buildspec.yml com o texto exit 1, grave na main do portal-rh (mensagem Buildspec novo), rode a esteira e acompanhe até ela falhar no Build.
A esteira só diz "Build terminated with state: FAILED". Ache o motivo de verdade: liste as ações da execução que falhou, pegue o externalExecutionId do Build e consulte esse build no CodeBuild.
O dev corrigiu: grave o buildspec.yml com version: 0.2 na main (mensagem Conserta buildspec). Aí tente o atalho: repita o estágio Build da execução que falhou e acompanhe. Repare no resultado — e no porquê.
Retry repete o código velho. O código consertado entra com uma execução nova. Rode a esteira, acompanhe até a aprovação, aprove (resumo Build consertado) e acompanhe até a produção.
Dezembro: nada entra em produção até janeiro, mas o time continua fazendo build. Feche a porta de entrada do estágio Deploy com o motivo Congelamento de fim de ano.
Veja o congelamento funcionando: rode a esteira, acompanhe, aprove quando pedir (resumo Pronto pra janeiro) e olhe o painel — a execução fica esperando na porta do Deploy, sem falhar.
Fim do congelamento. Abra a porta do estágio Deploy e acompanhe a execução que estava esperando chegar na produção.
A auditoria vai revisar o processo de aprovação amanhã, e até lá nada deve pedir aprovação. Feche a porta de entrada do estágio Aprovacao (motivo Auditoria) e, terminada a auditoria, abra de novo.
Alguém disparou a esteira sem querer, no meio de um incidente. Dispare pra ver o cenário e pare a execução na hora, abandonando o que estiver rodando.
Uma execução chegou na aprovação, mas a versão foi cancelada pelo produto. Rode, acompanhe até a aprovação e pare a execução com --abandon e o motivo Versao cancelada pelo produto. Depois confira no histórico que o motivo ficou registrado.
O time passou a aprovar no próprio pull request, então o estágio de aprovação saiu da esteira. Volte a esteira pra planta original, esteira-portal-rh.json, e confira a versão.
Alguém criou uma esteira de teste a partir do esteira-rascunho.json e esqueceu. Crie pra ver o cenário e apague a portal-rh-rascunho.
Existe uma planta velha, esteira-intranet.json, da intranet que foi desligada. Crie a esteira, olhe o painel e descubra por que ela falha logo no primeiro estágio. Depois, apague a intranet-esteira.
Ler explica. Digitar fixa. No CLImb você roda os comandos de verdade num terminal AWS simulado — o estado persiste entre eles, como na nuvem real.
As 3 primeiras atividades desta trilha são abertas; o resto faz parte do plano Pro.
Começar — 3 atividades grátis