Building on working for review apps #47
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Show Detailed Help | |
on: | |
issue_comment: | |
types: [created] | |
# Use concurrency to prevent duplicate runs | |
concurrency: | |
group: help-${{ github.event.issue.number }} | |
cancel-in-progress: true | |
permissions: | |
issues: write | |
pull-requests: write | |
jobs: | |
show-help: | |
if: | | |
github.event_name == 'issue_comment' && | |
github.event.issue.pull_request && | |
github.event.comment.body == '/help' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Show Available Commands | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
try { | |
console.log('Creating detailed help message...'); | |
const helpMessage = [ | |
'# 📚 Detailed Review App Commands Guide', | |
'', | |
'This is a detailed guide to using review app commands. For a quick reference, see the message posted when your PR was created.', | |
'', | |
'## Available Commands', | |
'', | |
'### `/deploy-review-app`', | |
'Deploys your PR branch to a review environment on Control Plane.', | |
'- Creates a new review app if one doesn\'t exist', | |
'- Updates the existing review app if it already exists', | |
'- Provides a unique URL to preview your changes', | |
'- Shows build and deployment progress in real-time', | |
'', | |
'**Required Environment Variables:**', | |
'- `CPLN_TOKEN`: Control Plane authentication token', | |
'- `CPLN_ORG`: Control Plane organization name', | |
'', | |
'**Optional Configuration:**', | |
'- `WAIT_TIMEOUT`: Deployment timeout in seconds (default: 900)', | |
' - Must be a positive integer', | |
' - Can be set in GitHub Actions variables', | |
' - Applies to both deployment and workload readiness checks', | |
'', | |
'### `/delete-review-app`', | |
'Deletes the review app associated with this PR.', | |
'- Removes all resources from Control Plane', | |
'- Helpful for cleaning up when you\'re done testing', | |
'- Can be re-deployed later using `/deploy-review-app`', | |
'', | |
'**Required Environment Variables:**', | |
'- `CPLN_TOKEN`: Control Plane authentication token', | |
'- `CPLN_ORG`: Control Plane organization name', | |
'', | |
'### `/help`', | |
'Shows this detailed help message.', | |
'', | |
'---', | |
'## Environment Setup', | |
'', | |
'1. Set required secrets in your repository settings:', | |
' - `CPLN_TOKEN`', | |
' - `CPLN_ORG`', | |
'', | |
'2. Optional: Configure `WAIT_TIMEOUT` in GitHub Actions variables to customize deployment timeout', | |
'', | |
'## Control Plane Integration', | |
'', | |
'Review apps are deployed to Control Plane with the following configuration:', | |
'- App Name Format: `qa-react-webpack-rails-tutorial-pr-{PR_NUMBER}`', | |
'- Console URL: `https://console.cpln.io/console/org/{CPLN_ORG}/gvc/{APP_NAME}/-info`', | |
'', | |
'## Automatic Cleanup', | |
'', | |
'Review apps are automatically deleted when:', | |
'- The PR is closed (merged or not merged)', | |
'- The PR is stale (via nightly cleanup job)', | |
'', | |
'For more information, see the [React on Rails Tutorial documentation](https://github.com/shakacode/react-on-rails/tree/master/react-webpack-rails-tutorial)' | |
].join('\n'); | |
console.log('Issue number:', github.context.payload.issue.number); | |
console.log('Owner:', context.repo.owner); | |
console.log('Repo:', context.repo.repo); | |
await github.rest.issues.createComment({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
issue_number: github.context.payload.issue.number, | |
body: helpMessage | |
}); | |
console.log('Help message posted successfully'); | |
} catch (error) { | |
console.error('Error posting help message:', error); | |
core.setFailed(`Failed to post help message: ${error.message}`); | |
} |