Skip to content

update workflow to use container for deep test #350

update workflow to use container for deep test

update workflow to use container for deep test #350

Workflow file for this run

name: tests
on:
push:
branches: [main]
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Allows usage from other workflows
workflow_call:
jobs:
format-and-types:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: report python version
run: python --version
- name: Install linters and formatters
run: python -m pip install flake8 black mypy
- name: Install poetry
run: python -m pip install poetry
- name: Initialize project
run: |
python -m poetry install
python -m poetry run python scripts/fetch_core.py
- name: Check formatting with black
run: python -m poetry run black --check --diff $(git ls-files "*.py")
- name: Check for lint
run: python -m poetry run flake8
- name: Check types
run: python -m poetry run mypy --install-types --non-interactive
deep-test:
needs: format-and-types
runs-on: ubuntu-latest
container: oscarlevin/pretext:full
steps:
- uses: actions/checkout@v3
- name: Report Python version
run: python --version
- name: Install poetry 1.8.4
run: |
python -m ensurepip
python -m pip install --upgrade pip
python -m pip install poetry==1.8.4
- name: View poetry --help
run: poetry --help
- name: Install dependencies
shell: bash
run: |
python -m poetry install --all-extras
python -m poetry run python scripts/fetch_core.py
- name: Ensure dependencies are present
run: |
echo "manually installing pelican; poetry does not seem to do this correctly."
python -m poetry run pip install pelican
python -m poetry run pelican --version
- name: Test with pytest
run: |
python -m poetry run pytest -v --cov
broad-tests:
needs: format-and-types
strategy:
fail-fast: true
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
poetry-version: ["1.8.4"]
os: [ubuntu-22.04, windows-latest]
exclude:
- os: windows-latest
python-version: "3.8"
- os: windows-latest
python-version: "3.9"
- os: windows-latest
python-version: "3.10"
- os: windows-latest
python-version: "3.11"
- os: ubuntu-22.04
python-version: "3.12"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry ${{ matrix.poetry-version }}
run: |
python -m ensurepip
python -m pip install --upgrade pip
python -m pip install poetry==${{ matrix.poetry-version }}
- name: View poetry --help
run: poetry --help
- name: Install dependencies
shell: bash
run: |
python -m poetry install --all-extras
python -m poetry run python scripts/fetch_core.py
- name: Ensure dependencies are present
run: |
echo "manually installing pelican; poetry does not seem to do this correctly."
python -m poetry run pip install pelican
python -m poetry run pelican --version
- name: Test with pytest
run: |
python -m poetry run pytest -v --cov
schema:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: jing trang
version: 1.0
- name: Make sure Schema rnc and rng files in sync via TRANG
run: |
trang ./schema/project-ptx.rnc ./tmp-project-ptx.rng
cmp ./schema/project-ptx.rng ./tmp-project-ptx.rng
- name: Verify template `project.ptx` match schema via JING
run: |
for i in $(find ./templates -name "project.ptx"); do jing ./schema/project-ptx.rng "$i"; done