diff --git a/.github/workflows/build-nightly-wheel.yml b/.github/workflows/build-nightly-wheel.yml index af8f5d513..2eccb4a6b 100644 --- a/.github/workflows/build-nightly-wheel.yml +++ b/.github/workflows/build-nightly-wheel.yml @@ -37,3 +37,36 @@ jobs: enable_macos_x86: false caller_event_name: ${{ github.event_name }} secrets: inherit + + # ============================================================ + # Notify: Send results to DingTalk + # ============================================================ + notify-nightly-wheel-result: + needs: [build_wheels] + if: always() && github.repository == 'alibaba/neug' + runs-on: ubuntu-latest + steps: + - name: Send DingTalk notification + env: + DINGTALK_TOKEN: ${{ secrets.DINGTALK_TOKEN }} + run: | + if [ -z "$DINGTALK_TOKEN" ]; then + echo "DINGTALK_TOKEN not set, skipping notification." + exit 0 + fi + WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=${DINGTALK_TOKEN}" + STATUS="${{ needs.build_wheels.result }}" + if [[ "$STATUS" == "success" ]]; then + TITLE="[Nightly Report] Build Nightly Wheels Passed" + else + TITLE="[Nightly Report] Build Nightly Wheels Failed" + fi + curl -s -X POST "$WEBHOOK_URL" \ + -H 'Content-Type: application/json' \ + -d "{ + \"msgtype\": \"markdown\", + \"markdown\": { + \"title\": \"$TITLE\", + \"text\": \"## $TITLE\\n\\n- **build_wheels**: ${STATUS}\\n- **Repo**: ${{ github.repository }}\\n- **Branch**: ${{ github.ref_name }}\\n- **Commit**: ${{ github.sha }}\\n- [View Run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})\" + } + }" diff --git a/.github/workflows/neug-extension-test.yml b/.github/workflows/neug-extension-test.yml index 81725a762..46a1846ae 100644 --- a/.github/workflows/neug-extension-test.yml +++ b/.github/workflows/neug-extension-test.yml @@ -2,8 +2,8 @@ name: NeuG Extension Test on: schedule: - # Run at 08:00 UTC every Saturday - - cron: '0 8 * * 6' + # Run at 04:00 CST (20:00 UTC Friday) every Saturday + - cron: '0 20 * * 5' pull_request: branches: [main] paths: @@ -21,111 +21,6 @@ concurrency: cancel-in-progress: true jobs: - # ============================================================ - # Job 1: Build NeuG with extensions - # ============================================================ - extension_tests_default: - runs-on: [self-hosted, daily, linux] - container: - image: neug-registry.cn-hongkong.cr.aliyuncs.com/neug/neug-dev:v0.1.1 - steps: - - name: checkout - uses: actions/checkout@v4 - with: - submodules: true - - - name: Mark directory safe - run: | - git config --global --add safe.directory "$GITHUB_WORKSPACE" - git config --global --add safe.directory "$GITHUB_WORKSPACE/third_party/aliyun-oss-cpp-sdk" - git config --global --add safe.directory "$GITHUB_WORKSPACE/third_party/parallel-hashmap" - git config --global --add safe.directory "$GITHUB_WORKSPACE/third_party/pybind11" - - - name: Clean the tool directory for self-hosted runner - run: | - rm -rf /__w/_tool/Python - - - name: Cache CCache - uses: actions/cache@v4 - with: - path: ~/.cache/ccache - key: ${{ runner.os }}-ccache-ext-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-ccache-ext- - ${{ runner.os }}-ccache- - - - name: Setup CCache and build dependencies - run: | - sudo apt-get update && sudo apt-get install -y ccache libcurl4-openssl-dev - ccache --max-size=2G - ccache --zero-stats - - - name: Increase the maximum number of opened files - run: | - ulimit -n 65535 - sudo chmod -R 777 /etc/security/* - echo "* soft nofile 1048576" | tee -a /etc/security/limits.conf - - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: '3.13' - - # TODO: After unifying wheel build (neug-manylinux:v0.1.1-x86_64) and dev images (neug-dev:v0.1.1), - # skip the build process and use `pip3 install neug` to test the locally built json extension - # with the released wheel package. - - name: Build NeuG with extensions - run: | - . /home/neug/.neug_env - cd ${GITHUB_WORKSPACE}/ - export BUILD_TYPE=RELEASE - export CMAKE_BUILD_PARALLEL_LEVEL=$(printf '%s\n' "$(nproc)" 32 | awk 'NR==1 || $0