Skip to content

Fix cppo -version and improve make release #54

Fix cppo -version and improve make release

Fix cppo -version and improve make release #54

Workflow file for this run

---
name: Build
on:
push:
branches:
- master # forall push/merge in master
pull_request:
branches:
- "**" # forall submitted Pull Requests
jobs:
build:
strategy:
fail-fast: false
matrix:
setup-version:
- v2
- v3
os:
- macos-13
- macos-latest
- ubuntu-latest
- windows-latest
ocaml-version:
- 4.02.x
- 4.03.x
- 4.04.x
- 4.05.x
- 4.06.x
- 4.07.x
- 4.08.x
- 4.09.x
- 4.10.x
- 4.11.x
- 4.12.x
- 4.13.x
- 4.14.x
- 5.0.x
- 5.1.x
- 5.2.x
exclude:
- os: macos-13
setup-version: v3 # opam uninstall fails
- os: macos-latest
setup-version: v2
- os: macos-latest
ocaml-version: 4.02.x
- os: macos-latest
ocaml-version: 4.03.x
- os: macos-latest
ocaml-version: 4.04.x
- os: macos-latest
ocaml-version: 4.05.x
- os: macos-latest
ocaml-version: 4.06.x
- os: macos-latest
ocaml-version: 4.07.x
- os: macos-latest
ocaml-version: 4.08.x
- os: macos-latest
ocaml-version: 4.09.x
- os: macos-latest
ocaml-version: 4.11.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.02.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.03.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.04.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.05.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.06.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.07.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.08.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.09.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.10.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.11.x
- os: windows-latest
setup-version: v3
ocaml-version: 4.12.x
- os: windows-latest
setup-version: v2
ocaml-version: 5.0.x
- os: windows-latest
setup-version: v2
ocaml-version: 5.1.x
- os: windows-latest
setup-version: v2
ocaml-version: 5.2.x
runs-on: ${{ matrix.os }}
env:
SKIP_BUILD: |
dose
lilis
rotor
camlimages
freetds
frenetic
genprint
hdf5
ocp-index-top
pa_ppx
pla
ppx_deriving_rpc
reed-solomon-erasure
setr
stdcompat
uwt
OPAMAUTOREMOVE: true
SKIP_TEST: |
0install
bisect_ppx
cconv-ppx
decompress
extlib-compat
General
steps:
- name: Prepare git
run: |
git config --global core.autocrlf false
git config --global init.defaultBranch master
- name: Checkout code
uses: actions/checkout@v4
- name: Setup OCaml ${{ matrix.ocaml-version }} with v2
if: matrix.setup-version == 'v2'
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-version }}
- name: Setup OCaml ${{ matrix.ocaml-version }} with v3
if: matrix.setup-version == 'v3'
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: ${{ matrix.ocaml-version }}
- name: Install dependencies
run: opam install --deps-only .
- name: List installed packages
run: opam list
- name: Build locally
run: opam exec -- make
- name: Upload the build artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-${{ matrix.ocaml-version }}-cppo.exe
path: _build/default/src/cppo_main.exe
overwrite: true
- name: Build, test, and install package
run: opam install -t .
- name: Test dependants
if: >
(matrix.ocaml-version >= '4.05') && (matrix.os != 'windows-latest')
run: |
PACKAGES=`opam list -s --color=never --installable --depends-on cppo,cppo_ocamlbuild`
echo "Dependants:" $PACKAGES
for PACKAGE in $PACKAGES
do
echo $SKIP_BUILD | tr ' ' '\n' | grep ^$PACKAGE$ > /dev/null &&
echo Skip $PACKAGE && continue
OPAMWITHTEST=true
echo $SKIP_TEST | tr ' ' '\n' | grep ^$PACKAGE$ > /dev/null &&
OPAMWITHTEST=false
([ $OPAMWITHTEST == false ] &&
echo ::group::Build $PACKAGE) ||
echo ::group::Build and test $PACKAGE
DEPS_FAILED=false
(opam depext $PACKAGE &&
opam install --deps-only $PACKAGE) || DEPS_FAILED=true
[ $DEPS_FAILED == false ] && opam install $PACKAGE
echo ::endgroup::
[ $DEPS_FAILED == false ] || echo Dependencies broken
done