Apply suggestions from code review #696
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: ops Tests | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
workflow_call: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install tox | |
run: pip install tox~=4.2 | |
- name: Run linting | |
run: tox -e lint | |
static: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install tox | |
run: pip install tox~=4.2 | |
- name: Run static type checks | |
run: tox -e static | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
python-version: ["3.8", "3.10", "3.12"] | |
exclude: | |
- {python-version: "3.8", os: "macos-latest"} # macos-14 is arm64, and there's no Python 3.8 build for arm64 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install tox | |
run: pip install tox~=4.2 | |
- name: Run unit tests | |
run: tox -e unit | |
test-real-pebble: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.8", "3.10", "3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.22" | |
# To suppress the "Restore cache failed" error, since there is no go.sum file here. | |
cache: false | |
- name: Install tox | |
run: pip install tox~=4.2 | |
- name: Install Pebble | |
run: go install github.com/canonical/pebble/cmd/pebble@master | |
- name: Start Pebble | |
run: | | |
umask 0 | |
$HOME/go/bin/pebble run --create-dirs --http=:4000 & | |
env: | |
PEBBLE: /tmp/pebble | |
- name: Run Real pebble tests | |
run: tox -e unit -- test/test_real_pebble.py | |
env: | |
RUN_REAL_PEBBLE_TESTS: 1 | |
PEBBLE: /tmp/pebble | |
pip-install: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] | |
exclude: | |
- {python-version: "3.8", os: "macos-latest"} # macos-14 is arm64, and there's no Python 3.8 build for arm64 | |
- {python-version: "3.9", os: "macos-latest"} # macos-14 is arm64, and there's no Python 3.9 build for arm64 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install build dependencies | |
run: pip install wheel build | |
- name: Build | |
run: python -m build | |
# Test that a pip install of the source dist .tar.gz will work | |
- name: Test 'pip install' | |
# Shouldn't happen, but pip install will fail if ls returns multiple lines | |
run: pip install $(ls dist/ops*.gz) |