Skip to content

Switch project CI bootstrap from Travis to GitHub Actions#58

Open
mikelittle wants to merge 1 commit into
masterfrom
switch-to-github-actions
Open

Switch project CI bootstrap from Travis to GitHub Actions#58
mikelittle wants to merge 1 commit into
masterfrom
switch-to-github-actions

Conversation

@mikelittle
Copy link
Copy Markdown
Contributor

@mikelittle mikelittle commented May 1, 2026

Summary

composer create-project altis/skeleton … and every subsequent composer install now installs .github/workflows/ci.yml (a thin caller for the reusable altis-ci.yml workflow in humanmade/altis-dev-tools) instead of .travis.yml. The reusable-workflow ref is re-pinned to the installed altis/dev-tools version on each run, until the user customises the file — same auto-pinning UX the previous Travis flow had.

Existing .travis.yml / .config/travis.yml files are left untouched. Travis CI remains a supported option for projects that prefer it; from this version on the plugin simply doesn't manage Travis config. The "The file .travis.yml does not match that required by Altis" warning is removed along with the behaviour it referred to.

Companion change

Requires humanmade/altis-dev-tools#1054 to merge first — that PR adds templates/project-ci.yml, which this plugin now reads. The plugin bails silently if the template isn't present (older altis/dev-tools), so the order is robust but only a dev-tools that ships the template will trigger the new behaviour.

Test plan

  • PHP syntax: php -l inc/command/class-plugin.php
  • Smoke test in product-dev with the template staged at vendor/altis/dev-tools/templates/project-ci.yml:
    • composer dump-autoload creates .github/workflows/ci.yml from the template
    • @__ref_replace_me__ is replaced with the installed dev-tools version (e.g. @master)
    • Re-running is idempotent (md5 unchanged)
    • .travis.yml and .config/travis.yml are not modified
  • Reviewer to verify on a fresh composer create-project altis/skeleton … once the dev-tools tag with templates/project-ci.yml is published.

Release

A new minor version (e.g. 0.9.0) once approved/merged, per @mikelittle's plan to update the v27 release notes hint accordingly.

🤖 Generated with Claude Code

`composer create-project altis/skeleton …` (and every subsequent
`composer install`) now installs `.github/workflows/ci.yml` from
altis/dev-tools' `templates/project-ci.yml`, with the reusable workflow
ref pinned to the installed dev-tools version. Once the user customises
the workflow the auto re-pinning stops, leaving them in full control.

Existing `.travis.yml` and `.config/travis.yml` files are left
untouched. Travis CI remains a supported option for projects that prefer
it; from this version onwards the plugin simply does not manage Travis
config any more. The "doesn't match what's required" warning that
referred to the auto-managed `.travis.yml` is removed alongside that
behaviour.

Bails silently if the consumer is on an older altis/dev-tools that
predates `templates/project-ci.yml`, so this change can ship before
those projects update their dev-tools constraint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jerico
Copy link
Copy Markdown
Contributor

jerico commented May 15, 2026

humanmade/altis-dev-tools#1054 is merged

Is dev-tools tag with templates/project-ci.yml published?

How exactly to test this change?

@mikelittle
Copy link
Copy Markdown
Contributor Author

mikelittle commented May 15, 2026

Reviewer to verify on a fresh composer create-project altis/skeleton … once the dev-tools tag with templates/project-ci.yml is published.

Prior to this change, when you create a new Altis project, it creates a .travis.yml file in the root of the project. After this change, it will create a ci.yml file in .gtihub/workflows.

For an existing project with an existing .travis.yml any composer install command makes it check the version of altis-dev-tools and update the .travis.yml file to point to the matching version of humanmade/altis-dev-tools:travis/altis.yml to match. After this change, it no longer does that.

How could I have phrased the PR description better to explain that in away you could follow?

Copy link
Copy Markdown

@ferschubert-hm ferschubert-hm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

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.

3 participants