# HG changeset patch # User Pierre-Yves David # Date 1730907658 -3600 # Node ID 7dd466f13f9bc18e6073d178e46c4cd351ab2490 # Parent 94ded8440db65637d66ecd80591eedc7f64b1472 ci: build (and use) wheel for all supported version We test wheel building for all supported version and use them where applicable The usage is more verbose than I wish because .gitlab-ci is not that great. diff -r 94ded8440db6 -r 7dd466f13f9b contrib/heptapod-ci.yml --- a/contrib/heptapod-ci.yml Wed Nov 06 16:39:45 2024 +0100 +++ b/contrib/heptapod-ci.yml Wed Nov 06 16:40:58 2024 +0100 @@ -52,19 +52,28 @@ - echo $WHEEL_TYPE - test -n "$WHEEL_TYPE" - echo $FLAVOR - - mkdir -p wheels/$WHEEL_TYPE + - mkdir -p wheels/$WHEEL_TYPE/$BUILD_PY_ID script: - - /opt/python/cp311-cp311/bin/python setup.py bdist_wheel --dist-dir tmp-wheelhouse - - auditwheel repair tmp-wheelhouse/*.whl -w wheels/$WHEEL_TYPE/ + - /opt/python/$BUILD_PY_ID/bin/python setup.py bdist_wheel --dist-dir tmp-wheelhouse + - auditwheel repair tmp-wheelhouse/*.whl -w wheels/$WHEEL_TYPE/$BUILD_PY_ID artifacts: paths: - - wheels/$WHEEL_TYPE + - wheels/$WHEEL_TYPE/$BUILD_PY_ID expire_in: 1 week build-c-wheel: <<: *wheel variables: WHEEL_TYPE: "c" + parallel: + matrix: + - BUILD_PY_ID: + - cp38-cp38 + - cp39-cp39 + - cp310-cp310 + - cp311-cp311 + - cp312-cp312 + - cp313-cp313 # TODO: We should select the wheel compatible with the python (and plateform) # we use. This is necessary to build multiple wheel. @@ -84,9 +93,11 @@ script: - echo "$RUNTEST_ARGS" - echo "$WHEEL_TYPE" + - echo $BUILD_PY_ID - WHEEL="" - if test -n "$WHEEL_TYPE"; then - WHEEL="`ls -1 $CI_PROJECT_DIR/wheels/$WHEEL_TYPE/*.whl`"; + test -n "$BUILD_PY_ID"; + WHEEL="`ls -1 $CI_PROJECT_DIR/wheels/$WHEEL_TYPE/$BUILD_PY_ID/*.whl`"; test -n "$WHEEL"; fi - if test -n "$WHEEL"; then @@ -122,9 +133,15 @@ test-c: <<: *test_c - needs: [build-c-wheel] + needs: + - job: build-c-wheel + parallel: + matrix: + - BUILD_PY_ID: "cp311-cp311" + variables: WHEEL_TYPE: "c" + BUILD_PY_ID: "cp311-cp311" RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt" TEST_HGTESTS_ALLOW_NETIO: "1" @@ -159,6 +176,15 @@ when: manual # avoid overloading the CI by default variables: PYTHON: python3.8 + WHEEL_TYPE: "c" + BUILD_PY_ID: "cp38-cp38" + RUNTEST_ARGS: " --blacklist /tmp/check-tests.txt" + TEST_HGTESTS_ALLOW_NETIO: "1" + needs: + - job: build-c-wheel + parallel: + matrix: + - BUILD_PY_ID: "cp38-cp38" test-3.12-c: <<: *test_c @@ -166,6 +192,15 @@ when: manual # avoid overloading the CI by default variables: PYTHON: python3.12 + WHEEL_TYPE: "c" + BUILD_PY_ID: "cp312-cp312" + RUNTEST_ARGS: " --blacklist /tmp/check-tests.txt" + TEST_HGTESTS_ALLOW_NETIO: "1" + needs: + - job: build-c-wheel + parallel: + matrix: + - BUILD_PY_ID: "cp312-cp312" test-3.12-rust: <<: *test_rust @@ -180,6 +215,15 @@ when: manual # avoid overloading the CI by default variables: PYTHON: python3.13 + WHEEL_TYPE: "c" + BUILD_PY_ID: "cp313-cp313" + RUNTEST_ARGS: " --blacklist /tmp/check-tests.txt" + TEST_HGTESTS_ALLOW_NETIO: "1" + needs: + - job: build-c-wheel + parallel: + matrix: + - BUILD_PY_ID: "cp313-cp313" test-3.13-rust: <<: *test_rust