Update action.yml

This commit is contained in:
dal 2025-09-26 12:31:02 -06:00 committed by GitHub
parent c615678e43
commit fab51e5600
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 24 additions and 113 deletions

View File

@ -7,11 +7,11 @@ branding:
inputs: inputs:
api-key: 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 required: false
default: '' default: ''
host: 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 required: false
default: '' default: ''
directory: directory:
@ -19,146 +19,57 @@ inputs:
required: false required: false
default: '.' default: '.'
environment: environment:
description: 'Target environment for deployment (e.g., production, staging)' description: 'Target environment (e.g., production, staging)'
required: false required: false
default: '' default: ''
force: force:
description: 'Force deployment without confirmation prompts' description: 'Force deployment (adds --force)'
required: false required: false
default: 'true' default: 'true'
verbose: verbose:
description: 'Enable verbose output' description: 'Verbose output (adds --verbose)'
required: false required: false
default: '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: runs:
using: 'composite' using: 'composite'
steps: steps:
- name: Validate Environment - name: Require Buster CLI
id: validate
shell: bash shell: bash
run: | run: |
# Check for Buster CLI if ! command -v buster &>/dev/null && ! command -v buster.exe &>/dev/null; then
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)."
echo "❌ Buster CLI not found. Please use buster-so/buster-actions/install first"
exit 1 exit 1
fi fi
# Set up API key - name: Set credentials/env
shell: bash
run: |
set -e
API_KEY="${{ inputs.api-key }}" API_KEY="${{ inputs.api-key }}"
if [[ -z "$API_KEY" ]]; then if [[ -z "$API_KEY" ]]; then
API_KEY="${BUSTER_API_KEY:-}" API_KEY="${BUSTER_API_KEY:-}"
fi fi
if [[ -z "$API_KEY" ]]; then 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 exit 1
fi fi
echo "BUSTER_API_KEY=$API_KEY" >> "$GITHUB_ENV"
# Set up host
HOST="${{ inputs.host }}" HOST="${{ inputs.host }}"
if [[ -z "$HOST" ]]; then if [[ -z "$HOST" ]]; then
HOST="${BUSTER_HOST:-https://api.buster.so}" HOST="${BUSTER_HOST:-https://api.buster.so}"
fi fi
echo "BUSTER_HOST=$HOST" >> "$GITHUB_ENV"
echo "✅ Configuration validated" - name: Deploy
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
- name: Deploy to Buster
id: deploy
shell: bash shell: bash
working-directory: ${{ inputs.directory }} working-directory: ${{ inputs.directory }}
run: | 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 set -e
CMD="buster deploy"
# Parse output for key information [[ -n "${{ inputs.environment }}" ]] && CMD="$CMD --environment ${{ inputs.environment }}"
if [[ $DEPLOY_EXIT_CODE -eq 0 ]]; then [[ "${{ inputs.force }}" == "true" ]] && CMD="$CMD --force"
echo "" [[ "${{ inputs.verbose }}" == "true" ]] && CMD="$CMD --verbose"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Running: $CMD"
echo "✅ Deployment successful!" $CMD
# 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