-
Notifications
You must be signed in to change notification settings - Fork 34
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #89 from datadesk/continuous-deployment
Switch to a GitHub Actions based testing scheme that includes continuous deployment to PyPI via GitHub Releases
- Loading branch information
Showing
9 changed files
with
1,079 additions
and
737 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.