Skip to content
Snippets Groups Projects
Commit 73c161b7 authored by Scott Wittenburg's avatar Scott Wittenburg Committed by Todd Gamblin
Browse files

Add schema for new gitlab-ci and cdash additions to environment

parent 5f186961
No related branches found
No related tags found
No related merge requests found
spack:
definitions:
- pkgs:
- readline@7.0
- compilers:
- '%gcc@5.5.0'
- '%gcc@7.3.0'
- '%clang@6.0.0'
- oses:
- os=ubuntu18.04
- os=centos7
specs:
- matrix:
- [$pkgs]
- [$compilers]
- [$oses]
exclude:
- '%gcc@7.3.0 os=centos7'
mirrors:
cloud_gitlab: https://mirror.spack.io
compilers:
# The .gitlab-ci.yml for this project picks a Docker container which is
# based on ubuntu18.04 and which already has some compilers configured.
# Here we just add some of the ones which are defined on a different
# builder image.
- compiler:
operating_system: centos7
modules: []
paths:
cc: /not/used
cxx: /not/used
f77: /not/used
fc: /not/used
spec: gcc@5.5.0
target: x86_64
- compiler:
operating_system: centos7
modules: []
paths:
cc: /not/used
cxx: /not/used
f77: /not/used
fc: /not/used
spec: clang@6.0.0
target: x86_64
gitlab-ci:
mappings:
- spack-cloud-ubuntu:
match:
# these are specs, if *any* match the spec under consideration, this
# 'mapping' will be used to generate the CI job
- os=ubuntu18.04
runner-attributes:
# 'tags' and 'image' go directly onto the job, 'variables' will
# be added to what we already necessarily create for the job as
# a part of the CI workflow
tags:
- spack-k8s
image: scottwittenburg/spack_builder_ubuntu_18.04
- spack-cloud-centos:
match:
# these are specs, if *any* match the spec under consideration, this
# 'mapping' will be used to generate the CI job
- 'os=centos7'
runner-attributes:
tags:
- spack-k8s
image: spack/centos:7
- summit:
match:
- os=rhel7
- target=power9
- platform=secret-sauce
runner-attributes:
tags:
# this is a set of tags
- summit
- '{os}-{target}'
- rhel7
- centos7
- x86_64
variables:
SCHEDULER_ARGS: "arg2 arg2"
cdash:
build-group: Release Testing
url: https://cdash.spack.io
project: Spack Testing
site: Spack AWS Gitlab Instance
repos: []
upstreams: {}
modules:
enable: []
packages: {}
config: {}
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
"""Schema for cdash.yaml configuration file.
.. literalinclude:: ../spack/schema/cdash.py
:lines: 13-
"""
#: Properties for inclusion in other schemas
properties = {
'cdash': {
'type': 'object',
'default': {},
'additionalProperties': False,
'required': ['build-group', 'url', 'project', 'site'],
'patternProperties': {
r'build-group': {'type': 'string'},
r'url': {'type': 'string'},
r'project': {'type': 'string'},
r'site': {'type': 'string'},
},
},
}
#: Full schema with metadata
schema = {
'$schema': 'http://json-schema.org/schema#',
'title': 'Spack cdash configuration file schema',
'type': 'object',
'additionalProperties': False,
'properties': properties,
}
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
"""Schema for gitlab-ci.yaml configuration file.
.. literalinclude:: ../spack/schema/gitlab_ci.py
:lines: 13-
"""
#: Properties for inclusion in other schemas
properties = {
'gitlab-ci': {
'type': 'object',
'default': {},
'additionalProperties': False,
'required': ['mappings'],
'patternProperties': {
r'mappings': {
'type': 'array',
'default': {},
'additionalProperties': False,
'patternProperties': {
r'[\w\d\-_\.]+': {
'type': 'object',
'default': {},
'additionalProperties': False,
'required': ['match', 'runner-attributes'],
'properties': {
'match': {
'type': 'array',
'default': [],
'items': {
'type': 'string',
},
},
'runner-attributes': {
'type': 'object',
'default': {},
'additionalProperties': True,
'required': ['tags'],
'properties': {
'image': {'type': 'string'},
'tags': {
'type': 'array',
'default': [],
'items': {'type': 'string'}
},
'variables': {
'type': 'object',
'default': {},
'patternProperties': {
r'[\w\d\-_\.]+': {
'type': 'string',
},
},
},
},
},
},
},
},
},
},
},
}
#: Full schema with metadata
schema = {
'$schema': 'http://json-schema.org/schema#',
'title': 'Spack gitlab-ci configuration file schema',
'type': 'object',
'additionalProperties': False,
'properties': properties,
}
...@@ -10,8 +10,10 @@ ...@@ -10,8 +10,10 @@
""" """
from llnl.util.lang import union_dicts from llnl.util.lang import union_dicts
import spack.schema.cdash
import spack.schema.compilers import spack.schema.compilers
import spack.schema.config import spack.schema.config
import spack.schema.gitlab_ci
import spack.schema.mirrors import spack.schema.mirrors
import spack.schema.modules import spack.schema.modules
import spack.schema.packages import spack.schema.packages
...@@ -21,8 +23,10 @@ ...@@ -21,8 +23,10 @@
#: Properties for inclusion in other schemas #: Properties for inclusion in other schemas
properties = union_dicts( properties = union_dicts(
spack.schema.cdash.properties,
spack.schema.compilers.properties, spack.schema.compilers.properties,
spack.schema.config.properties, spack.schema.config.properties,
spack.schema.gitlab_ci.properties,
spack.schema.mirrors.properties, spack.schema.mirrors.properties,
spack.schema.modules.properties, spack.schema.modules.properties,
spack.schema.packages.properties, spack.schema.packages.properties,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment