From 5a8feb9d2fea3c67f4d2cb9fbcfaf5a8b7eae4c5 Mon Sep 17 00:00:00 2001 From: Sam Bentley Date: Thu, 27 May 2021 14:15:54 +0100 Subject: [PATCH] Updated CI --- .github/workflows/CI.yml | 104 +++++++++++++++++++++++++++ .github/workflows/python-package.yml | 44 ------------ .github/workflows/rust.yml | 22 ------ 3 files changed, 104 insertions(+), 66 deletions(-) create mode 100644 .github/workflows/CI.yml delete mode 100644 .github/workflows/python-package.yml delete mode 100644 .github/workflows/rust.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..c04ae99 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,104 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python package + +on: + push: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + rust-build-and-test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: rust-cargo + + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: rust-build + uses: actions-rs/cargo@v1.0.1 + with: + command: build + args: --release --all-features --verbose + + - name: rust-test + uses: actions-rs/cargo@v1.0.1 + with: + command: test + + python-test: + needs: rust-build-and-test + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.6', '3.7', '3.8', '3.9'] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest pandas maturin + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + python -m venv . + . bin/activate + maturin develop + deactivate + rm -r lib/ + pytest -v --capture=tee-sys + + publish: + needs: python-test + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install pandas maturin + + - name: Build Python package + run: maturin build --release + + - name: List wheels + if: matrix.os == 'windows-latest' + run: dir target\wheels\ + + - name: List wheels + if: matrix.os != 'windows-latest' + run: find ./target/wheels/ + + - name: PyPi publish + env: + MATURIN_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: maturin publish --username ${{ secrets.PYPI_USERNAME}} + diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml deleted file mode 100644 index e5190b9..0000000 --- a/.github/workflows/python-package.yml +++ /dev/null @@ -1,44 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: Python package - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ['3.6', '3.7', '3.8', '3.9'] - - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install flake8 pytest pandas maturin - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest - run: | - python -m venv . - . bin/activate - maturin develop - deactivate - rm -r lib/ - pytest -v --capture=tee-sys \ No newline at end of file diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml deleted file mode 100644 index 3c13d1b..0000000 --- a/.github/workflows/rust.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Rust - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -env: - CARGO_TERM_COLOR: always - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Build - run: cargo build --verbose - - name: Run tests - run: cargo test --verbose