summaryrefslogtreecommitdiff
path: root/.github/workflows
AgeCommit message (Collapse)AuthorFilesLines
2021-12-17Fix building container images (#28063)Massimiliano Culpo1-0/+2
* Fix building container images Patchelf is bootstrapped from sources, so we cannot disable that mechanism until a finer selection is possible in the configuration. * Build on changes to the Dockerfile * Don't login to Dockerhub on PRs
2021-12-13Add a CI job to audit all the packages in the built-in repository (#27945)Massimiliano Culpo1-0/+29
* Add a CI job to audit all the packages in the built-in repository * flecsi: fixed typo for dependency on legion * py-pythonqwt: fix a typo in variant name * sollve: removed a conflict with a non-existing variant * acts: fixed use of wrong variant in dd4hep Also removed duplicated variant declaration in dd4hep * aoflagger: update variant of a dependency Issues introduced indirectly in #22925 * camellia: removed unused variant Issue introduced indirectly in #26150 * cbtf-*: remove cti variants and dependency on mrnet+cti Issue introduced in #14178 * flecsale: update variants to match flecsi Issue introduced in #11679 * grnboost: fixed issue with non-existing variant in a dependency This package possibly never worked since #8763 * nalu: fixed issue with non-existing variant in a dependency * open-iscsi: fixed issue with non-existing variant in a dependency * openspeedshop-*: remove use of non-existing mrnet+cti variant * percept: fixed issue with non-existing variant in a dependency * phyluce: fixed issue with non-existing variant in a dependency Issue introduced in #12952 * phyluce: fixed issue with non-existing variant in a dependency Issue introduced in #22340
2021-11-26Use bash in setup_git.sh (#27676)Harmen Stoppels1-1/+1
2021-11-26Bootstrap patchelf like GnuPG (#27532)Massimiliano Culpo1-0/+28
Remove a custom bootstrapping procedure to use spack.bootstrap instead Modifications: * Reference count the bootstrap context manager * Avoid SpackCommand to make the bootstrapping procedure more transparent * Put back requirement on patchelf being in PATH for unit tests * Add an e2e test to check bootstrapping patchelf
2021-11-23Remove support for Python 2.6 (#27256)Massimiliano Culpo1-35/+2
Modifications: - [x] Removed `centos:6` unit test, adjusted vermin checks - [x] Removed backport of `collections.OrderedDict` - [x] Removed backport of `functools.total_ordering` - [x] Removed Python 2.6 specific skip markers in unit tests - [x] Fixed a few minor Python 2.6 related TODOs in code Updating the vendored dependencies will be done in separate PRs
2021-11-18Allow recent pytest versions to be used with Spack (#25371)Massimiliano Culpo1-4/+4
Currently Spack vendors `pytest` at a version which is three major versions behind the latest (3.2.5 vs. 6.2.4). We do that since v3.2.5 is the latest version supporting Python 2.6. Remaining so much behind the currently supported versions though might introduce some incompatibilities and is surely a technical debt. This PR modifies Spack to: - Use the vendored `pytest@3.2.5` only as a fallback solution, if the Python interpreter used for Spack doesn't provide a newer one - Be able to parse `pytest --collect-only` in all the different output formats from v3.2.5 to v6.2.4 and use it consistently for `spack unit-test --list-*` - Updating the unit tests in Github Actions to use a more recent `pytest` version
2021-11-18ci: run style unit tests only if we target develop (#27472)Harmen Stoppels2-5/+6
Some tests assume the base branch is develop, but this branch may not have been checked out.
2021-11-09Allow triggering the "Bootstrap" workflow manually (#27298)Massimiliano Culpo1-0/+2
2021-11-08OpenSUSE: try to apply workaround to avoid CI error (#27275)Massimiliano Culpo1-1/+2
2021-11-02Bootstrap GnuPG (#24003)Massimiliano Culpo1-5/+95
* GnuPG: allow bootstrapping from buildcache and sources * Add a test to bootstrap GnuPG from binaries * Disable bootstrapping in tests * Add e2e test to bootstrap GnuPG from sources on Ubuntu * Add e2e test to bootstrap GnuPG on macOS
2021-11-03build(deps): bump actions/checkout from 2.3.5 to 2.4.0 (#27179)dependabot[bot]4-18/+18
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.5 to 2.4.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/1e204e9a9253d643386038d443f96446fa156a97...ec3a7ce113134d7a93b817d10a8272cb61118579) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-02Fix GitHub Action's container build (#27143)Massimiliano Culpo1-1/+2
#26538 introduced a typo that causes the Docker image build to fail.
2021-11-02build(deps): bump actions/checkout from 2.3.4 to 2.3.5 (#27135)dependabot[bot]4-18/+18
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.3.5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f...1e204e9a9253d643386038d443f96446fa156a97) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-01Pin actions to a commit sha instead of tag (#26538)Harmen Stoppels4-39/+39
2021-10-28Remove failing macOS test (#27009)Harmen Stoppels1-14/+0
2021-10-27Remove documentation tests from GitHub Actions (#26981)Massimiliano Culpo1-26/+6
We moved documentation tests to readthedocs since a while, so remove the one on GitHub.
2021-10-22Remove hard-coded repository in centos6 unit test (#26885)Harmen Stoppels1-4/+4
This makes it easier to run tests in a fork.
2021-10-05Set explicitly write permission for packages (#26539)Massimiliano Culpo1-1/+3
2021-10-04Build ppc64le docker images (#26442)Massimiliano Culpo1-5/+5
* Update archspec * Add ppc64le to docker images
2021-09-30Build container images on Github Actions and push to multiple registries ↵Massimiliano Culpo1-11/+27
(#26247) Modifications: - Modify the workflow to build container images without pushing when the workflow file itself is modified - Strip the leading ghcr.io/spack/ from env.container env.versioned to prepare pushing to multiple registries - Fixed CentOS 7 and Amazon Linux builds - Login and push to Docker Hub as well as Github Action - Add a badge to README.md with the status of docker images
2021-09-24Use Leap instead of Tumbleweed for e2e bootstrapping test (#26205)Massimiliano Culpo1-1/+1
Tumbleweed has been broken for a couple of days. The attempt to fix it in #26170 didn't really work. Let's try to move to a more stable release series for OpenSuse.
2021-09-23Pin opensuse image in bootstrap tests (#26170)Harmen Stoppels1-1/+1
Currently zypper in opensuse containers throws 'not permitted' Temporarily fix the digest until they fixed their upstream package manager issues
2021-09-15build(deps): bump codecov/codecov-action from 2.0.3 to 2.1.0 (#25925)dependabot[bot]1-4/+4
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.3...v2.1.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-14Make clingo the default solver (#25502)Massimiliano Culpo1-2/+5
Modifications: - [x] Change `defaults/config.yaml` - [x] Add a fix for bootstrapping patchelf from sources if `compilers.yaml` is empty - [x] Make `SPACK_TEST_SOLVER=clingo` the default for unit-tests - [x] Fix package failures in the e4s pipeline Caveats: 1. CentOS 6 still uses the original concretizer as it can't connect to the buildcache due to issues with `ssl` (bootstrapping from sources requires a C++14 capable compiler) 1. I had to update the image tag for GitlabCI in e699f14. 1. libtool v2.4.2 has been deprecated and other packages received some update
2021-08-30build(deps): bump codecov/codecov-action from 2.0.2 to 2.0.3 (#25594)dependabot[bot]1-4/+4
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-27Make `SpecBuildInterface` pickleable (#25628)Massimiliano Culpo1-0/+4
* Add a __reduce__ method to SpecBuildInterface This class was confusing pickle when being serialized, due to its scary nature of being an object that disguise as another type. * Add more MacOS tests, switch them to clingo * Fix condition syntax * Remove Python v3.6 and v3.9 with macOS
2021-08-23re2c: add versions up to v2.2 (#25500)Harmen Stoppels1-0/+1
2021-08-19Use kcov from official Ubuntu 20.04 repository (#25385)Massimiliano Culpo1-45/+3
* Ubuntu 20.04 provides kcov, so don't build from source * Use two undocumented options for kcov v3.8
2021-08-18Bootstrap clingo from binaries (#22720)Massimiliano Culpo2-6/+53
* Bootstrap clingo from binaries * Move information on clingo binaries to a JSON file * Add support to bootstrap on Cray Bootstrapping on Cray requires, at the moment, to swap the platform when looking for binaries - due to #22800. * Add SHA256 verification for bootstrapped software Use sha256 verification for binaries necessary to bootstrap the concretizer and gpg for signature verification * patchelf: use Spec._old_concretize() to bootstrap As noted in #24450 we may happen to need the concretizer when bootstrapping clingo. In that case only the old concretizer is available. * Add a schema for bootstrapping methods Two fields have been added to bootstrap.yaml: "sources" which lists the methods available for bootstrapping software "trusted" which records if a source is trusted or not A subcommand has been added to "spack bootstrap" to list the sources currently available. * Methods used for bootstrapping are configurable from bootstrap:sources The function that tries to ensure a given Python module is importable now tries bootstrapping methods in the same order as they are defined in `bootstrap.yaml` * Permit to trust/untrust bootstrapping methods * Add binary tests for MacOS, Ubuntu * Add documentation * Add a note on bash
2021-08-08Clean Up PR from Container BuilderAlec Scott1-9/+2
2021-08-07Fix GHCR Username in Container Builder (#25301)Alec Scott1-1/+1
2021-08-06Add New Build Containers Workflow (#24257)Alec Scott1-0/+79
This pull request adds a new workflow to build and deploy Spack Docker containers from GitHub Actions. In comparison with our current system where we use Dockerhub's CI to build our Docker containers, this workflow will allow us to now build for multiple architectures and deploy to multiple registries. (At the moment x86_64 and Arm64 because ppc64le is throwing an error within archspec.) As currently set up, the PR will build all of the current containers (minus Centos6 because those yum repositories are no longer available?) as both x86_64 and Arm64 variants. The workflow is currently setup to build and deploy containers nightly from develop as well as on tagged releases. The workflow will also build, but NOT deploy containers on a pull request for the purposes of testing this PR. At the moment it is setup to deploy the built containers to GitHub's Container Registry although, support for also uploading to Dockerhub/Quay can be included easily if we decide to keep releasing on Dockerhub/want to begin releasing on Quay.
2021-08-03Test bootstrapping in a workflow (#25138)Massimiliano Culpo1-0/+113
Add a workflow to test bootstrapping clingo on different platforms so that we can detect changes that break it. Compute `site_packages_dir` in `bootstrap.py` as it was before #24095, until we figure a better way to override that attribute.
2021-07-29Move build tests from GA to Gitlab (#25120)Massimiliano Culpo1-77/+0
Modifications: - Remove the "build tests" workflow from GitHub Actions - Setup a similar e2e test on Gitlab In this way we'll reduce load on GitHub Actions workflows and for e2e tests will benefit from the buildcache reuse granted by pipelines.
2021-07-27`spack style`: add `--root` option (#25085)Todd Gamblin1-1/+6
This adds a `--root` option so that `spack style` can check style for a spack instance other than its own. We also change the inner workings of `spack style` so that `--config FILE` (and similar options for the various tools) options are used. This ensures that when `spack style` runs, it always uses the config from the running spack, and does *not* pick up configuration from the external root. - [x] add `--root` option to `spack style` - [x] add `--config` (or similar) option when invoking style tools - [x] add a test that verifies we can check an external instance
2021-07-24`spack style`: automatically bootstrap dependenciesvsoch1-2/+1
This uses our bootstrapping logic to automatically install dependencies for `spack style`. Users should no longer have to pre-install all of the tools (`isort`, `mypy`, `black`, `flake8`). The command will do it for them. - [x] add logic to bootstrap specs with specific version requirements in `spack style` - [x] remove style tools from CI requirements (to ensure we test bootstrapping) - [x] rework dependencies for `mypy` and `py-typed-ast` - `py-typed-ast` needs to be a link dependency - it needs to be at 1.4.1 or higher to work with python 3.9 Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-07-24Bump codecov/action to v2.0.2 (#24983)Massimiliano Culpo1-5/+8
* build(deps): bump codecov/codecov-action from 1 to 2.0.1 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1 to 2.0.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v1...v2.0.1) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Update arguments to codecov action * Try to delete the symbolic link to root folder Hopefully this should get rid of the ELOOP error * Delete also for shell tests and MacOS * Bump to v2.0.2 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-09coverage: move config from `.coveragerc` to `pyproject.toml`Todd Gamblin1-4/+4
Getting rid of another top-level file. `coverage.py` has supported `pyproject.toml` since version 5.0, and all versions of coverage so far work with python 2.7. We just need to ensure that a version of coverage with the `toml` extra is installed in the test environment. I tested this with `coverage run`, `coverage report`, and `coverage html`.
2021-07-09mypy: move configuration to pyproject.toml (#24802)Todd Gamblin1-2/+2
This moves our `mypy` configuration from `.mypy.ini` to `.pyproject.toml` and increases the minimum `mypy` version in the tests. - [x] move `mypy` configuration to `pyproject.toml` - [x] remove `.mypy.ini` - [x] ensure that `mypy` version .900 or higher is used in tests
2021-07-08imports: sort imports everywhere in Spack (#24695)Todd Gamblin1-1/+1
* fix remaining flake8 errors * imports: sort imports everywhere in Spack We enabled import order checking in #23947, but fixing things manually drives people crazy. This used `spack style --fix --all` from #24071 to automatically sort everything in Spack so PR submitters won't have to deal with it. This should go in after #24071, as it assumes we're using `isort`, not `flake8-import-order` to order things. `isort` seems to be more flexible and allows `llnl` mports to be in their own group before `spack` ones, so this seems like a good switch.
2021-07-07cvs tests: don't use dateutil at allTodd Gamblin1-6/+5
`dateutil.parser` was an optional dependency for CVS tests. It was failing on macOS beacuse the dateutil types were not being installed, and mypy was failing *even when the CVS tests were skipped*. This seems like it was an oversight on macOS -- `types-dateutil-parser` was not installed there, though it was on Linux unit tests. It takes 6 lines of YAML and some weird test-skipping logic to get `python-dateutil` and `types-python-dateutil` installed in all the tests where we need them, but it only takes 4 lines of code to write the date parser we need for CVS, so I just did that instead. Note that CVS date format can vary from system to system, but it seems like it's always pretty similar for the parts we care about. - [x] Replace dateutil.parser with a simpler date regex - [x] Lose the dependency on `dateutil.parser`
2021-07-07style: Move isort configuration to pyproject.tomlTodd Gamblin1-2/+2
- [x] Remove flake8-import-order checks, as we only need isort for this - [x] Clean up configuration and requirements
2021-07-07style: add support for `isort` and `--fix`Danny McClanahan1-2/+2
2021-06-29vermin: show line numbers of violations (#24580)Massimiliano Culpo1-2/+2
This commit runs vermin with the --violations option that shows details of the violations to target requirements.
2021-06-28Use flake8-import-order to enforce PEP-8 compliance (#23947)Adam J. Stewart1-2/+2
2021-06-23Fix broken CI for package only PRs, make dateutil not strictly required (#24484)Massimiliano Culpo1-0/+4
* Force the Python interpreter with an env variable This commit forces the Python interpreter with an environment variable, to ensure that the Python set by the "setup-python" action is the one being used. Due to the policy adopted by Spack to prefer python3 over python we may end up picking a Python 3.X interpreter where Python 2.7 was meant to be used. * Revert "Update conftest.py (#24473)" This reverts commit 477c8ce8205ec149fa897c9d83e530815c978d8b. * Make python-dateutil a soft dependency for unit tests Before #23212 people could clone spack and run ``` spack unit-tests ``` while now this is not possible, since python-dateutil is a required but not vendored dependency. This change makes it not a hard requirement, i.e. it will be used if found in the current interpreter. * Workaround mypy complaint
2021-06-22Implement CVS fetcher (#23212)Erik Schnetter1-10/+13
Spack packages can now fetch versions from CVS repositories. Note this fetch mechanism is unsafe unless using :extssh:. Most public CVS repositories use an insecure protocol implemented as part of CVS.
2021-06-08mypy: add types-six to the list of installed packages (#24207)Massimiliano Culpo1-1/+1
See https://mypy-lang.blogspot.com/2021/05/the-upcoming-switch-to-modular-typeshed.html for a broader explanation.
2021-05-28build(deps): bump actions/cache from 2.1.5 to 2.1.6 (#23983)dependabot[bot]1-1/+1
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.5 to 2.1.6. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.5...v2.1.6) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-22Spack can Use RHEL8's `platform-python` if nothing else is available. (#23857)Todd Gamblin1-2/+0
This adds RHEL8's `/usr/libexec/platform-python` to Spack's list of preferred pythons. It will only be used if no other `python` is available in the `PATH`. We have been testing with this python for a while now, and it seems to do all that we need. If Spack one day isn't able to work with it, we'll take it out, but for now it is useful to allow Spack to be used on RHEL8 without a dedicated `python` installation.