name: Deploy Backend and Backoffice Dev on: workflow_dispatch: push: branches: - dev env: DOCKER_HOST: tcp://127.0.0.1:2375 jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 # AJUSTE VELOZ: Baixa o binĂ¡rio pronto em vez de instalar pelo - name: Install Docker CLI run: | curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz | tar -xz --strip-components=1 -C /usr/local/bin/ docker/docker chmod +x /usr/local/bin/docker docker version --format 'Client version: {{.Client.Version}}' - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: endpoint: tcp://127.0.0.1:2375 - name: Login to Forgejo Registry uses: docker/login-action@v3 with: registry: pipe.gohorsejobs.com username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and Push Backend uses: docker/build-push-action@v5 with: context: ./backend file: ./backend/Dockerfile push: true tags: | pipe.gohorsejobs.com/bohessefm/gohorsejobs:latest pipe.gohorsejobs.com/bohessefm/gohorsejobs:${{ github.sha }} build-args: | MTU=${{ vars.MTU }} - name: Build and Push Backoffice uses: docker/build-push-action@v5 with: context: ./backoffice file: ./backoffice/Dockerfile push: true tags: | pipe.gohorsejobs.com/bohessefm/backoffice:latest pipe.gohorsejobs.com/bohessefm/backoffice:${{ github.sha }} build-args: | MTU=${{ vars.MTU }} deploy-to-k3s: needs: build-and-push runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Kubectl uses: azure/k8s-set-context@v3 with: kubeconfig: ${{ secrets.KUBECONFIG }} - name: Update Kubernetes Secrets run: | cat < .env.k8s MTU=${{ vars.MTU }} DATABASE_URL=${{ vars.DATABASE_URL }} AWS_REGION=${{ vars.AWS_REGION }} AWS_ACCESS_KEY_ID=${{ vars.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY=${{ vars.AWS_SECRET_ACCESS_KEY }} AWS_ENDPOINT=${{ vars.AWS_ENDPOINT }} S3_BUCKET=${{ vars.S3_BUCKET }} JWT_SECRET=${{ vars.JWT_SECRET }} JWT_EXPIRATION=${{ vars.JWT_EXPIRATION }} PASSWORD_PEPPER=${{ vars.PASSWORD_PEPPER }} COOKIE_SECRET=${{ vars.COOKIE_SECRET }}NAME READY STATUS RESTARTS AGE forgejo-6c547bdd99-d9fb8 1/1 Running 0 177m forgejo-db-69c86b4788-j594x 1/1 Running 0 177m forgejo-runner-c48b8bf4f-wxrg4 2/2 Running 0 12s root@vmi2950757:~# kubectl logs -f deployment/forgejo-runner -n forgejo -c runner level=info msg="Registering runner, arch=amd64, os=linux, version=v3.3.0." level=warning msg="Runner in user-mode." level=debug msg="Successfully pinged the Forgejo instance server" level=info msg="Runner registered successfully." time="2026-01-23T18:35:14Z" level=info msg="Starting runner daemon" time="2026-01-23T18:35:14Z" level=info msg="runner: k3s-runner, with version: v3.3.0, with labels: [ubuntu-latest self-hosted], declare successfully" COOKIE_DOMAIN=${{ vars.COOKIE_DOMAIN }} BACKEND_PORT=${{ vars.BACKEND_PORT }} BACKEND_HOST=${{ vars.BACKEND_HOST }} CORS_ORIGINS=${{ vars.CORS_ORIGINS }} AMQP_URL=${{ vars.AMQP_URL }} ENV=${{ vars.ENV }} EOF kubectl -n gohorsejobsdev delete secret backend-secrets --ignore-not-found kubectl -n gohorsejobsdev create secret generic backend-secrets --from-env-file=.env.k8s - name: Apply K8s Manifests run: | kubectl apply -f k8s/dev/ -n gohorsejobsdev kubectl -n gohorsejobsdev rollout restart deployment gohorse-backend-dev kubectl -n gohorsejobsdev rollout restart deployment gohorse-backoffice-dev