From 17c7fa0a562c20b3b9be181c4ddf1aff93477281 Mon Sep 17 00:00:00 2001 From: Dmitry Orlov Date: Wed, 18 Aug 2021 23:43:54 +0300 Subject: [PATCH] add github-ci automation --- .github/workflows/build.yml | 127 ++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f08214b --- /dev/null +++ b/.github/workflows/build.yml @@ -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 }}