JSPM

  • Created
  • Published
  • Downloads 61895
  • Score
    100M100P100Q195206F
  • License MIT

Knapsack Pro Core library splits tests across CI nodes and makes sure that tests will run in optimal time on each CI node. This library gives core features like communication with KnapsackPro.com API. This library is a dependency for other projects specific for particular test runner.

Package Exports

  • @knapsack-pro/core
  • @knapsack-pro/core/lib/index.js

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 (@knapsack-pro/core) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@knapsack-pro/core

Knapsack Pro

Speed up your tests

Run your 1-hour test suite in 2 minutes with optimal parallelisation on your existing CI infrastructure




Knapsack Pro wraps your current test runner(s) and works with your existing CI infrastructure to parallelize tests optimally:

  • Dynamically splits your tests based on up-to-date test execution data
  • Is designed from the ground up for CI and supports all of them
  • Tracks your CI builds to detect bottlenecks
  • Does not have access to your source code and collects minimal test data
  • Enables you to export historical metrics about your CI builds
  • Replaces local dependencies like Redis with an API and runs your tests regardless of network problems

Installation

See the docs to get started:

Dependents

Contributing

Follow the steps in the root README.md to set up the project.

You can compile TypeScript in watch mode from the root folder with:

npm start -w packages/core

Publishing

  1. cd packages/core

  2. Sign in to the npm registry with:

    npm adduser
  3. Before releasing a new version of the package, please update CHANGELOG.md with github_changelog_generator:

    gem install github_changelog_generator
    
    # generate CHANGELOG.md
    github_changelog_generator --user KnapsackPro --project knapsack-pro-js --pr-wo-labels --issues-wo-labels --include-labels @knapsack-pro/core --since-tag @knapsack-pro/core@5.1.0 --exclude-tags-regex "@knapsack-pro\/(jest|cypress)@.*"
    git commit -am "docs(core): update CHANGELOG.md"
    git push origin main
  4. If you have added new files to the repository, and they should be part of the released npm package, please ensure they are included in the files array in package.json.

  5. Compile the project:

    npm run build
  6. In order to bump the version of the package run the command below. It will also create a version commit and tag for the release:

    # Bump patch version 0.0.x
    npm version patch --no-commit-hooks --tag-version-prefix=@knapsack-pro/core@
    
    # Bump minor version 0.x.0
    npm version minor --no-commit-hooks --tag-version-prefix=@knapsack-pro/core@
    git commit -am @knapsack-pro/core@x.x.x
    git tag @knapsack-pro/core@x.x.x
  7. Push the commit and tag:

    git push origin main --tags
  8. When the git tag is on Github, you can update CHANGELOG.md:

    github_changelog_generator --user KnapsackPro --project knapsack-pro-js --pr-wo-labels --issues-wo-labels --include-labels @knapsack-pro/core --since-tag @knapsack-pro/core@5.1.0 --exclude-tags-regex "@knapsack-pro\/(jest|cypress)@.*"
    git commit -am "docs(core): update CHANGELOG.md"
    git push origin main
  9. Publish the package to the npm registry:

    npm publish
  10. Update: