Skip to content

Merge branch 'tweak/drop37' #141

Merge branch 'tweak/drop37'

Merge branch 'tweak/drop37' #141

Workflow file for this run

name: Test and Package
on:
push:
branches:
- main
release:
types: [created,published]
pull_request:
jobs:
lint:
name: Check Source Style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python ${{matrix.python}}
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Prep Pip caching
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
shell: bash
- name: Cache Pip wheels
uses: actions/cache@v1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: py38-lint-pip-${{ hashFiles('*.egg-info/requires.txt')}}
- name: Install environment
run: |
pip install -U flit
- name: Install package
run: |
flit install --pth-file --extras dev
- name: Run lint
run: |
# Flake8 problem matcher & transform regex from https://github.com/TrueBrain/actions-flake8
echo "::add-matcher::.github/flake8-matcher.json"
set -o pipefail
flake8 |sed -r 's/: ([^W][0-9][0-9][0-9])/: error: \1/;s/: (W[0-9][0-9][0-9])/: warning: \1/'
echo "::remove-matcher owner=flake8::"
test:
name: Test with Python ${{matrix.python}} on ${{matrix.platform}}
runs-on: ${{matrix.platform}}-latest
strategy:
matrix:
platform:
- macos
- windows
- ubuntu
python:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
exclude:
- platform: macos
python: 3.9
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python and environment
uses: lenskit/lkbuild/actions/setup-vanilla-env@main
with:
python-version: ${{matrix.python}}
install-with: flit
extras: all
- name: Run tests
run: python -m pytest --cov=binpickle --cov-report=xml tests
- name: Upload coverage
uses: codecov/codecov-action@v1
no-extras:
name: Test without extras
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python
uses: lenskit/lkbuild/actions/setup-vanilla-env@main
with:
python-version: 3.8
install-with: flit
- name: Run tests
run: python -m pytest --cov=binpickle --cov-report=xml tests
- name: Upload coverage
uses: codecov/codecov-action@v1
sdist:
name: Build Source Packages
runs-on: ubuntu-latest
needs: [test, lint, no-extras]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Fetch Git tags
run: git fetch --tags
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install Python deps
run: pip install -U flit
- name: Build distribution
run: flit build
- name: Save archive
uses: actions/upload-artifact@v1
with:
name: pypi-pkgs
path: dist
- name: List dist dir
run: ls -R dist
- name: Publish PyPI packages
if: github.event_name == 'release'
run: |
flit publish
shell: bash
env:
TWINE_NON_INTERACTIVE: y
FLIT_USERNAME: __token__
FLIT_PASSWORD: ${{ secrets.TWINE_TOKEN }}