JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 995269
  • Score
    100M100P100Q197977F
  • License BSD-3-Clause

Create binary artifacts hosted by github and install them without compiling.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (install-artifact-from-github) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    install-artifact-from-github NPM version

    This is a no-dependency micro helper for developers of binary addons for Node. It is literally two small one-file utilities integrated with GitHub releases. The project solves two problems:

    • save-to-github-cache saves a binary artifact to a Github release according to the platform, architecture, and Node ABI.
    • install-from-cache retrieves a previously saved artifact, tests if it works properly, and rebuilds a project from sources in the case of failure.

    In general, it can save your users from a long recompilation and, in some cases, even save them from installing build tools. By using GitHub facilities (Releases and Actions) the whole process of publishing and subsequent installations are secure, transparent, painless, inexpensive, or even free for public repositories.

    How to install

    Installation:

    npm install --save install-artifact-from-github

    How to use

    In your package.json (pseudo-code with comments):

    {
      // your custom package.json stuff
      // ...
      "scripts": {
        // your scripts go here
        // ...
    
        // saves an artifact
        "save-to-github": "save-to-github-cache --artifact build/Release/ABC.node",
    
        // installs using pre-created artifacts
        "install": "install-from-cache --artifact build/Release/ABC.node",
    
        // used by "install" to test the artifact
        "verify-build": "node scripts/verify-build.js"
    
        // used by "install" to rebuild from sources
        "rebuild": "node-gyp rebuild"
      }
    }

    Examples of GitHub actions can be found in the documentation.

    Documentation

    The full documentation is available in the wiki.

    Release history

    • 1.4.0 added support for uncompresed artifacts and selective compression format.
    • 1.3.5 propagated the previous timeout fix to the saving utility.
    • 1.3.4 minor fixes + a timeout fix: use a new default agent for GET. Thx, Laura Hausmann.
    • 1.3.3 minor refactor, added support for a personal token.
    • 1.3.2 added support for the 204 response and error logging.
    • 1.3.1 added a way to specify a custom build, thx Grisha Pushkov + a test.
    • 1.3.0 enhanced support for custom mirrors.
    • 1.2.0 support for NPM >= 7.
    • 1.1.3 technical release: updated docs.
    • 1.1.2 technical release: updated docs.
    • 1.1.1 numerous bugfixes to please Github REST API.
    • 1.1.0 moved save-to-github here from a separate project, reduced 3rd-party dependencies.
    • 1.0.2 fixed a yarn-specific bug.
    • 1.0.1 fixed a bug in the environment variable parameter.
    • 1.0.0 initial release (extracted from node-re2).