-
Notifications
You must be signed in to change notification settings - Fork 166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added VersionSelectorScript.groovy to select builders for Node version #1217
Conversation
Also is this just for release or is it going to be used for the test ci as well? Was going to look at turning off testing for BE >=8 but this may take care of it if it will apply to the test ci. |
8543e21
to
3bfe64a
Compare
@mhdawson re ppc, cause the script is already set up for this I've just edited node-test-commit-plinux and (1) enabled the plugin (under git advanced) and (2) inserted the Groovy Matrix Strategy script to download this script and execute it for filtering and now ppcbe is not running for Node >=8 like on ci-release. If you want it to run later than that then we can modify it to be different for Regarding docs, in theory the only thing that should need to be done is edit this script. Unfortunately I'm finding that the Groovy script is caching downloads so it doesn't fetch updates straight away and I'm having to edit the URL inside the jobs to add a unique |
f9cff6f
to
e739e77
Compare
def code = new URL(scriptUrl).getText(useCaches: false, requestProperties: ['Connection': 'close']) these options seem to be enough to force proper single-use fetching 👍 |
@rvagg, thanks for the update. Having the test use the same rules as for release for PPCBE works for now. Thanks :) |
cdf46d5
to
88142ce
Compare
@gibfahn I've experimented with two new variations of this that make it a bit more grokkable
2 is what's being used now, I quite like it cause it reads easily, we end up being able to define rules like: [ /^centos5/, anyType, gte(8) ],
[ /^centos6/, releaseType, lt(8) ],
[ /centos[67]-(arm)?(64|32)-gcc48/, anyType, gte(10) ],
[ /centos[67]-(arm)?(64|32)-gcc6/, anyType, lt(10) ],
[ /centos6-32-gcc6/, releaseType, gte(10) ], // 32-bit linux for <10 only
[ /^ubuntu1804/, anyType, lt(10) ], // probably temporary
[ /^ubuntu1204/, anyType, gte(10) ], I've addressed your other comments with these changes I think, two outstanding ones:
|
Yeah that looks really good, 💯 on that.
Ahh okay, makes sense. I don't think throwing is really better than running on all platforms, having it default to all platforms so you can see what works, and use it to inform your decision of how to change the list makes a lot of sense to me. Maybe add a comment to that line though. |
simplify with regexes, a closure and shorter names
337a1ed
to
fe83359
Compare
fe83359
to
3984214
Compare
Add exclusion for Node.js built as shared library Don't run on versions less than 9
@rvagg This should be safe to land, right? It's already been running on public CI for a couple of weeks now |
yeah, but we're referencing this branch now in a bunch of places so I need to go find all those references and point them to master! |
moved |
Please don't delete branch until we're sure Jenkins is branch-use free. |
Just run this in the Script Console and fixed all the jobs import org.jenkinsci.plugins.GroovyScriptMES
import hudson.matrix.MatrixProject
for(item in Jenkins.instance.getAllItems(MatrixProject.class)) {
e = item.getExecutionStrategy()
if (e in GroovyScriptMES) {
println e.secureScript.getScript().split("\n", 2)[0]
println item.absoluteUrl + 'configure'
println '-----------------'
}
} |
Following on from #1153
node-version-jenkins-plugin is now installed on ci.nodejs.org and is being used in node-test-commit-linux-arm, node-test-commit-linux-containered and node-test-commit-linux to select the right builders to run. So we have some ARM and containered specific options in here. The script also has a "buildType" so that it can do slightly different things for release as for test (and other), e.g. centos6 shouldn't be used for Node 4 in release but it should be used for everything for test.