Move more Travis jobs to GitHub Actions#705
Conversation
| - 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.
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.
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.
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.
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.
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.
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). |
| python-version: 3.8 | ||
| - name: Install dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip setuptools wheel tox |
There was a problem hiding this comment.
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.
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 typesto main workflowMove
tox -e docsto main workflowUpdate setup-python action
TODO
Update docs to refer to GH Actions instead of Travis
Move Codecov to
testjobWRT to replacing Travis with GH Actions, this seems less impactful than replacing Codecov.
Add
on.scheduleto run dailyDRY out workflows (e.g.python-version, "Install dependencies")Update "Required" checks
Later: Add publishing workflow