Nik Afiq 6a945fb8b7
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 18s
Add CA injection step for Docker Buildx in CI workflow
2026-03-10 01:26:07 +09:00

62 lines
1.9 KiB
YAML

name: Build and Deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
run: |
rm -rf /tmp/watch-party
git clone https://gitea.home.arpa/nik/watch-party /tmp/watch-party
- name: Write deploy key
run: |
echo "${{ secrets.DEPLOY_KEY }}" > /tmp/deploy_key
chmod 600 /tmp/deploy_key
- name: Log in to Gitea registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login gitea.home.arpa \
--username ${{ secrets.REGISTRY_USERNAME }} \
--password-stdin
- name: Inject CA into buildkit
run: |
cat /etc/ssl/certs/homelab-ca.pem | docker exec -i buildx_buildkit_multiarch0 \
sh -c 'cat >> /etc/ssl/certs/ca-certificates.crt && cat >> /etc/ssl/cert.pem'
- name: Set up Docker Buildx
run: |
docker buildx create --use --name multiarch || docker buildx use multiarch
- name: Build and push backend
run: |
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t gitea.home.arpa/nik/watch-party-backend:latest \
--push \
/tmp/watch-party/backend
- name: Build and push frontend
run: |
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t gitea.home.arpa/nik/watch-party-frontend:latest \
--push \
/tmp/watch-party/frontend
- name: Deploy to Mac Mini
run: |
ssh -o StrictHostKeyChecking=no \
-i /tmp/deploy_key \
${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \
"export PATH=/usr/local/bin:/opt/homebrew/bin:\$PATH && \
cd ~/repo/watch-party && \
docker compose pull && \
docker compose up -d"