diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..7418925 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: monthly diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml new file mode 100644 index 0000000..d490940 --- /dev/null +++ b/.github/workflows/build-test.yml @@ -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 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..cc34b59 --- /dev/null +++ b/.github/workflows/lint.yml @@ -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 diff --git a/.github/workflows/opam-dependency-submission.yml b/.github/workflows/opam-dependency-submission.yml new file mode 100644 index 0000000..72b1bec --- /dev/null +++ b/.github/workflows/opam-dependency-submission.yml @@ -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