spack/share/spack
Scott Wittenburg ef0a555ca2
pipelines: support testing PRs from forks (#19248)
This change makes improvements to the `spack ci rebuild` command
which supports running gitlab pipelines on PRs from forks.  Much
of this has to do with making sure we can run without the secrets
previously required for running gitlab pipelines (e.g signing key,
aws credentials, etc).  Specific improvements in this PR:

Check if spack has precisely one signing key, and use that information
as an additional constraint on whether or not we should attempt to sign
the binary package we create.

Also, if spack does not have at least one public key, add the install
option "--no-check-signature"

If we are running a pipeline without any profile or environment
variables allowing us to push to S3, the pipeline could still
successfully create a buildcache in the artifacts and move on.  So
just print a message and move on if pushing either the buildcache
entry or cdash id file to the remote mirror fails.

When we attempt to generate a pacakge or gpg key index on an S3
mirror, and there is nothing to index, just print a warning and
exit gracefully rather than throw an exception.

Support the use of PR-specific mirrors for temporary binary pkg
storage.  This will allow quality-of-life improvement for developers,
providing a place to store binaries over the lifetime of a PR, so
that they must only wait for packages to rebuild from source when
they push a new commit that causes it to be necessary.

Replace two-pass install with a single pass and the new option:
 --require-full-hash-match.  Doing this also removes the need to
save a copy of the spack.yaml to be copied over the one spack
rewrites in between the two spack install passes.

Work around a mirror configuration issue caused by using
spack.util.executable to do the package installation.

* Update pipeline trigger jobs for PRs from forks

Moving to PRs from forks relies on external synchronization script
pushing special branch names.  Also secrets will only live on the
spack mirror project, and must be propagated to the E4S project via
variables on the trigger jobs.

When this change is merged, pipelines will not run until we update
the "Custom CI configuration path" in the Gitlab CI Settings, as the
name of the file has changed to better reflect its purpose.

* Arg to MirrorCollection is used exclusively, so add main remote mirror to it

* Compute full hash less frequently

* Add tests covering index generation error handling code
2020-11-16 15:16:24 -08:00
..
bash Added alias and bash completion for spacktivate (#16472) 2020-05-13 12:02:38 -06:00
csh csh: don't require SPACK_ROOT for sourcing setup-env.csh (#18225) 2020-10-23 18:54:34 -07:00
docker Make the largest layer of the docker image cacheable (#17553) 2020-07-16 13:15:04 -04:00
docs/docker/module-file-tutorial autotools: remove FORCE_UNSAFE_CONFIGURE from docs, commands, code (#16145) 2020-04-20 08:32:03 -07:00
gitlab pipelines: support testing PRs from forks (#19248) 2020-11-16 15:16:24 -08:00
keys add tutorial public key to share/spack/keys dir (#17684) 2020-07-23 14:35:25 -07:00
logo add artisanal handcrafted SVG Spack logo. (#6165) 2017-11-06 22:42:16 -08:00
qa sbang: use bashcov in sbang on Linux 2020-10-27 13:59:46 -07:00
templates spack containerize: added --fail-fast argument to containerize install. (#17533) 2020-07-15 11:13:04 +02:00
setup-env.csh csh: don't require SPACK_ROOT for sourcing setup-env.csh (#18225) 2020-10-23 18:54:34 -07:00
setup-env.fish Bugfix for fish support: overly zealous arg matching (#18528) 2020-09-10 10:01:44 -05:00
setup-env.sh shell support: make which spack output intelligible (#19256) 2020-10-21 17:04:42 -07:00
setup-tutorial-env.sh tutorial: Add boto3 installation to setup script (#17722) 2020-07-27 16:55:33 -07:00
spack-completion.bash commands: add spack tutorial command (#19808) 2020-11-09 12:47:08 +01:00