Skip to content

deploy.yml: Upgrade action versions #52

deploy.yml: Upgrade action versions

deploy.yml: Upgrade action versions #52

Workflow file for this run

# Python: "3.8", "3.9", "3.10"
# Older version do not support f-strings
name: Python package
on:
workflow_dispatch:
push:
branches: [ deploy ]
# pull_request:
# branches: [ deploy ]
jobs:
# # Does not produce manylinux that is required for twine
# build_unix:
# name: Build wheels on ${{ matrix.os }}
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: true
# matrix:
# # os: [ubuntu-20.04,ubuntu-18.04]
# # python-version: ["3.8","3.9","3.10"]
# os: [ubuntu-18.04]
# python-version: ["3.9"]
# 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 dependencies
# run: |
# python -m pip install --upgrade pip
# python -m pip install pytest pytest-benchmark build
# python -m pip install numpy scipy matplotlib>=3.0.0
# if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
# - name: Compile and install
# run: |
# python -m pip install . -v
# ls ${{ github.workspace }}/build || true
# - name: Test installation
# run : |
# mv dtaidistance dtaidistance_pkg
# python ./util/check_installation.py
# mv dtaidistance_pkg dtaidistance
# - name: Test with pytest
# run: |
# mv dtaidistance dtaidistance_pkg
# pytest --ignore=venv --benchmark-skip
# mv dtaidistance_pkg dtaidistance
# - name: Build
# run: |
# python -m build
# - name: Store wheels
# uses: actions/upload-artifact@v4
# with:
# name: wheels
# path: dist/*.whl
build_unix:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
# os: [ubuntu-20.04,ubuntu-18.04]
# python-version: ["3.8","3.9","3.10"]
os: [ubuntu-22.04]
# cibuildwheel will automatically provide all Python versions
python-version: ["3.9"]
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 dependencies
run: |
python -m pip install --upgrade pip
python -m pip install cibuildwheel==2.3.1
- name: Build wheel
run: |
pwd
ls
python -m cibuildwheel --output-dir dist/
env:
CIBW_BUILD_VERBOSITY: 2
# cp36-* and cp37-* do not support f-strings
CIBW_SKIP: cp36-* pp* *-manylinux_i686 *-musllinux_i686 *-musllinux_x86_64
CIBW_TEST_EXTRAS: "dev"
CIBW_TEST_COMMAND: pytest --ignore=venv --benchmark-skip {project}/tests
- name: Store wheels
uses: actions/upload-artifact@v4
with:
name: wheels
path: dist/*.whl
build_macos:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [macos-11, macos-12, macos-13, macos-14]
python-version: ["3.8","3.9","3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Install OpenMP
run: |
# OpenMP libraries are not installed by default on macos
clang --version
clang --version | grep "\(13\.\|14\.\|15\.\)"
# hardcoded, not ideal
# https://mac.r-project.org/openmp/
# This includes only the dynamic library
curl -O https://mac.r-project.org/openmp/openmp-13.0.0-darwin21-Release.tar.gz
sudo tar fvxz openmp-13.0.0-darwin21-Release.tar.gz -C /
ls /usr/local/lib
ls /usr/local/include
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest pytest-benchmark build
python -m pip install numpy scipy matplotlib>=3.0.0
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Compile and install
run: |
export LDFLAGS="-L/usr/local/lib"
export CPPFLAGS="-I/usr/local/include"
python -m pip install . -v
ls ${{ github.workspace }}/build || true
- name: Test installation
run : |
mv dtaidistance dtaidistance_pkg
python ./util/check_installation.py
mv dtaidistance_pkg dtaidistance
- name: Test with pytest
run: |
export LDFLAGS="-L/usr/local/lib"
export CPPFLAGS="-I/usr/local/include"
mv dtaidistance dtaidistance_pkg
pytest --ignore=venv --benchmark-skip
mv dtaidistance_pkg dtaidistance
- name: Build
run: |
python -m build
- name: Store wheels
uses: actions/upload-artifact@v4
with:
name: wheels
path: dist/*.whl
# Runners are not yet picked up?
# build_macos_arm:
# name: Build wheels on ${{ matrix.os }}
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: true
# matrix:
# os: [macos-13-arm64, macos-14-arm64] # these runners are not yet being picked up by github actions (yet?)
# python-version: ["3.11", "3.12"]
# steps:
# - uses: actions/checkout@v4
# - name: Install OpenMP
# run: |
# # OpenMP libraries are not installed by default on macos
# clang --version
# clang --version | grep "\(13\.\|14\.\|15\.\)"
# # hardcoded, not ideal
# # https://mac.r-project.org/openmp/
# # This includes only the dynamic library
# curl -O https://mac.r-project.org/openmp/openmp-13.0.0-darwin21-Release.tar.gz
# sudo tar fvxz openmp-13.0.0-darwin21-Release.tar.gz -C /
# ls /usr/local/lib
# ls /usr/local/include
# - name: Set up Python ${{ matrix.python-version }}
# uses: actions/setup-python@v5
# with:
# python-version: ${{ matrix.python-version }}
# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip
# python -m pip install pytest pytest-benchmark build
# python -m pip install numpy scipy matplotlib>=3.0.0
# if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
# - name: Compile and install
# run: |
# export LDFLAGS="-L/usr/local/lib"
# export CPPFLAGS="-I/usr/local/include"
# python -m pip install . -v
# ls ${{ github.workspace }}/build || true
# - name: Test installation
# run : |
# mv dtaidistance dtaidistance_pkg
# python ./util/check_installation.py
# mv dtaidistance_pkg dtaidistance
# - name: Test with pytest
# run: |
# export LDFLAGS="-L/usr/local/lib"
# export CPPFLAGS="-I/usr/local/include"
# mv dtaidistance dtaidistance_pkg
# pytest --ignore=venv --benchmark-skip
# mv dtaidistance_pkg dtaidistance
# - name: Build
# run: |
# python -m build
# - name: Store wheels
# uses: actions/upload-artifact@v4
# with:
# name: wheels
# path: dist/*.whl
build_windows:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [windows-2019, windows-2022]
python-version: ["3.8","3.9","3.10", "3.11", "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: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest pytest-benchmark pytest-env build cython
python -m pip install numpy scipy matplotlib>=3.0.0
- name: Compile and install
run: |
python -m pip install . -v
ls ${{ github.workspace }}/build || true
- name: Test installation
run : |
mv dtaidistance dtaidistance_pkg
python ./util/check_installation.py
mv dtaidistance_pkg dtaidistance
- name: Test with pytest
run: |
mv dtaidistance dtaidistance_pkg
pytest --ignore=venv --benchmark-skip -c pytest-noviz.ini
mv dtaidistance_pkg dtaidistance
- name: Build
run: |
python -m build
- name: Store wheels
uses: actions/upload-artifact@v4
with:
name: wheels
path: dist/*.whl
build_sdist:
name: Prepare source distribution
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Build
run: |
python -m pip install build
python -m build --sdist
- name: Store artifacts
uses: actions/upload-artifact@v4
with:
name: wheels
path: dist/*.tar.gz
upload_wheels:
name: Upload wheels to PyPi
runs-on: ubuntu-latest
# upload to PyPI on every tag starting with 'v'
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
needs: [build_unix,build_macos,build_windows,build_sdist]
steps:
- uses: actions/download-artifact@v4
with:
name: wheels
path: dist
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: dist/
# test_upload_wheels:
# name: Upload wheels to TestPyPi
# runs-on: ubuntu-latest
# # upload to PyPI on every tag starting with 'v'
# # if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
# needs: [build_unix,build_macos,build_windows,build_sdist]
# # needs: [build_unix]
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: wheels
# path: dist
# - name: Publish package to TestPyPI
# uses: pypa/gh-action-pypi-publish@release/v1
# with:
# user: __token__
# password: ${{ secrets.TEST_PYPI_API_TOKEN_TEST }}
# repository_url: https://test.pypi.org/legacy/