.github/workflows/checks.yml (1950B) - raw
1 name: checks
2 on:
3 push:
4 branches:
5 - develop
6 pull_request:
7 branches:
8 - develop
9 permissions:
10 contents: read
11 jobs:
12 rake-ci:
13 strategy:
14 fail-fast: false
15 matrix:
16 os:
17 - ubuntu-latest
18 - macos-14
19 ruby-version:
20 - '2.4'
21 - '2.5'
22 - '2.6'
23 - '2.7'
24 - '3.0'
25 - '3.1'
26 - '3.2'
27 - '3.3'
28 - '3.4'
29 exclude:
30 # We use xapian-bindings 1.4.22 for Ruby < 3.1, but it does not link on MacOS 14:
31 # https://github.com/Garaio-REM/xapian-ruby/issues/10
32 - os: macos-14
33 ruby-version: '2.4'
34 - os: macos-14
35 ruby-version: '2.5'
36 - os: macos-14
37 ruby-version: '2.6'
38 - os: macos-14
39 ruby-version: '2.7'
40 - os: macos-14
41 ruby-version: '3.0'
42 runs-on: ${{ matrix.os }}
43 env:
44 nixfile: "contrib/nix/ruby${{ matrix.ruby-version }}-shell.nix"
45 steps:
46 - name: Check out source
47 uses: actions/checkout@v3
48 with:
49 submodules: recursive
50 - name: Cache nix store
51 uses: actions/cache@v3
52 id: nix-cache
53 with:
54 path: /tmp/nixcache
55 key: nix-store-${{ matrix.os }}-ruby${{ matrix.ruby-version }}-${{ hashFiles('contrib/nix/**') }}
56 restore-keys: |
57 nix-store-${{ matrix.os }}-ruby${{ matrix.ruby-version }}-
58 nix-store-
59 - name: Install bash on MacOS
60 run: brew install bash
61 if: runner.os == 'macOS'
62 - name: Install nix
63 uses: nixbuild/nix-quick-install-action@v30
64 - name: Import nix cache
65 run: |
66 if [ -f /tmp/nixcache ] ; then
67 nix-store --import </tmp/nixcache
68 fi
69 - name: Run Rake ci task
70 run: nix-shell "$nixfile" --run 'rake ci'
71 - name: Export nix cache
72 run: nix-store --export $(nix-store -qR $(nix-build --no-out-link "$nixfile" -A inputDerivation | tail -n1)) >/tmp/nixcache