add github-ci automation

This commit is contained in:
Dmitry Orlov 2021-08-18 23:43:54 +03:00
parent 9aa8b1d761
commit 17c7fa0a56

127
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,127 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: build
on:
push:
branches:
- 'release/**'
release:
types:
- created
jobs:
wheel:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# MacOS
- python: '3.6'
os: macos-latest
- python: '3.7'
os: macos-latest
- python: '3.8'
os: macos-latest
- python: '3.9'
os: macos-latest
# Windows
# - python: '3.6'
# os: windows-latest
#- python: '3.7'
# os: windows-latest
#- python: '3.8'
# os: windows-latest
#- python: '3.9'
# os: windows-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Cache .a files
uses: actions/cache@v2
with:
key: ${{ runner.os }}
path: |
src/rocksdb/libsnappy.a
src/rocksdb/liblz4.a
src/rocksdb/libbz2.a
src/rocksdb/libzstd.a
src/rocksdb/libz.a
src/rocksdb/librocksdb.a
- name: Setup python${{ matrix.python }}
uses: actions/setup-python@v2
with:
python-version: "${{ matrix.python }}"
- name: Make static library files
run: make
- name: Install requires
run: python -m pip install cython twine wheel
- name: Build wheel for python "${{ matrix.python }}"
run: python setup.py bdist_wheel
- name: Publishing to pypi
run: twine upload --skip-existing --disable-progress-bar dist/*.whl
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
linux-wheels:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Cache .a files
uses: actions/cache@v2
with:
key: ${{ runner.os }}
path: |
src/rocksdb/libsnappy.a
src/rocksdb/liblz4.a
src/rocksdb/libbz2.a
src/rocksdb/libzstd.a
src/rocksdb/libz.a
src/rocksdb/librocksdb.a
- name: Make static library files
uses: docker://quay.io/pypa/manylinux2014_x86_64
with:
args: /usr/bin/make
- name: Install requires
run: python -m pip install cython twine wheel
- name: Building manylinux2014 wheels
uses: docker://quay.io/pypa/manylinux2014_x86_64
with:
args: /bin/bash scripts/make-wheels.sh
- name: Setup python${{ matrix.python }}
uses: actions/setup-python@v2
with:
python-version: "3.9"
- name: Install requires
run: python -m pip install twine
- name: Publishing to pypi
run: twine upload --skip-existing --disable-progress-bar dist/*.whl
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}