Skip to content

Conversation

@dnakamura
Copy link

This greatly reduces duplication in the build specs

@dnakamura dnakamura force-pushed the jenkins_buildspecs branch from 21eb39e to a34913e Compare May 29, 2018 20:45
@dnakamura
Copy link
Author

dnakamura commented May 29, 2018

This is still a WIP since I still have to do a bit of cleanup and and documentation work to do. However here are some brief notes a bout the changes:

  • Instead of living at the top level of default.yml they now reside underneath the buildspecs element
  • I've added a BuildSpec class to the groovy config to calculate the buildspec specific variables
  • The BuildSpec class differentiates between scalar and vector values, and behavior changes depending if you call .GetScalarField() or .GetVectorField(). For scalars, override inherited values. Vectors are appended to inherited values
  • You can specify SDK version specific values on any variable
  • Specifying version specific values is also optional (if you don't give one, the same value is used regardless of SDK version)
  • You can also specify 'all' in the same way you would specify a version specific variable. This behaves as if it were an inherited value (so it gets appended to all vector variables, and for scalars, acts as a default unless you specify a version specific value)

@dnakamura
Copy link
Author

@AdamBrousseau

@dnakamura dnakamura force-pushed the jenkins_buildspecs branch from a34913e to 75197a8 Compare May 29, 2018 22:18
@AdamBrousseau
Copy link
Contributor

Jenkins test sanity win

@AdamBrousseau
Copy link
Contributor

jenkins compile win

@AdamBrousseau
Copy link
Contributor

jenkins compile win jdk9

@AdamBrousseau
Copy link
Contributor

jenkins test extended xlinux

@AdamBrousseau
Copy link
Contributor

jenkins test extended xlinux jdk9

@dnakamura dnakamura force-pushed the jenkins_buildspecs branch from 75197a8 to 51466ec Compare May 30, 2018 19:19
@AdamBrousseau
Copy link
Contributor

Jenkins test sanity win jdk10

@dnakamura dnakamura force-pushed the jenkins_buildspecs branch 2 times, most recently from 7c0fbc1 to 1c5a4b5 Compare May 31, 2018 17:30
This greatly reduces duplication in the build specs
[skip ci]

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
@AdamBrousseau
Copy link
Contributor

Jenkins test sanity win,xlinux jdk10

@vsebe
Copy link
Contributor

vsebe commented Jun 5, 2018

YAML has a feature called anchors. The anchors can be used to avoid duplication (no need for another class):
Set an anchor:

linux_x86-64_common: &linux_x86-64_common
  boot_jdk: ...
  release: ...

linux_x86-64, linux_x86-64_cmprssptrs extend linux_x86-64_common:

linux_x86-64_cmprssptrs: 
  <<: *linux_x86-64_common
  extra_configure_options: ...
linux_x86-64:
  <<: *linux_x86-64_common
  extra_configure_options: ...

@vsebe
Copy link
Contributor

vsebe commented Jun 5, 2018

@dnakamura please have a look at YAML anchors

@dnakamura
Copy link
Author

The problem with YAML anchors is that the "extension" semantics only support map types. This is fine for most of our needs but it falls flat when it comes to extra_configure_options. This is important for Large heap and/or cmake builds. Ideally it should be trivial to add a large heap build saying that it is identical to an existing configuration, but you just add --with-noncompressedrefs option to configure.

9: '/cygdrive/c/openjdk/jdk8'
10: '/cygdrive/c/openjdk/jdk9'
release: 'windows-x86_64-normal-server-release'
freemarker: '/cygdrive/c/openjdk/freemarker.jar'
Copy link
Contributor

@AdamBrousseau AdamBrousseau Jun 7, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI #2118

@AdamBrousseau
Copy link
Contributor

@dnakamura can you rebase this and restart any conversations needed to get this merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants