Publish workflow (#913)

* Publish workflow

* Set PYTHONPATH to allow auto docs to import package

* Seperate install, build, publish steps
This commit is contained in:
Tom Christie 2020-04-30 15:22:54 +01:00 committed by GitHub
parent 97cf9dadd2
commit e586e5df37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 55 additions and 32 deletions

27
.github/workflows/publish.yml vendored Normal file
View File

@ -0,0 +1,27 @@
---
name: Publish
on:
push:
tags:
- '*'
jobs:
publish:
name: "Publish release"
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v2"
- uses: "actions/setup-python@v1"
with:
python-version: 3.7
- name: "Install dependencies"
run: "scripts/install"
- name: "Build package & docs"
run: "scripts/build"
- name: "Publish to PyPI & deploy docs"
run: "scripts/publish"
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}

View File

@ -2,8 +2,6 @@
name: Test Suite
on:
push:
branches: ["master"]
pull_request:
branches: ["master"]

13
scripts/build Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh -e
if [ -d 'venv' ] ; then
PREFIX="venv/bin/"
else
PREFIX=""
fi
set -x
${PREFIX}python setup.py sdist bdist_wheel
${PREFIX}twine check dist/*
${PREFIX}mkdocs build

View File

@ -1,41 +1,26 @@
#!/bin/sh -e
export PACKAGE="httpx"
export VERSION=`cat ${PACKAGE}/__version__.py | grep __version__ | sed "s/__version__ = //" | sed "s/'//g"`
export PREFIX=""
VERSION_FILE="httpx/__init__.py"
if [ -d 'venv' ] ; then
export PREFIX="venv/bin/"
PREFIX="venv/bin/"
else
PREFIX=""
fi
scripts/clean
if [ ! -z "$GITHUB_ACTIONS" ]; then
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "GitHub Action"
if ! command -v "${PREFIX}twine" &>/dev/null ; then
echo "Unable to find the 'twine' command."
echo "Install from PyPI, using '${PREFIX}pip install twine'."
VERSION=`grep __version__ ${VERSION_FILE} | grep -o '[0-9][^"]*'`
if [ "refs/tags/${VERSION}" != "${GITHUB_REF}" ] ; then
echo "GitHub Ref '${GITHUB_REF}' did not match package version '${VERSION}'"
exit 1
fi
fi
if ! ${PREFIX}pip show wheel &>/dev/null ; then
echo "Unable to find the 'wheel' command."
echo "Install from PyPI, using '${PREFIX}pip install wheel'."
exit 1
fi
set -x
if ! command -v "${PREFIX}mkdocs" &>/dev/null ; then
echo "Unable to find the 'mkdocs' command."
echo "Install from PyPI, using '${PREFIX}pip install mkdocs'."
exit 1
fi
find ${PACKAGE} -type f -name "*.py[co]" -delete
find ${PACKAGE} -type d -name __pycache__ -delete
${PREFIX}python setup.py sdist bdist_wheel
${PREFIX}twine upload dist/*
${PREFIX}mkdocs gh-deploy
echo "You probably want to also tag the version now:"
echo "git tag -a ${VERSION} -m 'version ${VERSION}'"
echo "git push --tags"
scripts/clean
${PREFIX}mkdocs gh-deploy --force