Skip to content

👷 ci: Replace Travis CI with GitHub Actions#631

Merged
contraexemplo merged 1 commit intooutreachy:masterfrom
justwheel:fix/ci
Apr 9, 2026
Merged

👷 ci: Replace Travis CI with GitHub Actions#631
contraexemplo merged 1 commit intooutreachy:masterfrom
justwheel:fix/ci

Conversation

@justwheel
Copy link
Copy Markdown
Contributor

Replace the defunct Travis CI pipeline with a GitHub Actions workflow. The Travis configuration referenced Python 3.6 and Node 8, which are both end-of-life, and the pipeline has not been functional.

The new workflow runs two parallel jobs on PRs and any branches on the official repository (i.e., not a fork):

  • test: Python 3.11, Node 18, full Django test suite
  • lint: flake8

Caching is configured for pipenv, npm, and pip to minimize run times. A concurrency group cancels in-progress runs when new commits are pushed.

SECURITY: The removed .travis.yml contained a plaintext Zulip webhook API key for chat.outreachy.org. If this key is still valid, it should be rotated immediately.

🚨 lint: Suppress pre-existing flake8 violations to unblock CI

The upstream codebase has 1,785 pre-existing flake8 violations across 35 error codes. These are now explicitly listed in .flake8 with violation counts and a FIXME header, so CI can pass while tracking the technical debt for future cleanup.

@justwheel
Copy link
Copy Markdown
Contributor Author

PS — You can see proof of this working in my forked repository:

https://github.com/justwheel/django-outreachy/actions/runs/23370663376

Replace the defunct Travis CI pipeline with a GitHub Actions workflow.
The Travis configuration referenced Python 3.6 and Node 8, which are
both end-of-life, and the pipeline has not been functional.

The new workflow runs two parallel jobs on PRs and any branches on the
official repository (i.e., not a fork):

- **test:** Python 3.11, Node 18, full Django test suite
- **lint:** flake8

Caching is configured for `pipenv`, `npm`, and `pip` to minimize run
times. A concurrency group cancels in-progress runs when new commits are
pushed.

**SECURITY:** The removed `.travis.yml` contained a plaintext Zulip
webhook API key for `chat.outreachy.org`. If this key is still valid, it
should be rotated immediately.

🚨 lint: Suppress pre-existing `flake8` violations to unblock CI

The upstream codebase has 1,785 pre-existing `flake8` violations across
35 error codes. These are now explicitly listed in `.flake8` with
violation counts and a `FIXME` header, so CI can pass while tracking
the technical debt for future cleanup.

Assisted-by: Claude Opus 4.6 (1M context)
Signed-off-by: Justin Wheeler <git@jwheel.org>
@contraexemplo
Copy link
Copy Markdown
Member

This is very cool and we love it very much, Justin. <3

@contraexemplo contraexemplo merged commit ce89281 into outreachy:master Apr 9, 2026
@justwheel justwheel deleted the fix/ci branch April 16, 2026 13:19
@justwheel
Copy link
Copy Markdown
Contributor Author

Yay! So glad it is helpful! And my first contribution, woohoo 😎

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