A project which demonstrates a Reason workflow with Esy.
You need Esy, you can install the beta using npm:
% npm install -g esy@latest
NOTE: Make sure
esy --version
returns at least0.5.4
for this project to build.
Then run the esy
command from this project root to install and build dependencies.
% esy
Now you can run your editor within the environment (which also includes merlin):
% esy $EDITOR
% esy vim
Alternatively you can try vim-reasonml which loads esy project environments automatically.
After you make some changes to source code, you can re-run project's build
again with the same simple esy
command.
% esy
And test compiled executable (runs scripts.tests
specified in
package.json
):
% esy test
You can format your code (runs scripts.format
specified in package.json
):
% esy format
If you plan to add some .ml(i) files and want to enable formatting you can
run: esy add "@opam/ocamlformat"
and esy format
will be automatically
extended.
Documentation for the libraries in the project can be generated with (runs
scripts.doc
specified in package.json
):
% esy doc
% esy open '#{self.target_dir}/default/_doc/_html/index.html'
Shell into environment:
% esy shell
esy
allows creating prebuilt binary packages for your current platform, with
no dependencies.
% esy npm-release
% cd _release
% npm publish
hello-reason
includes CI configuration for Azure
DevOps pipelines out of the box.
- Create your Azure DevOps account.
- Add a new project, and point that new Azure DevOps project to your github
repo that includes the CI (
./azure-pipelines.yml
and the.ci/
directory) fromhello-reason
. - Create a new Pipeline within that project.
- When asked how to configure the new pipeline, select the option to use existing configuration inside the repo.
The CI is configured to build caches on the master
branch, and also any
branch named one of (global
, release-*
, releases-*
). That means that pull
requests to any branch with those names will be fast, once you have landed at
least one commit to that branch. The first time you submit a pull request to
one of those branches, the builds will be slow but then subsequent pull
requests will be faster once a pull request is merged to it.