-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
We may want to consider our own binpkg cache for future to speed things up, in addition to the ones provided by Gentoo's own binhost. Signed-off-by: Sam James <[email protected]> Signed-off-by: Eli Schwartz <[email protected]>
- Loading branch information
1 parent
87ba248
commit fe8123b
Showing
7 changed files
with
167 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"base_image": "gentoo/stage3:desktop", | ||
"env": { | ||
"CI": "1", | ||
"MESON_CI_JOBNAME": "linux-gentoo-gcc", | ||
"SKIP_STATIC_BOOST": "1" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
#!/bin/bash | ||
set -e | ||
|
||
source /ci/common.sh | ||
|
||
# We divide the package list into 'pkgs_stable' and 'pkgs_latest'. The trade-off | ||
# is that latest stuff may not have a binpkg available, but of course we get | ||
# better test coverage with the bleeding edge then. | ||
pkgs_stable=( | ||
app-portage/portage-utils | ||
dev-build/cmake | ||
dev-vcs/git | ||
|
||
# language support | ||
dev-python/cython | ||
dev-python/lxml | ||
dev-python/pip | ||
virtual/fortran | ||
dev-lang/nasm | ||
dev-lang/vala | ||
dev-lang/python:2.7 | ||
dev-java/openjdk-bin | ||
# requires rustfmt, bin rebuild (TODO: file bug) | ||
#dev-util/bindgen | ||
|
||
dev-libs/elfutils | ||
dev-libs/gobject-introspection | ||
dev-util/itstool | ||
dev-libs/protobuf | ||
|
||
# custom deps | ||
net-libs/libpcap | ||
dev-util/gtk-doc | ||
media-libs/libwmf | ||
sys-cluster/openmpi | ||
sci-libs/netcdf | ||
media-libs/libsdl2 | ||
dev-cpp/gtest | ||
sci-libs/hdf5 | ||
dev-qt/linguist-tools | ||
sys-devel/llvm | ||
# qt6 unstable | ||
#dev-qt/qttools | ||
|
||
# misc | ||
app-admin/sudo | ||
app-text/doxygen | ||
sys-apps/fakeroot | ||
sys-devel/bison | ||
sys-devel/gettext | ||
|
||
# TODO: vulkan-validation-layers | ||
# TODO: cuda | ||
#dev-cpp/gtkmm:3.0 | ||
#dev-java/openjdk-bin:8 | ||
#dev-lang/go | ||
#dev-lang/mono | ||
#dev-lang/python | ||
#dev-lang/rust-bin | ||
#dev-libs/wayland | ||
#dev-libs/wayland-protocols | ||
#dev-python/pypy3 | ||
#dev-qt/qtbase:6 | ||
#dev-qt/qtcore:5 | ||
#dev-qt/qttools:6 | ||
#dev-vcs/mercurial | ||
#gnustep-base/gnustep-base | ||
#media-gfx/graphviz | ||
#sci-libs/netcdf-fortran | ||
#sys-devel/clang | ||
#x11-libs/gtk+:3 | ||
) | ||
pkgs_latest=( | ||
# ~arch boost needed for py3.12 for now (needs 1.84) | ||
dev-build/b2 | ||
dev-libs/boost | ||
|
||
dev-build/autoconf | ||
dev-build/automake | ||
|
||
# ~arch only | ||
sci-libs/scalapack | ||
) | ||
pkgs=( "${pkgs_stable[@]}" "${pkgs_latest[@]}" ) | ||
|
||
emerge-webrsync --quiet | ||
|
||
# This means we can't really take advantage of the binhost but a lot of the | ||
# advantages of using Gentoo in CI come from the bleeding edge side. | ||
# With full ~arch, we don't get binpkgs for much at all. Instead, let's just | ||
# do ~arch for the test deps we have. | ||
#echo 'ACCEPT_KEYWORDS="~amd64"' >> /etc/portage/make.conf | ||
|
||
printf "%s\n" ${pkgs[@]} >> /var/lib/portage/world | ||
printf "%s\n" ${pkgs_latest[@]} >> /etc/portage/package.accept_keywords/meson | ||
cat /etc/portage/package.accept_keywords/meson | ||
|
||
cat <<-EOF > /etc/portage/package.accept_keywords/misc | ||
dev-lang/python-exec | ||
dev-lang/python | ||
EOF | ||
|
||
mkdir /etc/portage/binrepos.conf || true | ||
mkdir /etc/portage/profile || true | ||
cat <<-EOF > /etc/portage/package.use/ci | ||
dev-cpp/gtkmm X | ||
dev-libs/boost python | ||
sys-libs/zlib static-libs | ||
EOF | ||
|
||
cat <<-EOF >> /etc/portage/make.conf | ||
EMERGE_DEFAULT_OPTS="--complete-graph --quiet=y --quiet-build=y --jobs=$(nproc) --load-average=$(nproc)" | ||
EMERGE_DEFAULT_OPTS="\${EMERGE_DEFAULT_OPTS} --autounmask-write --autounmask-continue --autounmask-keep-keywords=y --autounmask-use=y" | ||
EMERGE_DEFAULT_OPTS="\${EMERGE_DEFAULT_OPTS} --binpkg-respect-use=y" | ||
FEATURES="\${FEATURES} parallel-fetch parallel-install -merge-sync" | ||
FEATURES="\${FEATURES} getbinpkg binpkg-request-signature" | ||
# These don't work in Docker, so reduce noise in logs | ||
FEATURES="\${FEATURES} -ipc-sandbox -network-sandbox -pid-sandbox" | ||
EOF | ||
|
||
# TODO: Enable all Pythons / add multiple jobs with diff. Python impls? | ||
#echo '*/* PYTHON_TARGETS: python3_10 python3_11 python3_12' >> /etc/portage/package.use/python | ||
echo '*/* PYTHON_TARGETS: python3_12' >> /etc/portage/package.use/python | ||
cat <<-EOF >> /etc/portage/profile/use.mask | ||
-python_targets_python3_12 | ||
-python_single_target_python3_12 | ||
EOF | ||
cat <<-EOF >> /etc/portage/profile/use.stable.mask | ||
-python_targets_python3_12 | ||
-python_single_target_python3_12 | ||
EOF | ||
|
||
echo 'dev-lang/python ensurepip' >> /etc/portage/package.use/python | ||
|
||
# Silly mono circular dep | ||
#USE=minimal emerge --oneshot dev-lang/mono | ||
|
||
# If we don't want to do this, we could use the 'portage' container instead | ||
# so the stage3/repo match. | ||
emerge --update --deep --changed-use @world | ||
qlop -d 'yesterday' | ||
|
||
env-update && . /etc/profile | ||
|
||
rm /usr/lib/python/EXTERNALLY-MANAGED | ||
python3 -m ensurepip | ||
install_python_packages | ||
python3 -m pip install "${base_python_pkgs[@]}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters