Files
barotrauma-admin/.gitea/workflows/ci.yaml
T
vlad.os d562b07027 + gitignore
+ add boilerplate
2026-07-18 15:07:47 +03:00

75 lines
2.4 KiB
YAML

name: Build & Deploy
run-name: ${{ gitea.event_name }} by ${{ gitea.actor }}
on:
push:
branches: [main, master, develop]
pull_request:
branches: [main, master]
jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Grant Gradle executable
run: chmod +x gradlew
- name: Build
run: ./gradlew --no-daemon build
- name: Test
run: ./gradlew --no-daemon test
- name: Build distribution
run: ./gradlew --no-daemon installDist
- name: Login to Container Registry
run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ secrets.REGISTRY_URL }} -u "${{ secrets.REGISTRY_USER }}" --password-stdin
- name: Build Docker image
run: |
docker build -t ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}:${{ gitea.sha }} -t ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}:latest .
- name: Push Docker image
run: |
docker push ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}:${{ gitea.sha }}
docker push ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}:latest
deploy:
runs-on: ubuntu-24.04
needs: build
if: gitea.ref == 'refs/heads/main' || gitea.ref == 'refs/heads/master'
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.DEPLOY_HOST }}
port: ${{ secrets.DEPLOY_PORT || '22' }}
username: ${{ secrets.DEPLOY_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
script: |
set -e
cd ${{ secrets.DEPLOY_PATH }}
cat > .env << EOF
REGISTRY_URL=${{ secrets.REGISTRY_URL }}
IMAGE_NAME=${{ gitea.repository }}
IMAGE_TAG=${{ gitea.sha }}
DATABASE_JDBC_URL=${{ secrets.DATABASE_JDBC_URL }}
DATABASE_USER=${{ secrets.DATABASE_USER }}
DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }}
DATABASE_POOL_SIZE=${DATABASE_POOL_SIZE:-10}
HOST_PORT=${HOST_PORT:-8080}
EOF
docker compose -f docker-compose.remote.yml pull
docker compose -f docker-compose.remote.yml up -d --remove-orphans
docker image prune -f