diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c01ab0f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,43 @@ +name: release-pipeline + +on: + release: + types: + - created + + +jobs: + release-job: + runs-on: ubuntu-latest + env: + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + - name: Install dependencies + run: | + pip install -r requirements-dev.txt + - name: Test with pytest + run: | + pytest --cov=./gittrail --cov-report term-missing gittrail/ + - name: Build package + run: | + python setup.py sdist bdist_wheel + - name: Check version number match + run: | + echo "GITHUB_REF: ${GITHUB_REF}" + # Make sure the package version is the same as the tag + grep -Rq "^Version: ${GITHUB_REF:11}$" gittrail.egg-info/PKG-INFO + - name: Publish to PyPI + run: | + twine check dist/* + twine upload --repository pypi --username __token__ --password ${PYPI_TOKEN} dist/* + - name: Test installation + run: | + sleep 120 + pip install gittrail==${GITHUB_REF:11} diff --git a/requirements-dev.txt b/requirements-dev.txt index 68af102..15b87df 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,5 @@ flake8 pytest pytest-cov +twine wheel