Skip to content
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

Automatic build, release, and publish (closes #151) #153

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

DaAwesomeP
Copy link
Contributor

@DaAwesomeP DaAwesomeP commented Sep 17, 2021

Description

Build, publish, and release automatically with GitHub Actions. Will not publish (but also won't error) unless PYPI_API_TOKEN secret is set. It will build and test installability every time, but it will only create a GitHub release and push to Pypi on tag pushes.

I also attempted to add setuptools_scm, but Poetry does not support it.

Closes #151

Checklist

  • feature/fix implemented
  • mypy returns no error
  • tests added/updated and pytest --runslow succeeds
  • documentation added/updated and building with no error (make clean && make html in docs/)
  • examples added/updated
  • code formatting ok (black and isort)

@abey79
Copy link
Owner

abey79 commented Sep 17, 2021

If I'm not mistaken, this project using poetry, quite a few of those steps could be simplified using poetry build right. That's what I used for vpype at least.

@DaAwesomeP
Copy link
Contributor Author

Which steps specifically? Effectively all this does for the wheel and sdist is:

  1. Checkout branch
  2. Install the pip build tool
  3. Build. This is done with pip because that is what pip would do when running pip install vsketch on the user end. The settings in pyproject.toml cause it download poetry and use it as the build backend. I don't think using poetry would necessarily save any steps.
  4. Show a SHA256 signature of the files for verification
  5. Upload the artifacts

It does the additional step of testing that the sdist is actually installable through pip after generating it on all three platforms. I then use a GitHub release action and the official Pypi action to upload to Pypi.

@DaAwesomeP
Copy link
Contributor Author

You can see an example tag build here: https://github.com/DaAwesomeP/vsketch/actions/runs/1243632046

@vincenzocassaro
Copy link

just wanted to restart the discussion. Is there anything else that can be done?

@abey79
Copy link
Owner

abey79 commented Jul 30, 2022

Yes, I need to take the time to look into it. I might actually go for a slightly simpler setup similar to what I use for my vpype plug-ins.

That said, this discord conversation makes me question if it's actually a good idea to package/release vsketch.Vsketch and vsk together...

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.

Pip and Wheels
3 participants