@cycosoft/eyas

3.0.0 • Public • Published

Eyas Logo

Eyas

Feature Branch Testing Without a Server



About

Eyas leverages a packaged version of your application to provide a simple and shareable testing solution without the need to set up a server with custom domains. Regardless of your team size, you can now decrease the feedback loop for no extra cost. You can easily include PMs, designers, executives and customers in the testing process.

In practice, Eyas can shift-left your testing process by allowing full testing of feature branches before they are merged into the main branch. This will increase confidence in your main branch, enable at-will deployments, reduce bugs / hotfixes / rollbacks, increase team velocity, decrease team stress, and crucially remove code freezes when "tossing the release over the wall" with QA.

Table of Contents

Features

  • 📦 Shareable: Bundle your app with a runner for Windows & MacOS. No server needed.
  • 🔗 Dynamic: Simulate running your app from any domain.
  • 📏 Supports standard & custom screen sizes (mobile, tablet, desktop).
  • 🕜 Time-limited: Set test expiration dates between 1 hour and 30 days.

Install

# Install the package
npm install @cycosoft/eyas --save-dev

Configuration

// <projectRoot>/.eyas.config.js
module.exports = {
  // The path to the directory containing your application files
  source: `dist`,
  // Simulate a domain for the test (accepts '' || [''] || [{ url, title }])
  domains: [/*
    { url: `dev.cycosoft.com`, title: `Development` },
		{ url: `staging.cycosoft.com`, title: `Staging` },
		{ url: `cycosoft.com`, title: `Production` }
  */],
  // The name of your application
  title: `My Cool Site`,
  // The version of your application that was built. Defaults to current branch name.
  version: `<current-branch>`,
  // Additional screen sizes to test your application at
  viewports: [/* { label: `iPad Pro`, width: 1024, height: 1366 } */],
  // Custom links to display in the menu with support for variable input (external opens directly in browser)
  links: [/*
    { label: `Cycosoft, LLC`, url: `cycosoft.com`, external: true },
    { label: `Variables Demo`, url: `{testdomain}?id={int}&message={str}&enabled={bool}&list={item1|item2|}` }
  */]
  // File outputs
  outputs: {
    // Build a Windows distributable
    windows: true,
    // Build a MacOS distributable
    mac: true,
    // The number of hours from build time until the distributable expires
    expires: 168 // (range: 1-720 hours)
  }
};

Usage

# Packages the configured app to a distributable zip
npm run build-my-project && npx eyas bundle

Outputs

  • bundle: Packages consumer source code for each enabled platform to ./eyas-dist/

All outputs are zipped, and can have a base range between 60-100mb depending on the platform.

Tips

  • Add .eyas-* and eyas-* to your .gitignore to prevent outputs from being committed to your repo
  • If your app is using a custom domain and you'd like to test it in your browser via Eyas, you will need to add the domain to your etc/hosts file. See this guide (no affiliation) for more information.
  • View documented changes at CHANGELOG.md

The Fine Print

🆘 Support is available via ( https://github.com/cycosoft/Eyas/issues )

  • Licensed under the MIT License
  • View terms of use
  • View privacy policy
  • Logo source design by Freepik
  • Analytics data collected:
    • Meta: Randomized ephemeral session id
    • Meta: operating system
    • Meta: Eyas version number
    • Event: app launched
    • Event: app exit modal was shown
    • Event: app closed

[Back to Top]

Package Sidebar

Install

npm i @cycosoft/eyas

Homepage

cycosoft.com

Weekly Downloads

35

Version

3.0.0

License

MIT

Unpacked Size

176 MB

Total Files

9

Last publish

Collaborators

  • cycododge