From fab51e56007a9f11a72c985aa371d972a286c379 Mon Sep 17 00:00:00 2001 From: dal Date: Fri, 26 Sep 2025 12:31:02 -0600 Subject: [PATCH] Update action.yml --- actions/deploy/action.yml | 137 +++++++------------------------------- 1 file changed, 24 insertions(+), 113 deletions(-) diff --git a/actions/deploy/action.yml b/actions/deploy/action.yml index ad81856c4..75c724b7c 100644 --- a/actions/deploy/action.yml +++ b/actions/deploy/action.yml @@ -7,11 +7,11 @@ branding: inputs: api-key: - description: 'Buster API key (defaults to BUSTER_API_KEY env var)' + description: 'Buster API key (falls back to BUSTER_API_KEY)' required: false default: '' host: - description: 'Buster API host URL (defaults to BUSTER_HOST env var or https://api.buster.so)' + description: 'Buster API host URL (falls back to BUSTER_HOST or https://api.buster.so)' required: false default: '' directory: @@ -19,146 +19,57 @@ inputs: required: false default: '.' environment: - description: 'Target environment for deployment (e.g., production, staging)' + description: 'Target environment (e.g., production, staging)' required: false default: '' force: - description: 'Force deployment without confirmation prompts' + description: 'Force deployment (adds --force)' required: false default: 'true' verbose: - description: 'Enable verbose output' + description: 'Verbose output (adds --verbose)' required: false default: 'false' -outputs: - deployment-id: - description: 'ID of the deployment' - value: ${{ steps.deploy.outputs.deployment-id }} - status: - description: 'Deployment status' - value: ${{ steps.deploy.outputs.status }} - models-deployed: - description: 'Number of models deployed' - value: ${{ steps.deploy.outputs.models-deployed }} - runs: using: 'composite' steps: - - name: Validate Environment - id: validate + - name: Require Buster CLI shell: bash run: | - # Check for Buster CLI - if ! command -v buster &> /dev/null && ! command -v buster.exe &> /dev/null; then - echo "❌ Buster CLI not found. Please use buster-so/buster-actions/install first" + if ! command -v buster &>/dev/null && ! command -v buster.exe &>/dev/null; then + echo "Buster CLI not found. Add a step to install it (e.g., buster-so/buster-actions/install)." exit 1 fi - - # Set up API key + + - name: Set credentials/env + shell: bash + run: | + set -e API_KEY="${{ inputs.api-key }}" if [[ -z "$API_KEY" ]]; then API_KEY="${BUSTER_API_KEY:-}" fi - if [[ -z "$API_KEY" ]]; then - echo "❌ No API key provided. Set BUSTER_API_KEY env var or pass api-key input" + echo "No API key provided. Set input 'api-key' or env BUSTER_API_KEY." exit 1 fi - - # Set up host + echo "BUSTER_API_KEY=$API_KEY" >> "$GITHUB_ENV" + HOST="${{ inputs.host }}" if [[ -z "$HOST" ]]; then HOST="${BUSTER_HOST:-https://api.buster.so}" fi - - echo "✅ Configuration validated" - echo "📍 Host: $HOST" - echo "🔑 API key: ****${API_KEY: -4}" - - # Export for next steps - echo "BUSTER_API_KEY=$API_KEY" >> $GITHUB_ENV - echo "BUSTER_HOST=$HOST" >> $GITHUB_ENV + echo "BUSTER_HOST=$HOST" >> "$GITHUB_ENV" - - name: Deploy to Buster - id: deploy + - name: Deploy shell: bash working-directory: ${{ inputs.directory }} run: | - echo "🚀 Starting deployment to Buster..." - echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" - - # Build deploy command - DEPLOY_CMD="buster deploy" - - # Add optional flags - if [[ "${{ inputs.environment }}" != "" ]]; then - DEPLOY_CMD="$DEPLOY_CMD --environment ${{ inputs.environment }}" - fi - - if [[ "${{ inputs.force }}" == "true" ]]; then - DEPLOY_CMD="$DEPLOY_CMD --force" - fi - - if [[ "${{ inputs.verbose }}" == "true" ]]; then - DEPLOY_CMD="$DEPLOY_CMD --verbose" - fi - - echo "📟 Running: $DEPLOY_CMD" - echo "" - - # Execute deployment and capture output - set +e - OUTPUT_FILE="${RUNNER_TEMP}/deploy-output.txt" - $DEPLOY_CMD 2>&1 | tee "$OUTPUT_FILE" - DEPLOY_EXIT_CODE=$? set -e - - # Parse output for key information - if [[ $DEPLOY_EXIT_CODE -eq 0 ]]; then - echo "" - echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" - echo "✅ Deployment successful!" - - # Try to extract deployment info from output - DEPLOYMENT_ID=$(grep -oP 'Deployment ID: \K[a-zA-Z0-9-]+' "$OUTPUT_FILE" || echo "unknown") - MODELS_COUNT=$(grep -oP 'Models deployed: \K[0-9]+' "$OUTPUT_FILE" || echo "0") - - echo "deployment-id=$DEPLOYMENT_ID" >> $GITHUB_OUTPUT - echo "status=success" >> $GITHUB_OUTPUT - echo "models-deployed=$MODELS_COUNT" >> $GITHUB_OUTPUT - - # Create summary - echo "## 🚀 Buster Deployment Successful" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "- **Status:** ✅ Success" >> $GITHUB_STEP_SUMMARY - echo "- **Environment:** ${{ inputs.environment || 'default' }}" >> $GITHUB_STEP_SUMMARY - echo "- **Directory:** ${{ inputs.directory }}" >> $GITHUB_STEP_SUMMARY - if [[ "$DEPLOYMENT_ID" != "unknown" ]]; then - echo "- **Deployment ID:** $DEPLOYMENT_ID" >> $GITHUB_STEP_SUMMARY - fi - if [[ "$MODELS_COUNT" != "0" ]]; then - echo "- **Models Deployed:** $MODELS_COUNT" >> $GITHUB_STEP_SUMMARY - fi - else - echo "" - echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" - echo "❌ Deployment failed with exit code: $DEPLOY_EXIT_CODE" - - echo "status=failed" >> $GITHUB_OUTPUT - - # Create error summary - echo "## ❌ Buster Deployment Failed" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "- **Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY - echo "- **Exit Code:** $DEPLOY_EXIT_CODE" >> $GITHUB_STEP_SUMMARY - echo "- **Environment:** ${{ inputs.environment || 'default' }}" >> $GITHUB_STEP_SUMMARY - echo "- **Directory:** ${{ inputs.directory }}" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### Error Output" >> $GITHUB_STEP_SUMMARY - echo '```' >> $GITHUB_STEP_SUMMARY - tail -n 20 "$OUTPUT_FILE" >> $GITHUB_STEP_SUMMARY - echo '```' >> $GITHUB_STEP_SUMMARY - - exit $DEPLOY_EXIT_CODE - fi + CMD="buster deploy" + [[ -n "${{ inputs.environment }}" ]] && CMD="$CMD --environment ${{ inputs.environment }}" + [[ "${{ inputs.force }}" == "true" ]] && CMD="$CMD --force" + [[ "${{ inputs.verbose }}" == "true" ]] && CMD="$CMD --verbose" + echo "Running: $CMD" + $CMD