Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Deploy dando falha no Git Hub Actions

Júlio, tudo bem? Meu arquivo .yaml funciona até a parte do deploy, onde ele apresenta o seguinte erro: "(gcloud.run.deploy) unrecognized arguments:" e em baixo um espaço vazio e depois "To search the help text of gcloud commands, run: gcloud help -- SEARCH_TERMS". Setei os paramêtros de porta e platform na seção "env" e não estou usando variáveis de ambiente. Poderia me ajudar?

Obrigado. Eduardo.

2 respostas
solução!

Oii Eduardo, como você está? Espero que esteja bem.

Peço desculpas pela demora em obter um retorno.

Atualmente, na data de 06/01/20222 o arquivo cloud-run passou por algumas modificações que interferem no deploy através do Github Actions que foi apresentado neste vídeo.

O novo arquivo pode ser encontrado neste link.

Com esta atualização do código, as variáveis secrets no Github Action, serão:

  • GCP_PROJECT
  • BASIC_AUTH_PASSWORD
  • BASIC_AUTH_USERNAME
  • GCP_CREDENTIALS

Que significam respectivamente:

  • ID do projeto criado no google cloud. Ele é obtido ao clicar no nome do projeto, que se localiza no canto superior esquerdo da tela do Google Cloud, como mostro abaixo:

    Imagem com fundo azuul que mostra a barra de ferramentas do Google Cloud Platform, que ao lado deste nome contém o nome do projeto: mlops-deploy

    Imagem com fundo branco que mostra uma listagem de todos os projetos após clicar no nome do projeto mlops-deploy. A listagem contém duas colunas: nome e ID, o que devemos copiar é o ID do projeto de nome mlops-deploy

  • Senha de usuário

  • Nome de usuário

  • Conteúdo do arquivo JSON que contém as credenciais de acesso. Este arquivo foi elaborado na aula Service Accout.

Quanto ao código yaml, atualmente não é necessário criar um arquivo separado para construir uma imagem Dockerizada, como foi feito com o arquivo cloudbuild.yaml. Nesta atualização do código, no próprio arquivo cloud_run.yaml, foi adicionado o build via Docker, como mostro abaixo:

    - name: Build and Push Container
      run: |-
        docker build -t gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE }}:${{  github.sha }} .
        docker push gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE }}:${{  github.sha }}

A mudança que precisamos efetuar neste trecho é adicionar os argumentos de nome e senha com o --build-arg, como mostro a seguir:

 - name: Build and Push Container
      run: |-
        docker build -t gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE }}:${{  github.sha }} --build-arg BASIC_AUTH_USERNAME_ARG=${{ secrets.BASIC_AUTH_USERNAME }} --build-arg BASIC_AUTH_PASSWORD_ARG=${{ secrets.BASIC_AUTH_PASSWORD }} .
        docker push gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE }}:${{  github.sha }}

Quanto a parte de autenticação, a mesma ocorrerá através da leitura de uma actions secrets:

    - id: 'auth'
      uses: 'google-github-actions/auth@v0'
      with:
        credentials_json: '${{ secrets.GCP_CREDENTIALS }}'

Para evitar problemas de indentação, adicionei o código completo neste link para que você efetue o download.

Qualquer dúvida fico à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Boa tarde Nádia, tudo bem e você?

Na época, resolvi meu problema setando os parâmetros da tarefa de deploy na mesma linha e não usando a quebra (/) como o professor fez na aula. De resto, fiz dessa mesma forma que você instrui, obrigado pela explanação do passo a passo.

Eduardo.