From a5b5cadea759022935ccf82ba35d30c727e88a1e Mon Sep 17 00:00:00 2001 From: tangowithfoxtrot <5676771+tangowithfoxtrot@users.noreply.github.com> Date: Wed, 22 Nov 2023 10:13:22 -0800 Subject: [PATCH] remove Win ARM builds; provide sdist --- .github/workflows/build-python-wheels.yml | 242 +++++++++++----------- 1 file changed, 121 insertions(+), 121 deletions(-) diff --git a/.github/workflows/build-python-wheels.yml b/.github/workflows/build-python-wheels.yml index cb9171714..c30aed295 100644 --- a/.github/workflows/build-python-wheels.yml +++ b/.github/workflows/build-python-wheels.yml @@ -1,123 +1,123 @@ --- -name: Build Python Wheels - -on: - pull_request: - push: - branches: - - "master" - - "rc" - - "hotfix-rc" - - "SM-989-create-build-and-publish-pipelines-for-the-python-language-wrapper" # TODO: remove this - workflow_dispatch: - -defaults: - run: - shell: bash - working-directory: languages/python - -jobs: - generate_schemas: - uses: ./.github/workflows/generate_schemas.yml - - setup: - name: Setup - runs-on: ubuntu-22.04 - outputs: - package_version: ${{ steps.retrieve-version.outputs.package_version }} - steps: - - name: Checkout repo - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - name: Get Package Version - id: retrieve-version - run: | - VERSION="$(grep -o '^version = ".*"' ../../crates/bitwarden-py/Cargo.toml | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+")" - echo "package_version=$VERSION" >> $GITHUB_OUTPUT - - build: - name: Building Python wheel for - ${{ matrix.settings.os }} - ${{ matrix.settings.target }} - runs-on: ${{ matrix.settings.os || 'ubuntu-latest' }} - needs: - - generate_schemas - - setup - env: - _PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} - strategy: - fail-fast: false - matrix: - settings: - - os: macos-12 - target: x86_64-apple-darwin - - - os: macos-12 - target: aarch64-apple-darwin - - - os: windows-2022 - target: x86_64-pc-windows-msvc - - - os: windows-2022 - target: aarch64-pc-windows-msvc - - - os: ubuntu-22.04 - target: x86_64-unknown-linux-gnu - - - os: ubuntu-22.04 - target: aarch64-unknown-linux-gnu - - steps: - - name: Checkout repo - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - name: Setup Node - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 - with: - node-version: 18 - - - name: Install rust - if: ${{ matrix.settings.target != 'aarch64-pc-windows-msvc' }} - uses: dtolnay/rust-toolchain@439cf607258077187679211f12aa6f19af4a0af7 # stable - with: - toolchain: stable - targets: ${{ matrix.settings.target }} - - - name: Install rust - if: ${{ matrix.settings.target == 'aarch64-pc-windows-msvc' }} - uses: dtolnay/rust-toolchain@439cf607258077187679211f12aa6f19af4a0af7 # stable - with: - toolchain: stable - targets: ${{ matrix.settings.target }},x86_64-pc-windows-msvc - - - name: Cache cargo registry - uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1 - with: - key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.os }} - - - name: Retrieve schemas - uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 - with: - name: schemas.py - path: ${{ github.workspace }}/languages/python/BitwardenClient/ - - - name: Setup Windows ARM64 - if: ${{ matrix.settings.target == 'aarch64-pc-windows-msvc' }} - shell: pwsh - run: | - # ring crate: add Visual Studio Build Tools "VS 2022 C++ ARM64 build tools" and "clang" components - $env:Path += ";C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin" - cargo install cargo-xwin - - - name: Build wheels - uses: PyO3/maturin-action@b9e8f88fd4448fdecf5095864cdc7e39a544aa9f # v1.40.7 - with: - target: ${{ matrix.settings.target }} - args: --release --find-interpreter --sdist - sccache: 'true' - manylinux: '2_28' # https://github.com/pola-rs/polars/pull/12211 - working-directory: ${{ github.workspace }}/languages/python + name: Build Python Wheels + + on: + pull_request: + push: + branches: + - "master" + - "rc" + - "hotfix-rc" + - "SM-989-create-build-and-publish-pipelines-for-the-python-language-wrapper" # TODO: remove this + workflow_dispatch: + + defaults: + run: + shell: bash + working-directory: languages/python + + jobs: + generate_schemas: + uses: ./.github/workflows/generate_schemas.yml + + setup: + name: Setup + runs-on: ubuntu-22.04 + outputs: + package_version: ${{ steps.retrieve-version.outputs.package_version }} + steps: + - name: Checkout repo + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Get Package Version + id: retrieve-version + run: | + VERSION="$(grep -o '^version = ".*"' ../../crates/bitwarden-py/Cargo.toml | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+")" + echo "package_version=$VERSION" >> $GITHUB_OUTPUT + + build: + name: Building Python wheel for - ${{ matrix.settings.os }} - ${{ matrix.settings.target }} + runs-on: ${{ matrix.settings.os || 'ubuntu-latest' }} + needs: + - generate_schemas + - setup + env: + _PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} + strategy: + fail-fast: false + matrix: + settings: + - os: macos-12 + target: x86_64-apple-darwin + + - os: macos-12 + target: aarch64-apple-darwin + + - os: windows-2022 + target: x86_64-pc-windows-msvc + + # # Win ARM builds fail: https://github.com/bitwarden/sdk/actions/runs/6960684148/job/18940738400#step:9:175 + # - os: windows-2022 + # target: aarch64-pc-windows-msvc + + - os: ubuntu-22.04 + target: x86_64-unknown-linux-gnu + + - os: ubuntu-22.04 + target: aarch64-unknown-linux-gnu + + steps: + - name: Checkout repo + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Setup Node + uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + with: + node-version: 18 + + - name: Install rust + uses: dtolnay/rust-toolchain@439cf607258077187679211f12aa6f19af4a0af7 # stable + with: + toolchain: stable + targets: ${{ matrix.settings.target }} - - name: Upload artifact - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 - with: - name: BitwardenClient-${{ env._PACKAGE_VERSION }}-${{ matrix.settings.target }} - path: ${{ github.workspace }}/target/wheels/BitwardenClient*.whl + - name: Cache cargo registry + uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1 + with: + key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.os }} + + - name: Retrieve schemas + uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 + with: + name: schemas.py + path: ${{ github.workspace }}/languages/python/BitwardenClient/ + + # - name: Setup Windows ARM64 + # if: ${{ matrix.settings.target == 'aarch64-pc-windows-msvc' }} + # shell: pwsh + # run: | + # # ring crate: add Visual Studio Build Tools "VS 2022 C++ ARM64 build tools" and "clang" components + # $env:Path += ";C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin" + + - name: Build wheels + uses: PyO3/maturin-action@b9e8f88fd4448fdecf5095864cdc7e39a544aa9f # v1.40.7 + with: + target: ${{ matrix.settings.target }} + args: --release --find-interpreter --sdist + sccache: 'true' + manylinux: '2_28' # https://github.com/pola-rs/polars/pull/12211 + working-directory: ${{ github.workspace }}/languages/python + + - name: Upload wheels + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 + with: + name: BitwardenClient-${{ env._PACKAGE_VERSION }}-${{ matrix.settings.target }} + path: ${{ github.workspace }}/target/wheels/BitwardenClient*.whl + + - name: Upload sdists + if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }} # we only need one sdist + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 + with: + name: BitwardenClient-${{ env._PACKAGE_VERSION }}-${{ matrix.settings.target }} + path: ${{ github.workspace }}/target/wheels/BitwardenClient-*.tar.gz + \ No newline at end of file