Reimplemented http_client using the ocurl library #180
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| - push | |
| - pull_request | |
| jobs: | |
| build: | |
| continue-on-error: ${{ ! matrix.required }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ocaml-version: | |
| - 4.03.0 | |
| - 4.04.2 | |
| - 4.05.0 | |
| - 4.06.1 | |
| - 4.07.1 | |
| - 4.08.1 | |
| - 4.09.1 | |
| - 4.10.0 | |
| - 4.11.1 | |
| - 4.12.1 | |
| - 4.13.1 | |
| - 4.14.1 | |
| required: | |
| - true | |
| os: | |
| - ubuntu-latest | |
| include: | |
| - ocaml-version: 4.14.1 | |
| required: true | |
| os: macos-latest | |
| - ocaml-version: 4.14.1 | |
| required: false | |
| os: windows-latest | |
| - ocaml-version: 5.2.0 | |
| required: false | |
| os: ubuntu-latest | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Use OCaml ${{ matrix.ocaml-version }} | |
| uses: ocaml/setup-ocaml@v3 | |
| with: | |
| ocaml-compiler: ${{ matrix.ocaml-version }} | |
| - run: sudo apt update && sudo apt install libcrypto++-dev libminiupnpc-dev libnatpmp-dev libgd-dev libcurl-ocaml-dev | |
| if: matrix.os == 'ubuntu-latest' | |
| - run: brew install cryptopp miniupnpc libnatpmp gd | |
| if: matrix.os == 'macos-latest' | |
| - run: | | |
| echo "CPATH=$HOMEBREW_PREFIX/include:$CPATH" >> $GITHUB_ENV | |
| echo "LIBRARY_PATH=$HOMEBREW_PREFIX/lib:$LIBRARY_PATH" >> $GITHUB_ENV | |
| if: matrix.os == 'macos-latest' | |
| # https://cygwin.com/packages/ doesn't have cryptopp and many other packages | |
| # I guess should build with mingw? | |
| - run: D:\\cygwin\\setup-x86_64.exe "--root" "D:\\cygwin" "--quiet-mode" "unattended" "--no-shortcuts" "--no-startmenu" "--no-desktop" "--no-admin" "--no-version-check" "--no-write-registry" "--packages" "mingw64-x86_64-gd" | |
| if: matrix.os == 'windows-latest' | |
| - run: | | |
| echo $CPATH | |
| echo $C_INCLUDE_PATH | |
| echo $LIBRARY_PATH | |
| which -a pkg-config | |
| # ls -hlA $HOMEBREW_PREFIX/lib/pkgconfig | |
| # pkg-config --list-all | |
| pkg-config --cflags libcrypto++ || true # NB libcryptopp on linux :facepalm.jpg: | |
| pkg-config --libs libcrypto++ || true | |
| echo "" | cpp -v || true | |
| name: show build environment | |
| continue-on-error: true | |
| - run: opam pin add mldonkey.dev . --no-action | |
| # not needed, opam install will do it automatically | |
| # - run: opam depext mldonkey --yes --with-doc --with-test | |
| - run: opam install . --deps-only --with-doc --with-test | |
| # https://github.com/ocaml/setup-ocaml/issues/815#issuecomment-2204838759 | |
| # SHELLOPTS workaround for windows | |
| # setting SHELLOPTS via GITHUB_ENV didn't work for some reason | |
| - run: opam exec -- env SHELLOPTS=igncr sh ./configure --enable-debug --enable-upnp-natpmp | |
| - run: opam exec -- make | |
| - run: opam exec -- make utils | |
| - name: Upload the build artifact | |
| if: ${{ matrix.ocaml-version == '4.14.1' }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: mlnet-${{ matrix.os }}.exe | |
| path: mlnet |