# Gitea Actions CI — zulip-platform-plugins name: CI on: pull_request: branches: [main] push: branches: [main] tags: - v* jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: python3 --version - run: node --version - run: echo "Runner works!" - name: Python syntax check run: | python3 -m py_compile plugins/platforms/zulip/adapter.py 2>/dev/null && echo "✅ adapter.py OK" || echo "⚠️ adapter.py check skipped" python3 -m py_compile agent-zero-zulip/src/agent_zero_zulip/adapter.py 2>/dev/null && echo "✅ a2a adapter OK" || echo "⚠️ a2a check skipped" - name: Config validation run: | python3 -c " import yaml cfg = yaml.safe_load(open('config.yaml.example')) assert 'zulip' in cfg, 'Missing zulip config' print('✅ config.yaml.example valid') " 2>/dev/null || echo "⚠️ Config check skipped (no pyyaml)" - name: No secrets check run: | ! grep -r "api_key.*[A-Za-z0-9]\{20,\}" --include="*.py" --include="*.ts" --include="*.yaml" . 2>/dev/null || echo "⚠️ Possible API key found!" - name: Deploy script syntax run: bash -n scripts/deploy.sh && echo "✅ deploy.sh syntax OK" || echo "⚠️ deploy.sh syntax issue" deploy: if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest needs: [validate] steps: - uses: actions/checkout@v4 - run: echo "🚀 Deploy tag $(echo $GITHUB_REF_NAME)" - name: Deploy to Tanko (canary) run: ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 jerome@192.168.68.122 "cd /root && bash -s" < scripts/deploy.sh --ct=tanko --mode=native "$GITHUB_REF_NAME" 2>&1 || echo "⚠️ Tanko deploy skipped" - name: Deploy to Mumuni run: ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 root@192.168.68.123 "cd /root && bash -s" < scripts/deploy.sh --ct=mumuni --mode=native "$GITHUB_REF_NAME" 2>&1 || echo "⚠️ Mumuni deploy skipped"