Skip to content

Update workflows

Update workflows #6

Workflow file for this run

name: Build and Test
on:
merge_group:
workflow_dispatch:
pull_request_target:
types:
- opened
- synchronize
push:
branches:
- master
permissions:
contents: read
env:
NODE_VERSION: 18
CACHE_KEY: '${{ github.ref }}-${{ github.run_id }}-${{ github.run_attempt }}'
IMPORT_STATEMENT: |
import './auth0';
AUTH0_CONTENT: |
import { Auth0Client } from '@auth0/auth0-spa-js';
new Auth0Client({
domain: 'DOMAIN',
clientId: 'CLIENT_ID'
});
jobs:
authorize:
name: Authorize
environment: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository && 'external' || 'internal' }}
runs-on: ubuntu-latest
steps:
- run: true
test:
needs: authorize # Require approval before running on forked pull requests
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build package
uses: ./.github/actions/build
with:
node: ${{ env.NODE_VERSION }}
- name: Save build artifacts
uses: actions/cache/save@v3
with:
path: .
key: ${{ env.CACHE_KEY }}
- name: Upload coverage
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # [email protected]
unit:
needs: test
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Restore build artifacts
uses: actions/cache/restore@v3
with:
path: .
key: ${{ env.CACHE_KEY }}
- name: Run tests
run: npm run test -- --maxWorkers=2
browserstack:
needs: test
name: BrowserStack Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Restore build artifacts
uses: actions/cache/restore@v3
with:
path: .
key: ${{ env.CACHE_KEY }}
- name: Run tests
shell: bash
run: npx concurrently --raw --kill-others --success first "npm:dev" "wait-on http://127.0.0.1:3000/ && browserstack-cypress run --build-name ${{ github.ref }}"
env:
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
gatsby:
needs: test
name: Gatsby Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: 'spa-js'
- name: Run framework tests
uses: ./spa-js/.github/actions/framework
with:
node: ${{ env.NODE_VERSION }}
cache: ${{ env.CACHE_KEY }}
install: |
npx gatsby new my-app < /dev/null
content: |
echo -e "${{ env.AUTH0_CONTENT }}" > src/auth0.js;
import: |
echo -e "${{ env.IMPORT_STATEMENT }}"|cat - src/pages/index.js > /tmp/out && mv /tmp/out src/pages/index.js;
react:
needs: test
name: React Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: 'spa-js'
- name: Run framework tests
uses: ./spa-js/.github/actions/framework
with:
node: ${{ env.NODE_VERSION }}
cache: ${{ env.CACHE_KEY }}
install: |
npx create-react-app my-app < /dev/null
content: |
echo -e "${{ env.AUTH0_CONTENT }}" > src/auth0.js;
import: |
echo -e "${{ env.IMPORT_STATEMENT }}"|cat - src/index.js > /tmp/out && mv /tmp/out src/index.js;
vue:
needs: test
name: Vue Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: 'spa-js'
- name: Run framework tests
uses: ./spa-js/.github/actions/framework
with:
node: ${{ env.NODE_VERSION }}
cache: ${{ env.CACHE_KEY }}
install: |
npx -p @vue/cli vue create my-app -d < /dev/null
content: |
echo -e "${{ env.AUTH0_CONTENT }}" > src/auth0.js;
import: |
echo -e "${{ env.IMPORT_STATEMENT }}"|cat - src/main.js > /tmp/out && mv /tmp/out src/main.js;
angular:
needs: test
name: Angular Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: 'spa-js'
- name: Run framework tests
uses: ./spa-js/.github/actions/framework
with:
node: ${{ env.NODE_VERSION }}
cache: ${{ env.CACHE_KEY }}
install: |
npx -p @angular/cli ng new my-app --defaults=true < /dev/null
content: |
echo -e "$AUTH0_CONTENT" > src/auth0.ts;
import: |
echo -e "${{ env.IMPORT_STATEMENT }}"|cat - src/main.ts > /tmp/out && mv /tmp/out src/main.ts;