From feb744714e1c3458dc5305c3cb78a9570e0312ee Mon Sep 17 00:00:00 2001 From: Kakadu Date: Tue, 30 Jul 2024 15:38:45 +0300 Subject: [PATCH] Adding OCaml 5.2 to CI Signed-off-by: Kakadu --- .github/workflows/master.yml | 66 ++++++++++++++++-------- .github/workflows/master52.yml | 94 ++++++++++++++++++++++++++++++++++ GT.opam | 6 ++- Makefile | 7 +++ dune-project | 7 ++- 5 files changed, 156 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/master52.yml diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index ce4aae41..15f3a067 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -1,9 +1,9 @@ name: Build master in docker on: - pull_request: - branches: - - 'master' + # pull_request: + # branches: + # - 'master' push: branches: - 'master' @@ -22,11 +22,14 @@ jobs: matrix: os: - ubuntu-latest - + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true runs-on: ${{ matrix.os }} container: image: ocaml/opam:ubuntu-lts-ocaml-4.14 - options: --user root # dirty hack + options: --user root # Kind of important dirty hack + #options: --user opam # dirty hack steps: - name: Cancel Previous Runs @@ -37,14 +40,21 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - run: sudo apt update + - run: | + sudo apt-get update + sudo apt-get install pkg-config libpcre2-dev m4 -y - run: opam --version - - run: | + - name: bisect many not work without it + run: | git config --global --add safe.directory /__w/GT/GT - git submodule update --init + #git submodule update --init + - run: opam pin add GT . --no-action + if: false + - run: opam depext GT --yes #--with-test + if: false - name: Install dependecies for documentation run: | @@ -56,7 +66,18 @@ jobs: - run: opam exec -- dune build --profile=release - run: opam exec -- dune test --profile=release + - name: Send coverage report to Coveralls + run: | + opam exec -- make coverage + opam exec -- bisect-ppx-report send-to Coveralls --coverage-path $BISECT_DIR + env: + BISECT_DIR: /tmp/GTcov + COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PULL_REQUEST_NUMBER: ${{ github.event.number }} + + - name: Build documentation + if: false run: opam exec -- dune build -p GT @doc - name: Installing using Opam @@ -64,22 +85,27 @@ jobs: opam exec -- dune build @install opam exec -- dune install - - name: List files - run: opam show --list-files GT - - name: Deploy documentation - if: ${{ github.event.pull_request.head.repo.full_name == 'PLTools/OCanren' }} + #if: ${{ github.event.pull_request.head.repo.full_name == 'PLTools/OCanren' }} + if: false uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./_build/default/_doc/_html - - name: Send coverage report to Coveralls + - name: Build API documentation + if: github.event_name != 'pull_request' run: | - #git config --global --add safe.directory /__w/zanuda/zanuda - opam exec -- make coverage - opam exec -- bisect-ppx-report send-to Coveralls --coverage-path $BISECT_DIR - env: - BISECT_DIR: /tmp/GTcov - COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PULL_REQUEST_NUMBER: ${{ github.event.number }} + opam exec -- make install odig + echo "ODIG_DOC_LOC=$(opam exec -- odig cache path)/html" >> $GITHUB_ENV + + - name: Deploy documentation + #if: ${{ github.event.pull_request.head.repo.full_name == 'PLTools/OCanren' }} + if: false + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ${{ env.ODIG_DOC_LOC }} + + - name: List files + run: opam show --list-files GT diff --git a/.github/workflows/master52.yml b/.github/workflows/master52.yml new file mode 100644 index 00000000..ba37163c --- /dev/null +++ b/.github/workflows/master52.yml @@ -0,0 +1,94 @@ +name: Build master in docker (OCaml 5.2) + +on: + # pull_request: + # branches: + # - 'master' + push: + branches: + - 'master' + paths-ignore: + - 'README.md' + +env: + OPAMROOT: /home/opam/.opam + OPAMCONFIRMLEVEL: unsafe-yes + GT_WITH_DOCS: yes + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + + runs-on: ${{ matrix.os }} + container: + image: ocaml/opam:ubuntu-lts-ocaml-5.2 + options: --user root # dirty hack + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - run: | + sudo apt-get update + sudo apt-get install pkg-config libpcre2-dev m4 -y + - run: opam --version + + - name: Update submodules + run: | + git config --global --add safe.directory /__w/GT/GT + #git submodule update --init + + - run: opam pin add GT . --no-action + if: false + + - run: opam depext GT --yes #--with-test + if: false + + - name: Install dependecies for documentation + if: false + run: | + sudo apt-get install pkg-config libpcre2-dev -y + #opam install odoc pa_ppx --yes --depext + opam install odoc pa_ppx --yes + + - run: opam install . --deps-only --with-test --with-doc + - run: opam exec -- dune build --profile=release + - run: opam exec -- dune test --profile=release + + - name: Build documentation + run: opam exec -- dune build -p GT @doc + + - name: Installing using Opam + run: | + opam exec -- dune build @install + opam exec -- dune install + + - name: List files + run: opam show --list-files GT + + # disabled, because we will do a deploy from OCaml 4.14 + # - name: Deploy documentation + # if: ${{ github.event.pull_request.head.repo.full_name == 'PLTools/OCanren' }} + # uses: peaceiris/actions-gh-pages@v3 + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # publish_dir: ./_build/default/_doc/_html + + # - name: Send coverage report to Coveralls + # run: | + # #git config --global --add safe.directory /__w/zanuda/zanuda + # opam exec -- make coverage + # opam exec -- bisect-ppx-report send-to Coveralls --coverage-path $BISECT_DIR + # env: + # BISECT_DIR: /tmp/GTcov + # COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # PULL_REQUEST_NUMBER: ${{ github.event.number }} diff --git a/GT.opam b/GT.opam index bd7c2774..c2e1bce6 100644 --- a/GT.opam +++ b/GT.opam @@ -26,13 +26,15 @@ depends: [ "ocaml" {>= "4.13" & < "5.0.0" | >= "5.2.0" & < "5.3.0"} "camlp5" {>= "8.00.05"} "dune" {>= "2.8"} + "ocamlgraph" + "ppx_inline_test" "ocamlfind" {build} "logger-p5" {build} "bisect_ppx" {build} "conf-m4" {build} - "ocamlgraph" - "ppx_inline_test" "odoc" {with-doc} + "odig" {with-doc} + "pa-ppx" {with-doc} ] build: [ ["dune" "subst"] {dev} diff --git a/Makefile b/Makefile index 1e2d802d..101123d3 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,13 @@ uninstall: dune build @install $(DFLAGS) dune uninstall $(DFLAGS) +.PHONY: odig +ODIG_SWITCHES = --odoc-theme=odig.gruvbox.light +ODIG_SWITCHES += --no-tag-index +ODIG_SWITCHES += --no-pkg-deps +odig: + odig odoc $(ODIG_SWITCHES) GT + .PHONY: coverage TEST_COV_D ?= /tmp/GTcov coverage: diff --git a/dune-project b/dune-project index 7e423af6..37b700c5 100644 --- a/dune-project +++ b/dune-project @@ -37,12 +37,15 @@ (camlp5 (>= "8.00.05")) dune + ocamlgraph + ppx_inline_test (ocamlfind :build) (logger-p5 :build) (bisect_ppx :build) (conf-m4 :build) - ocamlgraph - ppx_inline_test + (odoc :with-doc) + (odig :with-doc) + (pa-ppx :with-doc) ; ))