File: python_wheels_winarm64.yml

package info (click to toggle)
xgboost 3.0.4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 13,848 kB
  • sloc: cpp: 67,603; python: 35,537; java: 4,676; ansic: 1,426; sh: 1,352; xml: 1,226; makefile: 204; javascript: 19
file content (66 lines) | stat: -rw-r--r-- 2,371 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
name: Build Python wheels targeting Windows ARM64

on: [push, pull_request]

permissions:
  contents: read  # to fetch code (actions/checkout)

defaults:
  run:
    shell: pwsh

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

env:
  BRANCH_NAME: >-
    ${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
    
jobs:
  python-wheels-Win-ARM64:
    name: Build wheel for Windows ARM64
    runs-on: windows-11-arm
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: 'true'

      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'

      - name: Install build dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install wheel setuptools awscli

      - name: Build XGBoost for Win-ARM64
        run: |
          mkdir build
          cd build
          cmake .. -G"Visual Studio 17 2022" -A ARM64
          cmake --build . --config Release -- /m /nodeReuse:false "/consoleloggerparameters:ShowCommandLine;Verbosity=minimal"
          
      - name: Build XGBoost Python wheel for Win-ARM64
        run: |
          # Patch to rename pkg to xgboost-cpu
          python ops/script/pypi_variants.py --use-cpu-suffix=1 --require-nccl-dep=0
          cd python-package
          mkdir -p wheelhouse
          pip wheel --no-deps -v . --wheel-dir wheelhouse/
          $wheelFile = Get-ChildItem wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
          python -m wheel tags --python-tag py3 --abi-tag none --platform win_arm64 --remove $wheelFile

      - name: Upload Python wheel
        if: github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')
        run: |
          $wheelFile = Get-ChildItem python-package/wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
          python ops/pipeline/manage-artifacts.py upload `
            --s3-bucket xgboost-nightly-builds `
            --prefix ${{ env.BRANCH_NAME }}/${{ github.sha }} --make-public `
            $wheelFile
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}