aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/test.yml
blob: 6f67a0f434700f71131845d4501208020f12281e (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
name: CI

on:
  push:
    branches:
      #- master
      #- hybrid
      - "**"
  pull_request:
    branches:
      - '**'

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        emacs_version:
          - 24.3
          - 24.4
          - 24.5
          - 25.1
          - 25.2
          - 25.3
          - 26.1
          - 26.2
          - 26.3
      # at most 20 concurrent jobs per free account
      # cf. https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#usage-limit
      max-parallel: 4
      # don't cancel all in-progress jobs if one matrix job fails:
      fail-fast: false

    steps:
    - uses: actions/checkout@v2

    - uses: purcell/setup-emacs@master
      with:
        version: ${{ matrix.emacs_version }}

    - run: emacs --version
    - run: make
    - name: Install makeinfo
      run: sudo apt-get update -y -q && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends texinfo
    - run: make doc.info

  test:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        # emacs_version:
          # the emacs version in Ubuntu 18.04 LTS
          # - 25.2
          # the emacs version in Debian Buster
          # - 26.1
          # the emacs version in Debian Sid
          # - 26.3
        coq_version:
          - 8.11
        ocaml_version:
          - minimal
      # at most 20 concurrent jobs per free account
      # cf. https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#usage-limit
      max-parallel: 6
      # don't cancel all in-progress jobs if one matrix job fails:
      fail-fast: false

    steps:
    - uses: actions/checkout@v2

    - name: Add ert problem matcher
      run: echo "::add-matcher::.github/ert.json"
      
    - uses: coq-community/docker-coq-action@v1
      id: docker-coq-action
      with:
        opam_file: 'dummy.opam'
        coq_version: ${{ matrix.coq_version }}
        ocaml_version: ${{ matrix.ocaml_version }}
        custom_script: |
          startGroup Print opam config
            opam config list; opam repo list; opam list
          endGroup
          startGroup Install emacs
            sudo apt-get update -y -q
            sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends emacs
          endGroup
          startGroup Run tests
            sudo chown -R coq:coq ./ci
            ./ci/test.sh
          endGroup

  # - run: echo "::remove-matcher owner=ert-problem-matcher::"