summaryrefslogtreecommitdiff
path: root/.github/workflows/makefile.yml
blob: 116ae1a8f343d94288ee7fc8f23975436d13cd9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
name: Makefile CI

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  build:

    runs-on: ubuntu-latest

    env:
      NVIM_VERSION: v0.11.5
      NVIM_TREESITTER_SHA: 2ba5ec184609a96b513bf4c53a20512d64e27f39
      XDG_DATA_HOME: ${{ github.workspace }}/.xdg/data
      XDG_CACHE_HOME: ${{ github.workspace }}/.xdg/cache

    steps:
    - uses: actions/checkout@v4

    - name: Install Neovim
      run: |
        wget -q https://github.com/neovim/neovim/releases/download/${NVIM_VERSION}/nvim-linux-x86_64.tar.gz
        tar xzf nvim-linux-x86_64.tar.gz
        sudo mv nvim-linux-x86_64 /opt/nvim
        sudo ln -s /opt/nvim/bin/nvim /usr/local/bin/nvim

    - name: Install luarocks
      run: |
        sudo apt-get install -y luarocks

    - name: Install luacheck
      run: |
        sudo luarocks install luacheck

    - name: Install stylua
      run: |
        wget -qO- https://github.com/JohnnyMorganz/StyLua/releases/latest/download/stylua-linux-x86_64.zip -O stylua.zip
        unzip stylua.zip
        chmod +x stylua
        sudo mv stylua /usr/local/bin/

    - name: Cache Neovim data (tree-sitter)
      uses: actions/cache@v4
      with:
        path: .xdg
        key: ${{ runner.os }}-nvim-${{ env.NVIM_VERSION }}-ts-${{ env.NVIM_TREESITTER_SHA }}

    - name: Install tree-sitter CLI
      run: |
        node --version
        npm --version
        sudo npm install -g tree-sitter-cli
        tree-sitter --version

    - name: Install plenary.nvim
      run: |
        git clone https://github.com/nvim-lua/plenary.nvim.git ../plenary.nvim

    - name: Install nvim-treesitter (pinned)
      run: |
        git clone https://github.com/nvim-treesitter/nvim-treesitter.git ../nvim-treesitter
        git -C ../nvim-treesitter checkout ${NVIM_TREESITTER_SHA}

    - name: Install treesitter parsers
      run: |
        nvim --headless -u NONE -i NONE \
          -c "set rtp+=../nvim-treesitter" \
          -c "lua dofile('scripts/ci/install_treesitter_parsers.lua')" \
          -c "qa"

    - name: Run pr_ready
      run: make pr_ready