Skip to content

Set up tests

Set up tests #238

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch: {}
permissions:
contents: write
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'yarn'
- name: Install
run: yarn install
- name: Lint
run: yarn lint
- name: Build
run: CI="" yarn build
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
cache: 'yarn'
- name: Install
run: yarn install
- name: Test
run: yarn coverage
analyze:
name: CodeQL analysis
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
cache: 'yarn'
- name: Install
run: yarn install
- name: Build
run: CI="" yarn build
- name: Setup CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{matrix.language}}
- name: Analyze
uses: github/codeql-action/analyze@v2
release:
needs: [lint, analyze]
if: (github.ref == 'refs/heads/main') && needs.lint.result == 'success' && needs.analyze.result == 'success'
name: Tag & Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
registry-url: https://registry.npmjs.org/
cache: 'yarn'
- name: Install
run: yarn install
- name: Build
run: CI="" yarn build
- name: Discover Version
id: determine_version
uses: paulhatch/[email protected]
with:
bump_each_commit: true
short_tags: false
major_pattern: "MAJOR"
minor_pattern: "MINOR"
format: "${major}.${minor}.${patch}"
- uses: avakar/tag-and-release@v1
with:
tag_name: ${{steps.determine_version.outputs.version}}
release_name: ${{steps.determine_version.outputs.version}}
prerelease: true
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Deploy to noskop.com
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build
dependabot:
needs: [lint, test, analyze]
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]' && github.event_name == 'pull_request' && needs.lint.result == 'success' && needs.test.result == 'success' && needs.analyze.result == 'success'
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/[email protected]
with:
github-token: "${{secrets.GITHUB_TOKEN}}"
- name: Enable auto-merge for Dependabot PRs
run: gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}