showdownjs/showdown

View on GitHub
.github/workflows/browserstack.yml

Summary

Maintainability
Test Coverage
name: 'BrowserStack Test'

on:
  push:
    branches: [ master, develop ]
  pull_request:
    branches: [ master, develop ]

jobs:
  ubuntu-job:
    name: 'BrowserStack Test on Ubuntu'
    runs-on: ubuntu-latest
    steps:
      - name: set up env vars
        # Only the first line of commit msg
        run: echo "COMMIT_MSG=$(printf "%s" "${{ github.event.head_commit.message }}" | head -n 1)" >> $GITHUB_ENV

      - name: '📦 Checkout the repository'
        uses: actions/checkout@v2

      - name: '🚚 Upgrade NPM'
        run: npm install -g npm

      - name: '⚙ Setup Node.js v17.x'
        uses: actions/setup-node@v2
        with:
          node-version: 17.x
          cache: 'npm'

      - name: '📖 Get current package version'
        id: package-version
        uses: martinbeentjes/npm-get-version-action@v1.2.3

      - name: '📝 Print build version and commit msg'
        run: 'printf "version: %s\n build:%s\n message:%s\n" "${{ steps.package-version.outputs.current-version}}" "${{ github.run_id }}" "$COMMIT_MSG"'

      - name: '📱 BrowserStack Env Setup'  # Invokes the setup-env action
        uses: browserstack/github-actions/setup-env@master
        with:
          username:  ${{ secrets.BROWSERSTACK_USERNAME }}
          access-key: ${{ secrets.BROWSERSTACK_ACCESSKEY }}
          project-name: 'showdown'
          build-name: ${{ steps.package-version.outputs.current-version}}-${{ github.run_id }}

      - name: '🚇 BrowserStack Local Tunnel Setup'  # Invokes the setup-local action
        uses: browserstack/github-actions/setup-local@master
        with:
          local-testing: start
          local-identifier: random

      - name: '🚚 Install dependencies for CI'
        run: npm ci

      - name: '🏗 Building src files for testing'
        run: npx grunt concat:test

      - name: '✅ Running test on BrowserStack with Karma'
        run: npx karma start karma.browserstack.js

      - name: '🛑 BrowserStackLocal Stop'  # Terminating the BrowserStackLocal tunnel connection
        uses: browserstack/github-actions/setup-local@master
        with:
          local-testing: stop