name: functions on: - push jobs: build: strategy: fail-fast: true matrix: function: - comics - blob-proxy runs-on: ubuntu-latest steps: - name: Setup Git config run: | git config --global user.email "ci@icb4dc0.de" git config --global user.name "Forgejo Actions" - name: Setup `spin` uses: fermyon/actions/spin/setup@v1 - name: Setup Go 1.23.x uses: actions/setup-go@v5 with: go-version: "1.23.x" - name: Setup tinygo uses: acifani/setup-tinygo@v2 with: tinygo-version: "0.35.0" install-binaryen: "false" - name: Login to container registry uses: docker/login-action@v3 with: registry: code.icb4dc0.de username: prskr password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }} - name: Checkout uses: actions/checkout@v4 - name: Build run: | spin registry push --build code.icb4dc0.de/infrastructure/functions/${{ matrix.function }}:${{ github.sha }} working-directory: comics - name: Update image reference run: | kustomize edit set image ${{ matrix.function }}=code.icb4dc0.de/infrastructure/functions/${{ matrix.function }}:${{ github.sha }} git add kustomization.yaml git commit -m "chore(deploy): update ${{ matrix.function }} image reference" git push || git pull --rebase && git push deploy: runs-on: ubuntu-latest needs: - build steps: - name: Checkout uses: actions/checkout@v4 with: ref: ${{ github.ref_name }} - name: Upsert Argo App run: | argocd app create functions -f deploy/argo-app.yaml --upsert --server argo-cd-argocd-server.argo-system.svc --auth-token ${{ secrets.ARGOCD_TOKEN }} --plaintext - name: Deploy KubeSpin apps run: | argocd app sync functions --server argo-cd-argocd-server.argo-system.svc --auth-token ${{ secrets.ARGOCD_TOKEN }} --plaintext --assumeYes