Update GitHub Actions workflow to use PyPI API token for publishing #32
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: Continious Integration | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
python-version: [3.9, "3.10"] | |
torch-version: [1.13.1, 2.5.1] | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Restore Ubuntu cache | |
uses: actions/cache@v4 | |
if: matrix.os == 'ubuntu-latest' | |
with: | |
path: ~/.cache/pip | |
key: ${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('**/setup.py')}} | |
restore-keys: ${{ matrix.os }}-${{ matrix.python-version }}- | |
- name: Restore MacOS cache | |
uses: actions/cache@v4 | |
if: matrix.os == 'macos-latest' | |
with: | |
path: ~/Library/Caches/pip | |
key: ${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('**/setup.py')}} | |
restore-keys: ${{ matrix.os }}-${{ matrix.python-version }}- | |
- name: Restore Windows cache | |
uses: actions/cache@v4 | |
if: matrix.os == 'windows-latest' | |
with: | |
path: ~\AppData\Local\pip\Cache | |
key: ${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('**/setup.py')}} | |
restore-keys: ${{ matrix.os }}-${{ matrix.python-version }}- | |
- name: Update pip | |
run: python -m pip install --upgrade pip | |
- name: Install package in development mode | |
run: pip install -e .[dev] | |
- name: Show installed packages | |
run: pip list | |
- name: Lint with flake8, black and isort | |
run: | | |
# stop the build if there are Python syntax errors or undefined names | |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
black . --check --config pyproject.toml | |
isort -c . | |
# exit-zero treats all errors as warnings. Allowed max line length is 120. | |
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=120 --statistics | |
- name: Install Numpy | |
run: > | |
pip install numpy | |
- name: Install PyTorch==1.13.1 on Linux and Windows | |
if: > | |
(matrix.os == 'ubuntu-latest' || | |
matrix.os == 'windows-latest') && | |
matrix.torch-version == '1.13.1' | |
run: > | |
pip install torch==${{ matrix.torch-version }}+cpu | |
-f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install PyTorch==2.5.1 on Linux and Windows | |
if: > | |
(matrix.os == 'ubuntu-latest' || | |
matrix.os == 'windows-latest') && | |
matrix.torch-version == '2.5.1' | |
run: > | |
pip install torch==${{ matrix.torch-version }} | |
-f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install balanced-loss package from local setup.py | |
run: > | |
pip install -e . | |
- name: Unittest balanced-loss | |
run: | | |
python -m unittest |