Skip to content

ci: modernize deployment — replace Travis with GitHub Actions + add RELEASING.md#58

Open
TheRealAgentK wants to merge 4 commits into
chore/dependabot-cleanupfrom
ci/modernize-actions
Open

ci: modernize deployment — replace Travis with GitHub Actions + add RELEASING.md#58
TheRealAgentK wants to merge 4 commits into
chore/dependabot-cleanupfrom
ci/modernize-actions

Conversation

@TheRealAgentK
Copy link
Copy Markdown
Contributor

@TheRealAgentK TheRealAgentK commented Apr 26, 2026

Summary

Stacked on top of #55 — please merge that one first; then this PR's diff against main will become small and self-contained.

Modernises the deployment story:

  1. Replaces Travis CI with GitHub Actions. Travis is effectively dead for OSS projects.
  2. Documents the manual npm publish workflow in a new RELEASING.md, since this package is distributed via npm and there's no other host to push to.

No source-code changes — only CI config and docs.

Verification

Locally on this branch:

  • npm run lint — clean
  • npx ember build — succeeds
  • npx ember test — 27/27 passing
  • npm pack --dry-run — same 10 files as before; no CI configs, AGENTS.md, or RELEASING.md leak into the npm tarball
  • js-yaml parses .github/workflows/ci.yml cleanly; jobs: test, floating-deps, try-scenarios

In CI on this PR: all hard-required jobs are green (Lint, Build, Test, Floating Dependencies, and the three pinned-Ember Try: scenarios).

Commits

ci: migrate from Travis CI to GitHub Actions

  • Delete .travis.yml (and remove its entry from .npmignore).

  • Add .github/workflows/ci.yml with three jobs:

    Job Triggers What it does
    test every PR + push to main/master npm cinpm run lintnpm run buildnpm run test:ember on Node 20
    floating-deps every PR + push to main/master same, but npm install --no-package-lock to catch breakage from latest matching versions
    try-scenarios runs after test passes ember-try matrix — see below

    Concurrency is set so a new push to a PR branch cancels the previous in-flight run.

    try-scenarios matrix:

    Scenario Required?
    ember-lts-4.4.5 ✅ hard requirement
    ember-lts-4.8.6 ✅ hard requirement
    ember-lts-4.12.3 ✅ hard requirement
    ember-release ⚠️ allow-failure: true
    ember-beta ⚠️ allow-failure: true
    ember-canary ⚠️ allow-failure: true

    The three pinned LTS lines are hard-required. release/beta/canary are allow-failure: true because the addon is currently pinned to the Ember 4.12 line; the Ember 5/6 jump is tracked separately and will inevitably break those scenarios until that work lands.

    Removed scenarios (vs. the old config/ember-try.js):

    Both are also dropped from config/ember-try.js with explanatory comments.

  • Update README.md badge: Travis → GitHub Actions.

  • Update AGENTS.md §5 (CI section) and §9 (release section).

  • Update .npmignore to exclude .github/, AGENTS.md, RELEASING.md from the published tarball.

docs: add RELEASING.md describing the publish process

New file documenting:

  • Prerequisites (npm publish access, npm login, 2FA).
  • SemVer guidance for choosing patch/minor/major.
  • Step-by-step release commands: npm versiongit push --follow-tagsnpm publish → GitHub Release.
  • What gets published (per .npmignore) and how to preview with npm pack --dry-run.
  • Pre-flight checklist.
  • Recovery steps if a bad version is published (72-hour npm unpublish window vs. patch-and-deprecate).
  • A forward-looking note on automating publish via a tag-triggered workflow with NPM_TOKEN, if/when there's appetite.

Referenced from AGENTS.md §9.

Things that are deliberately not in this PR

  • Auto-publishing on tag push. Mentioned at the bottom of RELEASING.md as a future improvement — would require an NPM_TOKEN secret and ownership conversation. Easy follow-up once we're sure the manual flow is right.
  • Dependabot config update. The repo's existing dependabot is producing PRs against the old Travis-era setup. After this merges, dependabot will start opening PRs for npm only (which is what we want anyway). No .github/dependabot.yml is being added — relying on GitHub's defaults.
  • Branch protection rules. Those live in repo settings, not in code; not something this PR can change.
  • Promoting ember-release back to a hard requirement. Will happen as part of the Ember 5/6 migration work.

Travis is effectively dead for OSS — replace it with GitHub Actions.

Changes:
- Delete .travis.yml (and remove its entry from .npmignore).
- Add .github/workflows/ci.yml with three jobs:
    * test:           lint + build + ember test on Node 20
    * floating-deps:  same with no lockfile (latest matching versions)
    * try-scenarios:  ember-try matrix mirroring the old Travis matrix
                      (lts-4.4.5, lts-4.8.6, lts-4.12.3, release,
                      default-with-jquery, classic; beta/canary
                      allowed-to-fail). Triggered on every PR and on
                      pushes to main/master.
- Update README.md badge: Travis → GitHub Actions.
- Update AGENTS.md §5 to point at the new workflow file.
- Update AGENTS.md §9 to reference the new RELEASING.md.
- Update .npmignore to exclude .github/, AGENTS.md, RELEASING.md from
  the published tarball (verified via npm pack --dry-run: still 10
  files, same as before).
Documents the manual release workflow for ember-cli-raygun, since this
package is distributed via npm (npmjs.com/package/ember-cli-raygun) and
GitHub holds source only — there's no other host or registry to push
to.

Covers:
- prerequisites (npm publish access, npm login, 2FA)
- semver guidance (patch/minor/major decision)
- step-by-step release commands (npm version → git push → npm publish
  → GitHub Release)
- what gets published (per .npmignore) and how to preview with
  npm pack --dry-run
- a pre-flight checklist
- recovery steps if a bad version goes out (unpublish window /
  deprecate + follow-up)
- a forward-looking note on automating publish via a tag-triggered
  GitHub Actions workflow with NPM_TOKEN, if/when there's appetite.

Referenced from AGENTS.md §9.
Two CI matrix entries were failing legitimately:

1. ember-classic — the Ember Classic edition was removed from Ember
   itself (deprecations.emberjs.com/v3.x/#toc_editions-classic),
   so the scenario can never pass on a modern Ember version. Removed
   from both config/ember-try.js and the GitHub Actions matrix.

2. ember-release — currently pulls Ember 6.x. The addon is pinned to
   the Ember 4.12 line and the 5/6 jump is tracked separately
   (mentioned in PR #55), so this scenario will fail until that work
   is done. Moved from the hard-required matrix to the
   allow-failure list (alongside ember-beta and ember-canary).
Same situation as ember-classic in the previous commit: the
'jquery-integration' optional feature was removed in Ember 4.0
(deprecations.emberjs.com/v3.x/#toc_optional-feature-jquery-integration).
The addon targets Ember 4.12, so this scenario can never pass.
Removed from both config/ember-try.js and the GitHub Actions matrix.

Hard-required matrix is now LTS-only: ember-lts-4.4.5, 4.8.6, 4.12.3.
Allow-failure: ember-release, ember-beta, ember-canary.
@TheRealAgentK TheRealAgentK requested a review from nikz April 26, 2026 23:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants