Skip to content

Commit

Permalink
ci: add github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
Khady committed Dec 23, 2023
1 parent 56102de commit 12b119e
Show file tree
Hide file tree
Showing 5 changed files with 182 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
40 changes: 40 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Build and Test

on:
- push
- pull_request

jobs:
build-and-test:
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- ubuntu-latest
# - windows-latest
ocaml-version:
- 4.14
- 5.1

runs-on: ${{ matrix.os }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Use OCaml ${{ matrix.ocaml-version }}
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-version }}
dune-cache: true
opam-depext-flags: "--with-test"
allow-prerelease-opam: true

- run: opam install . --deps-only --with-test

- name: build project
run: opam exec -- dune build

- name: run test
run: opam exec -- dune runtest
57 changes: 57 additions & 0 deletions .github/workflows/deploy-doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Deploy odoc to GitHub Pages

on:
push:
branches:
- main

permissions: read-all

concurrency:
group: deploy-odoc
cancel-in-progress: true

jobs:
deploy-odoc:
name: Deploy odoc to GitHub Pages

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

permissions:
contents: read
id-token: write
pages: write

runs-on: ubuntu-latest

steps:
- name: Checkout tree
uses: actions/checkout@v4

- name: Set-up OCaml
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: "5.1"
dune-cache: true
opam-depext-flags: "--with-doc"
allow-prerelease-opam: true

- name: Install dependencies
run: opam install . --deps-only --with-doc

- name: Build documentation
run: opam exec -- dune build @doc

- name: Set-up Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: _build/default/_doc/_html

- name: Deploy odoc to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
57 changes: 57 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Lint

on:
- push
- pull_request

jobs:
lint-fmt:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Use OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
opam-depext-flags: "--with-doc"
allow-prerelease-opam: true

- name: Lint fmt
uses: ocaml/setup-ocaml/lint-fmt@v2

lint-opam:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Use OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
opam-depext-flags: "--with-doc"
allow-prerelease-opam: true

- name: Lint opam
uses: ocaml/setup-ocaml/lint-opam@v2

lint-doc:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Use OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
opam-depext-flags: "--with-doc"
allow-prerelease-opam: true

- name: Lint doc
uses: ocaml/setup-ocaml/lint-doc@v2
22 changes: 22 additions & 0 deletions .github/workflows/opam-dependency-submission.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Opam Dependency Submission

on:
- push
- pull_request

jobs:
opam-dependency-submission:
runs-on: ubuntu-latest
steps:
- name: Checkout tree
uses: actions/checkout@v4

- name: Set-up OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
allow-prerelease-opam: true

- name: Opam Dependency Submission
uses: ocaml/setup-ocaml/analysis@v2

0 comments on commit 12b119e

Please sign in to comment.