service-teams-browser-bot/.forgejo/workflows/main_service-main-teams-browser-bot.yml
ValueOn AG f5568e1058
All checks were successful
Deploy Teams-Browser-Bot / deploy (push) Successful in 37s
refactor: migrate to Forgejo workflows, normalize env file names, remove GitHub Actions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 02:34:19 +02:00

98 lines
2.8 KiB
YAML

name: Deploy Teams-Browser-Bot
on:
push:
branches:
- main
env:
APP_DIR: /opt/teamsbot
SERVER_HOST: 179.237.73.4
SERVER_USER: ubuntu
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set environment
run: |
cp env-main.env .env
rm -f env-*.env
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -H ${{ env.SERVER_HOST }} >> ~/.ssh/known_hosts
- name: Install rsync
run: |
DEBIAN_FRONTEND=noninteractive apt-get update -qq && apt-get install -y -qq rsync > /dev/null
- name: Deploy files to server
run: |
rsync -avz --delete \
-e "ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no" \
--exclude '.git' \
--exclude '.github' \
--exclude '.forgejo' \
--exclude 'node_modules' \
--exclude 'dist' \
--exclude 'output' \
--exclude '__pycache__' \
--exclude 'env-*.env' \
./ ${{ env.SERVER_USER }}@${{ env.SERVER_HOST }}:${{ env.APP_DIR }}/
- name: Build and start container
run: |
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
${{ env.SERVER_USER }}@${{ env.SERVER_HOST }} << 'ENDSSH'
set -e
cd /opt/teamsbot
echo "Building Docker image..."
docker compose build
echo "Starting container..."
docker compose up -d
echo "Waiting for container to start..."
sleep 10
echo "Container status:"
docker compose ps
ENDSSH
- name: Health Check
run: |
echo "Running health check..."
sleep 5
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
http://${{ env.SERVER_HOST }}:4100/health || echo "000")
if [ "$HTTP_STATUS" = "200" ]; then
echo "Health check passed! (HTTP $HTTP_STATUS)"
else
echo "Health check failed! (HTTP $HTTP_STATUS)"
echo "Checking container logs..."
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
${{ env.SERVER_USER }}@${{ env.SERVER_HOST }} \
"cd /opt/teamsbot && docker compose logs --tail=50"
exit 1
fi
- name: Deployment Summary
if: success()
run: |
echo "### Deployed successfully!" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Host: \`${{ env.SERVER_HOST }}:4100\`" >> $GITHUB_STEP_SUMMARY
echo "Health: \`http://${{ env.SERVER_HOST }}:4100/health\`" >> $GITHUB_STEP_SUMMARY