name: Deploy App (Gitea Actions) on: push: branches: [ main, master ] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup SSH key shell: bash env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SERVER_HOST: ${{ secrets.SERVER_HOST }} SERVER_PORT: ${{ secrets.SERVER_PORT }} SERVER_USER: ${{ secrets.SERVER_USER }} run: | set -euo pipefail mkdir -p ~/.ssh printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan -p "$SERVER_PORT" -H "$SERVER_HOST" >> ~/.ssh/known_hosts - name: Rsync project to server shell: bash env: SERVER_HOST: ${{ secrets.SERVER_HOST }} SERVER_PORT: ${{ secrets.SERVER_PORT }} SERVER_USER: ${{ secrets.SERVER_USER }} run: | set -euo pipefail rsync -az --delete \ --exclude '.git' \ -e "ssh -p $SERVER_PORT -i ~/.ssh/id_ed25519" \ ./ "$SERVER_USER@$SERVER_HOST:~/gch3n-infra/" - name: Remote deploy shell: bash env: SERVER_HOST: ${{ secrets.SERVER_HOST }} SERVER_PORT: ${{ secrets.SERVER_PORT }} SERVER_USER: ${{ secrets.SERVER_USER }} run: | set -euo pipefail ssh -p "$SERVER_PORT" -i ~/.ssh/id_ed25519 "$SERVER_USER@$SERVER_HOST" << 'EOF' set -euo pipefail cd ~/gch3n-infra chmod +x deploy.sh ./deploy.sh curl -fsS http://127.0.0.1:3001/health || curl -fsS http://127.0.0.1:3002/health EOF