Merge branch 'v9.1' into v9.0 #3776
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Github CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - v9.2 | |
| - v9.1 | |
| - v9.0 | |
| - v8.20 | |
| - v8.19 | |
| - v8.18 | |
| - v8.17 | |
| - v8.16 | |
| - v8.15 | |
| pull_request: | |
| branches: | |
| - main | |
| - v9.2 | |
| - v9.1 | |
| - v9.0 | |
| - v8.20 | |
| - v8.19 | |
| - v8.18 | |
| - v8.17 | |
| - v8.16 | |
| - v8.15 | |
| # Cancels previous runs of the same workflow | |
| concurrency: | |
| group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| ocaml: 4.14.x | |
| - os: ubuntu-latest | |
| ocaml: 5.3.x | |
| - os: ubuntu-latest | |
| ocaml: 5.4.x | |
| - os: macos-latest | |
| ocaml: 4.14.x | |
| - os: macos-latest | |
| ocaml: 5.4.x | |
| - os: windows-latest | |
| ocaml: 4.14.x | |
| - os: windows-latest | |
| ocaml: 5.4.x | |
| fail-fast: false | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 45 | |
| steps: | |
| - name: 🔭 Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| - name: 🐫 Setup OCaml | |
| uses: ocaml/setup-ocaml@v3 | |
| with: | |
| ocaml-compiler: ${{ matrix.ocaml }} | |
| dune-cache: true | |
| - name: 🐫🐪🐫 Get dependencies | |
| run: opam exec -- make opam-deps | |
| - name: 🧱 Build coq-lsp | |
| run: opam exec -- make build | |
| - name: 🐛 Test coq-lsp | |
| run: opam exec -- make test | |
| - name: 🐛 Test fcc | |
| run: opam exec -- make test-compiler | |
| build-js: | |
| name: Web Worker Build (JSOO and WASM) | |
| strategy: | |
| fail-fast: false | |
| env: | |
| WASI_SDK_URL: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz | |
| runs-on: ubuntu-latest | |
| steps: | |
| # OPAM figures out everything but the libgmp-dev:i386 | |
| # dependency, maybe worth fixing this upstream in the opam | |
| # repository | |
| - name: Install apt dependencies | |
| run: | | |
| sudo apt-get install aptitude | |
| sudo dpkg --add-architecture i386 | |
| sudo aptitude -o Acquire::Retries=30 update -q | |
| sudo aptitude -o Acquire::Retries=30 install gcc-multilib g++-multilib pkg-config libgmp-dev libgmp-dev:i386 -y | |
| - name: 🔭 Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| - name: 🐫 Setup OCaml | |
| uses: ocaml/setup-ocaml@v3 | |
| with: | |
| ocaml-compiler: "ocaml-variants.4.12.0+options,ocaml-option-32bit" | |
| dune-cache: true | |
| - name: 💉💉💉 Patch Coq | |
| run: make patch-for-js | |
| - name: 🐫🐪🐫 Get dependencies | |
| run: | | |
| opam update | |
| opam exec -- make opam-deps | |
| opam pin add js_of_ocaml-compiler -k version 5.9.1 -y | |
| opam pin add js_of_ocaml -k version 5.9.1 -y | |
| opam install zarith_stubs_js js_of_ocaml-ppx -y | |
| - name: 🦏🧱🦏 Build coq-lsp JS version 🦏🦏🦏 | |
| if: false # Disabled due to https://github.com/ocaml/ocaml/issues/11803 | |
| run: | | |
| opam exec -- make lsp-server/jsoo/coq-fs-core.js | |
| opam exec -- make js | |
| - name: 🚀 Setup node | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22 | |
| cache: "npm" | |
| cache-dependency-path: editor/code/package-lock.json | |
| - name: 🟪 WASI Setup | |
| run: | | |
| wget --quiet -O/tmp/wasi-sdk.tar.gz ${WASI_SDK_URL} | |
| ( cd /opt && sudo tar xf /tmp/wasi-sdk.tar.gz && sudo ln -s wasi-sdk-* wasi-sdk ) | |
| - name: 🦏🧱🦏 Build coq-lsp VSCode extension 🦏🦏🦏 | |
| run: | | |
| opam exec -- make | |
| opam exec -- make wp | |
| opam exec -- make extension | |
| opam exec -- make editor/code/wasm-bin/core-fs.zip | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coq-lsp_worker and front-end | |
| compression-level: 9 | |
| path: | | |
| editor/code/package.json | |
| editor/code/README.md | |
| editor/code/CHANGELOG.md | |
| editor/code/syntaxes | |
| editor/code/coq.configuration.json | |
| editor/code/out/ | |
| editor/code/wasm-bin/ | |
| build-opam: | |
| name: Opam dev install | |
| strategy: | |
| fail-fast: false | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🔭 Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| - name: 🐫 Setup OCaml | |
| uses: ocaml/setup-ocaml@v3 | |
| with: | |
| ocaml-compiler: 4.14.x | |
| dune-cache: true | |
| - name: Install Rocq via OPAM | |
| run: | | |
| opam install lwt logs # Also build pet-server | |
| opam install memprof-limits # We need to do this to avoid coq-lsp rebuilding Coq below due to deptops | |
| - name: Install `coq-lsp` into OPAM switch | |
| run: opam install . | |
| - name: Test `coq-lsp` in installed switch | |
| run: opam exec -- fcc examples/Demo.v | |
| - name: Test `pet-server` is built | |
| run: opam exec -- which pet-server | |
| client-compile: | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ./editor/code | |
| steps: | |
| - name: 🔭 Checkout code | |
| uses: actions/checkout@v4 | |
| - name: 🚀 Setup node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - run: npm ci | |
| - run: npx --yes @vscode/vsce ls | |
| nix-flake-check: | |
| name: Nix Flake Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🔭 Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: ❄️ Setup Nix | |
| uses: cachix/install-nix-action@v31 | |
| - name: 📐 Run flake check | |
| run: nix flake check --show-trace |