From 2e0163e2b24fc98ffad1398df64140cb270d051b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Rodrigues?= Date: Fri, 26 Jun 2026 23:09:34 +0100 Subject: [PATCH] feat(cicd): move deploy pipeline to Gitea Actions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - .gitea/workflows/deploy.yaml: test → build ARM64 → push to Gitea registry → kubectl set image on push to main - Remove .github/workflows/deploy.yml (GitHub kept as test-only backup) Requires Gitea Actions secrets: GITEA_REGISTRY_PASSWORD, KUBECONFIG_B64. Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/deploy.yaml | 52 ++++++++++++++++++++++++++++++++++++ .github/workflows/deploy.yml | 50 ---------------------------------- 2 files changed, 52 insertions(+), 50 deletions(-) create mode 100644 .gitea/workflows/deploy.yaml delete mode 100644 .github/workflows/deploy.yml diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..45593a9 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,52 @@ +name: deploy + +on: + push: + branches: [main] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version-file: go.mod + + - name: Run tests + run: go test ./... + + deploy-finance: + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Login to Gitea registry + run: | + echo "${{ secrets.GITEA_REGISTRY_PASSWORD }}" \ + | docker login git.gugagr.xyz -u admin --password-stdin + + - name: Build and push finance-api + run: | + docker build \ + -t git.gugagr.xyz/admin/homelab_finance-api:${{ gitea.sha }} \ + -f apps/finance/services/api/Dockerfile \ + . + docker push git.gugagr.xyz/admin/homelab_finance-api:${{ gitea.sha }} + + - name: Install kubectl + run: | + curl -sSLo kubectl \ + https://dl.k8s.io/release/v1.30.0/bin/linux/arm64/kubectl + install -m 0755 kubectl /usr/local/bin/kubectl + + - name: Deploy + run: | + mkdir -p ~/.kube + echo "${{ secrets.KUBECONFIG_B64 }}" | base64 -d > ~/.kube/config + kubectl set image deployment/api \ + api=git.gugagr.xyz/admin/homelab_finance-api:${{ gitea.sha }} \ + -n finance + kubectl rollout status deployment/api -n finance --timeout=120s diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 219d688..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: deploy - -on: - push: - branches: [main] - -jobs: - deploy-finance: - runs-on: ubuntu-latest - permissions: - contents: read - - steps: - - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Gitea registry - uses: docker/login-action@v3 - with: - registry: git.gugagr.xyz - username: admin - password: ${{ secrets.GITEA_REGISTRY_PASSWORD }} - - - name: Build and push finance-api - uses: docker/build-push-action@v6 - with: - context: . - file: apps/finance/services/api/Dockerfile - platforms: linux/arm64 - push: true - tags: git.gugagr.xyz/admin/homelab_finance-api:${{ github.sha }} - cache-from: type=registry,ref=git.gugagr.xyz/admin/homelab_finance-api:buildcache - cache-to: type=registry,ref=git.gugagr.xyz/admin/homelab_finance-api:buildcache,mode=max - - - name: Deploy to VPS - uses: appleboy/ssh-action@v1 - with: - host: ${{ secrets.VPS_HOST }} - username: ${{ secrets.VPS_USER }} - key: ${{ secrets.VPS_SSH_KEY }} - script: | - kubectl set image deployment/api \ - api=git.gugagr.xyz/admin/homelab_finance-api:${{ github.sha }} \ - -n finance - kubectl rollout status deployment/api -n finance --timeout=120s