Skip to content

Commit

Permalink
Merge pull request #89 from datadesk/continuous-deployment
Browse files Browse the repository at this point in the history
Switch to a GitHub Actions based testing scheme that includes continuous deployment to PyPI via GitHub Releases
  • Loading branch information
sandhya-k authored Nov 29, 2022
2 parents ab88b33 + 02d9156 commit 94dfe9e
Show file tree
Hide file tree
Showing 9 changed files with 1,079 additions and 737 deletions.
147 changes: 147 additions & 0 deletions .github/workflows/continuous-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
name: Testing and distribution
on:
push:
pull_request:
workflow_dispatch:

jobs:
lint-python:
name: Lint Python code
runs-on: ubuntu-latest
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3

- id: setup-python
name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pipenv'

- id: install-pipenv
name: Install pipenv
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
shell: bash

- id: install-python-dependencies
name: Install Python dependencies
run: pipenv install --dev --python=`which python`
shell: bash

- id: lint
name: Lint
run: pipenv run flake8 ./census_data_downloader

test-python:
strategy:
matrix:
python: ["3.7", "3.8", "3.9", "3.10"]
name: Test Python code
runs-on: ubuntu-latest
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3

- id: setup-python
name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pipenv'

- id: install-pipenv
name: Install pipenv
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
shell: bash

- id: install-python-dependencies
name: Install Python dependencies
run: pipenv install --dev --python=`which python`
shell: bash

- id: run
name: Run tests
run: make test
env:
CENSUS_API_KEY: ${{ secrets.CENSUS_API_KEY }}

test-build:
name: Build Python package
runs-on: ubuntu-latest
needs: [test-python]
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3

- id: setup-python
name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pipenv'

- id: install-pipenv
name: Install pipenv
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
shell: bash

- id: install-python-dependencies
name: Install Python dependencies
run: pipenv install --dev --python=`which python`
shell: bash

- id: build-source
name: Build source release
run: pipenv run python setup.py sdist
shell: bash

- id: build-binary
name: Build binary release
run: pipenv run python setup.py bdist_wheel
shell: bash

- id: check
name: Check release
run: pipenv run twine check dist/*
shell: bash

- id: save
name: Save artifact
uses: actions/upload-artifact@v3
with:
name: release-candidate
path: ./dist
if-no-files-found: error

tag-release:
name: Tagged PyPI release
runs-on: ubuntu-latest
needs: [test-build]
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- id: setup-python
name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pipenv'

- id: fetch
name: Fetch artifact
uses: actions/download-artifact@v3
with:
name: release-candidate
path: ./dist

- id: publish
name: Publish release
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
verbose: true
verify_metadata: false
15 changes: 0 additions & 15 deletions .travis.yml

This file was deleted.

10 changes: 2 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
.PHONY: download test ship
.PHONY: download test


download:
pipenv run python download.py


test:
rm -rf ./test-data/
pipenv run flake8 census_data_downloader
pipenv run coverage run test.py
pipenv run coverage report -m


ship:
rm -rf build/
pipenv run python setup.py sdist bdist_wheel
pipenv run twine upload dist/* --skip-existing
1 change: 1 addition & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ coverage = "*"
twine = "*"
jupyterlab = "*"
ipykernel = "*"
setuptools-scm = "*"

[packages]
pandas = "*"
Expand Down
Loading

0 comments on commit 94dfe9e

Please sign in to comment.