Skip to content

GitHub Actions workflow#130

Open
mahmoudnasser1561 wants to merge 1 commit intom-lab:mainfrom
mahmoudnasser1561:ci/github-actions-only
Open

GitHub Actions workflow#130
mahmoudnasser1561 wants to merge 1 commit intom-lab:mainfrom
mahmoudnasser1561:ci/github-actions-only

Conversation

@mahmoudnasser1561
Copy link

@mahmoudnasser1561 mahmoudnasser1561 commented Feb 23, 2026

Refs #120

This PR adds GitHub Actions CI for Murakami

What’s included

  • Add .github/workflows/ci.yml
  • Run tox tests on Python 3.6 and 3.7 (matching Travis CI test matrix)
  • Install the same CI tools used in Travis (poetry, tox-travis, codecov)
  • Upload coverage to Codecov after test jobs
  • Add pip cache to speed up dependency installs across runs

Notes

  • I ran into a few issues while matching legacy Travis behavior, especially with older Python versions, and adjusted the workflow to keep behavior aligned.
  • This PR is intentionally CI-only.
  • I’ll open a follow-up PR for the release workflow (release.yml).

This change is Reviewable

@mahmoudnasser1561
Copy link
Author

@robertodauria
please take a look
I tried to match the same Travis CI behavior here
If you notice anything missing, I am happy to adjust it

@robertodauria robertodauria self-requested a review February 26, 2026 15:53
Copy link
Collaborator

@robertodauria robertodauria left a comment

Choose a reason for hiding this comment

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

I've added a few inline comments. Additionally:

  • I see this doesn't remove .travis.yml, even if the issue mentions doing it
  • The issue also says to use poetry to run the scripts, which does not seem the case anywhere in this workflow (?)

A few of the issues above (installing Travis-specific tools in GitHub Actions, carrying over the codecov pip package unused, replicating EOL Python versions instead of following the modernization plan in the issue) suggest the workflow was generated by translating the existing .travis.yml rather than being designed from an understanding of what each piece does. Please make sure you understand the purpose of every line in the workflow before submitting.

fail-fast: false
matrix:
include:
- python-version: "3.6"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Python 3.6/3.7 are ancient and EOL. You mentioned in the issue to start using 3.10 (which was the right call), why not following through with it? :)

include:
- python-version: "3.6"
tox-env: py36
container-image: python:3.6-buster
Copy link
Collaborator

@robertodauria robertodauria Feb 26, 2026

Choose a reason for hiding this comment

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

I assume this is using container images because setup-python refuses to install 3.6/3.7. You're fighting the tooling to preserve something that should be dropped.

Also, debian buster is EOL since 2024.

- name: Install CI tools (Travis before_script parity)
run: |
python -m pip install --upgrade pip
pip install -U poetry tox-travis codecov tox
Copy link
Collaborator

Choose a reason for hiding this comment

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

What's the point of tox-travis in a Github Actions setup?

pip install -U poetry tox-travis codecov tox

- name: Run tests via tox
run: tox -e "${{ matrix.tox-env }}"
Copy link
Collaborator

Choose a reason for hiding this comment

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

There's no tox.ini and the tox config still has a Travis-specific passenv. Perhaps we want CI GITHUB_* there?

- name: Cache pip downloads
uses: actions/cache@v4
with:
path: /root/.cache/pip
Copy link
Collaborator

Choose a reason for hiding this comment

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

I suspect this is less useful than it could be. tox creates virtualenvs for testing, but the .tox/ directory isn't cached, causing every run to reinstall every dependency from scratch.

name: CI

on:
push:
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think on: push + on: pull_request without branch filters means every PR triggers two different workflow runs. What about filtering with push: branches: [main]?

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