lint: stricter type checking #786
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
luacheck: | |
name: Luacheck | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare | |
run: | | |
sudo apt-get update | |
sudo add-apt-repository universe | |
sudo apt install luarocks -y | |
sudo luarocks install luacheck | |
- name: Run Luacheck | |
run: luacheck lua tests | |
typecheck: | |
name: typecheck | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: stevearc/nvim-typecheck-action@v2 | |
with: | |
path: lua | |
stylua: | |
name: StyLua | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Stylua | |
uses: JohnnyMorganz/stylua-action@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
version: v0.20.0 | |
args: --check lua tests | |
run_tests: | |
strategy: | |
matrix: | |
include: | |
- nvim_tag: v0.9.4 | |
- nvim_tag: v0.10.0 | |
name: Run tests | |
runs-on: ubuntu-22.04 | |
env: | |
NVIM_TAG: ${{ matrix.nvim_tag }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Neovim and dependencies | |
run: | | |
bash ./.github/workflows/install_nvim.sh | |
- name: Install tree-sitter CLI | |
run: | | |
npm install -g tree-sitter-cli | |
- name: Run tests | |
run: | | |
bash ./run_tests.sh | |
- name: Check for changes | |
run: | | |
git add tests | |
git diff --quiet --staged || echo "Changes to snapshot file detected. Run 'make update_snapshots' and commit the changes" | |
git diff --stat --staged | |
git diff --quiet --staged | |
update_docs: | |
name: Update docs | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Neovim and dependencies | |
run: | | |
bash ./.github/workflows/install_nvim.sh | |
- name: Update docs | |
run: | | |
python -m pip install pyparsing==3.0.9 | |
make doc | |
- name: Commit changes | |
if: ${{ github.ref == 'refs/heads/master' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COMMIT_MSG: | | |
[docgen] Update docs | |
skip-checks: true | |
run: | | |
git config user.email "actions@github" | |
git config user.name "Github Actions" | |
git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git | |
git add README.md doc | |
# Only commit and push if we have changes | |
git diff --quiet && git diff --staged --quiet || (git commit -m "${COMMIT_MSG}"; git push origin HEAD:${GITHUB_REF}) | |
release: | |
name: release | |
if: ${{ github.ref == 'refs/heads/master' }} | |
needs: | |
- luacheck | |
- stylua | |
- run_tests | |
- typecheck | |
- update_docs | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: googleapis/release-please-action@v4 | |
id: release | |
with: | |
release-type: simple | |
- uses: actions/checkout@v4 | |
- uses: rickstaa/action-create-tag@v1 | |
if: ${{ steps.release.outputs.release_created }} | |
with: | |
tag: stable | |
message: "Current stable release: ${{ steps.release.outputs.tag_name }}" | |
tag_exists_error: false | |
force_push_tag: true |