Merge pull request #82 from Quest-Finder/lint/correcoes #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |