diff --git a/.github/workflows/build-wheel-linux.yml b/.github/workflows/build-wheel-linux.yml deleted file mode 100644 index 6b4b7944e..000000000 --- a/.github/workflows/build-wheel-linux.yml +++ /dev/null @@ -1,46 +0,0 @@ -# (C) Copyright 2025- ECMWF. -# -# This software is licensed under the terms of the Apache Licence Version 2.0 -# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. -# In applying this licence, ECMWF does not waive the privileges and immunities -# granted to it by virtue of its status as an intergovernmental organisation -# nor does it submit to any jurisdiction. - - -name: Build Python Wheel for Linux - -on: - # Trigger the workflow manually - workflow_dispatch: ~ - - # Allow to be called from another workflow - workflow_call: ~ - - # TODO automation trigger - -jobs: - build: - name: Build manylinux_2_28 - runs-on: [self-hosted, Linux, platform-builder-Rocky-8.6] - # TODO which manylinux do we want to build for? 2014? 2_28? 2_34? Matrix? - container: - image: eccr.ecmwf.int/wheelmaker/2_28:latest - credentials: - username: ${{ secrets.ECMWF_DOCKER_REGISTRY_USERNAME }} - password: ${{ secrets.ECMWF_DOCKER_REGISTRY_ACCESS_TOKEN }} - steps: - # TODO convert this to be matrix-friendly. Note it's a bit tricky since - # we'd ideally not reexecute the compile step multiple times, but it - # (non-essentially) depends on a matrix-based step - # NOTE we dont use action checkout because it doesnt cleanup after itself correctly - - run: git clone --depth=1 --branch="${GITHUB_REF#refs/heads/}" https://github.com/$GITHUB_REPOSITORY /proj - - run: cd /proj && /buildscripts/prepare_deps.sh ./python_wrapper/buildconfig 3.11 - - run: cd /proj && /buildscripts/compile.sh ./python_wrapper/buildconfig - - run: cd /proj && PYTHONPATH=/buildscripts /buildscripts/wheel-linux.sh ./python_wrapper/buildconfig 3.11 - - run: cd /proj && /buildscripts/test-wheel.sh ./python_wrapper/buildconfig 3.11 - - run: cd /proj && /buildscripts/upload-pypi.sh ./python_wrapper/buildconfig - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} - # NOTE temporary thing until all the mess gets cleared - - run: rm -rf ./* ./.git ./.github diff --git a/.github/workflows/build-wheel-macos.yml b/.github/workflows/build-wheel-macos.yml deleted file mode 100644 index 4d576c643..000000000 --- a/.github/workflows/build-wheel-macos.yml +++ /dev/null @@ -1,64 +0,0 @@ -# (C) Copyright 2024- ECMWF. -# -# This software is licensed under the terms of the Apache Licence Version 2.0 -# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. -# In applying this licence, ECMWF does not waive the privileges and immunities -# granted to it by virtue of its status as an intergovernmental organisation -# nor does it submit to any jurisdiction. - - -name: Build Python Wheel for MacOS - -on: - # Trigger the workflow manually - workflow_dispatch: ~ - - # Allow to be called from another workflow - workflow_call: ~ - - # TODO automation trigger - -jobs: - build: - name: Build macos wheel - # TODO enable after all tested - # strategy: - # matrix: - # arch_type: [ARM64, X64] - # runs-on: [self-hosted, macOS, "${{ matrix.arch_type }}"] - runs-on: [self-hosted, macOS, ARM64 ] - steps: - # TODO convert this to be matrix-friendly for python versions. Note it's a bit tricky since - # we'd ideally not reexecute the compile step multiple times, but it - # (non-essentially) depends on a matrix-based step - # NOTE we dont use action checkout because it doesnt cleanup after itself correctly - - run: | - if [ -z "$(which uv)" ] ; then curl -LsSf https://astral.sh/uv/install.sh | sh ; fi - rm -rf ecbuild wheelmaker - git clone --depth=1 https://github.com/ecmwf/ecbuild ecbuild - # git clone --depth=1 --branch="wheelmaker" https://github.com/ecmwf/ci-utils wheelmaker # TODO use token here to get rid of the checkout action below - - uses: actions/checkout@v4 - with: - repository: ecmwf/ci-utils - ref: develop - path: ci-utils - token: ${{ secrets.GH_REPO_READ_TOKEN }} - - run: rm -rf proj && git clone --depth=1 --branch="${GITHUB_REF#refs/heads/}" https://github.com/$GITHUB_REPOSITORY proj - - run: | - cd proj && $GITHUB_WORKSPACE/ci-utils/wheelmaker/buildscripts/prepare_deps.sh ./python_wrapper/buildconfig 3.11 - - run: | - cd proj - if [[ -f ./python_wrapper/pre-compile.sh ]] ; then ./python_wrapper/pre-compile.sh ; fi - PATH="$PATH:$GITHUB_WORKSPACE/ecbuild/bin/" $GITHUB_WORKSPACE/ci-utils/wheelmaker/buildscripts/compile.sh ./python_wrapper/buildconfig - - run: | - cd proj - rm -rf /tmp/buildvenv && uv python install python3.11 && uv venv --python python3.11 /tmp/buildvenv && source /tmp/buildvenv/bin/activate && uv pip install build twine - PYTHONPATH=$GITHUB_WORKSPACE/ci-utils/wheelmaker/buildscripts $GITHUB_WORKSPACE/ci-utils/wheelmaker/buildscripts/wheel-linux.sh ./python_wrapper/buildconfig 3.11 - if [[ -f ./python_wrapper/post-build.sh ]] ; then ./python_wrapper/post-build.sh ; fi - $GITHUB_WORKSPACE/ci-utils/wheelmaker/buildscripts/test-wheel.sh ./python_wrapper/buildconfig 3.11 - $GITHUB_WORKSPACE/ci-utils/wheelmaker/buildscripts/upload-pypi.sh ./python_wrapper/buildconfig - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} - # NOTE temporary thing until all the mess gets cleared - - run: rm -rf ./* ./.git ./.github diff --git a/.github/workflows/build-wheel-wrapper.yml b/.github/workflows/build-wheel-wrapper.yml new file mode 100644 index 000000000..bea8ed8c3 --- /dev/null +++ b/.github/workflows/build-wheel-wrapper.yml @@ -0,0 +1,25 @@ +# (C) Copyright 2024- ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# In applying this licence, ECMWF does not waive the privileges and immunities +# granted to it by virtue of its status as an intergovernmental organisation +# nor does it submit to any jurisdiction. + + +name: Build Python Wrapper Wheel + +on: + # Trigger the workflow manually + workflow_dispatch: ~ + + # Allow to be called from another workflow + workflow_call: ~ + + # TODO automation trigger + +jobs: + python-wrapper-wheel: + name: Python Wrapper Wheel + uses: ecmwf-actions/reusable-workflows/.github/workflows/python-wrapper-wheel.yml@main + secrets: inherit