← Back to Home

Powering the Together Framework

Note: This post accompanied my entry to dev.to's Actions Hackathon.

In 2020, Ember.js earned an unofficial nickname—The Together Framework. Since inception, Ember championed 3 things that led to this moniker:

  • Share solutions (via battery-included framework and complementary addons)
  • Adopt new technologies via RFCs (open to all)
  • Pave migration paths (e.g. deprecation warnings, codemods) so that developers who maintain older apps aren't abandoned

Because developers and teams follow a set of conventions, it's particularly easy to write GitHub Actions workflows that can be shared among Ember apps and addons.

My Workflow

For the hackathon, I created workflow templates for Ember apps and addons.

✅ The workflow for Ember apps has several features:

  • Leverages 5 officially supported actions (all v2 or v2-beta)
  • Lints files and dependencies
  • Runs tests in parallel
  • Takes Percy snapshots in parallel
  • Caches node_modules for faster run
  • Pre-builds test app for faster run
  • Deploys the app (to any provider that ember-cli-deploy supports, such as GitHub Pages, Netlify, and S3)

✅ The workflow for Ember addons has several features:

  • Leverages 5 officially supported actions (all v2 or v2-beta)
  • Lints files and dependencies
  • Runs tests in parallel
  • Takes Percy snapshots in parallel
  • Caches node_modules for faster run
  • Pre-builds test app for faster run
  • Ensures that addon works with LTS, release, beta, and canary versions of Ember

To top these off, I created inspect-workflow-runs. You can analyze past workflow runs and make a data-driven decision for calibrating timeout-minutes. (The default value is 360 minutes, which can lead to accidentally running out of minutes in private repos.)

Submission Category:

  • Maintainer Must-Haves

Yaml File or Link to Code

I created 4 workflow templates for the hackathon. They account for Ember addon vs. app, and yarn vs. npm.

My main entry for the hackathon is Ember addons - yarn. Addons like ember-container-query are the open-sourced npm packages that bring the Ember community together to develop, share, and support. 🧡

A workflow run for Ember Container Query shows 20 jobs that completed in 3 minutes.

Additional Resources / Info

To learn more about writing GitHub Actions workflows for Ember projects, I recommend my blog posts:

The workflow templates that I built now power a few open source projects for the Ember community:

While I created the workflow templates on my own, my knowledge and experience with GitHub Actions stand upon those of amazing developers in the Ember community. I'd like to recognize: