homelab/.gitea/workflows/deploy.yaml
Gonçalo Rodrigues a3ab330269
Some checks failed
deploy / test (push) Successful in 2m38s
deploy / deploy-finance (push) Failing after 11s
fix(cicd): detect arch at runtime for Docker CLI and kubectl downloads
2026-06-27 15:43:21 +01:00

61 lines
1.7 KiB
YAML

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: Install Docker CLI
run: |
ARCH=$(uname -m)
curl -fsSL "https://download.docker.com/linux/static/stable/${ARCH}/docker-27.3.1.tgz" \
| tar xzf - --strip-components=1 -C /usr/local/bin docker/docker
- name: Login to Gitea registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" \
| docker login git.gugagr.xyz -u admin --password-stdin
- name: Build and push finance-api
run: |
docker build \
--platform linux/arm64 \
-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: |
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
curl -sSLo /usr/local/bin/kubectl \
"https://dl.k8s.io/release/v1.30.0/bin/linux/${ARCH}/kubectl"
chmod +x /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