Skip to content

Browserstack

Browserstack #346

Workflow file for this run

name: Browserstack
on:
push:
branches: [main]
pull_request:
branches: [main]
pull_request_target:
types: [labeled]
branches: [main]
schedule:
- cron: '11 11 * * 1'
workflow_dispatch:
jobs:
unlabel:
if: ${{ github.event_name == 'pull_request_target' && github.event.label.name == 'trigger-browserstack' }}
runs-on: ubuntu-latest
steps:
- run: gh pr edit $PR --repo $REPO --remove-label "trigger-browserstack"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR: ${{ github.event.number }}
REPO: ${{ github.event.repository.full_name }}
gate:
runs-on: ubuntu-latest
if: ${{ !startsWith(github.event_name, 'pull_request') || (github.event_name == 'pull_request_target' && github.event.label.name == 'trigger-browserstack') }}
steps:
- run: echo The Show Must Go On
build:
needs:
- gate
uses: ./.github/workflows/build.yml
cert:
needs:
- gate
uses: panva/.github/.github/workflows/cert-for-browserstack.yml@main
with:
subdomain: jose
secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
browserstack:
needs:
- build
- cert
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
browser:
- browserstack:android
- browserstack:ios
- browserstack:safari
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache letsencrypt
id: cert
uses: actions/cache@v3
with:
path: letsencrypt
key: ${{ needs.cert.outputs.cache-key }}
fail-on-cache-miss: true
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: lts/hydrogen # 18
cache: 'npm'
- run: npm clean-install
- run: npm install --global testcafe@2 testcafe-browser-provider-browserstack@1
- name: Load cached dist
uses: actions/cache@v3
id: dist
with:
path: dist
key: ${{ needs.build.outputs.cache-key }}
fail-on-cache-miss: true
- name: BrowserStack Env Setup
uses: browserstack/github-actions/setup-env@63b648e87c6c2b48039b6e7af80b259c60d85f99
with:
username: ${{ secrets.BROWSERSTACK_USERNAME }}
access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
build-name: 'BUILD_INFO'
project-name: 'REPO_NAME'
- name: Start BrowserStackLocal Tunnel
uses: browserstack/github-actions/setup-local@63b648e87c6c2b48039b6e7af80b259c60d85f99
with:
local-testing: 'start'
local-logging-level: 'all-logs'
local-identifier: 'random'
- name: Run Test Suite
run: npm run tap:browsers
env:
BROWSER: ${{ matrix.browser }}
- name: Stop BrowserStackLocal
if: ${{ always() }}
uses: browserstack/github-actions/setup-local@63b648e87c6c2b48039b6e7af80b259c60d85f99
with:
local-testing: 'stop'