All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Use the week number to manage Cygwin cache.
- Changed to force an update of the opam cache if the week number is changed.
- Removed the profiling functionality added in
2.0.0-alpha
.
- Added
opam-repositories
input to support multiple opam repositories.
- The
opam-repository
input has been removed in order to add theopam-repositories
input.
- Added support for 32 bits compiler variants.
- Added semver-style version matching support.
- Cache opam root (
~/.opam
on Unix,D:\.opam
on Windows), opam download-cache (~/.opam/download-cache
on Unix,D:\.opam\download-cache
on Windows), and opam local switch (_opam
). - If
dune-cache
enabled, install dune, automatically configure the dune cache for the most efficient use in CI (exportsDUNE_CACHE=enabled
,DUNE_CACHE_TRANSPORT=direct
. TRANSPORT must bedirect
, notdaemon
, to speed up the opam install process and to support Windows: ocaml/dune#4166, ocaml/dune#4167), and share the dune cache directory for each run. - If
opam-pin
is enabled, pin the local packages specified byopam-local-packages
. - If
opam-depext
is enabled, install the system dependencies specified byopam-local-packages
via depext - If
opam-disable-sandboxing
is enabled, sandboxing is disabled for all platforms except Windows. (Sandboxing is always disabled on the Windows runners due to limitations of opam.) - The profiling functionality allows us to check the duration of each group if debug mode is enabled. (https://docs.github.com/en/actions/managing-workflow-runs/enabling-debug-logging)
- The Windows runners install
mingw64-i686-gcc-core
andmingw64-i686-gcc-g++
for 32 bit compiler variant support. - Clean the log output by grouping some operations.
- The compiler will be initialised in all platforms with an opam local switch to eliminate differences between platforms and prepare for full dependency caching in the future.
- The macOS and Ubuntu runners install and cache opam from the GitHub release directly without the system package manager.
- The macOS and Ubuntu runners install
darcs
andmercurial
. - The Windows runners install
mercurial
. - Export
OPAMCOLOR=always
. - Export
OPAMERRLOGLEN=0
. - Export
OPAMPRECISETRACKING=1
. - Export
OPAMSOLVERTIMEOUT=500
. - Export
OPAMROOT=D:\.opam
on the Windows runners. - Export
OPAMVERBOSE=true
if the actions debug mode is enabled. (https://docs.github.com/en/actions/managing-workflow-runs/enabling-debug-logging) - Export
MSYS=winsymlinks:native
for@actions/cache
on the Windows runners. - Export
HOME=%USERPROFILE%
for opam on the Windows runners.
- The
ocaml-version
input has been removed. Use theocaml-compiler
instead. - The simplified version specifying scheme (e.g.
4.12.0
) support has been removed.
- Use the appropriate file system behavior parameters on the Windows runners.
(
R2L:1
,R2R:1
) - Add
ppa: avsm/musl
on 18.04 and older Ubuntu runners. - Pass
--enable-shell-hook
toopam init
fixes a bug that must be run via opam exec in subsequent steps. - The Ubuntu runners install
gcc-multilib
,g++-multilib
forocaml-option-32bit
.
- Stop setting switch jobs variable on Windows (
OPAMJOBS
is sufficient).
- Run
brew update
before set up to avoid an issue with Bintray transition period.
- Further fix to switch initialisation.
- The Windows opam wrapper is fractionally less-archaically named opam.cmd, with no loss in arcaneness.
- Export
CYGWIN_ROOT
on the Windows runners, allowing bash to be invoked as%CYGWIN_ROOT%\bin\bash
/$env:CYGWIN_ROOT\bin\bash
(and similarly for Cygwinsetup-x86_64.exe
). - The Windows runner no longer prepends
%CYGWIN_ROOT%\bin
toPATH
.
- Switches in Unix are now properly initialized before running depext.
- Ubuntu and macOS runners no longer display "No switch is currently installed." before building the compiler.
- Ubuntu no longer installs the system ocaml packages.
- macOS no longer builds two compilers on every run.
- Upgrade opam to 2.0.8 for Linux VMs.
- Windows installs Cygwin to
D:\cygwin
, using faster Azure temporary storage.
1.1.5 - 2020-12-15
Reduce build time by exporting modified OPAMJOBS
environment variable.
1.1.4 - 2020-12-07
Windows installs mingw64-x86_64-gcc-g++
so GitHub Action can build libraries
that require it.
1.1.3 - 2020-10-23 [YANKED]
- Update the
@actions/core
package to address CVE-2020-15228.
1.1.2 - 2020-09-10
- Add the Cygwin setup to a known location for later steps.
- Check if the switch exists before creating the switch.
1.1.1 - 2020-08-20
- OCaml installation errors on Windows are now properly propagated.
1.1.0 - 2020-07-04
- The default opam repository can now be set via input.
- Linux VMs now use opam 2.0.7.
1.0.1 - 2020-04-21
-
node_modules
are not exported anymore which reduces the size of the action -
The repository is initialised directly from the opam-repository git source, so that there is no lag in packages being available for CI
-
Ubuntu installs
musl-tools
so that the GitHub Action can generate statically linked Linux binaries in conjunction with theocaml-variants.4.x.y+musl+flambda
switch
1.0 - 2019-11-21
- Initial release.