name: Deploy OpenHands Agent Canvas on: push: branches: - master - main workflow_dispatch: jobs: deploy: name: Deploy to Komodo runs-on: hp env: KOMODO_HOST: ${{ secrets.KOMODO_HOST || 'https://komodo.nickmalik.dev' }} KOMODO_API_KEY: ${{ secrets.KOMODO_API_KEY }} KOMODO_API_SECRET: ${{ secrets.KOMODO_API_SECRET }} steps: - name: Install System Prerequisites run: | if command -v apk >/dev/null 2>&1; then apk update apk add --no-cache python3 curl bash fi python3 --version - name: Checkout Code uses: actions/checkout@v4 - name: Deploy Stack via Komodo run: | echo "=== Deploying OpenHands Agent Canvas ===" python3 scripts/deploy.py - name: Check Stack Status run: | echo "=== Stack deployment completed. Verifying stack info via Komodo API ===" python3 -c " import urllib.request, json, os host = os.getenv('KOMODO_HOST', 'https://komodo.nickmalik.dev').rstrip('/') key = os.getenv('KOMODO_API_KEY') secret = os.getenv('KOMODO_API_SECRET') if key and secret: req = urllib.request.Request( f'{host}/read/GetStack', data=json.dumps({'stack': 'openhands-agent-canvas'}).encode(), headers={'Content-Type': 'application/json', 'x-api-key': key, 'x-api-secret': secret}, method='POST' ) try: res = json.loads(urllib.request.urlopen(req, timeout=30).read().decode()) print('Stack Status:', res.get('state', 'N/A')) except Exception as e: print('Note:', e) "