Skip to content

test(sdk): add more tests #102

test(sdk): add more tests

test(sdk): add more tests #102

Workflow file for this run

name: 'Test, build, publish'
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
contents: write
jobs:
install-dependencies:
name: Install Node.js dependencies
runs-on: ubuntu-latest
env:
cache-name: cache-node-modules
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 16.14.0
- name: Compute hash key
id: hash-key
run: echo "hash=${{ hashFiles('**/package-lock.json') }}" >> "$GITHUB_OUTPUT"
- name: Cache Node modules
id: cache-npm
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.hash-key.outputs.hash }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: npm ci
outputs:
cache-key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.hash-key.outputs.hash }}
check-prettier:
name: Check Prettier formatting
runs-on: ubuntu-latest
needs: [install-dependencies]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 16.14.0
- name: Restore dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ needs.install-dependencies.outputs.cache-key }}
- name: Check prettier formatting
run: npm run format:check
check-types:
name: Check TypeScript
runs-on: ubuntu-latest
needs: [install-dependencies]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 16.14.0
- name: Restore dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ needs.install-dependencies.outputs.cache-key }}
- name: Check types
run: npx tsc
run-cypress:
name: Run Cypress tests
runs-on: ubuntu-latest
needs: [install-dependencies]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 16.14.0
- name: Restore dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ needs.install-dependencies.outputs.cache-key }}
- name: Run Cypress tests
uses: cypress-io/github-action@v4
with:
build: npm run build
start: npx --yes http-server static/
publish:
name: Publish to npm
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: [install-dependencies, check-prettier, run-cypress, check-types]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 16.14.0
- name: Restore dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ needs.install-dependencies.outputs.cache-key }}
- name: Build the package
run: npm run build
- name: Run semantic release bot
run: npx semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}