Testing GitHub actions, Cirrus CI, documentation, and publishing releases of Python packages.
Project description
workflow-sandbox
Testing GitHub actions, Cirrus CI, documentation, and publishing releases of Python packages.
This will be a Python package on test PyPI in its own right, with package name workflow-sandbox
and module name workflow_sandbox
(yes, the mixing of hyphenation and underscores is inelegant but deliberate).
Inception
This repository was created on GitHub using the following settings.
Development environment
To develop this package, I first cloned the repository (others would fork on GitHub then clone their fork):
$ git clone https://github.com/<origin>/workflow-sandbox.git
$ cd workflow-sandbox
where <origin>
is the GitHub account of the fork.
For now, I'm going to use <origin>=rpanderson
and not work on a fork.
If you are developing on a fork, set the upstream remote:
$ git remote add upstream https://github.com/<upstream>/workflow-sandbox.git
where <upstream>
is the base repository used for pull requests and publishing releases and documentation. If you forked your development repository from https://github.com/rpanderson/workflow-sandbox
for example, you'd use <upstream>=rpanderson
.
Create a virtual environment:
$ python -m venv .venv
$ .venv\Scripts\activate
$ python -m pip install --upgrade pip setuptools wheel
Roadmap
The first port of call will be to test:
CirrusCI
- Formatting using
black
. - Linting using
flake8
. - Hosting documentation using GitHub pages (on an orphaned
gh-pages
branch).
GitHub actions
- Create release using
actions/create_release
: :
jobs:
release:
name: Release
env:
VERSION: ${${{ github.ref }}//v}
...
steps:
...
# Only publish tagged merges elsewhere
- name: Create GitHub Release
if: startsWith(github.event.ref, 'refs/tags') && startsWith(github.ref, 'v')
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ env.VERSION }}
draft: true
prerelease: ${{ contains(github.ref, 'rc') }}
-
Publish release on GitHub using
actions/upload-release-asset
with thebody
above extracted from the appropriate release notes based on git tags, similar to napari/napari#1138. -
Using
pypa/gh-action-pypi-publish
:- Publish releases (and release candidates) on PyPI.
- Publish merges into
master
branch (including untagged development versions) to TestPyPI with an appropriatedev
version suffix.
Acknowledgements
Much of this is guided by the practices of other development communities—especially napari
(and, increasingly, labscript-suite
)—and many helpful conversations with @chrisjbillington and @philipstarkey.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file workflow-sandbox-0.3.2.tar.gz
.
File metadata
- Download URL: workflow-sandbox-0.3.2.tar.gz
- Upload date:
- Size: 55.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f47ca5cfc39769fd5fcce52149337ba9a1a0746d2993c0d67cc6c59f1c11ed9b |
|
MD5 | 209a3ef581685c73863be6f9f58e1d67 |
|
BLAKE2b-256 | 9adc2e1bdf1758bded8c32b22b6de3828d52e71cb484919f1d1130c818702eb3 |
File details
Details for the file workflow_sandbox-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: workflow_sandbox-0.3.2-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e26914391c2f90803e8003191fc72c17e90959900e2051bb8d457769ae1ad61 |
|
MD5 | 7d3a14a9676fd51114ed9bb901212e3b |
|
BLAKE2b-256 | 4598754e6b254eae81c999c3319e70a55f2acfb5d296df5b6808370c82495e18 |