All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 18s
62 lines
1.9 KiB
YAML
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"
|