Skip to content

feat: add Octomind integration to GitHub Actions workflows #4

feat: add Octomind integration to GitHub Actions workflows

feat: add Octomind integration to GitHub Actions workflows #4

Workflow file for this run

name: Deploy PR Preview
on:
pull_request:
types: [opened, synchronize, reopened]
branches: ['main']
permissions:
contents: read
pages: write
id-token: write
pull-requests: write
security-events: write
# Cancel in-progress runs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
quality:
name: Code Quality
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all branches and tags
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: |
npm ci
# Cache the node_modules directory
id: npm-cache
env:
cache-name: cache-node-modules
with:

Check failure on line 43 in .github/workflows/preview-deploy.yml

View workflow run for this annotation

GitHub Actions / Deploy PR Preview

Invalid workflow file

The workflow is not valid. .github/workflows/preview-deploy.yml (Line: 43, Col: 9): Unexpected value 'with'
path: node_modules
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Lint
run: npm run lint
continue-on-error: true
- name: Type check
run: |
npm run typecheck || echo "Type check failed but continuing"
continue-on-error: true
- name: Run unit tests
run: npm test
preview_and_test:
name: Preview Deploy & E2E
needs: quality
runs-on: ubuntu-latest
environment:
name: pr-preview
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
env:
VITE_APP_ENV: preview
- name: Cache build output
uses: actions/cache@v3
with:
path: dist
key: ${{ runner.os }}-build-${{ github.sha }}
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: './dist'
- name: Deploy PR Preview
id: deployment
uses: actions/deploy-pages@v2
with:
preview: true
- name: Comment PR
uses: actions/github-script@v6
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 URL: ${url}`
});
- name: Run E2E tests
id: e2e
uses: OctoMind-dev/automagically-action-execute@v2
with:
url: ${{ steps.deployment.outputs.page_url }}
token: ${{ secrets.AUTOMAGICALLY_TOKEN }}
testTargetId: ${{ secrets.AUTOMAGICALLY_TEST_TARGET_ID }}
blocking: true
- name: Report Status
if: always()
uses: actions/github-script@v6
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 = `${process.env.GITHUB_WORKFLOW} workflow ${context.job} job status: ${steps.e2e.outcome}`;
const body = `### Workflow Status\n${status}\n[View Run Details](${run_url})`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: owner,
repo: repo,
body: body
});