Skip to content

fixing tests?

fixing tests? #438

Workflow file for this run

name: ci
on: [push]
jobs:
lint-ocamlformat:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup OCaml
uses: ocaml/setup-ocaml@v2
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@v4
# - name: Setup OCaml
# uses: ocaml/setup-ocaml@v2
# 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@v4
# - name: Setup OCaml
# uses: ocaml/setup-ocaml@v2
# 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@v4
- name: Setup OCaml
uses: ocaml/setup-ocaml@v2
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 Javascript 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@v4
# - name: Setup OCaml
# uses: ocaml/setup-ocaml@v2
# 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@v4
# - 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:
# TODO: fix these settings
# needs: [cli-and-doc, webapp-ubuntu]
needs: [webapp-ubuntu]
# if: github.ref == 'refs/heads/master'
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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 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: Run Playwright tests
run: DEBUG=pw:webserver npx playwright test --retries=3 --trace retain-on-failure
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
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@v4
# - 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') }}