branch: elpa/proof-general commit 83507b4c0c84a6fcb441159bcd0aa7896b0cd6cb Author: Hendrik Tews <hend...@askra.de> Commit: hendriktews <hend...@askra.de>
test various Coq and Emacs versions using docker-coq-action This change switches various CI jobs to proofgeneral/coq-emacs docker containers, such that these tests run with about 30 different Coq and Emacs version pairs ranging from Coq 8.6 and Emacs 25.2 to Coq 8.14 and Emacs 27.2. Tests that do not use Coq continue to use the purcell/setup-emacs method to install Emacs. --- .github/workflows/test.yml | 208 ++++++++++++++++++++++++++++----------------- 1 file changed, 131 insertions(+), 77 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 39cf3696de..c7edb84746 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,6 +11,9 @@ on: - '**' jobs: + ########################################################################### + ####### compile and build manual + ########################################################################### build: runs-on: ubuntu-latest @@ -45,6 +48,9 @@ jobs: 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. @@ -63,6 +69,7 @@ jobs: # only the latest one. - 26.3 - 27.2 + # don't cancel all in-progress jobs if one matrix job fails: fail-fast: false steps: @@ -76,28 +83,46 @@ jobs: - 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: - # 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.9' - - '8.10' - - '8.11' - - '8.12' - - '8.13' - - '8.14' - - '8.15' - ocaml_version: - - minimal + coq_emacs_version: + - coq-8.6-emacs-25.2 + - coq-8.6-emacs-27.2 + - coq-8.7-emacs-25.3 + - coq-8.7-emacs-27.2 + - coq-8.8-emacs-26.1 + - coq-8.8-emacs-27.2 + - coq-8.9-emacs-26.2 + - coq-8.9-emacs-27.2 + - coq-8.10-emacs-27.2 + - coq-8.11-emacs-25.2 + - coq-8.11-emacs-26.2 + - coq-8.11-emacs-26.3 + - coq-8.11-emacs-27.2 + - coq-8.12-emacs-25.2 + - coq-8.12-emacs-26.2 + - coq-8.12-emacs-26.3 + - coq-8.12-emacs-27.1 + - coq-8.12-emacs-27.2 + - coq-8.13-emacs-25.2 + - coq-8.13-emacs-26.2 + - coq-8.13-emacs-26.3 + - coq-8.13-emacs-27.1 + - coq-8.13-emacs-27.2 + - coq-8.14-emacs-25.1 + - coq-8.14-emacs-25.2 + - coq-8.14-emacs-25.3 + - coq-8.14-emacs-26.1 + - coq-8.14-emacs-26.2 + - coq-8.14-emacs-26.3 + - coq-8.14-emacs-27.1 + - coq-8.14-emacs-27.2 + # XXXX 8.15 is missing # 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 @@ -114,45 +139,64 @@ jobs: id: docker-coq-action with: opam_file: 'dummy.opam' - coq_version: ${{ matrix.coq_version }} - ocaml_version: ${{ matrix.ocaml_version }} + 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 Install emacs - sudo apt-get update -y -q - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends emacs + 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 - # - run: echo "::remove-matcher owner=ert-problem-matcher::" - - compile-test: + ########################################################################### + ####### compilation tests: all tests in subdirectories of ci/compile-tests + ########################################################################### + compile-tests: runs-on: ubuntu-latest - strategy: - # change to selected versions of coq-emacs docker containers matrix: - coq_version: - - '8.9' - - '8.10' - - '8.11' - - '8.12' - - '8.13' - - '8.14' - - '8.15' - 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 + coq_emacs_version: + - coq-8.6-emacs-25.2 + - coq-8.6-emacs-27.2 + - coq-8.7-emacs-25.3 + - coq-8.7-emacs-27.2 + - coq-8.8-emacs-26.1 + - coq-8.8-emacs-27.2 + - coq-8.9-emacs-26.2 + - coq-8.9-emacs-27.2 + - coq-8.10-emacs-27.2 + - coq-8.11-emacs-25.2 + - coq-8.11-emacs-26.2 + - coq-8.11-emacs-26.3 + - coq-8.11-emacs-27.2 + - coq-8.12-emacs-25.2 + - coq-8.12-emacs-26.2 + - coq-8.12-emacs-26.3 + - coq-8.12-emacs-27.1 + - coq-8.12-emacs-27.2 + - coq-8.13-emacs-25.2 + - coq-8.13-emacs-26.2 + - coq-8.13-emacs-26.3 + - coq-8.13-emacs-27.1 + - coq-8.13-emacs-27.2 + - coq-8.14-emacs-25.1 + - coq-8.14-emacs-25.2 + - coq-8.14-emacs-25.3 + - coq-8.14-emacs-26.1 + - coq-8.14-emacs-26.2 + - coq-8.14-emacs-26.3 + - coq-8.14-emacs-27.1 + - coq-8.14-emacs-27.2 + # XXXX 8.15 missing # don't cancel all in-progress jobs if one matrix job fails: fail-fast: false - steps: - uses: actions/checkout@v2 @@ -163,44 +207,59 @@ jobs: id: docker-coq-action with: opam_file: 'dummy.opam' - coq_version: ${{ matrix.coq_version }} - ocaml_version: ${{ matrix.ocaml_version }} + 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 Install emacs - sudo apt-get update -y -q - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends emacs - endGroup startGroup other relevant configuration - getconf _NPROCESSORS_ONLN + echo getconf _NPROCESSORS_ONLN: $(getconf _NPROCESSORS_ONLN) emacs --version coqc --version - ocaml --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: - # change to selected versions of coq-emacs docker containers matrix: - coq_version: - - '8.9' - - '8.10' - - '8.11' - - '8.12' - - '8.13' - - '8.14' - - '8.15' - ocaml_version: - - minimal - max-parallel: 6 + coq_emacs_version: + - coq-8.6-emacs-25.2 + - coq-8.6-emacs-27.2 + - coq-8.7-emacs-25.3 + - coq-8.7-emacs-27.2 + - coq-8.8-emacs-26.1 + - coq-8.8-emacs-27.2 + - coq-8.9-emacs-26.2 + - coq-8.9-emacs-27.2 + - coq-8.10-emacs-27.2 + - coq-8.11-emacs-25.2 + - coq-8.11-emacs-26.2 + - coq-8.11-emacs-26.3 + - coq-8.11-emacs-27.2 + - coq-8.12-emacs-25.2 + - coq-8.12-emacs-26.2 + - coq-8.12-emacs-26.3 + - coq-8.12-emacs-27.1 + - coq-8.12-emacs-27.2 + - coq-8.13-emacs-25.2 + - coq-8.13-emacs-26.2 + - coq-8.13-emacs-26.3 + - coq-8.13-emacs-27.1 + - coq-8.13-emacs-27.2 + - coq-8.14-emacs-25.1 + - coq-8.14-emacs-25.2 + - coq-8.14-emacs-25.3 + - coq-8.14-emacs-26.1 + - coq-8.14-emacs-26.2 + - coq-8.14-emacs-26.3 + - coq-8.14-emacs-27.1 + - coq-8.14-emacs-27.2 + # XXXX 8.15 is missing # don't cancel all in-progress jobs if one matrix job fails: fail-fast: false @@ -214,27 +273,22 @@ jobs: id: docker-coq-action with: opam_file: 'dummy.opam' - coq_version: ${{ matrix.coq_version }} - ocaml_version: ${{ matrix.ocaml_version }} + 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 Install emacs - sudo apt-get update -y -q - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends emacs - endGroup startGroup other relevant configuration - getconf _NPROCESSORS_ONLN + echo getconf _NPROCESSORS_ONLN: $(getconf _NPROCESSORS_ONLN) emacs --version coqc --version - ocaml --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: