Skip to content

Building on working for review apps #35

Building on working for review apps

Building on working for review apps #35

Workflow file for this run

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}`);
}