Skip to content

ci: streamline

ci: streamline #2853

Workflow file for this run

# This Software (Dioptra) is being made available as a public service by the
# National Institute of Standards and Technology (NIST), an Agency of the United
# States Department of Commerce. This software was developed in part by employees of
# NIST and in part by NIST contractors. Copyright in portions of this software that
# were developed by NIST contractors has been licensed or assigned to NIST. Pursuant
# to Title 17 United States Code Section 105, works of NIST employees are not
# subject to copyright protection in the United States. However, NIST may hold
# international copyright in software created by its employees and domestic
# copyright (or licensing rights) in portions of software that were assigned or
# licensed to NIST. To the extent that NIST holds copyright in this software, it is
# being made available under the Creative Commons Attribution 4.0 International
# license (CC BY 4.0). The disclaimers of the CC BY 4.0 license apply to all parts
# of the software developed or licensed by NIST.
#
# ACCESS THE FULL CC BY 4.0 LICENSE HERE:
# https://creativecommons.org/licenses/by/4.0/legalcode
name: Tox tests
on:
push:
branches:
- "**"
tags:
- "*.*.*"
jobs:
linting-and-style-checks:
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ["3.11"]
tox-testenv:
- "black"
- "flake8"
- "gitlint"
- "isort"
- "mypy"
steps:
- uses: actions/checkout@v4
- name: setup python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
- name: upgrade pip
run: |
# install pip=>20.1 to use "pip cache dir"
python3 -m pip install --upgrade pip
- name: get pip cache dir
id: pip-cache
run: echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: cache dependencies
uses: actions/[email protected]
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml', '**/tox.ini') }}
restore-keys: |
${{ runner.os }}-pip-
- name: install dependencies
run: python3 -m pip install tox
- name: run tox
run: python3 -m tox run -e ${{ matrix.tox-testenv }}
unit-tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["ubuntu-22.04", "windows-latest"]
python-version: ["3.11"]
tox-testenv:
- "clean,py311-pytest-cov,report"
- "py311-cookiecutter"
steps:
- uses: actions/checkout@v4
- name: install English words dictionary
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: sudo apt install -y wamerican
- name: setup python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
- name: upgrade pip
run: |
# install pip=>20.1 to use "pip cache dir"
python3 -m pip install --upgrade pip
- name: get pip cache dir
if: ${{ matrix.os != 'windows-latest' }}
id: pip-cache
run: echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: get pip cache dir (Windows)
if: ${{ matrix.os == 'windows-latest' }}
id: pip-cache-win
run: echo "dir=$(pip cache dir)" >> $env:GITHUB_OUTPUT
- name: cache dependencies
if: ${{ matrix.os != 'windows-latest' }}
uses: actions/[email protected]
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml', '**/tox.ini') }}
restore-keys: |
${{ runner.os }}-pip-
- name: cache dependencies (Windows)
if: ${{ matrix.os == 'windows-latest' }}
uses: actions/[email protected]
with:
path: ${{ steps.pip-cache-win.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml', '**/tox.ini') }}
restore-keys: |
${{ runner.os }}-pip-
- name: install dependencies
run: python3 -m pip install --upgrade tox
- name: run tox
run: python3 -m tox run -e ${{ matrix.tox-testenv }}
- name: archive the code coverage results
if: ${{ contains(matrix.tox-testenv, 'pytest-cov') }}
uses: actions/upload-artifact@v4
with:
name: code-coverage-report-${{ matrix.os }}-${{ matrix.python-version }}
path: coverage