diff --git a/.github/workflows/build_conda_ubuntu_cpu.yml b/.github/workflows/build_conda_ubuntu_cpu.yml index 3b48560..a4c786c 100644 --- a/.github/workflows/build_conda_ubuntu_cpu.yml +++ b/.github/workflows/build_conda_ubuntu_cpu.yml @@ -20,6 +20,8 @@ name: build_conda_ubuntu_cpu on: push: + branches: + - nightly-test tags: - '*' diff --git a/.github/workflows/build_conda_ubuntu_cuda.yml b/.github/workflows/build_conda_ubuntu_cuda.yml index 0513d8b..a989929 100644 --- a/.github/workflows/build_conda_ubuntu_cuda.yml +++ b/.github/workflows/build_conda_ubuntu_cuda.yml @@ -20,6 +20,8 @@ name: build_conda_ubuntu_cuda on: push: + branches: + - nightly-test tags: - '*' @@ -48,7 +50,7 @@ jobs: needs: generate_build_matrix runs-on: ubuntu-18.04 strategy: - fail-fast: true + fail-fast: false matrix: ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} diff --git a/.github/workflows/nightly-tests-macos-cpu.yml b/.github/workflows/nightly-tests-macos-cpu.yml index cfacbdb..3536480 100644 --- a/.github/workflows/nightly-tests-macos-cpu.yml +++ b/.github/workflows/nightly-tests-macos-cpu.yml @@ -19,7 +19,7 @@ name: Nightly tests macos cpu on: push: branches: - - nightly-test-2 + - nightly-test schedule: # minute (0-59) @@ -52,7 +52,7 @@ jobs: needs: generate_build_matrix runs-on: macos-10.15 strategy: - fail-fast: true + fail-fast: false matrix: ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} diff --git a/.github/workflows/nightly-tests-ubuntu-conda-cpu.yml b/.github/workflows/nightly-tests-ubuntu-conda-cpu.yml index 0b2e055..2abeb99 100644 --- a/.github/workflows/nightly-tests-ubuntu-conda-cpu.yml +++ b/.github/workflows/nightly-tests-ubuntu-conda-cpu.yml @@ -52,7 +52,7 @@ jobs: needs: generate_build_matrix runs-on: ubuntu-18.04 strategy: - fail-fast: true + fail-fast: false matrix: ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} diff --git a/.github/workflows/nightly-tests-ubuntu-conda-cuda.yml b/.github/workflows/nightly-tests-ubuntu-conda-cuda.yml index 64ddbbf..a9db973 100644 --- a/.github/workflows/nightly-tests-ubuntu-conda-cuda.yml +++ b/.github/workflows/nightly-tests-ubuntu-conda-cuda.yml @@ -52,7 +52,7 @@ jobs: needs: generate_build_matrix runs-on: ubuntu-18.04 strategy: - fail-fast: true + fail-fast: false matrix: ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} diff --git a/.github/workflows/nightly-tests-ubuntu-pip-cpu.yml b/.github/workflows/nightly-tests-ubuntu-pip-cpu.yml index eb60827..5d655fb 100644 --- a/.github/workflows/nightly-tests-ubuntu-pip-cpu.yml +++ b/.github/workflows/nightly-tests-ubuntu-pip-cpu.yml @@ -19,7 +19,7 @@ name: Nightly tests ubuntu pip cpu on: push: branches: - - nightly-test-2 + - nightly-test schedule: # minute (0-59) @@ -52,7 +52,7 @@ jobs: needs: generate_build_matrix runs-on: ubuntu-18.04 strategy: - fail-fast: true + fail-fast: false matrix: ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} diff --git a/.github/workflows/nightly-tests-windows-pip-cpu.yml b/.github/workflows/nightly-tests-windows-pip-cpu.yml index 197c348..ebb79b5 100644 --- a/.github/workflows/nightly-tests-windows-pip-cpu.yml +++ b/.github/workflows/nightly-tests-windows-pip-cpu.yml @@ -52,7 +52,7 @@ jobs: needs: generate_build_matrix runs-on: windows-2019 strategy: - fail-fast: true + fail-fast: false matrix: ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} diff --git a/.github/workflows/publish_to_pypi.yml-bak b/.github/workflows/publish_to_pypi.yml-bak deleted file mode 100644 index e0d7b1f..0000000 --- a/.github/workflows/publish_to_pypi.yml-bak +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright 2021 Xiaomi Corp. (author: Fangjun Kuang) - -# See ../../LICENSE for clarification regarding multiple authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -name: Publish to PyPI - -on: - push: - tags: - - '*' - -jobs: - pypi: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [ubuntu-18.04, macos-10.15] - cuda: ["10.1"] - torch: ["1.7.1"] - python-version: [3.6, 3.7, 3.8] - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Setup Python - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - - name: Install GCC 7 - if: startsWith(matrix.os, 'ubuntu') - run: | - sudo apt-get install -y gcc-7 g++-7 - echo "CC=/usr/bin/gcc-7" >> $GITHUB_ENV - echo "CXX=/usr/bin/g++-7" >> $GITHUB_ENV - - - - name: Install CUDA Toolkit ${{ matrix.cuda }} - if: startsWith(matrix.os, 'ubuntu') - shell: bash - env: - cuda: ${{ matrix.cuda }} - run: | - source ./scripts/github_actions/install_cuda.sh - echo "CUDA_HOME=${CUDA_HOME}" >> $GITHUB_ENV - echo "${CUDA_HOME}/bin" >> $GITHUB_PATH - echo "LD_LIBRARY_PATH=${CUDA_HOME}/lib:${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - - - name: Display NVCC version - if: startsWith(matrix.os, 'ubuntu') - run: | - which nvcc - nvcc --version - - - name: Install PyTorch ${{ matrix.torch }} - if: startsWith(matrix.os, 'ubuntu') - env: - cuda: ${{ matrix.cuda }} - torch: ${{ matrix.torch }} - shell: bash - run: | - python3 -m pip install --upgrade pip - python3 -m pip install wheel twine typing_extensions - python3 -m pip install bs4 requests tqdm - - ./scripts/github_actions/install_torch.sh - python3 -c "import torch; print('torch version:', torch.__version__)" - - - name: Install PyTorch ${{ matrix.torch }} - if: startsWith(matrix.os, 'macos') - shell: bash - run: | - python3 -m pip install -qq --upgrade pip - python3 -m pip install -qq wheel twine typing_extensions - python3 -m pip install -qq torch==${{ matrix.torch }} - - python3 -c "import torch; print('torch version:', torch.__version__)" - - - name: Download cudnn 8.0 - if: startsWith(matrix.os, 'ubuntu') - env: - cuda: ${{ matrix.cuda }} - run: | - ./scripts/github_actions/install_cudnn.sh - - - name: Build pip packages - shell: bash - env: - KALDIFEAT_IS_FOR_PYPI: 1 - run: | - tag=$(python3 -c "import sys; print(''.join(sys.version[:3].split('.')))") - export KALDIFEAT_MAKE_ARGS="-j2" - python3 setup.py bdist_wheel --python-tag=py${tag} - ls -lh dist/ - - - name: Publish wheels to PyPI - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: | - twine upload dist/kaldifeat-*.whl - - - name: Upload Wheel - uses: actions/upload-artifact@v2 - with: - name: torch-${{ matrix.torch }}-python-${{ matrix.python-version }}-${{ matrix.os }} - path: dist/*.whl diff --git a/.github/workflows/run-tests-macos-cpu.yml b/.github/workflows/run-tests-macos-cpu.yml new file mode 100644 index 0000000..29a175b --- /dev/null +++ b/.github/workflows/run-tests-macos-cpu.yml @@ -0,0 +1,85 @@ +# Copyright 2021 Xiaomi Corp. (author: Fangjun Kuang) + +# See ../../LICENSE for clarification regarding multiple authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +name: Run tests macos cpu + +on: + push: + branches: + - master + - nightly-test + pull_request: + branches: + - master + +jobs: + generate_build_matrix: + # see https://github.com/pytorch/pytorch/pull/50633 + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Generating build matrix + id: set-matrix + run: | + # outputting for debugging purposes + python scripts/github_actions/generate_build_matrix.py + MATRIX=$(python scripts/github_actions/generate_build_matrix.py) + echo "::set-output name=matrix::${MATRIX}" + + run_tests_macos_cpu: + needs: generate_build_matrix + runs-on: macos-10.15 + strategy: + fail-fast: false + matrix: + ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install PyTorch ${{ matrix.torch }} + shell: bash + run: | + python3 -m pip install -qq --upgrade pip + python3 -m pip install -qq wheel twine typing_extensions soundfile numpy + python3 -m pip install -qq torch==${{ matrix.torch }}+cpu -f https://download.pytorch.org/whl/torch_stable.html + + python3 -c "import torch; print('torch version:', torch.__version__)" + + - name: Build + shell: bash + run: | + mkdir build_release + cd build_release + cmake .. + make VERBOSE=1 -j3 + + - name: Run tests + shell: bash + run: | + cd build_release + ctest --output-on-failure diff --git a/.github/workflows/run-tests-ubuntu-cpu.yml b/.github/workflows/run-tests-ubuntu-cpu.yml new file mode 100644 index 0000000..df8bb94 --- /dev/null +++ b/.github/workflows/run-tests-ubuntu-cpu.yml @@ -0,0 +1,94 @@ +# Copyright 2021 Xiaomi Corp. (author: Fangjun Kuang) + +# See ../../LICENSE for clarification regarding multiple authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +name: Run tests ubuntu cpu + +on: + push: + branches: + - master + - nightly-test + pull_request: + branches: + - master + +jobs: + generate_build_matrix: + # see https://github.com/pytorch/pytorch/pull/50633 + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Generating build matrix + id: set-matrix + run: | + # outputting for debugging purposes + python scripts/github_actions/generate_build_matrix.py + MATRIX=$(python scripts/github_actions/generate_build_matrix.py) + echo "::set-output name=matrix::${MATRIX}" + + run_tests_ubuntu_cpu: + needs: generate_build_matrix + runs-on: ubuntu-18.04 + strategy: + fail-fast: false + matrix: + ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install GCC 7 + run: | + sudo apt-get install -y gcc-7 g++-7 + echo "CC=/usr/bin/gcc-7" >> $GITHUB_ENV + echo "CXX=/usr/bin/g++-7" >> $GITHUB_ENV + + - name: Install PyTorch ${{ matrix.torch }} + shell: bash + run: | + sudo apt update + sudo apt install libsndfile1-dev libsndfile1 ffmpeg + python3 -m pip install --upgrade pip + python3 -m pip install wheel twine typing_extensions soundfile + python3 -m pip install bs4 requests tqdm numpy + python3 -m pip install -qq torch==${{ matrix.torch }}+cpu -f https://download.pytorch.org/whl/torch_stable.html + + python3 -c "import torch; print('torch version:', torch.__version__)" + + - name: Build + shell: bash + run: | + mkdir build_release + cd build_release + cmake .. + make VERBOSE=1 -j3 + + - name: Run tests + shell: bash + run: | + cd build_release + ctest --output-on-failure diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests-ubuntu-cuda.yml similarity index 76% rename from .github/workflows/run-tests.yml rename to .github/workflows/run-tests-ubuntu-cuda.yml index 4a3a150..bc37de6 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests-ubuntu-cuda.yml @@ -14,26 +14,43 @@ # See the License for the specific language governing permissions and # limitations under the License. # -name: Run tests +name: Run tests ubuntu cuda on: push: branches: - master + - nightly-test pull_request: branches: - master jobs: - run_tests: - runs-on: ${{ matrix.os }} + generate_build_matrix: + # see https://github.com/pytorch/pytorch/pull/50633 + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Generating build matrix + id: set-matrix + run: | + # outputting for debugging purposes + python scripts/github_actions/generate_build_matrix.py --enable-cuda + MATRIX=$(python scripts/github_actions/generate_build_matrix.py --enable-cuda) + echo "::set-output name=matrix::${MATRIX}" + + run_tests_ubuntu_cuda: + needs: generate_build_matrix + runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: - os: [ubuntu-18.04, macos-10.15] - cuda: ["10.1"] - torch: ["1.7.1"] - python-version: [3.6, 3.7, 3.8] + ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} + steps: - uses: actions/checkout@v2 with: @@ -53,7 +70,6 @@ jobs: - name: Install CUDA Toolkit ${{ matrix.cuda }} - if: startsWith(matrix.os, 'ubuntu') shell: bash env: cuda: ${{ matrix.cuda }} @@ -64,13 +80,11 @@ jobs: echo "LD_LIBRARY_PATH=${CUDA_HOME}/lib:${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - name: Display NVCC version - if: startsWith(matrix.os, 'ubuntu') run: | which nvcc nvcc --version - name: Install PyTorch ${{ matrix.torch }} - if: startsWith(matrix.os, 'ubuntu') env: cuda: ${{ matrix.cuda }} torch: ${{ matrix.torch }} @@ -85,18 +99,7 @@ jobs: ./scripts/github_actions/install_torch.sh python3 -c "import torch; print('torch version:', torch.__version__)" - - name: Install PyTorch ${{ matrix.torch }} - if: startsWith(matrix.os, 'macos') - shell: bash - run: | - python3 -m pip install -qq --upgrade pip - python3 -m pip install -qq wheel twine typing_extensions soundfile - python3 -m pip install -qq torch==${{ matrix.torch }} numpy - - python3 -c "import torch; print('torch version:', torch.__version__)" - - name: Download cudnn 8.0 - if: startsWith(matrix.os, 'ubuntu') env: cuda: ${{ matrix.cuda }} run: | @@ -108,10 +111,10 @@ jobs: mkdir build_release cd build_release cmake .. - make VERBOSE=1 + make VERBOSE=1 -j3 - name: Run tests shell: bash run: | cd build_release - ctest -R py --output-on-failure + ctest --output-on-failure diff --git a/.github/workflows/build_windows.yml b/.github/workflows/run-tests-windows-cpu.yml similarity index 60% rename from .github/workflows/build_windows.yml rename to .github/workflows/run-tests-windows-cpu.yml index 6a7402c..f8093e9 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/run-tests-windows-cpu.yml @@ -1,25 +1,56 @@ -name: build-windows-cpu +# Copyright 2021 Xiaomi Corp. (author: Fangjun Kuang) + +# See ../../LICENSE for clarification regarding multiple authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +name: Run tests windows cpu on: push: branches: - master + - nightly-test pull_request: branches: - master jobs: - build-windows: + generate_build_matrix: + # see https://github.com/pytorch/pytorch/pull/50633 + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Generating build matrix + id: set-matrix + run: | + # outputting for debugging purposes + python scripts/github_actions/generate_build_matrix.py + MATRIX=$(python scripts/github_actions/generate_build_matrix.py) + echo "::set-output name=matrix::${MATRIX}" + + run_tests_windows_cpu: # see https://github.com/actions/virtual-environments/blob/win19/20210525.0/images/win/Windows2019-Readme.md - runs-on: ${{ matrix.os }} + needs: generate_build_matrix + runs-on: windows-2019 strategy: fail-fast: false matrix: - os: [windows-2019] - # torch: ["1.6.0", "1.7.0", "1.7.1", "1.8.0", "1.8.1", "1.9.0", "1.10.0", "1.11.0"] - # python-version: [3.6, 3.7, 3.8, 3.9] - torch: ["1.10.0", "1.11.0"] - python-version: [3.8] + ${{ fromJson(needs.generate_build_matrix.outputs.matrix) }} steps: - uses: actions/checkout@v2