[v8.20] Fixup for worker and opam build. #2937
This file contains 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 | |
- v8.21 | |
- v8.20 | |
- v8.19 | |
- v8.18 | |
- v8.17 | |
- v8.16 | |
- v8.15 | |
pull_request: | |
branches: | |
- main | |
- v8.21 | |
- 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: 4.13.x | |
- os: ubuntu-latest | |
ocaml: 4.12.x | |
- os: ubuntu-latest | |
ocaml: 5.0.x | |
- os: ubuntu-latest | |
ocaml: 5.1.x | |
- os: ubuntu-latest | |
ocaml: 5.2.x | |
- os: macos-latest | |
ocaml: 4.14.x | |
- name: Windows Latest | |
ocaml: 4.14 | |
os: windows-latest | |
opam-repositories: | | |
windows-5.0: https://github.com/dra27/opam-repository.git#windows-5.0 | |
opam-repository-mingw: https://github.com/ocaml-opam/opam-repository-mingw.git#sunset | |
default: https://github.com/ocaml/opam-repository.git | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 45 | |
steps: | |
- name: 🔭 Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: 🐫 Setup OCaml | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: ${{ matrix.ocaml }} | |
dune-cache: true | |
opam-repositories: ${{ matrix.opam-repositories }} | |
- 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 | |
strategy: | |
fail-fast: false | |
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@v4 | |
with: | |
submodules: recursive | |
- name: 🐫 Setup OCaml | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: "ocaml-variants.4.14.2+options,ocaml-option-32bit" | |
dune-cache: true | |
- name: 🐫🐪🐫 Get dependencies | |
run: | | |
opam exec -- make opam-deps | |
opam pin add js_of_ocaml-compiler https://github.com/ejgallego/js_of_ocaml.git#fix_build_fs_target -y | |
opam pin add js_of_ocaml https://github.com/ejgallego/js_of_ocaml.git#fix_build_fs_target -y | |
opam install zarith_stubs_js js_of_ocaml-ppx -y | |
- name: 💉💉💉 Patch Coq | |
if: false # FIXME, Coq is in opam but needs to be patched for the worker to be functional | |
run: make patch-for-js | |
- name: 🦏🧱🦏 Build coq-lsp JS version 🦏🦏🦏 | |
run: | | |
opam exec -- make controller-js/coq-fs-core.js | |
opam exec -- make js | |
- name: 🚀 Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: 🦏🧱🦏 Build coq-lsp VSCode extension 🦏🦏🦏 | |
run: opam exec -- make extension | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coq-lsp_worker and front-end | |
path: | | |
editor/code/package.json | |
editor/code/README.md | |
editor/code/CHANGELOG.md | |
editor/code/syntaxes | |
editor/code/out/ | |
editor/code/coq.configuration.json | |
compression-level: 9 | |
build-opam: | |
name: Opam install | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- name: 🔭 Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: 🐫 Setup OCaml | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: 4.14.x | |
dune-cache: true | |
- name: Install Coq and SerAPI into OPAM switch | |
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@v18 | |
- name: 📐 Run flake check | |
run: nix flake check |