-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create pkgci.yml and pkgci_build_packages.yml. #589
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Just two minor things.
elif [[ "${ARCH}" == "aarch64" ]]; then | ||
# Latest version of ccache is not released for arm64, built it | ||
git clone --depth 1 --branch "v${CCACHE_VERSION}" https://github.com/ccache/ccache.git | ||
mkdir -p ccache/build && cd "$_" | ||
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release .. | ||
ninja | ||
cp ccache /usr/bin/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need aarch64
support? We probably can just install ccache for x86_64
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might at some point. I've written this code a few times before, most recently at https://github.com/iree-org/base-docker-images/blob/main/build_tools/install_ccache.sh, and supporting both architectures isn't much extra code. Better to write cross-platform/architecture code whenever possible instead of artificially limiting ourselves.
I plan on updating https://github.com/nod-ai/base-docker-images/blob/main/dockerfiles/manylinux_x86_64.Dockerfile to more closely match https://github.com/iree-org/base-docker-images/blob/main/dockerfiles/manylinux_x86_64.Dockerfile, as part of upgrading from manylinux2014 to manylinux_2_28:
shark-ai/shortfin/build_tools/build_linux_package.sh
Lines 39 to 43 in 779adc3
# TODO(#130): Update to manylinux_2_28, upstream or a fork | |
# * upstream uses a version of gcc that has build warnings/errors | |
# * https://github.com/nod-ai/base-docker-images is a bit out of date but can include a recent clang | |
# MANYLINUX_DOCKER_IMAGE="${MANYLINUX_DOCKER_IMAGE:-quay.io/pypa/manylinux_2_28_${ARCH}:latest}" | |
MANYLINUX_DOCKER_IMAGE="${MANYLINUX_DOCKER_IMAGE:-quay.io/pypa/manylinux2014_${ARCH}:latest}" |
Co-authored-by: Marius Brehler <marius.brehler@gmail.com>
Next steps with this:
|
Picking this back up now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Extremely excited for every bit of CI time reduction.
@@ -75,6 +89,23 @@ function run_in_docker() { | |||
echo "Using python versions: ${PYTHON_VERSIONS}" | |||
local orig_path="${PATH}" | |||
|
|||
# Configure caching. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
YES!
Progress on #584.
Summary
.github/workflows/pkgci_build_packages.yml
that buildssharktank
,shortfin
, andshark-ai
dev packages and upload them to GitHub artifacts..github/workflows/pkgci.yml
that just runspkgci_build_packages.yml
for now. Other jobs can be migrated to depend on that job and use/test the packages.Other details
ubuntu-24.04
runners (test logs here).SHORTFIN_ENABLE_TRACING
setting through scripts / Docker. For dev packages we can keep tracing disabled (unless there is a clear reason to add it). If the cache hit rate improves then we might be able to enable tracing for low cost.cache: "pip"
frombuild_packages.yml
since it is counterproductive for a job that only installspackaging
. Multiple workflows seem to be writing to the same cache and I see no way to customize the cache key. That, or the cache is unnecessarily large and we just need to prune it manually.