From db18bb08f4470b3dc1d3283c535f23ba73a19977 Mon Sep 17 00:00:00 2001 From: Ben Miller Date: Sun, 2 Jun 2024 22:11:22 -0700 Subject: [PATCH] update GHA dependencies, add minimal build --- .github/workflows/python-package.yml | 106 ++++++++++++++++++++++++--- 1 file changed, 94 insertions(+), 12 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 66281a4..e593419 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -16,14 +16,13 @@ on: jobs: build: - runs-on: ubuntu-latest strategy: matrix: python-version: ["3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: install ffmpeg run: | @@ -44,20 +43,63 @@ jobs: cached: ${{ steps.cache-llvm.outputs.cache-hit }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + cache: 'pip' - - name: Cache pip + - name: Install dependencies + run: | + sudo apt install libsndfile1-dev + python -m pip install wheel + python -m pip install --upgrade pip + python -m pip install flake8 + pip install -e .[visrecognize,noisereduce,test] + + - 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: | + pytest + + + build-minimal: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11"] + + steps: + - uses: actions/checkout@v4 + + - name: install ffmpeg + run: | + sudo apt-get update && sudo apt-get install ffmpeg -y + + - name: Cache LLVM and Clang + id: cache-llvm uses: actions/cache@v2 with: - # This path is specific to Ubuntu - path: ~/.cache/pip - # Look to see if there is a cache hit for the corresponding requirements file - key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - ${{ runner.os }}- + path: ${{ runner.temp }}/llvm + key: llvm-10.0 + + - name: Install LLVM and Clang + uses: KyleMayes/install-llvm-action@v1 + with: + version: "10.0" + directory: ${{ runner.temp }}/llvm + cached: ${{ steps.cache-llvm.outputs.cache-hit }} + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' - name: Install dependencies run: | @@ -65,7 +107,7 @@ jobs: python -m pip install wheel python -m pip install --upgrade pip python -m pip install flake8 - pip install -e .[visrecognize,noisereduce,test] + pip install -e .[test] - name: Lint with flake8 run: | @@ -77,3 +119,43 @@ jobs: - name: Test with pytest run: | pytest + + # + # build-windows: + # runs-on: windows-latest + # strategy: + # matrix: + # python-version: ["3.9", "3.10", "3.11"] + # + # steps: + # - uses: actions/checkout@v4 + # - uses: FedericoCarboni/setup-ffmpeg@v3 + # id: setup-ffmpeg + # with: + # ffmpeg-version: release + # linking-type: static + # github-token: ${{ github.server_url == 'https://github.com' && github.token || '' }} + # + # - name: Set up Python ${{ matrix.python-version }} + # uses: actions/setup-python@v5 + # with: + # python-version: ${{ matrix.python-version }} + # cache: 'pip' + # + # - name: Install dependencies + # run: | + # python -m pip install wheel + # python -m pip install --upgrade pip + # python -m pip install flake8 + # pip install -e .[visrecognize,noisereduce,test] + # + # - 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: | + # pytest