Initial commit

This commit is contained in:
Miguel Sozinho Ramalho
2022-06-17 13:25:27 +01:00
commit b3c7ac8e5d
45 changed files with 1726 additions and 0 deletions

138
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,138 @@
name: Main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
branches:
- main
push:
branches:
- main
tags:
- 'v*.*.*'
env:
# Change this to invalidate existing cache.
CACHE_PREFIX: v0
PYTHONPATH: ./
jobs:
checks:
name: Python ${{ matrix.python }} - ${{ matrix.task.name }}
runs-on: [ubuntu-latest]
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
python: ['3.7', '3.10']
task:
- name: Test
run: |
pytest -v --color=yes tests/
include:
- python: '3.10'
task:
name: Lint
run: flake8 .
- python: '3.10'
task:
name: Type check
run: mypy .
- python: '3.10'
task:
name: Build
run: |
python setup.py check
python setup.py bdist_wheel sdist
- python: '3.10'
task:
name: Style
run: |
isort --check .
black --check .
- python: '3.10'
task:
name: Docs
run: cd docs && make html
steps:
- uses: actions/checkout@v3
- name: Setup Python environment
uses: ./.github/actions/setup-venv
with:
python-version: ${{ matrix.python }}
cache-prefix: ${{ env.CACHE_PREFIX }}
- name: ${{ matrix.task.name }}
run: |
. .venv/bin/activate
${{ matrix.task.run }}
- name: Upload package distribution files
if: matrix.task.name == 'Build'
uses: actions/upload-artifact@v3
with:
name: package
path: dist
- name: Clean up
if: always()
run: |
. .venv/bin/activate
pip uninstall -y my-package
release:
name: Release
runs-on: ubuntu-latest
needs: [checks]
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@v1
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install requirements
run: |
pip install --upgrade pip setuptools wheel
pip install -r dev-requirements.txt
- name: Prepare environment
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Download package distribution files
uses: actions/download-artifact@v3
with:
name: package
path: dist
- name: Generate release notes
run: |
python scripts/release_notes.py > ${{ github.workspace }}-RELEASE_NOTES.md
- name: Publish package to PyPI
run: |
twine upload -u '${{ secrets.PYPI_USERNAME }}' -p '${{ secrets.PYPI_PASSWORD }}' dist/*
- name: Publish GitHub release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
body_path: ${{ github.workspace }}-RELEASE_NOTES.md
prerelease: ${{ contains(env.TAG, 'rc') }}
files: |
dist/*

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

@@ -0,0 +1,27 @@
name: PR Checks
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
branches:
- main
paths:
- 'my_package/**'
jobs:
changelog:
name: CHANGELOG
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v1
- name: Check that CHANGELOG has been updated
run: |
# If this step fails, this means you haven't updated the CHANGELOG.md
# file with notes on your contribution.
git diff --name-only $(git merge-base origin/main HEAD) | grep '^CHANGELOG.md$' && echo "Thanks for helping keep our CHANGELOG up-to-date!"

51
.github/workflows/setup.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Setup
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
test_personalize:
name: Personalize
runs-on: [ubuntu-latest]
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.7'
- name: Install prerequisites
run: |
pip install -r setup-requirements.txt
- name: Run personalize script
run: |
python scripts/personalize.py --github-org epwalsh --github-repo new-repo --package-name new-package --yes
- name: Verify changes
shell: bash
run: |
set -eo pipefail
# Check that 'new-package' replaced 'my-package' in some files.
grep -q 'new-package' setup.py .github/workflows/main.yml CONTRIBUTING.md
# Check that the new repo URL replaced the old one in some files.
grep -q 'https://github.com/epwalsh/new-repo' setup.py CONTRIBUTING.md
# Double check that there are no lingering mentions of old names.
for pattern in 'my[-_]package' 'https://github.com/allenai/python-package-template'; do
if find . -type f -not -path './.git/*' | xargs grep "$pattern"; then
echo "Found ${pattern} where it shouldn't be!"
exit 1
fi
done
echo "All good!"