Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ if [ "${deploy}" == "true" ] && [ -z "${uri}" ]; then
exit 1
fi

# Ensure we use develop build cache
spack compiler find
spack mirror add develop https://binaries.spack.io/develop

# Run pakages for the specs provided, with deploy or not
if [ "${deploy}" == "true" ]; then
pakages build --builder "${builder}" "${package}" --push "${uri}"
Expand Down
8 changes: 5 additions & 3 deletions pakages/spack/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,9 @@ def build(self, packages, cache_dir=None, key=None, registry=None, tag=None):
settings=self.settings,
)

# Install all packages, and also generate sboms
specs = self.install(packages, registry=registry, tag=tag)
# Install all packages, and also generate sboms.
# A build never uses the gh-packages cache
specs = self.install(packages, registry=registry, tag=tag, use_cache=False)

# TODO how can we attach the sbom to the package (aside from being in archive?)
cache.create(specs, key=key)
Expand Down Expand Up @@ -117,7 +118,7 @@ def add_repository(self, path):
repos.insert(0, path)
spack.config.set("repos", repos)

def install(self, packages, registry=None, tag=None):
def install(self, packages, registry=None, tag=None, use_cache=False):
"""
Install one or more packages.

Expand All @@ -137,6 +138,7 @@ def install(self, packages, registry=None, tag=None):
# Do install - this dumps out matching from build cache first
spec.package.do_install(
force=True,
use_cache=use_cache,
registries=registries,
tag=tag or self.settings.default_tag,
)
Expand Down
13 changes: 8 additions & 5 deletions pakages/spack/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ def do_install(self, **kwargs):

dev_path_var = self.spec.variants.get("dev_path", None)
registries = kwargs.get("registries")
use_cache = kwargs.get('use_cache', False)
tag = kwargs.get("tag")

if dev_path_var:
Expand Down Expand Up @@ -202,11 +203,14 @@ def prepare_cache(self, registries=None, tag=None):
for br in self.build_requests:
br._active_deptypes = ["link", "run", "build"]

builder = PakInstaller([(self, kwargs)])

# Download what we can find from the GitHub cache
builder.prepopulate_tasks()
builder.prepare_cache(registries, tag)
if use_cache:
builder = PakInstaller([(self, kwargs)])
builder.prepopulate_tasks()
builder.prepare_cache(registries, tag)
else:
kwargs['use_cache'] = True
builder = PackageInstaller([(self, kwargs)])
builder.install()

# If successful, generate an sbom
Expand All @@ -216,7 +220,6 @@ def prepare_cache(self, registries=None, tag=None):
sbom_file = os.path.join(meta_dir, "sbom.json")
pakages.utils.write_json(sbom, sbom_file)


def extract_tarball(spec, filename):
"""
extract binary tarball for given package into install area
Expand Down