From 0d415c7695ef1567057594eab16367f7e4bf4aad Mon Sep 17 00:00:00 2001 From: "Thomas J. Fan" Date: Wed, 11 Jan 2023 22:31:49 -0500 Subject: [PATCH 1/5] CI Migrate Linux ARM job to CirrusCI --- .circleci/config.yml | 21 ------------------- .cirrus.star | 8 +++++-- build_tools/cirrus/arm_tests.yml | 21 +++++++++++++++++++ .../{circle => cirrus}/build_test_arm.sh | 0 .../py39_conda_forge_environment.yml | 0 .../py39_conda_forge_linux-aarch64_conda.lock | 2 +- .../update_environments_and_lock_files.py | 2 +- 7 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 build_tools/cirrus/arm_tests.yml rename build_tools/{circle => cirrus}/build_test_arm.sh (100%) rename build_tools/{circle => cirrus}/py39_conda_forge_environment.yml (100%) rename build_tools/{circle => cirrus}/py39_conda_forge_linux-aarch64_conda.lock (99%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 91f0ce0a92d8e..75e844b0a37e9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -37,27 +37,6 @@ jobs: root: doc/_build/html paths: . - linux-arm64: - machine: - image: ubuntu-2004:202101-01 - resource_class: arm.medium - environment: - - OMP_NUM_THREADS: 2 - - OPENBLAS_NUM_THREADS: 2 - - CONDA_ENV_NAME: testenv - - LOCK_FILE: build_tools/circle/py39_conda_forge_linux-aarch64_conda.lock - steps: - - checkout - - run: ./build_tools/circle/checkout_merge_commit.sh - - restore_cache: - key: linux-arm64-{{ .Branch }} - - run: ./build_tools/circle/build_test_arm.sh - - save_cache: - key: linux-arm64-{{ .Branch }} - paths: - - ~/.cache/ccache - - ~/.cache/pip - - ~/scikit_learn_data deploy: docker: - image: cimg/python:3.8.12 diff --git a/.cirrus.star b/.cirrus.star index 5e004dbc19ab5..495924019b265 100644 --- a/.cirrus.star +++ b/.cirrus.star @@ -10,6 +10,7 @@ def main(ctx): return [] arm_wheel_yaml = "build_tools/cirrus/arm_wheel.yml" + arm_tests_yaml = "build_tools/cirrus/arm_tests.yml" # Nightly jobs always run if env.get("CIRRUS_CRON", "") == "nightly": @@ -25,7 +26,10 @@ def main(ctx): response = http.get(url).json() commit_msg = response["message"] - if "[skip ci]" in commit_msg or ("[cd build]" not in commit_msg and "[cd build cirrus]" not in commit_msg): + if "[skip ci]" in commit_msg: return [] - return fs.read(arm_wheel_yaml) + if "[cd build]" in commit_msg or "[cd build cirrus]" in commit_msg: + return fs.read(arm_wheel_yaml) + + return fs.read(arm_tests_yaml) diff --git a/build_tools/cirrus/arm_tests.yml b/build_tools/cirrus/arm_tests.yml new file mode 100644 index 0000000000000..2a15753cb3b30 --- /dev/null +++ b/build_tools/cirrus/arm_tests.yml @@ -0,0 +1,21 @@ +linux_aarch64_test_task: + compute_engine_instance: + image_project: cirrus-images + image: family/docker-builder-arm64 + architecture: arm64 + platform: linux + cpu: 4 + memory: 6G + env: + CONDA_ENV_NAME: testenv + OMP_NUM_THREADS: 2 + OPENBLAS_NUM_THREADS: 2 + LOCK_FILE: build_tools/cirrus/py39_conda_forge_linux-aarch64_conda.lock + CONDA_PKGS_DIRS: /root/.conda/pkgs + ccache_cache: + folder: /root/.cache/ccache + conda_cache: + folder: /root/.conda/pkgs + fingerprint_script: cat build_tools/cirrus/py39_conda_forge_linux-aarch64_conda.lock + + test_script: bash build_tools/cirrus/build_test_arm.sh diff --git a/build_tools/circle/build_test_arm.sh b/build_tools/cirrus/build_test_arm.sh similarity index 100% rename from build_tools/circle/build_test_arm.sh rename to build_tools/cirrus/build_test_arm.sh diff --git a/build_tools/circle/py39_conda_forge_environment.yml b/build_tools/cirrus/py39_conda_forge_environment.yml similarity index 100% rename from build_tools/circle/py39_conda_forge_environment.yml rename to build_tools/cirrus/py39_conda_forge_environment.yml diff --git a/build_tools/circle/py39_conda_forge_linux-aarch64_conda.lock b/build_tools/cirrus/py39_conda_forge_linux-aarch64_conda.lock similarity index 99% rename from build_tools/circle/py39_conda_forge_linux-aarch64_conda.lock rename to build_tools/cirrus/py39_conda_forge_linux-aarch64_conda.lock index 66ab20b463a24..64fc267ef1323 100644 --- a/build_tools/circle/py39_conda_forge_linux-aarch64_conda.lock +++ b/build_tools/cirrus/py39_conda_forge_linux-aarch64_conda.lock @@ -96,7 +96,7 @@ https://conda.anaconda.org/conda-forge/noarch/pytest-forked-1.4.0-pyhd8ed1ab_1.t https://conda.anaconda.org/conda-forge/linux-aarch64/matplotlib-3.6.2-py39ha65689a_0.tar.bz2#b4d712f422b5dad5259f38151be6f492 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.0.0-pyhd8ed1ab_0.conda#d41957700e83bbb925928764cb7f8878 https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-2.5.0-pyhd8ed1ab_0.tar.bz2#1fdd1f3baccf0deb647385c677a1a48e -https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.13-pyhd8ed1ab_0.conda#3078ef2359efd6ecadbc7e085c5e0592 +https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.14-pyhd8ed1ab_0.conda#01f33ad2e0aaf6b5ba4add50dad5ad29 https://conda.anaconda.org/conda-forge/noarch/requests-2.28.1-pyhd8ed1ab_1.tar.bz2#089382ee0e2dc2eae33a04cc3c2bddb0 https://conda.anaconda.org/conda-forge/noarch/pooch-1.6.0-pyhd8ed1ab_0.tar.bz2#6429e1d1091c51f626b5dcfdd38bf429 https://conda.anaconda.org/conda-forge/linux-aarch64/scipy-1.10.0-py39hafab3e7_0.conda#65d57c881ae668b5372bb6ad5e08bb78 diff --git a/build_tools/update_environments_and_lock_files.py b/build_tools/update_environments_and_lock_files.py index 4b3ceed76e109..856ec8d7e6fd4 100644 --- a/build_tools/update_environments_and_lock_files.py +++ b/build_tools/update_environments_and_lock_files.py @@ -299,7 +299,7 @@ def remove_from(alist, to_remove): }, { "build_name": "py39_conda_forge", - "folder": "build_tools/circle", + "folder": "build_tools/cirrus", "platform": "linux-aarch64", "channel": "conda-forge", "conda_dependencies": remove_from( From 6d3bfacf9103c089363483a541abcf9460e52896 Mon Sep 17 00:00:00 2001 From: "Thomas J. Fan" Date: Wed, 11 Jan 2023 22:36:29 -0500 Subject: [PATCH 2/5] CI Completely remove linux-arm reference from circleci --- .circleci/config.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 75e844b0a37e9..7b2a2b327be7e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,11 +68,3 @@ workflows: - deploy: requires: - doc - - linux-arm64: - when: - equal: [ "none", << pipeline.parameters.GITHUB_RUN_URL >> ] - # Prevent double execution of this job: on push - # by default and when triggered by the workflow - jobs: - - linux-arm64 From 0cb4e591babccc820567830ab22b321e510d7f2a Mon Sep 17 00:00:00 2001 From: "Thomas J. Fan" Date: Wed, 11 Jan 2023 22:45:50 -0500 Subject: [PATCH 3/5] CI Add noop job so circleci works --- .circleci/config.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7b2a2b327be7e..f6bb3150274a9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,6 +54,14 @@ jobs: bash build_tools/circle/push_doc.sh doc/_build/html/stable fi + # This noop job is required for the pipeline to exist, such that the + # documentation related jobs can be trigger. + noop: + docker: + - image: cimg/python:3.8.12 + steps: + - run: echo "noop job" + workflows: version: 2 @@ -68,3 +76,11 @@ workflows: - deploy: requires: - doc + + noop: + when: + equal: [ "none", << pipeline.parameters.GITHUB_RUN_URL >> ] + # Prevent double execution of this job: on push + # by default and when triggered by the workflow + jobs: + - noop From e3e0266b88237022c2f9af50cf821818286e0934 Mon Sep 17 00:00:00 2001 From: "Thomas J. Fan" Date: Wed, 11 Jan 2023 22:49:12 -0500 Subject: [PATCH 4/5] DOC Update comment in circleci config --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f6bb3150274a9..db8c0b6bb948f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,8 +54,8 @@ jobs: bash build_tools/circle/push_doc.sh doc/_build/html/stable fi - # This noop job is required for the pipeline to exist, such that the - # documentation related jobs can be trigger. + # This noop job is required for the pipeline to exist, so that the + # documentation related jobs can be triggered. noop: docker: - image: cimg/python:3.8.12 From 8a05dc8affa93a5892513d419e4a784a3125228d Mon Sep 17 00:00:00 2001 From: "Thomas J. Fan" Date: Thu, 12 Jan 2023 13:20:35 -0500 Subject: [PATCH 5/5] Apply suggestions from code review Co-authored-by: Julien Jerphanion --- .circleci/config.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index db8c0b6bb948f..c1330a6d239e2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -60,7 +60,10 @@ jobs: docker: - image: cimg/python:3.8.12 steps: - - run: echo "noop job" + - run: | + echo "This is no-op job for the pipeline to exist, so that it triggers " + echo "Circle CI jobs pushing the artifacts of the documentation built " + echo "via GitHub actions." workflows: version: 2