feat: add windows support and refactor setup #77
Workflow file for this run
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: Test | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
# TODO: add windows-latest build | |
jobs: | |
lint-python: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.12' | |
cache: 'pip' # caching pip dependencies | |
- name: Install dependencies | |
run: | | |
python -m pip install -e .[test] | |
- name: Run isort check | |
run: python -m isort codebleu --check | |
- name: Run black check | |
run: python -m black codebleu --check | |
- name: Run ruff check | |
run: python -m ruff codebleu | |
# - name: Run mypy check | |
# run: python -m mypy codebleu | |
# First run tests to fail fast, then testing on all python versions and os | |
fast-tests-python: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.12' | |
cache: 'pip' # caching pip dependencies | |
- name: Install dependencies | |
run: | | |
python -m pip install -e .[test] | |
- name: Run tests | |
run: python -m pytest | |
external-build-workflow: | |
needs: [fast-tests-python] | |
uses: ./.github/workflows/reusable-build.yml | |
with: | |
CIBW_SKIP: "pp* cp36-* cp37-*" | |
CIBW_BUILD: "cp*-macosx* cp*-manylinux* cp*-win*" | |
secrets: inherit | |
full-tests-python: | |
needs: [fast-tests-python, external-build-workflow] | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
fail-fast: false | |
name: Test wheel on ${{ matrix.os }} and Python ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: artifact # if `name: artifact` is omitted, the action will create extra parent dir | |
path: dist | |
- name: Show dist files | |
run: ls -lah ./dist | |
if: matrix.os != 'windows-latest' | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' # caching pip dependencies | |
- name: Install dependencies | |
run: | | |
# force install package from local dist directory | |
# TODO: check the sdist package is not installed | |
rm -rf ./dist/*.tar.gz || RMDIR /S ./dist/*.tar.gz # unix or windows | |
pip install --upgrade --no-deps --no-index --find-links=./dist codebleu | |
# install dependencies for the package and tests | |
pip install .[test] | |
- name: Test itself | |
run: python -m pytest --cov-report=xml | |
- name: Upload coverage | |
uses: codecov/codecov-action@v3 | |
with: | |
files: coverage.xml | |
fail_ci_if_error: true # optional (default = false) | |
verbose: true # optional (default = false) |