Skip to content

Commit

Permalink
Prototype so-only wheel
Browse files Browse the repository at this point in the history
  • Loading branch information
tmi committed Jan 21, 2025
1 parent a789091 commit f6e535a
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 0 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/build-wheel-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# (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 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 /tmp/build/wheel/*whl
- run: cd /proj && /buildscripts/upload-pypi.sh /tmp/build/wheel/*whl
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
# NOTE temporary thing until all the mess gets cleared
- run: rm -rf ./* ./.git ./.github
16 changes: 16 additions & 0 deletions python_wrapper/buildconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# (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.

# to be source'd by wheelmaker's compile.sh *and* wheel-linux.sh
# NOTE replace the whole thing with pyproject.toml? Less powerful, and quaint to use for sourcing ecbuild invocation
# TODO we duplicate information -- pyproject.toml's `name` and `packages` are derivable from $NAME and must stay consistent

NAME="fdb"
CMAKE_PARAMS="-DECKIT_PATH=/tmp/prereqs/eckitlib -Dmetkit_ROOT=/tmp/prereqs/metkitlib -Deccodes_ROOT=/tmp/prereqs/eccodeslib"
PYPROJECT_DIR="python_wrapper"
DEPENDENCIES='["eckitlib", "metkitlib", "eccodeslib"]'
5 changes: 5 additions & 0 deletions python_wrapper/setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[metadata]
description = "fdblib"
long_description = file: README.md
long_description_content_type = text/markdown
author = file: AUTHORS
2 changes: 2 additions & 0 deletions python_wrapper/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from setup_utils import plain_setup
plain_setup()

0 comments on commit f6e535a

Please sign in to comment.