Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor deploy #326

Merged
merged 9 commits into from
May 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .binder/requirements.txt

This file was deleted.

38 changes: 0 additions & 38 deletions .dockerignore

This file was deleted.

28 changes: 0 additions & 28 deletions .github/release-drafter.yml

This file was deleted.

39 changes: 0 additions & 39 deletions .github/workflows/build.yml

This file was deleted.

167 changes: 167 additions & 0 deletions .github/workflows/continuous-deployment.yml
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you so much! I've been meaning to simplify this process since the beginning 😅

Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
name: Continuous deployment

on:
push:
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 sync --dev
shell: bash

- id: lint
name: Lint Python code
run: pipenv run flake8 ./datawrapper --verbose
shell: bash

mypy-python:
name: Static-types check
runs-on: ubuntu-latest
steps:
- 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 sync --dev
shell: bash

- id: mypy
name: Run mypy
run: pipenv run mypy ./datawrapper --ignore-missing-imports --verbose
shell: bash
Comment on lines +38 to +65
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mypy is a vestige of the original "hypermodern python package" template I used to create this repo back in the day (link).

I'm not sure that it's needed. Any opinions?

Happy to leave this in for now and take this up in a different conversation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a fan of keeping it. We can beef up its implementation further on down the road. I use it for all my stuff at this point in a scheme similar to the one proposed here. Holds up great.


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

- id: setup-python
name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '${{ matrix.python }}'
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=${{ matrix.python }} --skip-lock
shell: bash

- id: tests
name: Run tests
run: pipenv run python -m pytest --cov -sv
shell: bash

build:
name: Build release candidate
runs-on: ubuntu-latest
needs: [test-python]
steps:
- 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 --deploy
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

release:
name: PyPI release
runs-on: ubuntu-latest
needs: [build]
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- 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
16 changes: 0 additions & 16 deletions .github/workflows/greetings.yml

This file was deleted.

38 changes: 0 additions & 38 deletions .github/workflows/publish.yml

This file was deleted.

16 changes: 0 additions & 16 deletions .github/workflows/release-drafter.yml

This file was deleted.

35 changes: 0 additions & 35 deletions .github/workflows/safety.yml

This file was deleted.

Loading