Skip to content

build: enforce type checks, fix type errors #334

build: enforce type checks, fix type errors

build: enforce type checks, fix type errors #334

Workflow file for this run

name: ci
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches:
- master
pull_request:
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# Set NVIM_NODE_LOG_FILE to exercise related codepaths.
NVIM_NODE_LOG_FILE: 'node-client.test.log'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
test:
strategy:
fail-fast: false
matrix:
node: ['14', '16', '18']
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
include:
- os: ubuntu-latest
NIGHTLY: nvim-linux64.tar.gz
NVIM_BIN_PATH: nvim-linux64/bin
EXTRACT: tar xzf
- os: macos-latest
NIGHTLY: nvim-macos-x86_64.tar.gz
NVIM_BIN_PATH: nvim-macos-x86_64/bin
EXTRACT: tar xzf
- os: windows-latest
NIGHTLY: nvim-win64.zip
NVIM_BIN_PATH: nvim-win64/bin
EXTRACT: unzip
runs-on: ${{ matrix.os }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: npm
node-version: ${{ matrix.node }}
- name: update npm (for node.js 14)
if: matrix.node == '14'
run: npm install -g 'npm@^8.8.0'
- name: install neovim
run: |
curl -LO 'https://github.com/neovim/neovim/releases/download/nightly/${{ matrix.NIGHTLY }}'
${{ matrix.EXTRACT }} ${{ matrix.NIGHTLY }}
echo '${{ runner.os }}'
- name: update path (bash)
if: runner.os != 'Windows'
run: echo "$(pwd)/${{ matrix.NVIM_BIN_PATH }}" >> $GITHUB_PATH
- name: update path (windows)
if: runner.os == 'Windows'
run: echo "$(pwd)/${{ matrix.NVIM_BIN_PATH }}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: install dependencies
run: npm ci
- name: build
run: npm run build
- name: lint
# Skip on old Node.js, devDependencies use newish JS features.
if: matrix.node != '14'
run: npm run lint
- name: test
run: |
echo $PATH
which nvim
nvim --version
npm run test-build --stream
- uses: codecov/codecov-action@v4
if: runner.os == 'macOS'
with:
verbose: true # optional (default = false)