Skip to content

CI: add Emacs 29.1 and Coq 8.18-rc1 in CI #519

CI: add Emacs 29.1 and Coq 8.18-rc1 in CI

CI: add Emacs 29.1 and Coq 8.18-rc1 in CI #519

Workflow file for this run

name: CI
on:
push:
branches:
#- master
#- hybrid
- "**"
pull_request:
branches:
- '**'
jobs:
###########################################################################
####### compile and build manual
###########################################################################
build:
runs-on: ubuntu-latest
strategy:
matrix:
emacs_version:
- 25.2
- 25.3
- 26.1
- 26.2
- 26.3
- 27.1
- 27.2
- 28.1
- 28.2
- 29.1
# 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
# Erik: Extend this with linting?
- 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
###########################################################################
####### make magic
###########################################################################
# Check that the texinfo sources of the manual can be updated
# with the documentation strings for variables and functions in
# the source code and that the manual is actually up-to-date.
# If the final git diff fails, then somebody forgot to update
# the manuals with ``make -C doc magic'' after changing a
# variable or function documentation that appears in one of the
# manuals.
check-doc-magic:
runs-on: ubuntu-latest
strategy:
matrix:
emacs_version:
# I don't think we need to check with all emacs
# versions. The latest two should be enough, maybe even
# only the latest one.
- 28.2
- 29.1
# 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 -C doc magic
- run: git diff --exit-code -- doc
###########################################################################
####### first tests: ci/test.sh runs tests in ci/coq-tests.el
###########################################################################
test:
runs-on: ubuntu-latest
strategy:
matrix:
coq_emacs_version:
- coq-8.6-emacs-25.2
- coq-8.6-emacs-28.2
- coq-8.7-emacs-25.3
- coq-8.7-emacs-28.2
- coq-8.8-emacs-26.1
- coq-8.8-emacs-28.2
- coq-8.9-emacs-26.2
- coq-8.9-emacs-28.2
- coq-8.10-emacs-26.3
- coq-8.10-emacs-28.2
- coq-8.11-emacs-26.3
- coq-8.11-emacs-29.1
- coq-8.12-emacs-27.1
- coq-8.12-emacs-29.1
- coq-8.13-emacs-27.2
- coq-8.13-emacs-29.1
- coq-8.14-emacs-27.2
- coq-8.14-emacs-29.1
- coq-8.15-emacs-25.2
- coq-8.15-emacs-26.3
- coq-8.15-emacs-27.1
- coq-8.15-emacs-28.1
- coq-8.15-emacs-28.2
- coq-8.15-emacs-29.1
- coq-8.16-emacs-25.2
- coq-8.16-emacs-26.3
- coq-8.16-emacs-27.1
- coq-8.16-emacs-28.2
- coq-8.16-emacs-29.1
- coq-8.17-emacs-25.2
- coq-8.17-emacs-26.2
- coq-8.17-emacs-26.3
- coq-8.17-emacs-27.1
- coq-8.17-emacs-27.2
- coq-8.17-emacs-28.1
- coq-8.17-emacs-28.2
- coq-8.17-emacs-29.1
- coq-8.18-rc-emacs-26.3
- coq-8.18-rc-emacs-27.1
- coq-8.18-rc-emacs-27.2
- coq-8.18-rc-emacs-28.1
- coq-8.18-rc-emacs-28.2
- coq-8.18-rc-emacs-29.1
# 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'
custom_image: proofgeneral/coq-emacs:${{matrix.coq_emacs_version}}
custom_script: |
startGroup Print opam config
opam config list; opam repo list; opam list
endGroup
startGroup other relevant configuration
echo getconf _NPROCESSORS_ONLN: $(getconf _NPROCESSORS_ONLN)
emacs --version
coqc --version
ocamlc -v
endGroup
startGroup Run tests
sudo chown -R coq:coq ./ci
make tests
endGroup
###########################################################################
####### compilation tests: all tests in subdirectories of ci/compile-tests
###########################################################################
compile-tests:
runs-on: ubuntu-latest
strategy:
matrix:
coq_emacs_version:
- coq-8.6-emacs-25.2
- coq-8.6-emacs-28.2
- coq-8.7-emacs-25.3
- coq-8.7-emacs-28.2
- coq-8.8-emacs-26.1
- coq-8.8-emacs-28.2
- coq-8.9-emacs-26.2
- coq-8.9-emacs-28.2
- coq-8.10-emacs-26.3
- coq-8.10-emacs-28.2
- coq-8.11-emacs-26.3
- coq-8.11-emacs-29.1
- coq-8.12-emacs-27.1
- coq-8.12-emacs-29.1
- coq-8.13-emacs-27.2
- coq-8.13-emacs-29.1
- coq-8.14-emacs-27.2
- coq-8.14-emacs-29.1
- coq-8.15-emacs-25.2
- coq-8.15-emacs-26.3
- coq-8.15-emacs-27.1
- coq-8.15-emacs-28.1
- coq-8.15-emacs-28.2
- coq-8.15-emacs-29.1
- coq-8.16-emacs-25.2
- coq-8.16-emacs-26.3
- coq-8.16-emacs-27.1
- coq-8.16-emacs-28.2
- coq-8.16-emacs-29.1
- coq-8.17-emacs-25.2
- coq-8.17-emacs-26.2
- coq-8.17-emacs-26.3
- coq-8.17-emacs-27.1
- coq-8.17-emacs-27.2
- coq-8.17-emacs-28.1
- coq-8.17-emacs-28.2
- coq-8.17-emacs-29.1
- coq-8.18-rc-emacs-26.3
- coq-8.18-rc-emacs-27.1
- coq-8.18-rc-emacs-27.2
- coq-8.18-rc-emacs-28.1
- coq-8.18-rc-emacs-28.2
- coq-8.18-rc-emacs-29.1
# 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'
custom_image: proofgeneral/coq-emacs:${{matrix.coq_emacs_version}}
custom_script: |
startGroup other relevant configuration
echo getconf _NPROCESSORS_ONLN: $(getconf _NPROCESSORS_ONLN)
emacs --version
coqc --version
ocamlc -v
endGroup
startGroup Run tests
sudo chown -R coq:coq ./ci
make -C ci/compile-tests test
endGroup
###########################################################################
####### Additional tests in ci/simple-tests
###########################################################################
simple-tests:
runs-on: ubuntu-latest
strategy:
matrix:
coq_emacs_version:
- coq-8.6-emacs-25.2
- coq-8.6-emacs-28.2
- coq-8.7-emacs-25.3
- coq-8.7-emacs-28.2
- coq-8.8-emacs-26.1
- coq-8.8-emacs-28.2
- coq-8.9-emacs-26.2
- coq-8.9-emacs-28.2
- coq-8.10-emacs-26.3
- coq-8.10-emacs-28.2
- coq-8.11-emacs-26.3
- coq-8.11-emacs-29.1
- coq-8.12-emacs-27.1
- coq-8.12-emacs-29.1
- coq-8.13-emacs-27.2
- coq-8.13-emacs-29.1
- coq-8.14-emacs-27.2
- coq-8.14-emacs-29.1
- coq-8.15-emacs-25.2
- coq-8.15-emacs-26.3
- coq-8.15-emacs-27.1
- coq-8.15-emacs-28.1
- coq-8.15-emacs-28.2
- coq-8.15-emacs-29.1
- coq-8.16-emacs-25.2
- coq-8.16-emacs-26.3
- coq-8.16-emacs-27.1
- coq-8.16-emacs-28.2
- coq-8.16-emacs-29.1
- coq-8.17-emacs-25.2
- coq-8.17-emacs-26.2
- coq-8.17-emacs-26.3
- coq-8.17-emacs-27.1
- coq-8.17-emacs-27.2
- coq-8.17-emacs-28.1
- coq-8.17-emacs-28.2
- coq-8.17-emacs-29.1
- coq-8.18-rc-emacs-26.3
- coq-8.18-rc-emacs-27.1
- coq-8.18-rc-emacs-27.2
- coq-8.18-rc-emacs-28.1
- coq-8.18-rc-emacs-28.2
- coq-8.18-rc-emacs-29.1
# 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'
custom_image: proofgeneral/coq-emacs:${{matrix.coq_emacs_version}}
custom_script: |
startGroup other relevant configuration
echo getconf _NPROCESSORS_ONLN: $(getconf _NPROCESSORS_ONLN)
emacs --version
coqc --version
ocamlc -v
endGroup
startGroup Run tests
sudo chown -R coq:coq ./ci
make -C ci/simple-tests all
endGroup
###########################################################################
####### indentation tests in ci/test-indent
###########################################################################
# Run indentation tests in ci/test-indent on all supported emacs
# versions without coq installed.
test-indent:
runs-on: ubuntu-latest
strategy:
matrix:
emacs_version:
- 25.2
- 25.3
- 26.1
- 26.2
- 26.3
- 27.1
- 27.2
- 28.1
- 28.2
- 29.1
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 -C ci/test-indent
# Testing this here because this job runs with all Emacs versions
- run: make -C ci/simple-tests test-qrhl.success