name: finance-api on: push: branches: [main] paths: - apps/finance/** - go.mod - go.sum env: IMAGE: homelab/finance-api jobs: build-and-deploy: runs-on: self-hosted steps: - uses: actions/checkout@v4 - name: Run tests run: go test ./apps/finance/services/api/main/... - name: Build image run: | docker build \ -t ${{ env.IMAGE }}:${{ github.sha }} \ -t ${{ env.IMAGE }}:latest \ -f apps/finance/services/api/Dockerfile \ . - name: Import image into k3d run: k3d image import ${{ env.IMAGE }}:${{ github.sha }} -c homelab - name: Deploy run: | kubectl set image deployment/api \ api=${{ env.IMAGE }}:${{ github.sha }} \ -n finance kubectl rollout status deployment/api -n finance --timeout=120s