Skip to content

Commit

Permalink
upgrade to ocaml 5
Browse files Browse the repository at this point in the history
  • Loading branch information
Khady committed Dec 22, 2023
1 parent c3215ce commit 449dce3
Show file tree
Hide file tree
Showing 9 changed files with 157 additions and 73 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
74 changes: 7 additions & 67 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,35 @@
name: build and test
name: Build and Test

on:
- push
- pull_request

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

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

steps:
- name: Checkout code
uses: actions/checkout@v3
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

Expand All @@ -36,65 +38,3 @@ jobs:

- name: run test
run: opam exec -- dune runtest

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

- name: Use OCaml 4.14.x
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.14.x
dune-cache: true

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

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

- name: Use OCaml 4.14.x
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.14.x
dune-cache: true

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

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

- name: Use OCaml 4.14.x
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.14.x
dune-cache: true
opam-depext-flags: "--with-doc"

- name: Deploy odoc to GitHub Pages
uses: ocaml/setup-ocaml/deploy-doc@v2

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

- name: Use OCaml 4.14.x
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.14.x
dune-cache: true
opam-depext-flags: "--with-doc"

- name: Lint doc
uses: ocaml/setup-ocaml/lint-doc@v2
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
2 changes: 1 addition & 1 deletion .ocamlformat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
profile=default
version=0.24.1
version=0.26.1
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The setup should be installable as easily as possible.
## Getting started

```sh
opam switch create . 4.14.1 --no-install
opam switch create . 5.1.1 --no-install
opam install . --deps-only
```

Expand Down
3 changes: 2 additions & 1 deletion dune-project
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
(lang dune 3.6)
(lang dune 3.12)

(name modern-ocaml)
7 changes: 4 additions & 3 deletions modern-ocaml.opam
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ doc: "https://khady.github.io/modern-ocaml/"
tags: ["ocaml" "is" "love"]
depends: [
"ocaml"
"dune" {>= "3.0"}
"ocamlformat" {= "0.24.1" & with-dev-setup}
"ocaml-lsp-server" {= "1.15.1-4.14" & with-dev-setup}
"dune" {>= "3.12"}
"ocamlformat" {= "0.26.1" & with-dev-setup}
"ocaml-lsp-server" {with-dev-setup}
"odoc" {with-doc}
]
build: [
["dune" "subst"] {pinned}
Expand Down

0 comments on commit 449dce3

Please sign in to comment.