Giter Club home page Giter Club logo

github-action's Introduction

esy

package.json workflow for native development with Reason/OCaml

Build Status

Esy is a package manager for Reason and OCaml centered around the NPM workflow. Reason/OCaml are compiled languages and it can be daunting for developers to setup tools and develop a workflow that is intuitive and well documented. Developing apps that are natively compiled are also hard to reproduce and often require additional tooling. Esy tries address these, by offering a familiar package.json centered workflow and light-weight sandboxing.

Installation

Esy is available on NPM.

npm i -g esy

Documentation

You can find the Esy documentation on the website. You can also find them under the docs folder of the source tree.

Contributing

Please refer the documents in docs/contributing. You'll find instructions for building the source, CI setup, release process, esy internal concepts and other documentation to help you get started hacking on esy. You can also find them on the website under the contributing section

Issues

Issues are tracked at esy/esy.

History and motivation

See package.json for compilers

Maintenance and Sponsorship

This project was originally authored by Andrey Popp, and is currently maintained by ManasJayanth. The project is currently not funded and could benefit from generous sponsorships.

github-action's People

Contributors

3rafal avatar dependabot[bot] avatar eduardorfs avatar manasjayanth avatar smorimoto avatar wokalski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

github-action's Issues

Use the default $HOME/.esy prefix if hardlinking across drives is not a problem

As noted in #21 , hardlinking across drives (say, C: to D:) is not necessary in all cases. Right now, it's a problem only if user opts into node_modules linker.

This action should use the underlying esy binary to figure if hardlinking problem is relevant to the project - if not, it should behave like users expect. ie. place the esy prefix in $HOME/.esy.

should this use `export-dependencies` and `--cache-tarballs`

I found that those combined are smaller than the .esy folder. Which can get too big and lead to cache misses. E.g. I have projects where that folder is multiple GB and the cache can only take 5GB leading to common cache evictions with a lot of PRs.

Also it seems that that is the recommended way of caching documented in actions/cache: https://github.com/actions/cache/blob/main/examples.md#ocamlreason---esy

If this is on purpose than this issue will just document the intention for others that may be wondering.

Thanks for creating the action :)

Cache failures shouldn't kill the jobs

Along with #13 , cache failures such as

Error: Unable to reserve cache with key build-darwin-arm64-6e54f555c98a94353c6fe600c1d2a2acb4b678152cb3960d58ae5ccec69c382d-20240515-1, another job may be creating this cache.

ref

.. should not stop other jobs from proceeding. Cache restores are after all optional. They should notify the user, however.

Cache failures

I tried upgrading this action from a much older version, and now I get a bunch of cache failures. For example: https://github.com/grain-lang/libbinaryen/runs/4885304762?check_suite_focus=true

/usr/bin/tar --posix --use-compress-program zstd -T0 -cf cache.tzst -P -C /home/runner/work/libbinaryen/libbinaryen --files-from manifest.txt
385
Error: uploadChunk (start: 402653184, end: 436207615) failed: Cache service responded with 503

This happens consistently.

Should esy/github-action be upgraded to v2?

In #6 we get support for manifest files. However, this change is not present in v1, which is recommended in README.md by default

I see two options to fix the problem

  • Use esy/github-action@master instead of v1 in README.md
  • Deploy another release v2 with the current changes

What do you think?

Configurable restore keys for caches

Since #24 , we no longer have multiple restore key candidates for cache restore. They were hardcoded in the action source, where as, it should have been a configurable field. Aside, from the fact that it interfered with user's intention cache busting measures.

We need a new configurable field where users can specify a list of restore key candidates.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.