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@v1 with: path: lua stylua: name: StyLua runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Stylua uses: JohnnyMorganz/stylua-action@v3 with: token: ${{ secrets.GITHUB_TOKEN }} version: v0.18.2 args: --check lua tests run_tests: strategy: matrix: include: - nvim_tag: v0.8.3 - nvim_tag: v0.9.1 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: Run tests run: | bash ./run_tests.sh 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 - typecheck - run_tests - update_docs runs-on: ubuntu-22.04 steps: - uses: google-github-actions/release-please-action@v3 id: release with: release-type: simple package-name: conform.nvim - 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