Add test for metadata collector attribute #29
Workflow file for this run
This file contains hidden or 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: Testing Suite | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
env: | |
NODE_VERSION: 22.16 | |
jobs: | |
linting: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Run npm ci | |
run: npm ci | |
- name: Run npm prettier | |
continue-on-error: true | |
run: | | |
./node_modules/.bin/prettier --check . || echo "::warning::Prettier found formatting issues. Fix it locally by running './node_modules/.bin/prettier --write .'" | |
- name: Run ESLint | |
run: ./node_modules/.bin/eslint --ext .js . | |
unit-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Run npm ci | |
run: npm ci | |
- name: Build project | |
run: npm run build | |
- name: Run unit tests | |
run: npm run test:unit | |
env: | |
CI: true | |
NODE_ENV: test | |
build: | |
runs-on: ubuntu-latest | |
needs: unit-tests | |
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Run npm ci | |
run: npm ci | |
- name: Build project | |
run: npm run build | |
- name: Commit build changes | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
git add dist/ | |
git diff --staged --quiet || git commit -m "Update build artifacts [skip ci]" | |
git push | |
browserstack: | |
runs-on: ubuntu-latest | |
needs: [unit-tests, linting, build] | |
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' | |
steps: | |
- name: "BrowserStack Env Setup" | |
uses: "browserstack/github-actions/setup-env@master" | |
with: | |
username: ${{ secrets.BROWSERSTACK_USERNAME }} | |
access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} | |
- name: "Start BrowserStackLocal Tunnel" | |
uses: "browserstack/github-actions/setup-local@master" | |
with: | |
local-testing: "start" | |
local-logging-level: "all-logs" | |
local-identifier: "random" | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Run npm ci | |
run: npm ci | |
- name: Build project | |
run: npm run build | |
- name: Run BrowserStack tests | |
run: node ./test/index.js | |
env: | |
CI: true | |
NODE_ENV: test | |
DEBUG: false | |
LOCATION: ${{ secrets.LOCATION }} | |
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }} | |
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} | |
- name: "Stop BrowserStackLocal" | |
uses: "browserstack/github-actions/setup-local@master" | |
with: | |
local-testing: "stop" |