File: workflow.yml

package info (click to toggle)
lwt 5.9.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,284 kB
  • sloc: ml: 22,030; ansic: 7,167; makefile: 92; python: 62
file content (100 lines) | stat: -rw-r--r-- 2,687 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: Builds, tests & co

on:
  pull_request:
  push:
  schedule:
    # Prime the caches every Monday
    - cron: 0 1 * * MON

jobs:
  build-and-test:
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
        ocaml-compiler:
          - "4.08"
          - "4.09"
          - "4.10"
          - "4.11"
          - "4.12"
          - "4.13"
          - "4.14"
          - "5.0"
          - "5.1"
          - "5.2"
          - "5.3"
        libev:
          - true
          - false
        include:
          - os: ubuntu-24.04-arm
            ocaml-compiler: "5.3"
            libev: false
          - os: macos-latest
            ocaml-compiler: "5.3"
            libev: false
          - os: windows-latest
            ocaml-compiler: "5.3"
            libev: false

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

    steps:
      - name: set ppx-related variables
        id: configppx
        shell: bash
        run: |
          case ${{ matrix.ocaml-compiler }} in
            "4.08"|"4.09"|"4.10"|"4.11"|"4.12"|"4.13"|"4.14"|"5.0")
              echo "letppx=false"
              echo "letppx=false" >> "$GITHUB_OUTPUT"
              ;;
            "5.1"|"5.2"|"5.3")
              echo "letppx=true"
              echo "letppx=true" >> "$GITHUB_OUTPUT"
              ;;
            *)
              printf "unrecognised version %s\n" "${{ matrix.ocaml-compiler }}";
              exit 1
              ;;
          esac

      - name: Checkout tree
        uses: actions/checkout@v5

      - name: Set-up OCaml
        uses: ocaml/setup-ocaml@v3
        with:
          ocaml-compiler: ${{ matrix.ocaml-compiler }}

      - run: opam install conf-libev
        if: ${{ matrix.libev == true }}

      - run: opam install ./lwt.opam ./lwt_react.opam ./lwt_retry.opam ./lwt_ppx.opam --deps-only --with-test

      - run: opam install ./lwt_ppx__ppx_let_tests.opam --deps-only --with-test
        if: ${{ fromJSON(steps.configppx.outputs.letppx) }}

      - run: opam exec -- dune build --only-packages lwt,lwt_react,lwt_retry

      - run: opam exec -- dune build --only-packages lwt,lwt_ppx__ppx_let_tests
        if: ${{ fromJSON(steps.configppx.outputs.letppx) }}

      - run: opam exec -- dune runtest --only-packages lwt,lwt_react,lwt_retry,lwt_ppx

      - run: opam exec -- dune runtest --only-packages lwt,lwt_ppx__ppx_let_tests
        if: ${{ fromJSON(steps.configppx.outputs.letppx) }}

  lint-opam:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout tree
        uses: actions/checkout@v5
      - name: Set-up OCaml
        uses: ocaml/setup-ocaml@v3
        with:
          ocaml-compiler: 5
      - uses: ocaml/setup-ocaml/lint-opam@v3