ci: remove --keep-stage flag (#49467)
logs are now copied from the install dir
This commit is contained in:
parent
e35c5ec104
commit
f32b5e572a
@ -6,6 +6,7 @@
|
|||||||
import codecs
|
import codecs
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import pathlib
|
||||||
import re
|
import re
|
||||||
import shutil
|
import shutil
|
||||||
import stat
|
import stat
|
||||||
@ -23,7 +24,6 @@
|
|||||||
|
|
||||||
import spack
|
import spack
|
||||||
import spack.binary_distribution as bindist
|
import spack.binary_distribution as bindist
|
||||||
import spack.builder
|
|
||||||
import spack.concretize
|
import spack.concretize
|
||||||
import spack.config as cfg
|
import spack.config as cfg
|
||||||
import spack.environment as ev
|
import spack.environment as ev
|
||||||
@ -33,6 +33,7 @@
|
|||||||
import spack.paths
|
import spack.paths
|
||||||
import spack.repo
|
import spack.repo
|
||||||
import spack.spec
|
import spack.spec
|
||||||
|
import spack.store
|
||||||
import spack.util.git
|
import spack.util.git
|
||||||
import spack.util.gpg as gpg_util
|
import spack.util.gpg as gpg_util
|
||||||
import spack.util.spack_yaml as syaml
|
import spack.util.spack_yaml as syaml
|
||||||
@ -581,22 +582,25 @@ def copy_stage_logs_to_artifacts(job_spec: spack.spec.Spec, job_log_dir: str) ->
|
|||||||
tty.debug(f"job spec: {job_spec}")
|
tty.debug(f"job spec: {job_spec}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pkg_cls = spack.repo.PATH.get_pkg_class(job_spec.name)
|
package_metadata_root = pathlib.Path(spack.store.STORE.layout.metadata_path(job_spec))
|
||||||
job_pkg = pkg_cls(job_spec)
|
except spack.error.SpackError as e:
|
||||||
tty.debug(f"job package: {job_pkg}")
|
tty.error(f"Cannot copy logs: {str(e)}")
|
||||||
except AssertionError:
|
|
||||||
msg = f"Cannot copy stage logs: job spec ({job_spec}) must be concrete"
|
|
||||||
tty.error(msg)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
stage_dir = job_pkg.stage.path
|
# Get the package's archived files
|
||||||
tty.debug(f"stage dir: {stage_dir}")
|
archive_files = []
|
||||||
for file in [
|
archive_root = package_metadata_root / "archived-files"
|
||||||
job_pkg.log_path,
|
if archive_root.is_dir():
|
||||||
job_pkg.env_mods_path,
|
archive_files = [f for f in archive_root.rglob("*") if f.is_file()]
|
||||||
*spack.builder.create(job_pkg).archive_files,
|
else:
|
||||||
]:
|
msg = "Cannot copy package archived files: archived-files must be a directory"
|
||||||
copy_files_to_artifacts(file, job_log_dir)
|
tty.warn(msg)
|
||||||
|
|
||||||
|
build_log_zipped = package_metadata_root / "spack-build-out.txt.gz"
|
||||||
|
build_env_mods = package_metadata_root / "spack-build-env.txt"
|
||||||
|
|
||||||
|
for f in [build_log_zipped, build_env_mods, *archive_files]:
|
||||||
|
copy_files_to_artifacts(str(f), job_log_dir)
|
||||||
|
|
||||||
|
|
||||||
def copy_test_logs_to_artifacts(test_stage, job_test_dir):
|
def copy_test_logs_to_artifacts(test_stage, job_test_dir):
|
||||||
|
@ -427,7 +427,7 @@ def ci_rebuild(args):
|
|||||||
|
|
||||||
# Arguments when installing the root from sources
|
# Arguments when installing the root from sources
|
||||||
deps_install_args = install_args + ["--only=dependencies"]
|
deps_install_args = install_args + ["--only=dependencies"]
|
||||||
root_install_args = install_args + ["--keep-stage", "--only=package"]
|
root_install_args = install_args + ["--only=package"]
|
||||||
|
|
||||||
if cdash_handler:
|
if cdash_handler:
|
||||||
# Add additional arguments to `spack install` for CDash reporting.
|
# Add additional arguments to `spack install` for CDash reporting.
|
||||||
@ -464,8 +464,7 @@ def ci_rebuild(args):
|
|||||||
job_spec.to_dict(hash=ht.dag_hash),
|
job_spec.to_dict(hash=ht.dag_hash),
|
||||||
)
|
)
|
||||||
|
|
||||||
# We generated the "spack install ..." command to "--keep-stage", copy
|
# Copy logs and archived files from the install metadata (.spack) directory to artifacts now
|
||||||
# any logs from the staging directory to artifacts now
|
|
||||||
spack_ci.copy_stage_logs_to_artifacts(job_spec, job_log_dir)
|
spack_ci.copy_stage_logs_to_artifacts(job_spec, job_log_dir)
|
||||||
|
|
||||||
# If the installation succeeded and we're running stand-alone tests for
|
# If the installation succeeded and we're running stand-alone tests for
|
||||||
|
@ -867,7 +867,7 @@ def test_push_to_build_cache(
|
|||||||
logs_dir = scratch / "logs_dir"
|
logs_dir = scratch / "logs_dir"
|
||||||
logs_dir.mkdir()
|
logs_dir.mkdir()
|
||||||
ci.copy_stage_logs_to_artifacts(concrete_spec, str(logs_dir))
|
ci.copy_stage_logs_to_artifacts(concrete_spec, str(logs_dir))
|
||||||
assert "spack-build-out.txt" in os.listdir(logs_dir)
|
assert "spack-build-out.txt.gz" in os.listdir(logs_dir)
|
||||||
|
|
||||||
dl_dir = scratch / "download_dir"
|
dl_dir = scratch / "download_dir"
|
||||||
buildcache_cmd("download", "--spec-file", json_path, "--path", str(dl_dir))
|
buildcache_cmd("download", "--spec-file", json_path, "--path", str(dl_dir))
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
config:
|
config:
|
||||||
build_stage:
|
|
||||||
- $spack/tmp/stage
|
|
||||||
install_tree:
|
install_tree:
|
||||||
root: $spack/opt/spack
|
root: $spack/opt/spack
|
||||||
|
@ -8,13 +8,5 @@ ci:
|
|||||||
tags: [spack]
|
tags: [spack]
|
||||||
- build-job:
|
- build-job:
|
||||||
tags: [ "macos-sequoia", "apple-clang-16", "aarch64-macos" ]
|
tags: [ "macos-sequoia", "apple-clang-16", "aarch64-macos" ]
|
||||||
|
|
||||||
# after_script intended to ensure all stage files are properly cleaned up,
|
|
||||||
# including those that may have been created as read-only by `go mod`
|
|
||||||
# as part of installation of a golang package
|
|
||||||
# see: https://github.com/spack/spack/issues/49147
|
|
||||||
after_script-:
|
|
||||||
- - if [[ -d tmp ]] ; then chmod -R u+w tmp ; else echo tmp not found ; fi
|
|
||||||
- ./bin/spack clean -a
|
|
||||||
- build-job-remove:
|
- build-job-remove:
|
||||||
image:: macos-run-on-metal
|
image:: macos-run-on-metal
|
||||||
|
Loading…
Reference in New Issue
Block a user