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
orv2-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
orv2-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. 🧡
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:
- ember-container-query
- ember-octane-vs-classic-cheat-sheet
- ember-themed
- ember-times-tools
- whats-new-in-emberland
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:
Top comments (2)
Thanks for the writeup @ijlee2 , I love the idea of pre-built apps for test and timeout-minutes. I am gonna use this for my projects.
Thanks, Raja! It's all thanks to Katie and Dan!