diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 942a90a..3cb674d 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -5,7 +5,7 @@ on: - pull_request jobs: - build: + build-and-test: strategy: fail-fast: false matrix: @@ -38,101 +38,3 @@ jobs: - name: run test run: opam exec -- dune runtest - - 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 - 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 - allow-prerelease-opam: true - - - name: Lint opam - uses: ocaml/setup-ocaml/lint-opam@v2 - - deploy-doc: - runs-on: ubuntu-latest - # if: github.ref == 'refs/heads/main' - 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: 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 - - 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 - - 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 diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml new file mode 100644 index 0000000..2f48a61 --- /dev/null +++ b/.github/workflows/deploy-doc.yml @@ -0,0 +1,57 @@ +name: Deploy odoc to GitHub Pages + +on: + push: + branches: + - "*" + +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 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..bcca778 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,29 @@ +name: lint + +on: + - push + - pull_request + +jobs: + lint-all: + 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 + + - name: Lint opam + uses: ocaml/setup-ocaml/lint-opam@v2 + + - 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