name: CI on: push: branches: [master, try-import] pull_request: jobs: check-commit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.3.1 with: fetch-depth: 0 - uses: actions/setup-node@v2.1.0 - name: Check commit if: ${{ github.event.pull_request }} run: | yarn add @commitlint/config-conventional @commitlint/cli yarn commitlint --from ${{ github.event.pull_request.base.sha }} --to HEAD cpu-test: runs-on: self-hosted needs: [check-commit] container: image: localhost:5000/megengine-ci:v1 env: FTP_URL_PREFIX: ${{ secrets.FTP_URL_PREFIX }} steps: - name: Checkout MegEngine uses: actions/checkout@v2 - name: Checkout submodules run: | apt update&&apt install ninja-build ./third_party/prepare.sh ./third_party/install-mkl.sh - name: Build MegEngine run: ./ci/cmake.sh cpu - name: Python test run: | rm -rf imperative/python/megenginelite/ cp -rf lite/pylite/megenginelite/ imperative/python/ mkdir -p imperative/python/megenginelite/libs cp /tmp/build/cpu/lite/liblite_shared_whl.so imperative/python/megenginelite/libs/liblite_shared_whl.so ./ci/run_python_test.sh cpu - name: C++ test run: ./ci/run_cpp_test.sh cpu gpu-test: runs-on: self-hosted needs: [check-commit] container: image: localhost:5000/megengine-ci:v1 volumes: - /usr/local/cuda-10.1-cudnn-7.6.3-trt-6.0.1.5-libs:/usr/local/cuda-10.1-cudnn-7.6.3-trt-6.0.1.5-libs options: --gpus all --shm-size 1g env: NCCL_LAUNCH_MODE: PARALLEL FTP_URL_PREFIX: ${{ secrets.FTP_URL_PREFIX }} steps: - name: Checkout MegEngine uses: actions/checkout@v2 - name: Checkout submodules run: | apt update&&apt install ninja-build ./third_party/prepare.sh ./third_party/install-mkl.sh - name: Build MegEngine run: ./ci/cmake.sh cuda - name: Python test run: | rm -rf imperative/python/megenginelite/ cp -rf lite/pylite/megenginelite/ imperative/python/ mkdir -p imperative/python/megenginelite/libs cp /tmp/build/cuda/lite/liblite_shared_whl.so imperative/python/megenginelite/libs/liblite_shared_whl.so ./ci/run_python_test.sh cuda - name: C++ test run: ./ci/run_cpp_test.sh cuda auto-merge: if: ${{ github.ref == 'refs/heads/try-import' }} runs-on: self-hosted needs: [cpu-test, gpu-test] container: image: localhost:5000/megengine-ci:v1 steps: - name: Checkout MegEngine uses: actions/checkout@v2 with: fetch-depth: '0' - name: Merge with master run: | git config user.name "megvii-mge" git config user.email "megengine@megvii.com" git fetch origin master git checkout -b master origin/master git rebase try-import git push send-dingding: runs-on: ubuntu-latest needs: [cpu-test, gpu-test] if: ${{ always() && github.ref == 'refs/heads/try-import' && (needs.cpu-test.result == 'failure' || needs.gpu-test.result == 'failure' ) }} steps: - name: run uses: zcong1993/actions-ding@master with: dingToken: ${{ secrets.DINGDING_TOKEN }} body: | { "msgtype": "link", "link": { "text": "Workflow ${{ github.run_id }} Failed", "title": "Action Alert", "picUrl": "", "messageUrl": "https://github.com/MegEngine/MegEngine/actions/runs/${{ github.run_id }}" } }