Como atualizar automaticamente o código do projeto usando GitHub Actions
Como atualizar automaticamente o código do projeto usando GitHub Actions com a action "ramonpaolo/action-zenifra"
Primeiro Passo
Para atualizar automaticamente o código do seu projeto na Zenifra utilizando GitHub Actions, é necessário ter um repositório Git configurado com o código-fonte da sua aplicação.
Essa funcionalidade permite que a imagem Docker seja construída e enviada para a Zenifra automaticamente, sempre que houver uma nova alteração no repositório, através de um workflow.
Para isso, será utilizada a action ramonpaolo/action-zenifra, que é responsável por integrar o processo de build e deploy automático com a plataforma Zenifra.
Segundo Passo
Para configurar a atualização automática, siga os passos abaixo:
Configuração do Workflow
Você precisará criar um arquivo de workflow no diretório .github/workflows/ do seu repositório Git.
Exemplo de workflow completo com a action ramonpaolo/action-zenifra:
name: Deploy PRD
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
build: # Job para fazer a build e publicar a imagem no registry do Docker(Hub Docker)
name: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@main
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to Docker Registry
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Publish Docker Image
run: docker buildx build -t <username_docker>/<name_image>:<tag> --platform=linux/amd64 --push .
deploy: # Job para fazer deploy da imagem na Zenifra
needs: build
name: deploy
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@main
- name: Deploy Image to Zenifra
uses: ramonpaolo/action-zenifra@main
with:
PROJECT_ID: <project_id> # ${{ secrets.ZENIFRA_PROJECT_ID }}
API_KEY: <api_key> # ${{ secrets.ZENIFRA_API_KEY }}
IMAGE: <username_docker>/<name_image>:<tag> # zenifra/llama-cpp-changer-models:${{ github.ref_name }}⚠️ Importante: Substitua
project-idpelo ID do projeto,API_KEYpela API KEY do projeto,imagepela URL completa da imagem do projeto.
Detalhes das Configurações
PROJECT_ID: ID do projeto na Zenifra. Deve ser armazenado como um segredo no seu repositório.API_KEY: API KEY do projeto na Zenifra. Deve ser armazenado como um segredo no seu repositório.IMAGE: URI imagem no padrão OCI a ser enviada, incluindo o registry e a tag.
Terceiro Passo
Após criar e fazer commit do arquivo de workflow, toda vez que houver criação de tag no formato vX.X.X (ex: v1.X.X), o GitHub Actions irá:
- Fazer o checkout do código;
- Construir a imagem no padrão OCI usando o docker;
- Enviar a imagem atualizada para a Zenifra, utilizando a action
ramonpaolo/action-zenifra.
Isso garante que o projeto sempre esteja com a versão mais recente da sua aplicação, sem necessidade de intervenção manual.
Finalizando
Com esse fluxo configurado, sua aplicação será sempre atualizada conforme as alterações feitas no repositório Git, mantendo o projeto sempre atualizado com a última versão do código.
Se você desejar personalizar ainda mais o workflow, pode adicionar etapas como testes automatizados, validações, ou até mesmo envio para múltiplos ambientes.