name: Install and test AVAon:push:branches:- mainpull_request:paths-ignore:- "*.md"- "docs/**"- "media/**"jobs:nodejs:name: Node.jsruns-on: ${{ matrix.os }}strategy:fail-fast: falsematrix:node-version: [^18.18, ^20.8, ^22, ^23]os: [ubuntu-latest, windows-latest, macos-latest]steps:- uses: actions/checkout@v4- name: Enable symlinksif: matrix.os == 'windows-latest'run: |git config core.symlinks truegit reset --hard- uses: actions/setup-node@v4with:node-version: ${{ matrix.node-version }}cache: npm- run: npm install --no-audit- run: ./scripts/ci.shshell: bash- uses: codecov/codecov-action@v4with:files: coverage/lcov.infoname: ${{ matrix.os }}/${{ matrix.node-version }}token: ${{ secrets.CODECOV_TOKEN }}typescript:name: TypeScript compatibilityruns-on: ubuntu-lateststrategy:matrix:ts-version: [~5.2, ~5.3, ~5.4, ~5.5, ~5.6, ~5.7, ~5.8]steps:- uses: actions/checkout@v4- uses: actions/setup-node@v4with:node-version-file: package.jsoncache: npm- run: npm install --no-audit- run: npm i typescript@${TS_VERSION}env:TS_VERSION: ${{ matrix.ts-version }}- run: ./node_modules/typescript/bin/tsc --version- run: ./node_modules/typescript/bin/tsc --noEmitlockfile_churn:name: Test package-lock for unexpected modificationsruns-on: ubuntu-lateststeps:- uses: actions/checkout@v4- uses: actions/setup-node@v4with:node-version-file: package.jsoncache: npm- run: npm install --no-audit- name: Test package-lock for unexpected modificationsrun: |npm -vchecksum=$(sha512sum package-lock.json)npm install --package-lock-only --no-auditif ! echo ${checksum} | sha512sum --quiet -c -; thenecho "package-lock.json was modified unexpectedly. Please rebuild it using npm@$(npm -v) and commit the changes."exit 1fiwithout_lockfile:name: Install dependencies without using a lockfileruns-on: ubuntu-lateststeps:- uses: actions/checkout@v4- uses: actions/setup-node@v4with:node-version-file: package.json- run: npm install --no-package-lock --no-audit- run: ./scripts/ci.shshell: bashxo:name: Lint source filesruns-on: ubuntu-lateststeps:- uses: actions/checkout@v4- uses: actions/setup-node@v4with:node-version-file: package.jsoncache: npm- run: npm install --no-audit- run: npx xo