diff --git a/.github/workflows/xpu_ci.yml b/.github/workflows/xpu_ci.yml new file mode 100644 index 0000000000..cac51fafe9 --- /dev/null +++ b/.github/workflows/xpu_ci.yml @@ -0,0 +1,75 @@ +name: CI_XPU + +on: + pull_request: + branches: + - develop + paths-ignore: + - '**.md' + - '**.txt' + workflow_dispatch: + +concurrency: + group: ${{ github.event.pull_request.number }}-xpu-ci + cancel-in-progress: true + +jobs: + CI_XPU: + timeout-minutes: 60 + runs-on: [self-hosted, XPU-P800-2Card] + steps: + - name: Print current runner name + run: | + echo "Current runner name: ${{ runner.name }}" + # Because the system version is lower than 2.23, the checkout cannot be used. + # - name: Checkout code + # uses: actions/checkout@v4 + + - name: Code Checkout + env: + docker_image: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/fastdeploy-xpu:2.3.0 + run: | + REPO="https://github.com/${{ github.repository }}.git" + FULL_REPO="${{ github.repository }}" + REPO_NAME="${FULL_REPO##*/}" + BASE_BRANCH="${{ github.base_ref }}" + # Clean the repository directory before starting + docker run --rm --net=host -v $(pwd):/workspace -w /workspace \ + -e "REPO_NAME=${REPO_NAME}" \ + -e "BASE_BRANCH=${BASE_BRANCH}" \ + ${docker_image} /bin/bash -c ' + if [ -d ${REPO_NAME} ]; then + echo "Directory ${REPO_NAME} exists, removing it..." + rm -rf ${REPO_NAME} + fi + ' + git config --global user.name "PaddleCI" + git config --global user.email "paddle_ci@example.com" + git clone ${REPO} ${REPO_NAME} -b ${BASE_BRANCH} + cd PaddleX + if [ "${{ github.event_name }}" = "pull_request" ]; then + git fetch origin pull/${{ github.event.pull_request.number }}/head:pr/${{ github.event.pull_request.number }} + git merge pr/${{ github.event.pull_request.number }} + git log -n 3 --oneline + else + git checkout ${{ github.sha }} + git log -n 3 --oneline + fi + + - name: Run CI unittest + env: + docker_image: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/fastdeploy-xpu:2.3.0 + run: | + runner_name="${{ runner.name }}" + PARENT_DIR=$(dirname "$WORKSPACE") + echo "PARENT_DIR:$PARENT_DIR" + docker run --rm --net=host --cap-add=SYS_PTRACE --privileged --shm-size=64G \ + -v $(pwd):/workspace -w /workspace \ + -e "http_proxy=$(git config --global --get http.proxy)" \ + -e "https_proxy=$(git config --global --get https.proxy)" \ + -e "no_proxy=bcebos.com,mirrors.tuna.tsinghua.edu.cn,127.0.0.1,localhost" \ + ${docker_image} /bin/bash -c " + git config --global --add safe.directory /workspace/PaddleX + cd PaddleX + bash tests/run_xpu_ci.sh + " diff --git a/tests/run_xpu_ci.sh b/tests/run_xpu_ci.sh new file mode 100644 index 0000000000..0e71b47c9c --- /dev/null +++ b/tests/run_xpu_ci.sh @@ -0,0 +1,16 @@ +wget https://paddle-model-ecology.bj.bcebos.com/paddlex/tmp/PaddleTest.tar +tar -xf PaddleTest.tar && rm -rf PaddleTest.tar +xpu-smi +python --version +python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple +python -m pip install https://paddle-qa.bj.bcebos.com/paddle-pipeline/Develop-TagBuild-Training-Linux-Xpu-P800-SelfBuiltPypiUse/latest/paddlepaddle_xpu-0.0.0-cp310-cp310-linux_x86_64.whl +python -c "import paddle; paddle.version.show()" +cp -r PaddleTest/models/PaddleX/ci ./ +export DEVICE_ID=6,7 +export PADDLE_PDX_DISABLE_DEV_MODEL_WL=true +export MEM_SIZE=32 +export DEVICE_TYPE=xpu +rm -rf ci/pr_list.txt +mv ci/pr_list_xpu.txt ci/pr_list.txt +export PIP_DEFAULT_RETRIES=1 +bash ci/ci_run.sh