Files
Botinator/.gitea/workflows/ci-cd.yaml
T
ksan 80719eb253
CI/CD / build (push) Successful in 44s
CI/CD / deploy (push) Failing after 21s
fixing some stuff
2026-07-10 00:41:56 +02:00

58 lines
1.8 KiB
YAML

name: CI/CD
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 25
- name: Build
run: |
chmod +x gradlew
./gradlew --no-daemon build
deploy:
runs-on: ubuntu-latest
needs: build
if: gitea.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Build & push Docker image
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
docker login git.${{ secrets.DOMAIN }} \
-u ${{ secrets.REGISTRY_USER }} --password-stdin
docker build -t git.${{ secrets.DOMAIN }}/${{ secrets.REGISTRY_USER }}/botinator:latest .
docker push git.${{ secrets.DOMAIN }}/${{ secrets.REGISTRY_USER }}/botinator:latest
- name: Deploy to VPS
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/key
chmod 600 ~/.ssh/key
ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts
HOST=${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}
DIR=~/programs/botinator
# Ship the compose file and Lavalink config to the server. .env and
# catchphrases.txt live on the server and are intentionally not copied.
ssh -i ~/.ssh/key $HOST "mkdir -p $DIR/lavalink"
scp -i ~/.ssh/key docker-compose.yaml $HOST:'~/programs/botinator/docker-compose.yaml'
scp -i ~/.ssh/key lavalink/application.yml $HOST:'~/programs/botinator/lavalink/application.yml'
ssh -i ~/.ssh/key $HOST \
"cd $DIR && docker compose pull && docker compose up -d"