Merge pull request #20 from brainsik/python2-cleanup #113
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
name: json-store | |
on: [push, pull_request] | |
env: | |
pip-cache-key: 2023.02.03 | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: pip cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ github.job }}-${{ env.pip-cache-key }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: pre-commit cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pre-commit | |
key: ${{ runner.os }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pre-commit- | |
- name: Display Python version | |
run: python -c "import sys; print(sys.version)" | |
- name: Install ${{ github.job }} dependencies | |
run: pip install --disable-pip-version-check pre-commit | |
- name: Run pre-commit tests | |
run: pre-commit run -a | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: pip cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ github.job }}-${{ env.pip-cache-key }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Display Python version | |
run: python -c "import sys; print(sys.version)" | |
- name: Upgrade pip and setuptools | |
run: python -m pip install --upgrade pip setuptools | |
- name: Install ${{ github.job }} dependencies | |
run: pip --disable-pip-version-check install wheel build | |
- name: Build package | |
run: python -m build | |
- name: Store build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist | |
path: dist | |
test: | |
needs: [lint, build] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy-3.10"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: pip cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ github.job }}-${{ env.pip-cache-key }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Download build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: dist | |
- name: Install ${{ github.job }} dependencies | |
run: | | |
pip install --disable-pip-version-check pytest | |
- name: Install json-store package | |
shell: bash # so this works on both Linux and Windows | |
run: | | |
pip install --disable-pip-version-check dist/json_store-*.whl | |
- name: Test with pytest | |
run: pytest | |
- name: Test shelve2json | |
if: ${{ matrix.os != 'windows-latest' }} # shelve.open has an internal traceback on Windows | |
run: sh tests/test_shelve2json.sh |