From 66ddfee56f5d2c1bdd5db7c40c1e30aaa2a935e6 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Wed, 3 Apr 2024 03:44:25 +1000 Subject: [PATCH] devops: add osx-arm64 and linux-aarch64 conda package builds (#2211) Co-authored-by: Max Schmitt --- .github/workflows/publish.yml | 33 +++++++++++++++++++++++---- conda_build_config_linux_aarch64.yaml | 2 ++ conda_build_config_osx_arm64.yaml | 2 ++ meta.yaml | 7 +++++- 4 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 conda_build_config_linux_aarch64.yaml create mode 100644 conda_build_config_osx_arm64.yaml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cc729ae1e..3a49aa132 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -6,22 +6,45 @@ jobs: deploy-conda: strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + include: + - os: ubuntu-latest + target-platform: linux-x86_64 + - os: ubuntu-latest + target-platform: linux-aarch64 + - os: windows-latest + target-platform: win-64 + - os: macos-latest-large + target-platform: osx-intel + - os: macos-latest-xlarge + target-platform: osx-arm64 runs-on: ${{ matrix.os }} + defaults: + run: + # Required for conda-incubator/setup-miniconda@v3 + shell: bash -el {0} steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Get conda - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: - python-version: 3.9 + python-version: 3.12 channels: conda-forge + miniconda-version: latest - name: Prepare - run: conda install anaconda-client conda-build conda-verify + # Pinned because of https://github.com/conda/conda-build/issues/5267 + run: conda install anaconda-client conda-build=24.1.2 conda-verify py-lief=0.12.3 - name: Build and Upload env: ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} run: | conda config --set anaconda_upload yes - conda build --user microsoft . + if [ "${{ matrix.target-platform }}" == "osx-arm64" ]; then + conda build --user microsoft . -m conda_build_config.yaml -m conda_build_config_osx_arm64.yaml + elif [ "${{ matrix.target-platform }}" == "linux-aarch64" ]; then + conda install cross-python_linux-aarch64 + conda build --user microsoft . -m conda_build_config.yaml -m conda_build_config_linux_aarch64.yaml + else + conda build --user microsoft . -m conda_build_config.yaml + fi diff --git a/conda_build_config_linux_aarch64.yaml b/conda_build_config_linux_aarch64.yaml new file mode 100644 index 000000000..68dceb2e3 --- /dev/null +++ b/conda_build_config_linux_aarch64.yaml @@ -0,0 +1,2 @@ +target_platform: +- linux-aarch64 diff --git a/conda_build_config_osx_arm64.yaml b/conda_build_config_osx_arm64.yaml new file mode 100644 index 000000000..d535f7252 --- /dev/null +++ b/conda_build_config_osx_arm64.yaml @@ -0,0 +1,2 @@ +target_platform: +- osx-arm64 diff --git a/meta.yaml b/meta.yaml index 85deaf23b..2b113e15d 100644 --- a/meta.yaml +++ b/meta.yaml @@ -15,6 +15,10 @@ build: - playwright = playwright.__main__:main requirements: + build: + - python # [build_platform != target_platform] + - pip # [build_platform != target_platform] + - cross-python_{{ target_platform }} # [build_platform != target_platform] host: - python - wheel @@ -25,7 +29,8 @@ requirements: - python - greenlet ==3.0.3 - pyee ==11.0.1 -test: + +test: # [build_platform == target_platform] requires: - pip imports: