All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m10s
54 lines
1.7 KiB
YAML
54 lines
1.7 KiB
YAML
name: Build and Deploy
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: docker
|
|
steps:
|
|
- name: Install tools
|
|
run: apt-get update && apt-get install -y docker.io openssh-client
|
|
|
|
- name: Debug Docker
|
|
run: |
|
|
ls -la /var/run/docker.sock || echo "Socket not found"
|
|
whoami
|
|
id
|
|
docker version || echo "Docker command failed"
|
|
|
|
- name: Checkout code
|
|
uses: https://data.forgejo.org/actions/checkout@v4
|
|
|
|
- name: Login to registry
|
|
run: |
|
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login git.lilastudy.com -u "${{ secrets.REGISTRY_USER }}" --password-stdin
|
|
|
|
- name: Build API image
|
|
run: |
|
|
docker build \
|
|
-t git.lilastudy.com/forgejo-lila/lila-api:latest \
|
|
--target runner \
|
|
-f apps/api/Dockerfile .
|
|
|
|
- name: Build Web image
|
|
run: |
|
|
docker build \
|
|
-t git.lilastudy.com/forgejo-lila/lila-web:latest \
|
|
--target production \
|
|
--build-arg VITE_API_URL=https://api.lilastudy.com \
|
|
-f apps/web/Dockerfile .
|
|
|
|
- name: Push images
|
|
run: |
|
|
docker push git.lilastudy.com/forgejo-lila/lila-api:latest
|
|
docker push git.lilastudy.com/forgejo-lila/lila-web:latest
|
|
|
|
- name: Deploy via SSH
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
|
|
chmod 600 ~/.ssh/id_ed25519
|
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} \
|
|
"cd ~/lila-app && docker compose pull api web && docker compose up -d api web && docker image prune -f"
|