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 ./tests/run docs: runs-on: ubuntu-latest if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'folke' }} needs: tests env: GH_TOKEN: ${{ github.token }} steps: - uses: actions/checkout@v4 with: ref: docs - name: Generate Docs shell: bash run: gh workflow run "Deploy to Github Pages" --ref docs community: runs-on: ubuntu-latest if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'folke' }} 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: Rockspec Build id: rockspec-build uses: actions/cache@v4 with: path: build key: rockspec-build - name: Generate Rockspec if: steps.rockspec-build.cache-hit != 'true' run: | nvim -l lua/lazy/build.lua - name: Push changes uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "chore(build): auto-generate rockspec mappings" 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' && github.repository_owner == 'folke' }} needs: - tests - docs 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