name: CI on: push: pull_request: jobs: tests: strategy: matrix: # os: [ubuntu-latest, windows-latest] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Install Neovim shell: bash run: | mkdir -p /tmp/nvim wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage -O /tmp/nvim/nvim.appimage cd /tmp/nvim chmod a+x ./nvim.appimage ./nvim.appimage --appimage-extract echo "/tmp/nvim/squashfs-root/usr/bin/" >> $GITHUB_PATH - name: Run Tests run: | nvim --version [ ! -d tests ] && exit 0 nvim --headless -u tests/init.lua -c "PlenaryBustedDirectory tests/ {minimal_init = 'tests/init.lua', sequential = true}" docs: runs-on: ubuntu-latest needs: tests if: ${{ github.ref == 'refs/heads/main' }} steps: - uses: actions/checkout@v4 - name: panvimdoc uses: kdheepak/panvimdoc@main with: vimdoc: lazy.nvim version: "Neovim >= 0.8.0" demojify: true treesitter: true - name: Push changes uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "chore(build): auto-generate vimdoc" commit_user_name: "github-actions[bot]" commit_user_email: "github-actions[bot]@users.noreply.github.com" commit_author: "github-actions[bot] " release: name: release if: ${{ github.ref == 'refs/heads/main' }} needs: - docs - tests runs-on: ubuntu-latest steps: - uses: googleapis/release-please-action@v4 id: release with: config-file: .github/release-please-config.json manifest-file: .github/.release-please-manifest.json - uses: actions/checkout@v4 - name: tag stable versions if: ${{ steps.release.outputs.release_created }} run: | git config user.name github-actions[bot] git config user.email github-actions[bot]@users.noreply.github.com git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/google-github-actions/release-please-action.git" git tag -d stable || true git push origin :stable || true git tag -a stable -m "Last Stable Release" git push origin stable