Skip to content

Merge pull request #73 from Quest-Finder/develop #6

Merge pull request #73 from Quest-Finder/develop

Merge pull request #73 from Quest-Finder/develop #6

Workflow file for this run

name: Execução do CI/CD GCP
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# No 'on' deve ser escolhido gatilho que irá ativar o workflow, no nosso caso é um push pra homolog
on:
push:
branches:
- homolog
# Variáveis de ambiente para ser utilizado nos fluxos
env:
REGISTRY: frontend # repositorio artifact
SERVICE: frontend # cloud run
REGION: us-central1
# Jobs são os trabalhos que serão executados neste fluxo
# Separando os trabalhos podemos exigir que um dependa do sucesso do outro
# e tbm reexecutar de forma independente
jobs:
# aqui damos o nome ao nosso Job
create-docker-image-and-send-to-gcp:
# verifica se a referencia da Branch é a homolog
# se estiver fazendo em outra branch deve escrever o nome da branch
if: github.ref == 'refs/heads/homolog'
# Runs on é o OS da VM aqui sera executado em Linux Ubunto
runs-on: ubuntu-latest
outputs:
tags: ${{ steps.meta.outputs.tags }}
# configuração de permissões
permissions:
contents: read
packages: write
id-token: write
# os passos são os comando a serem executados
# nessa fase podemos usar comandos feitos por empresas ou pessoas
steps:
- name: Checkout repository
uses: actions/checkout@v4
# aqui vamos usar os comandos criados pela google para instalar o GCLOUD CLI
- name: install gcloud CLI
uses: google-github-actions/setup-gcloud@v0
# with são os parametros da execução
with:
# secrets são configurados no repositório para guardar dados sensíveis
project_id: ${{secrets.GOOGLE_PROJECT}}
service_account_key: ${{secrets.GOOGLE_APPLICATION_CREDENTIALS}}
export_default_credentials: true
- name: Build and push Docker image
env:
GOOGGLE_PROJECT: ${{secrets.GOOGLE_PROJECT}}
# run roda comandos de terminal
run: |
gcloud auth configure-docker us-central1-docker.pkg.dev
docker build -t us-central1-docker.pkg.dev/soujunior-416113/frontend/homolog:latest .
docker push us-central1-docker.pkg.dev/soujunior-416113/frontend/homolog:latest
deploy-to-gcp-cloud-run:
if: github.ref == 'refs/heads/homolog'
# needs significa que só rodara se o especificado tiver
needs: create-docker-image-and-send-to-gcp
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- id: 'auth'
uses: 'google-github-actions/auth@v0'
with:
credentials_json: ${{secrets.GOOGLE_APPLICATION_CREDENTIALS}}
- name: 'Deploy to Cloud Run'
uses: 'google-github-actions/deploy-cloudrun@v0'
with:
service: ${{ env.SERVICE }}
image: us-central1-docker.pkg.dev/soujunior-416113/frontend/homolog:latest
region: ${{ env.REGION }}