Skip to content

build(deps-dev): Bump prettier from 3.1.0 to 3.3.2 #2715

build(deps-dev): Bump prettier from 3.1.0 to 3.3.2

build(deps-dev): Bump prettier from 3.1.0 to 3.3.2 #2715

name: "🔍 Tests"
on:
pull_request:
branches: [main]
merge_group:
workflow_dispatch:
jobs:
linting:
name: lint
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v3
- name: node
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: install dependencies
run: npm ci
- name: install dependencies with apt
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get install software-properties-common
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main'
sudo apt-get install clang-tidy-16
sudo rm -f /usr/bin/clang-tidy
sudo ln -s /usr/bin/clang-tidy-16 /usr/bin/clang-tidy
- name: build project
# Build project so that imports can be checked during linting
run: npm run build
- name: build fuzzer
# Build the native addon so that CMake generates compile_commands.json that is needed by clang-tidy
run: npm run build --workspace=@jazzer.js/fuzzer
- name: check formatting and linting
run: npm run check
unit_tests:
name: unit tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2019, macos-11, ubuntu-20.04]
node: [16]
include:
# Test all LTS versions on Linux
- os: ubuntu-20.04
node: 18
- os: ubuntu-20.04
node: 20
steps:
- name: checkout
uses: actions/checkout@v3
- name: node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: "npm"
- name: MSVC (windows)
uses: ilammy/msvc-dev-cmd@v1
if: contains(matrix.os, 'windows')
- name: install dependencies
run: npm ci
- name: build project
run: npm run build
- name: build fuzzer
run: npm run build --workspace=@jazzer.js/fuzzer
- name: run all tests
run: npm run test
examples:
name: examples
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2019, macos-11, ubuntu-20.04]
node: [16]
include:
# Test all LTS versions on Linux
- os: ubuntu-20.04
node: 18
- os: ubuntu-20.04
node: 20
steps:
- name: checkout
uses: actions/checkout@v3
- name: node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: "npm"
- name: MSVC (windows)
uses: ilammy/msvc-dev-cmd@v1
if: contains(matrix.os, 'windows')
- name: install dependencies
run: npm ci
- name: build project
run: npm run build
- name: build fuzzer
run: npm run build --workspace=@jazzer.js/fuzzer
- name: run all examples
run: npm run example
fuzz_tests:
name: fuzz tests
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v3
- name: node
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: install dependencies
run: npm ci
- name: build project
run: npm run build
- name: build fuzzer
run: npm run build --workspace=@jazzer.js/fuzzer
- name: run all fuzz tests
run: node fuzztests/runFuzzTests.js
end-to-end:
name: end-to-end
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v3
# Build with node.js 16
- name: node
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: pack jazzer.js
run: cd end-to-end && ./package-jazzer-js.sh
- name: build example
run: cd end-to-end && npm install --save-dev *.tgz && npm run build
# Run with different node.js versions
# all in one job to avoid rebuilding
- name: "node 14"
uses: actions/setup-node@v3
with:
node-version: 14
cache: "npm"
- name: run tests
run: cd end-to-end && npx jest
- name: "node 16"
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: run tests
run: cd end-to-end && npx jest
- name: "node 18"
uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"
- name: run tests
run: cd end-to-end && npx jest
- name: "node 20"
uses: actions/setup-node@v3
with:
node-version: 20
cache: "npm"
- name: run tests
run: cd end-to-end && npx jest
auto-merge:
needs:
- linting
- unit_tests
- examples
- fuzz_tests
- end-to-end
permissions:
pull-requests: write
contents: write
runs-on: ubuntu-20.04
if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@v1.3.6
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Approve
if:
${{steps.metadata.outputs.update-type !=
'version-update:semver-major'}}
run: gh pr review --approve "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Enable auto-merge
if:
${{steps.metadata.outputs.update-type !=
'version-update:semver-major'}}
run: gh pr merge --auto --rebase "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}