Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
acc4a62
Add manylinux deps image build
Bill-hbrhbr Aug 24, 2025
f1c7024
Merge branch 'y-scope:main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 24, 2025
81d6799
Small fix
Bill-hbrhbr Aug 24, 2025
bdb75bb
Create filter outputs
Bill-hbrhbr Aug 24, 2025
373d43f
Update docker dir
Bill-hbrhbr Aug 24, 2025
7f8706e
Fix cmake version
Bill-hbrhbr Aug 25, 2025
b5da810
Merge branch 'main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 25, 2025
39d7abb
Add remaining workflows
Bill-hbrhbr Aug 25, 2025
916a4b6
Remove unrelated changes
Bill-hbrhbr Aug 25, 2025
06a9020
Update docs
Bill-hbrhbr Aug 25, 2025
0157ac4
Merge branch 'main' into add-manylinux-musllinux-deps-img
jackluo923 Aug 25, 2025
b6f1436
Add manylinux arm64 deps img workflow
Bill-hbrhbr Aug 25, 2025
93bee22
Add both x86_64 and arm64 versions for two platforms
Bill-hbrhbr Aug 25, 2025
22cfccc
fox
Bill-hbrhbr Aug 25, 2025
8adc4e6
use matrix
Bill-hbrhbr Aug 25, 2025
ff98538
Update vars
Bill-hbrhbr Aug 25, 2025
bff7064
Fix grammar
Bill-hbrhbr Aug 25, 2025
6224601
revert optimizations
Bill-hbrhbr Aug 25, 2025
828e634
Fix image prefixes with arch type
Bill-hbrhbr Aug 25, 2025
386e5dc
Alphabeticize
Bill-hbrhbr Aug 25, 2025
6f5579b
Remove doc updates since manylinux and musllinux are not common OS pl…
Bill-hbrhbr Aug 25, 2025
b674025
Merge branch 'main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 26, 2025
bc976fe
Add docs and remove aarch64 builds
Bill-hbrhbr Aug 26, 2025
8d463fd
cleanup version changes
Bill-hbrhbr Aug 26, 2025
d68ddba
Apply suggestions from code review
Bill-hbrhbr Aug 27, 2025
06d2ca8
Merge branch 'main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 27, 2025
eec0822
Merge branch 'main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
296 changes: 296 additions & 0 deletions .github/workflows/clp-core-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ jobs:
runs-on: "ubuntu-24.04"
outputs:
centos_stream_9_image_changed: "${{steps.filter.outputs.centos_stream_9_image}}"
manylinux_2_28_aarch64_image_changed: "${{steps.filter.outputs.manylinux_2_28_aarch64_image}}"
manylinux_2_28_x86_64_image_changed: "${{steps.filter.outputs.manylinux_2_28_x86_64_image}}"
musllinux_1_2_aarch64_image_changed: "${{steps.filter.outputs.musllinux_1_2_aarch64_image}}"
musllinux_1_2_x86_64_image_changed: "${{steps.filter.outputs.musllinux_1_2_x86_64_image}}"
ubuntu_jammy_image_changed: "${{steps.filter.outputs.ubuntu_jammy_image}}"
clp_changed: "${{steps.filter.outputs.clp}}"
steps:
Expand Down Expand Up @@ -76,6 +80,30 @@ jobs:
- "components/core/tools/scripts/lib_install/*.sh"
- "components/core/tools/docker-images/clp-env-base-centos-stream-9/**"
- "components/core/tools/scripts/lib_install/centos-stream-9/**"
manylinux_2_28_aarch64_image:
- ".github/actions/**"
- ".github/workflows/clp-core-build.yaml"
- "components/core/tools/scripts/lib_install/*.sh"
- "components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/**"
- "components/core/tools/scripts/lib_install/manylinux_2_28/**"
manylinux_2_28_x86_64_image:
- ".github/actions/**"
- ".github/workflows/clp-core-build.yaml"
- "components/core/tools/scripts/lib_install/*.sh"
- "components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/**"
musllinux_1_2_aarch64_image:
- ".github/actions/**"
- ".github/workflows/clp-core-build.yaml"
- "components/core/tools/scripts/lib_install/*.sh"
- "components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/**"
- "components/core/tools/scripts/lib_install/musllinux_1_2/**"
- "components/core/tools/scripts/lib_install/manylinux_2_28/**"
musllinux_1_2_x86_64_image:
- ".github/actions/**"
- ".github/workflows/clp-core-build.yaml"
- "components/core/tools/scripts/lib_install/*.sh"
- "components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/**"
- "components/core/tools/scripts/lib_install/musllinux_1_2/**"
ubuntu_jammy_image:
- ".github/actions/**"
- ".github/workflows/clp-core-build.yaml"
Expand Down Expand Up @@ -121,6 +149,110 @@ jobs:
${{github.event_name != 'pull_request' && github.ref == 'refs/heads/main'}}
token: "${{secrets.GITHUB_TOKEN}}"

manylinux_2_28-aarch64-deps-image:
name: "manylinux_2_28-aarch64-deps-image"
if: "needs.filter-relevant-changes.outputs.manylinux_2_28_aarch64_image_changed == 'true'"
needs: "filter-relevant-changes"
runs-on: "ubuntu-24.04-arm"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/clp-core-build-containers"
env:
OS_NAME: "manylinux_2_28-aarch64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
docker_context: "components/core"
docker_file: "components/core/tools/docker-images/clp-env-base-${{env.OS_NAME}}\
/Dockerfile"
push_deps_image: >-
${{github.event_name != 'pull_request' && github.ref == 'refs/heads/main'}}
token: "${{secrets.GITHUB_TOKEN}}"

manylinux_2_28-x86_64-deps-image:
name: "manylinux_2_28-x86_64-deps-image"
if: "needs.filter-relevant-changes.outputs.manylinux_2_28_x86_64_image_changed == 'true'"
needs: "filter-relevant-changes"
runs-on: "ubuntu-24.04"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/clp-core-build-containers"
env:
OS_NAME: "manylinux_2_28-x86_64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
docker_context: "components/core"
docker_file: "components/core/tools/docker-images/clp-env-base-${{env.OS_NAME}}\
/Dockerfile"
push_deps_image: >-
${{github.event_name != 'pull_request' && github.ref == 'refs/heads/main'}}
token: "${{secrets.GITHUB_TOKEN}}"

musllinux_1_2-aarch64-deps-image:
name: "musllinux_1_2-aarch64-deps-image"
if: "needs.filter-relevant-changes.outputs.musllinux_1_2_aarch64_image_changed == 'true'"
needs: "filter-relevant-changes"
runs-on: "ubuntu-24.04-arm"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/clp-core-build-containers"
env:
OS_NAME: "musllinux_1_2-aarch64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
docker_context: "components/core"
docker_file: "components/core/tools/docker-images/clp-env-base-${{env.OS_NAME}}\
/Dockerfile"
push_deps_image: >-
${{github.event_name != 'pull_request' && github.ref == 'refs/heads/main'}}
token: "${{secrets.GITHUB_TOKEN}}"

musllinux_1_2-x86_64-deps-image:
name: "musllinux_1_2-x86_64-deps-image"
if: "needs.filter-relevant-changes.outputs.musllinux_1_2_x86_64_image_changed == 'true'"
needs: "filter-relevant-changes"
runs-on: "ubuntu-24.04"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/clp-core-build-containers"
env:
OS_NAME: "musllinux_1_2-x86_64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
docker_context: "components/core"
docker_file: "components/core/tools/docker-images/clp-env-base-${{env.OS_NAME}}\
/Dockerfile"
push_deps_image: >-
${{github.event_name != 'pull_request' && github.ref == 'refs/heads/main'}}
token: "${{secrets.GITHUB_TOKEN}}"

ubuntu-jammy-deps-image:
name: "ubuntu-jammy-deps-image"
if: "needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'true'"
Expand Down Expand Up @@ -186,6 +318,170 @@ jobs:
--build-dir /mnt/repo/components/core/build
--num-jobs $(getconf _NPROCESSORS_ONLN)

manylinux_2_28-aarch64-binaries:
# Run if the ancestor jobs succeeded OR they were skipped and clp was changed.
if: >-
success()
|| (!cancelled() && !failure() && needs.filter-relevant-changes.outputs.clp_changed == 'true')
needs:
- "manylinux_2_28-aarch64-deps-image"
- "filter-relevant-changes"
strategy:
matrix:
use_shared_libs: [true, false]
name: >-
manylinux_2_28-aarch64-${{matrix.use_shared_libs == true && 'dynamic' ||
'static'}}-linked-bins
continue-on-error: true
runs-on: "ubuntu-24.04-arm"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/run-on-image"
env:
OS_NAME: "manylinux_2_28-aarch64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
use_published_image: >-
${{needs.filter-relevant-changes.outputs.manylinux_2_28_aarch64_image_changed == 'false'
|| (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}}
run_command: >-
CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core
&& python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py
${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}}
--source-dir /mnt/repo/components/core
--build-dir /mnt/repo/components/core/build
--num-jobs $(getconf _NPROCESSORS_ONLN)

manylinux_2_28-x86_64-binaries:
# Run if the ancestor jobs succeeded OR they were skipped and clp was changed.
if: >-
success()
|| (!cancelled() && !failure() && needs.filter-relevant-changes.outputs.clp_changed == 'true')
needs:
- "manylinux_2_28-x86_64-deps-image"
- "filter-relevant-changes"
strategy:
matrix:
use_shared_libs: [true, false]
name: >-
manylinux_2_28-x86_64-${{matrix.use_shared_libs == true && 'dynamic' ||
'static'}}-linked-bins
continue-on-error: true
runs-on: "ubuntu-24.04"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/run-on-image"
env:
OS_NAME: "manylinux_2_28-x86_64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
use_published_image: >-
${{needs.filter-relevant-changes.outputs.manylinux_2_28_x86_64_image_changed == 'false'
|| (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}}
run_command: >-
CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core
&& python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py
${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}}
--source-dir /mnt/repo/components/core
--build-dir /mnt/repo/components/core/build
--num-jobs $(getconf _NPROCESSORS_ONLN)

musllinux_1_2-aarch64-binaries:
# Run if the ancestor jobs succeeded OR they were skipped and clp was changed.
if: >-
success()
|| (!cancelled() && !failure() && needs.filter-relevant-changes.outputs.clp_changed == 'true')
needs:
- "musllinux_1_2-aarch64-deps-image"
- "filter-relevant-changes"
strategy:
matrix:
use_shared_libs: [true, false]
name: >-
musllinux_1_2-aarch64-${{matrix.use_shared_libs == true && 'dynamic' ||
'static'}}-linked-bins
continue-on-error: true
runs-on: "ubuntu-24.04-arm"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/run-on-image"
env:
OS_NAME: "musllinux_1_2-aarch64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
use_published_image: >-
${{needs.filter-relevant-changes.outputs.musllinux_1_2_aarch64_image_changed == 'false'
|| (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}}
run_command: >-
CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core
&& python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py
${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}}
--source-dir /mnt/repo/components/core
--build-dir /mnt/repo/components/core/build
--num-jobs $(getconf _NPROCESSORS_ONLN)

musllinux_1_2-x86_64-binaries:
# Run if the ancestor jobs succeeded OR they were skipped and clp was changed.
if: >-
success()
|| (!cancelled() && !failure() && needs.filter-relevant-changes.outputs.clp_changed == 'true')
needs:
- "musllinux_1_2-x86_64-deps-image"
- "filter-relevant-changes"
strategy:
matrix:
use_shared_libs: [true, false]
name: >-
musllinux_1_2-x86_64-${{matrix.use_shared_libs == true && 'dynamic' ||
'static'}}-linked-bins
continue-on-error: true
runs-on: "ubuntu-24.04"
steps:
- uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683"
with:
submodules: "recursive"

- name: "Work around actions/runner-images/issues/6775"
run: "chown $(id -u):$(id -g) -R ."
shell: "bash"

- uses: "./.github/actions/run-on-image"
env:
OS_NAME: "musllinux_1_2-x86_64"
with:
image_name: "${{env.DEPS_IMAGE_NAME_PREFIX}}${{env.OS_NAME}}"
use_published_image: >-
${{needs.filter-relevant-changes.outputs.musllinux_1_2_x86_64_image_changed == 'false'
|| (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}}
run_command: >-
CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core
&& python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py
${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}}
--source-dir /mnt/repo/components/core
--build-dir /mnt/repo/components/core/build
--num-jobs $(getconf _NPROCESSORS_ONLN)

ubuntu-jammy-binaries:
# Run if the ancestor jobs succeeded OR they were skipped and clp was changed.
if: >-
Expand Down
4 changes: 4 additions & 0 deletions docs/src/dev-guide/components-core/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ A handful of packages and libraries are required to build CLP. There are two opt
See the relevant README for your OS:

* [CentOS Stream 9](centos-stream-9-deps-install)
* [Manylinux 2.28](manylinux-2-28-deps-install)
* [Musllinux 1.2](musllinux-1-2-deps-install)
* [macOS](macos-deps-install)
* [Ubuntu 22.04](ubuntu-jammy-deps-install)

Expand Down Expand Up @@ -114,6 +116,8 @@ the relevant paths on your machine.
:hidden:

centos-stream-9-deps-install
manylinux-2-28-deps-install
musllinux-1-2-deps-install
macos-deps-install
ubuntu-jammy-deps-install
regex-utils
Expand Down
24 changes: 24 additions & 0 deletions docs/src/dev-guide/components-core/manylinux-2-28-deps-install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Manylinux 2.28

To install the dependencies required to build clp-core, follow the steps below.
These same steps are used by our Docker containers.

## Installing dependencies

:::{caution}
Before you run any commands below, you should review the scripts to ensure they will not install
any dependencies or apply any configurations that you don't expect.
:::

To install all dependencies, run the following with elevated privileges:

:::{note}
The packages built from source ([install-packages-from-source.sh][src-install-script]) are installed
without using a packager. So if you ever need to uninstall them, you will need to do so manually.
:::

```shell
components/core/tools/scripts/lib_install/manylinux_2_28/install-all.sh
```

[src-install-script]: https://github.com/y-scope/clp/blob/main/components/core/tools/scripts/lib_install/manylinux_2_28/install-packages-from-source.sh
24 changes: 24 additions & 0 deletions docs/src/dev-guide/components-core/musllinux-1-2-deps-install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Musllinux 1.2

To install the dependencies required to build clp-core, follow the steps below.
These same steps are used by our Docker containers.

## Installing dependencies

:::{caution}
Before you run any commands below, you should review the scripts to ensure they will not install
any dependencies or apply any configurations that you don't expect.
:::

To install all dependencies, run the following with elevated privileges:

:::{note}
The packages built from source ([install-packages-from-source.sh][src-install-script]) are installed
without using a packager. So if you ever need to uninstall them, you will need to do so manually.
:::

```shell
components/core/tools/scripts/lib_install/musllinux_1_2/install-all.sh
```

[src-install-script]: https://github.com/y-scope/clp/blob/main/components/core/tools/scripts/lib_install/musllinux_1_2/install-packages-from-source.sh
Loading