Skip to content

remove some TODOs

remove some TODOs #703

Workflow file for this run

name: ci
on: [push]
jobs:
lint-ocamlformat:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: 4.14.x
dune-cache: true
- name: Install dependencies
run: |
sudo apt-get update
opam depext --install --yes dune
opam install --yes ocamlformat=0.26.2
- name: Run format check
run: |
# needs `opam exec --` as `dune` is not in the shell PATH
opam exec -- dune fmt --preview
cli-and-doc:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: # 2x2 versions ran here, with 2 different ocaml versions and with/without labltk
ocaml-compiler:
- 4.13.x
- 4.14.x
additional-packages:
- ''
- labltk
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
dune-cache: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --yes gnuplot-nox \
poppler-utils graphviz texlive-latex-recommended \
texlive-fonts-recommended texlive-pictures tex4ht \
texlive-latex-extra
opam depext --install --yes dune odoc camlp-streams \
${{ matrix.additional-packages }}
opam install --yes . --deps-only
- name: Make Kappa
run: opam exec -- make all
- name: Make documentation
run: opam exec -- make doc_html
- name: Make check
run: opam exec -- make --jobs=2 check
- name: Archive documentation
uses: actions/upload-artifact@v4
if: matrix.ocaml-compiler == '4.14.x' && matrix.additional-packages == ''
with:
name: doc
path: |
man
_build/default/_doc/_html/kappa-library
python:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: 4.13.x
dune-cache: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --yes gnuplot-nox \
poppler-utils graphviz texlive-latex-recommended \
texlive-fonts-recommended texlive-pictures tex4ht
opam install --yes . --deps-only
pip install nose
- name: Make Kappa
run: |
opam exec -- make all
opam exec -- dune build @install
- name: Uninstall nose
run: opam exec -- pip uninstall -y nose
- name: Reinstall nose
run: "opam exec -- pip install nose-py3"
- name: Nose tests
run: opam exec -- nosetests -v tests/kappy
webapp-ubuntu:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: 4.13.x
dune-cache: true
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install --yes gnuplot-nox \
poppler-utils graphviz texlive-latex-recommended \
texlive-fonts-recommended texlive-pictures tex4ht
- name: Install OPAM dependencies
run: opam install --yes . --deps-only
- name: Make Kappa
run: opam exec -- make all
- name: Make Javascript app
run: |
opam exec -- make Kappapp.tar.gz build/site/index.html
cp -r gui/js_lib/viz .
mv build/Kappapp.tar.gz .
mv build/site .
- name: Archive Javascript app
uses: actions/upload-artifact@v4
with:
name: online-ui
path: |
site
viz
- name: Archive linux electron app
uses: actions/upload-artifact@v4
with:
name: linux
path: |
Kappapp.tar.gz
webapp-macos:
runs-on: macos-13
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: 4.13.x
dune-cache: true
- name: Install OPAM dependencies
run: opam install --yes . --deps-only
- name: Make Kappa
run: opam exec -- make all
- name: Make MacOS app
run: |
opam exec -- make Kappapp.app
mv build/Kappapp.app .
- name: Sign MacOS binaries
run: |
find Kappapp.app/Contents/ \( -name \*.app -or -name \*.framework \) \
-exec codesign --deep -s - \{\} \;
codesign -s - Kappapp.app
zip -y -r Kappapp.app.zip Kappapp.app
- name: Archive MacOS app
uses: actions/upload-artifact@v4
with:
name: macos
path: Kappapp.app.zip
webapp-windows:
runs-on: windows-2022
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: 4.14.x
dune-cache: true
- name: Install OPAM dependencies
run: opam install --yes . --deps-only
- name: Make Kappa
run: opam exec -- make all
- name: Make Windows app
run: |
opam exec -- make KappappWin
# Note: This runs powershell thus the different path syntax
mv .\build\KappappWin .
# Note: Windows VMs on GitHub Action do not have zip command but provide 7z
7z a -tzip KappappWin.zip KappappWin
- name: Archive Windows app
uses: actions/upload-artifact@v4
with:
name: windows
path: KappappWin.zip
#webapp-playwright-test:
# needs: [cli-and-doc, webapp-ubuntu]
# run only on master OR when the PR is _not_ a draft
# TODO: improve this?
# if: |
# github.ref == 'refs/heads/master' ||
# github.event.pull_request.draft == false
# timeout-minutes: 75
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v5
# - uses: actions/setup-node@v4
# with:
# node-version: lts/*
# - name: Install dependencies
# run: |
# npm ci
# sudo apt-get update
# sudo apt-get install lighttpd
# sudo apt-get install xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps
# sudo npm install -D @playwright/test@latest
# npm install --save-dev @types/node @types/yauzl
# - name: Install Playwright Browsers
# run: npx playwright install --with-deps
# - name: Download online-ui
# uses: actions/download-artifact@v4
# with:
# name: online-ui
# - name: Setup webapp server
# run: >-
# echo '
# include_shell "/usr/share/lighttpd/create-mime.conf.pl"
# server.document-root = "/home/runner/work/KappaTools/KappaTools/site"
# server.port = 12345
# server.username = "root"
# server.groupname = "root"
# ' > lighttpd.conf
# lighttpd -f lighttpd.conf -D &
# sleep 10 && curl -i http://127.0.0.1:12345/index.html # test
# - name: Download electron app
# uses: actions/download-artifact@v4
# with:
# name: linux
# - name: Setup electron app
# run: |
# tar xzf Kappapp.tar.gz
# mkdir -p build
# mv Kappapp ./build/
# # pwd
# # ls -R
# # ls -R /home/runner/work/
# Xvfb :99 -ac -screen 0 1920x1080x24 +extension GLX +render > xvfb_log.txt 2>&1 &
# sleep 3
# - name: Run Playwright tests
# run: |
# # export DISPLAY=:99 # needed for electron
# DEBUG=pw:browser* npx playwright test --retries=2 --trace retain-on-first-failure
# - uses: actions/upload-artifact@v4
# if: ${{ !cancelled() }}
# with:
# name: playwright-report
# path: playwright-report/
# retention-days: 30
# - uses: actions/upload-artifact@v4
# if: ${{ !cancelled() }}
# with:
# name: xvfb_log
# path: xvfb_log.txt
# retention-days: 30
# deploy:
# needs: [cli-and-doc, webapp-ubuntu, webapp-macos, webapp-windows, webapp-playwright-test]
# if: github.ref == 'refs/heads/master'
# runs-on: ubuntu-22.04
# strategy:
# matrix:
# deploy-name: [doc, online-ui, linux, macos, windows]
# steps:
# - name: Checkout
# uses: actions/checkout@v5
# - name: Download artifact
# uses: actions/download-artifact@v4
# with:
# name: ${{matrix.deploy-name}}
# - name: Install SSH Key
# uses: shimataro/ssh-key-action@v2
# with:
# key: ${{ secrets.DEPLOY_KEY }}
# known_hosts: api.kappalanguage.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJooIEJd6sgRL5JUKGqh9zB3Xla1MchqR8IWl7Nh9ahm9Ji6IwV9QSKG9YQEIHdJWxBk4UzbfRWGkDK9q1GggyM=
# - name: Run deploy script
# run: dev/deploy-to-website.sh ${{matrix.deploy-name}}
# TODO: see if add cache
# # from https://github.com/hazelgrove/hazel/blob/868f673119827a35ec67fad5e7e0d5135ce91d4c/.github/workflows/deploy_branches.yml#L19-L29
# - name: Retrieve the switch environment if cached
# id: opam-cache-switch
# uses: actions/cache@v4
# with:
# path: '_opam'
# key: ${{ runner.os }}-opam-${{ env.cache-name }}-${{ matrix.ocaml-compiler }}-${{ matrix.additional-packages}}-${{ hashFiles('*.opam') }}