|
- 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:latest
- 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:latest
- volumes:
- - /usr/local/cuda-10.1-libs:/usr/local/cuda-10.1-libs
- options: --gpus all --shm-size 1g
- env:
- NCCL_LAUNCH_MODE: PARALLEL
- 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: ubuntu-latest
- needs: [cpu-test, gpu-test]
- 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 }}"
- }
- }
|