Fix #3581: GitHub Actions test model
This commit is contained in:
parent
63aeb6a945
commit
719050f204
7
.github/actions/cpp-tests/action.yml
vendored
7
.github/actions/cpp-tests/action.yml
vendored
@ -18,5 +18,10 @@ runs:
|
||||
if [ "${{ inputs.build-flavor }}" = "tflite" ]; then
|
||||
build="_tflite"
|
||||
fi
|
||||
./ci_scripts/cpp${build}-ds-tests${{ inputs.model-kind }}.sh ${{ inputs.bitrate }}
|
||||
|
||||
model_kind=""
|
||||
if [ "${{ inputs.model-kind }}" = "prod" ]; then
|
||||
model_kind="-prod"
|
||||
fi
|
||||
./ci_scripts/cpp${build}-ds-tests${model_kind}.sh ${{ inputs.bitrate }}
|
||||
shell: bash
|
||||
|
108
.github/workflows/macOS-amd64.yml
vendored
108
.github/workflows/macOS-amd64.yml
vendored
@ -38,6 +38,101 @@ jobs:
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: ${{ github.workspace }}/build-static/
|
||||
build-ctc-decoder:
|
||||
name: "Build CTC decoder Python package for testing"
|
||||
needs: [ swig_macOS ]
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.6
|
||||
- run: |
|
||||
python --version
|
||||
pip --version
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_macOS"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- run: |
|
||||
ls -hal ${{ github.workspace }}/native_client/ds-swig/bin
|
||||
ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
- run: |
|
||||
make -C native_client/ctcdecode/ \
|
||||
NUM_PROCESSES=$(nproc) \
|
||||
bindings
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "ds_ctcdecoder-test.whl"
|
||||
path: ${{ github.workspace }}/native_client/ctcdecode/dist/*.whl
|
||||
- run: |
|
||||
make -C native_client/ctcdecode clean-keep-third-party
|
||||
train-test-model:
|
||||
name: "Train a test model"
|
||||
needs: [ "build-ctc-decoder" ]
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
bitrate: ["8k", "16k"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.6
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "ds_ctcdecoder-test.whl"
|
||||
- run: |
|
||||
python --version
|
||||
pip --version
|
||||
- run: |
|
||||
pip install --upgrade pip==19.3.1 setuptools==45.0.0 wheel==0.33.6
|
||||
- run: |
|
||||
pip install ds_ctcdecoder-*-cp36-cp36m-manylinux1_x86_64.whl
|
||||
DS_NODECODER=y pip install --upgrade .
|
||||
- run: |
|
||||
bits=""
|
||||
if [ "${{ matrix.bitrate }}" = "8k" ]; then
|
||||
bits=8000
|
||||
fi
|
||||
if [ "${{ matrix.bitrate }}" = "16k" ]; then
|
||||
bits=16000
|
||||
fi
|
||||
|
||||
# Easier to rename to that we can exercize the LDC93S1 importer code to
|
||||
# generate the CSV file.
|
||||
echo "Moving ${bits} to LDC93S1.wav"
|
||||
mv data/smoke_test/LDC93S1_pcms16le_1_${bits}.wav data/smoke_test/LDC93S1.wav
|
||||
|
||||
./bin/run-tc-ldc93s1_new.sh 249 ${bits}
|
||||
if [ "${{ matrix.build-flavor }}" = "tflite" ]; then
|
||||
./bin/run-tc-ldc93s1_tflite.sh ${bits}
|
||||
fi
|
||||
- run: |
|
||||
curl -vsSL https://github.com/mozilla/DeepSpeech/releases/download/v0.9.3/linux.amd64.convert_graphdef_memmapped_format.xz | xz -d > /tmp/convert_graphdef_memmapped_format
|
||||
chmod +x /tmp/convert_graphdef_memmapped_format
|
||||
/tmp/convert_graphdef_memmapped_format --in_graph=/tmp/train/output_graph.pb --out_graph=/tmp/train/output_graph.pbmm
|
||||
if: matrix.build-flavor == 'tf'
|
||||
- run: |
|
||||
cp /tmp/train*/output_graph.* /tmp/
|
||||
- run: |
|
||||
tar -cf - \
|
||||
-C /tmp/ckpt/ . \
|
||||
| xz -9 -T0 > /tmp/checkpoint.tar.xz
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: /tmp/output_graph.*
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "test-checkpoint.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: /tmp/checkpoint.tar.xz
|
||||
tensorflow_opt-macOS:
|
||||
name: "Check cache for TensorFlow"
|
||||
runs-on: ubuntu-20.04
|
||||
@ -216,16 +311,17 @@ jobs:
|
||||
test-cpp-macOS:
|
||||
name: "Test C++ binary on macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: build-lib_macOS
|
||||
needs: [ build-lib_macOS, train-test-model ]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["-prod"]
|
||||
models: ["test", "prod"]
|
||||
bitrate: ["8k", "16k"]
|
||||
env:
|
||||
TASKCLUSTER_TMP_DIR: ${{ github.workspace }}/tmp/
|
||||
DEEPSPEECH_PROD_MODEL: https://github.com/reuben/DeepSpeech/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
DEEPSPEECH_PROD_MODEL_MMAP: https://github.com/reuben/DeepSpeech/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
DEEPSPEECH_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
@ -238,6 +334,14 @@ jobs:
|
||||
- run: |
|
||||
cd ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
mkdir ds && cd ds && tar xf ../native_client.tar.xz
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- uses: ./.github/actions/cpp-tests
|
||||
with:
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
|
@ -21,14 +21,17 @@ set_ldc_sample_filename()
|
||||
esac
|
||||
}
|
||||
|
||||
download_data()
|
||||
download_model_prod()
|
||||
{
|
||||
local _model_source_file=$(basename "${model_source}")
|
||||
${WGET} "${model_source}" -O - | gunzip --force > "${TASKCLUSTER_TMP_DIR}/${_model_source_file}"
|
||||
|
||||
local _model_source_mmap_file=$(basename "${model_source_mmap}")
|
||||
${WGET} "${model_source_mmap}" -O - | gunzip --force > "${TASKCLUSTER_TMP_DIR}/${_model_source_mmap_file}"
|
||||
}
|
||||
|
||||
download_data()
|
||||
{
|
||||
cp ${DS_DSDIR}/data/smoke_test/*.wav ${TASKCLUSTER_TMP_DIR}/
|
||||
cp ${DS_DSDIR}/data/smoke_test/pruned_lm.scorer ${TASKCLUSTER_TMP_DIR}/kenlm.scorer
|
||||
cp ${DS_DSDIR}/data/smoke_test/pruned_lm.bytes.scorer ${TASKCLUSTER_TMP_DIR}/kenlm.bytes.scorer
|
||||
@ -38,9 +41,6 @@ download_data()
|
||||
|
||||
download_material()
|
||||
{
|
||||
target_dir=$1
|
||||
|
||||
# TODO: FIXME download_native_client_files "${target_dir}"
|
||||
download_data
|
||||
|
||||
ls -hal ${TASKCLUSTER_TMP_DIR}/${model_name} ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} ${TASKCLUSTER_TMP_DIR}/LDC93S1*.wav
|
||||
|
@ -15,7 +15,9 @@ model_name=$(basename "${model_source}")
|
||||
model_source_mmap=${DEEPSPEECH_PROD_MODEL_MMAP}
|
||||
model_name_mmap=$(basename "${model_source_mmap}")
|
||||
|
||||
download_material "${TASKCLUSTER_TMP_DIR}/ds"
|
||||
download_model_prod
|
||||
|
||||
download_material
|
||||
|
||||
export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH
|
||||
|
||||
|
@ -9,7 +9,7 @@ source $(dirname "$0")/asserts.sh
|
||||
bitrate=$1
|
||||
set_ldc_sample_filename "${bitrate}"
|
||||
|
||||
download_material "${TASKCLUSTER_TMP_DIR}/ds"
|
||||
download_data
|
||||
|
||||
export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH
|
||||
|
||||
|
@ -15,6 +15,8 @@ model_name_mmap=$(basename "${model_source}")
|
||||
model_source_mmap=${DEEPSPEECH_PROD_MODEL_MMAP//.pbmm/.tflite}
|
||||
export DATA_TMP_DIR=${TASKCLUSTER_TMP_DIR}
|
||||
|
||||
download_model_prod
|
||||
|
||||
download_material "${TASKCLUSTER_TMP_DIR}/ds"
|
||||
|
||||
export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH
|
||||
|
@ -3,6 +3,7 @@
|
||||
include ../definitions.mk
|
||||
|
||||
NUM_PROCESSES ?= 1
|
||||
DS_SWIG_DEP ?= ds-swig # Allow to disable the ds-swig dependency, useful for GitHub Actions move
|
||||
|
||||
# ARM64 can't find the proper libm.so without this
|
||||
ifeq ($(TARGET),rpi3-armv8)
|
||||
@ -43,14 +44,14 @@ workspace_status.cc:
|
||||
|
||||
# Enforce PATH here because swig calls from build_ext looses track of some
|
||||
# variables over several runs
|
||||
bindings: clean-keep-third-party workspace_status.cc ds-swig
|
||||
bindings: clean-keep-third-party workspace_status.cc $(DS_SWIG_DEP)
|
||||
pip3 install --quiet $(PYTHON_PACKAGES) wheel==0.33.6 setuptools==45.0.0
|
||||
DISTUTILS_USE_SDK=1 PATH=$(DS_SWIG_BIN_PATH):$(TOOLCHAIN):$$PATH SWIG_LIB="$(SWIG_LIB)" AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) LIBEXE=$(LIBEXE) CFLAGS="$(CFLAGS) $(CXXFLAGS)" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python3 ./setup.py build_ext --num_processes $(NUM_PROCESSES) $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
||||
find temp_build -type f -name "*.o" -delete
|
||||
DISTUTILS_USE_SDK=1 AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) LIBEXE=$(LIBEXE) CFLAGS="$(CFLAGS) $(CXXFLAGS)" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python3 ./setup.py bdist_wheel $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
||||
rm -rf temp_build
|
||||
|
||||
bindings-debug: clean-keep-third-party workspace_status.cc ds-swig
|
||||
bindings-debug: clean-keep-third-party workspace_status.cc $(DS_SWIG_DEP)
|
||||
pip3 install --quiet $(PYTHON_PACKAGES) wheel==0.33.6 setuptools==45.0.0
|
||||
DISTUTILS_USE_SDK=1 PATH=$(DS_SWIG_BIN_PATH):$(TOOLCHAIN):$$PATH SWIG_LIB="$(SWIG_LIB)" AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) LIBEXE=$(LIBEXE) CFLAGS="$(CFLAGS) $(CXXFLAGS) -DDEBUG" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python3 ./setup.py build_ext --debug --num_processes $(NUM_PROCESSES) $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
||||
$(GENERATE_DEBUG_SYMS)
|
||||
|
Loading…
Reference in New Issue
Block a user