From 762d8dd90bfc73a0a6c434531b0d5dc0bc0f5a11 Mon Sep 17 00:00:00 2001 From: yanxing <zhaode.wzd@alibaba-inc.com> Date: Thu, 9 Jan 2025 14:35:12 +0800 Subject: [PATCH] [CI:Feature] Add internal pymm release script. --- .github/workflows/internal_pymnn_release.yml | 108 +++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 .github/workflows/internal_pymnn_release.yml diff --git a/.github/workflows/internal_pymnn_release.yml b/.github/workflows/internal_pymnn_release.yml new file mode 100644 index 000000000..34e47dc59 --- /dev/null +++ b/.github/workflows/internal_pymnn_release.yml @@ -0,0 +1,108 @@ +name: internal_pymnn_release +on: + push: + paths: + - '.github/workflows/internal_pymnn_release.yml' + tags: + - '*' + pull_request: + branches: + - 'master' + workflow_dispatch: + +jobs: + build_wheels: + name: ${{ matrix.arch }} ${{ matrix.build }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - { os: ubuntu-latest, arch: x86_64, build: 'cp*-manylinux*' } + - { os: ubuntu-latest, arch: aarch64, build: 'cp*-manylinux*' } + - { os: windows-latest, arch: AMD64, build: 'cp*' } + - { os: macos-13, arch: x86_64, build: 'cp*' } + - { os: macos-14, arch: arm64, build: 'cp*' } + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: using msvc + if: matrix.os == 'windows-latest' + uses: ilammy/msvc-dev-cmd@v1 + + - name: using private schema patch + if: matrix.os != 'windows-latest' + env: + PATCH_CONTENT: ${{ secrets.PRIVATE_SCHEMA_PATCH }} + run: | + patch_file=$(mktemp schema_patch.XXXXXX.diff) + echo "$PATCH_CONTENT" > $patch_file + git apply $patch_file + rm $patch_file + git status + cd schema + ls -lh + ./generate.sh + cd .. + git status + + - name: using private schema patch + if: matrix.os == 'windows-latest' + env: + PATCH_CONTENT: ${{ secrets.PRIVATE_SCHEMA_PATCH }} + run: | + $patchFile = New-TemporaryFile + $PATCH_CONTENT | Out-File -FilePath $patchFile -Encoding UTF8 + git apply $patchFile + Remove-Item $patchFile + git status + Push-Location schema + Get-ChildItem -Name + ./generate.ps1 + Set-Location .. + git status + + - uses: actions/setup-python@v4 + with: + python-version: '3.12' + + - name: set up qemu + if: matrix.os == 'ubuntu-latest' && matrix.arch == 'aarch64' + uses: docker/setup-qemu-action@v3 + with: + platforms: all + + - name: install pipx + if: matrix.os == 'macos-14' + run: python -m pip install pipx + + - name: Build wheels + uses: pypa/cibuildwheel@v2.16.5 + env: + CIBW_ARCHS_MACOS: ${{ matrix.arch }} + CIBW_ARCHS_LINUX: ${{ matrix.arch }} + CIBW_ARCHS_WINDOWS: ${{ matrix.arch }} + CIBW_BUILD: ${{ matrix.build }} + CIBW_BUILD_VERBOSITY: 1 + CIBW_ENVIRONMENT: CMAKE_BUILD_PARALLEL_LEVEL=2 + with: + package-dir: pymnn/pip_package + output-dir: wheelhouse + config-file: "{package}/pyproject.toml" + + - name: Show files + run: ls -lh wheelhouse + shell: bash + + - name: Verify clean directory + run: git diff --exit-code + shell: bash + + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: artifact-${{ matrix.os }}-${{ matrix.arch }} + path: wheelhouse/*.whl \ No newline at end of file