docs: add comprehensive comments to App.jsx for better code documentation #23
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: Deploy PR Preview | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
branches: ['main'] | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
pull-requests: write | |
concurrency: | |
group: "preview-${{ github.ref }}" | |
cancel-in-progress: true | |
jobs: | |
quality: | |
name: Code Quality | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
- name: Install dependencies | |
run: npm ci | |
- name: Lint | |
run: npm run lint | |
continue-on-error: true | |
- name: Run tests | |
run: npm test | |
continue-on-error: true | |
deploy-preview: | |
needs: quality | |
runs-on: ubuntu-latest | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
- name: Install dependencies | |
run: npm ci | |
- name: Build | |
run: npm run build | |
env: | |
VITE_APP_ENV: preview | |
GITHUB_PAGES: true | |
BASE_URL: /copy-trading/ | |
- name: Setup Pages | |
uses: actions/configure-pages@v4 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: dist | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v3 | |
with: | |
preview: true | |
- name: Comment PR | |
if: success() | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const url = `${{ steps.deployment.outputs.page_url }}`; | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: `🚀 Preview deployed to: ${url}` | |
}); | |
- name: Check required secrets | |
run: | | |
if [ -z "${{ secrets.AUTOMAGICALLY_TOKEN }}" ]; then | |
echo "::error::Missing required secret: AUTOMAGICALLY_TOKEN" | |
exit 1 | |
fi | |
if [ -z "${{ secrets.AUTOMAGICALLY_TEST_TARGET_ID }}" ]; then | |
echo "::error::Missing required secret: AUTOMAGICALLY_TEST_TARGET_ID" | |
exit 1 | |
fi | |
- name: Run E2E tests | |
id: e2e | |
uses: OctoMind-dev/automagically-action-execute@v2 | |
continue-on-error: true | |
with: | |
url: ${{ steps.deployment.outputs.page_url }} | |
token: ${{ secrets.AUTOMAGICALLY_TOKEN }} | |
testTargetId: ${{ secrets.AUTOMAGICALLY_TEST_TARGET_ID }} | |
blocking: true | |
- name: Report Workflow Status | |
if: always() | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { owner, repo } = context.repo; | |
const run_id = context.runId; | |
const run_url = `https://github.com/${owner}/${repo}/actions/runs/${run_id}`; | |
const status = '${{ steps.e2e.conclusion || steps.e2e.outcome || '' }}' === 'failure' | |
? '❌ E2E tests failed' | |
: '✅ All checks completed'; | |
const body = `### Workflow Status\n${status}\n\nFor detailed test results, check the OctoMind report in the PR.\n\n🔍 [View Workflow Details](${run_url})`; | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: owner, | |
repo: repo, | |
body: body | |
}); |