-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move more Travis jobs to GitHub Actions #705
Conversation
.github/workflows/main.yml
Outdated
- uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python }} | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip setuptools wheel tox |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This "stanza" duplicated in all jobs, and I haven't looked into ways to DRY it out. There's an open feature request on the setup-python
action.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's also work in progress to support composite (e.g. reusable) actions:
- Next Steps for Fully Functioning Composite Actions · Issue #646 · actions/runner
- Creating a composite run steps action - GitHub Docs
- Example using action in the same repository as the workflow - GitHub Docs
But it looks like we're stuck with this for now.
matrix: | ||
python: [3.6, 3.7, 3.8] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This duplicates the test
matrix. It'd be nice to specify it once, as well as the "latest Python" to use in the other jobs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TIL about YAML anchors and aliases, which are supported by Travis, but not (yet) by GitHub Actions.
There's a discussion thread about how to share matrix
between jobs, but the documented configuration seems more complex than it's worth.
- name: Run linting | ||
run: python -m tox -e lint | ||
|
||
types: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to make the types
and docs
jobs "Required" checks (along with lint
and test
)? They were implicitly required by Travis.
If so, I don't have permission to do that. Which of the @pypa/twine-maintainers does?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think they need to run on master before they can be made required?
f4a8ffe
to
8714dc9
Compare
8714dc9
to
c4a51f9
Compare
@di Since you kicked off this effort, any thoughts on this before merge? In particular, I'm curious about the "Required" checks, mentioned in #705 (comment). |
.github/workflows/main.yml
Outdated
python-version: 3.8 | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip setuptools wheel tox |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add .github/actions/requirements.txt
with these and run python -m pip install --upgrade -r .github/actions/requirements.txt
instead? That way all of these are less duplicated? Helps when we move to something else and might be a decent pattern to upstream to the python action
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like that idea, but it got me thinking that it would be sufficient (if not preferred) to let tox
manage the versions of pip
, setuptools
, and wheel
, so in 7c65ce6 this has been reduced to pip install tox
.
The output of pip list
shows that the testenvs are using the latest versions, but if we want more control in the future, we can use the requires
and download
options in tox.ini
(with the caveat that there's an open issue re: download = true
.
Inspired by this work, I’ve updated jaraco/skeleton to prefer GHA to Azure pipelines including the publishing job jaraco/skeleton#24. Feel free to borrow any of that for publishing support. |
Thanks for the feedback; merging as-is, and I'll follow-up with a PR for |
Towards #650.
Changes
Remove redundant jobs from Travis
Move
tox -e types
to main workflowMove
tox -e docs
to main workflowUpdate setup-python action
TODO
Update docs to refer to GH Actions instead of Travis
Move Codecov to
test
jobWRT to replacing Travis with GH Actions, this seems less impactful than replacing Codecov.
Add
on.schedule
to run dailyDRY out workflows (e.g.python-version
, "Install dependencies")Update "Required" checks
Later: Add publishing workflow