Skip to content

fixup

fixup #298

Workflow file for this run

name: ci
on: [push]
jobs:
install-ubuntu:
runs-on: ubuntu-latest
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 }}
- 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 pinned_libs/default --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-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup OCaml
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.13.x
- 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 pinned_libs/default --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
js:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup OCaml
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.13.x
- 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 pinned_libs/default --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/viz .
mv build/Kappapp.tar.gz .
mv build/site .
- name: Archive Javascript app
uses: actions/upload-artifact@v4
with:
name: js
path: |
site
viz
Kappapp.tar.gz
macos:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup OCaml
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.13.x
- name: Install OPAM dependencies
run: |
opam install --yes pinned_libs/default --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
windows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup OCaml
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.14.x
- name: Install OPAM dependencies
run: |
opam install --yes pinned_libs/windows --deps-only
- name: Make Kappa
run: opam exec -- make all
- name: Make Windows app
run: |
opam exec -- make KappaBin
mv build/KappaBin .
7z a -tzip KappaBin.zip KappaBin
# Note: Windows VMs on GitHub Action do not have zip command but provide 7z
- name: Archive Windows app
uses: actions/upload-artifact@v4
with:
name: windows
path: |
KappaBin.zip
deploy-docs:
needs: install-ubuntu
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download doc artifact
uses: actions/download-artifact@v4
with:
name: doc
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.DEPLOY_KEY }}
known_hosts: api.kappalanguage.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJooIEJd6sgRL5JUKGqh9zB3Xla1MchqR8IWl7Nh9ahm9Ji6IwV9QSKG9YQEIHdJWxBk4UzbfRWGkDK9q1GggyM=
- run: dev/update-web.sh native
deploy-js:
needs: js
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download js artifact
uses: actions/download-artifact@v4
with:
name: js
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.DEPLOY_KEY }}
known_hosts: api.kappalanguage.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJooIEJd6sgRL5JUKGqh9zB3Xla1MchqR8IWl7Nh9ahm9Ji6IwV9QSKG9YQEIHdJWxBk4UzbfRWGkDK9q1GggyM=
- run: dev/update-web.sh js
deploy-macos:
needs: macos
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download MacOS artifact
uses: actions/download-artifact@v4
with:
name: macos
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.DEPLOY_KEY }}
known_hosts: api.kappalanguage.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJooIEJd6sgRL5JUKGqh9zB3Xla1MchqR8IWl7Nh9ahm9Ji6IwV9QSKG9YQEIHdJWxBk4UzbfRWGkDK9q1GggyM=
- run: dev/update-web.sh MacOS
deploy-windows:
needs: windows
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Windows artifact
uses: actions/download-artifact@v4
with:
name: windows
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.DEPLOY_KEY }}
known_hosts: api.kappalanguage.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJooIEJd6sgRL5JUKGqh9zB3Xla1MchqR8IWl7Nh9ahm9Ji6IwV9QSKG9YQEIHdJWxBk4UzbfRWGkDK9q1GggyM=
- run: dev/update-web.sh windows