.gitlab-ci.yml 6.0 KB
Newer Older
Y
yejianwu 已提交
1
stages:
L
Liangliang He 已提交
2
  - cpplint
L
Liangliang He 已提交
3
  - pycodestyle
L
Liangliang He 已提交
4
  - docs
L
liutuo 已提交
5
  - platform_compatible_tests
L
liuqi 已提交
6
  - build_libraries
L
liutuo 已提交
7
  - ndk_versions_compatible_tests
Y
yejianwu 已提交
8
  - ops_test
L
liuqi 已提交
9
  - api_test
L
liuqi 已提交
10
  - python_tools_tests
B
Bin Li 已提交
11
  - build_android_demo
Y
yejianwu 已提交
12
  - ops_benchmark
Y
yejianwu 已提交
13
  - extra_tests
14 15 16 17 18

cpplint:
  stage: cpplint
  script:
    - curl -o cpplint.py https://raw.githubusercontent.com/google/styleguide/gh-pages/cpplint/cpplint.py
L
Liangliang He 已提交
19 20 21 22 23 24
    - python cpplint.py --linelength=80 --counting=detailed $(find mace -name "*.h" -or -name "*.cc")

pycodestyle:
  stage: pycodestyle
  script:
    - pycodestyle $(find -name "*.py")
Y
yejianwu 已提交
25

L
Liangliang He 已提交
26 27 28 29 30 31
docs:
  stage: docs
  script:
    - cd docs
    - make html
    - CI_LATEST_OUTPUT_PATH=/mace-build-output/$CI_PROJECT_NAME/latest
L
Liangliang He 已提交
32 33
    - CI_JOB_OUTPUT_PATH=/mace-build-output/$CI_PROJECT_NAME/$CI_PIPELINE_ID
    - rm -rf $CI_JOB_OUTPUT_PATH
L
Liangliang He 已提交
34 35 36 37 38 39 40 41 42 43
    - mkdir -p $CI_JOB_OUTPUT_PATH
    - cp -r _build/html $CI_JOB_OUTPUT_PATH/docs
    - rm -rf $CI_LATEST_OUTPUT_PATH
    - mkdir -p $CI_LATEST_OUTPUT_PATH
    - cp -r _build/html $CI_LATEST_OUTPUT_PATH/docs

  artifacts:
    paths:
      - docs/_build

Y
yejianwu 已提交
44 45 46
ops_test:
  stage: ops_test
  script:
L
Liangliang He 已提交
47
    - if [ -z "$TARGET_SOCS" ]; then TARGET_SOCS=random; fi
L
liuqi 已提交
48
    - python tools/bazel_adb_run.py --target="//mace/ops:ops_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS
李寅 已提交
49
    - python tools/bazel_adb_run.py --target="//mace/ops:ops_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS --enable_neon=false
L
liuqi 已提交
50 51 52 53 54 55

api_test:
  stage: api_test
  script:
    - if [ -z "$TARGET_SOCS" ]; then TARGET_SOCS=random; fi
    - python tools/bazel_adb_run.py --target="//mace/test:mace_api_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS
56
    - python tools/bazel_adb_run.py --target="//mace/test:mace_api_mt_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS
Y
yejianwu 已提交
57
    - python tools/bazel_adb_run.py --target="//mace/test:mace_api_exception_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS
Y
yejianwu 已提交
58 59 60 61

ops_benchmark:
  stage: ops_benchmark
  script:
L
Liangliang He 已提交
62
    - if [ -z "$TARGET_SOCS" ]; then TARGET_SOCS=random; fi
L
Liangliang He 已提交
63
    - python tools/bazel_adb_run.py --target="//mace/ops:ops_benchmark" --run_target=True --stdout_processor=ops_benchmark_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS --args="--filter=.*CONV.*"
Y
yejianwu 已提交
64 65 66 67 68

extra_tests:
  stage: extra_tests
  script:
    - if [ -z "$TARGET_SOCS" ]; then TARGET_SOCS=random; fi
L
Liangliang He 已提交
69 70
    - python tools/bazel_adb_run.py --target="//mace/kernels:kernels_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS
    - python tools/bazel_adb_run.py --target="//mace/utils:tuner_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS
李寅 已提交
71

L
liutuo 已提交
72 73
platform_compatible_tests:
  stage: platform_compatible_tests
李寅 已提交
74
  script:
75
    - bazel build mace/core:core --define openmp=true
76
    - bazel build --config aarch64_linux --define openmp=true --define opencl=true --define neon=true //mace/libmace:libmace.so
L
liutuo 已提交
77

L
liuqi 已提交
78 79 80 81 82
build_libraries:
  stage: build_libraries
  script:
    - bash tools/build-standalone-lib.sh

L
liutuo 已提交
83 84 85 86 87 88
ndk_versions_compatible_tests:
  stage: ndk_versions_compatible_tests
  script:
    - DEFAULT_NDK_PATH=$ANDROID_NDK_HOME
    - prefix_path=${DEFAULT_NDK_PATH%android-ndk-*}
    - >
李寅 已提交
89
      for ndk in android-ndk-r15c android-ndk-r16 android-ndk-r17b;
L
liutuo 已提交
90 91 92 93 94 95 96 97 98 99 100 101
      do
      new_ndk_path=${prefix_path}${ndk};
      if [ "$new_ndk_path" != "$DEFAULT_NDK_PATH" ]; then
        export ANDROID_NDK_HOME=$new_ndk_path;
        export PATH=$ANDROID_NDK_HOME:$PATH;
        echo "ndk path: $ANDROID_NDK_HOME";
        if [ -z "$TARGET_SOCS" ]; then TARGET_SOCS=random; fi
        python tools/bazel_adb_run.py --target="//mace/ops:ops_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS --args="--gtest_filter=ActivationOpTest*";
        python tools/bazel_adb_run.py --target="//mace/ops:ops_test" --run_target=True --stdout_processor=unittest_stdout_processor --target_abis=armeabi-v7a,arm64-v8a --target_socs=$TARGET_SOCS --enable_neon=false --args="--gtest_filter=ActivationOpTest*";
      fi
      done
    - export ANDROID_NDK_HOME=$DEFAULT_NDK_PATH
L
liuqi 已提交
102 103 104 105 106 107 108
    - export PATH=$ANDROID_NDK_HOME:$PATH

python_tools_tests:
  stage: python_tools_tests
  script:
    - pwd
    - rm -rf mace-models
Y
yejianwu 已提交
109
    - GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone git@github.com:XiaoMi/mace-models.git
L
liuqi 已提交
110
    - CONF_FILE=mace-models/mobilenet-v2/mobilenet-v2.yml
L
liuqi 已提交
111 112 113 114 115
    - >
      python tools/converter.py convert --config=${CONF_FILE} --target_abis=armeabi-v7a --model_graph_format=file --model_data_format=file || exit 1;
      python tools/converter.py run --config=${CONF_FILE} --round=1 --target_abis=armeabi-v7a --validate --model_graph_format=file --model_data_format=file || exit 1;
      python tools/converter.py run --config=${CONF_FILE} --example --target_abis=armeabi-v7a --round=1 --validate --model_graph_format=file --model_data_format=file || exit 1;
    - CONF_FILE=mace-models/mobilenet-v2/mobilenet-v2-host.yml
116 117 118 119
    - >
      python tools/converter.py convert --config=${CONF_FILE} --model_graph_format=file --model_data_format=file || exit 1;
      python tools/converter.py run --config=${CONF_FILE} --round=1 --validate --model_graph_format=file --model_data_format=file || exit 1;
      python tools/converter.py run --config=${CONF_FILE} --example --round=1 --validate --model_graph_format=file --model_data_format=file || exit 1;
李寅 已提交
120
    - bazel build --copt=-fopenmp mace/tools/quantization:quantize_stat
L
liuqi 已提交
121
    - rm -rf mace-models
B
Bin Li 已提交
122 123 124 125 126

build_android_demo:
  stage: build_android_demo
  script:
    - pushd mace/examples/android/ && bash build.sh build && popd