Skip to content
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

Make the language and dist/os Travis options useful #32

Open
seankelly opened this issue Sep 16, 2016 · 3 comments
Open

Make the language and dist/os Travis options useful #32

seankelly opened this issue Sep 16, 2016 · 3 comments
Projects

Comments

@seankelly
Copy link
Member

seankelly commented Sep 16, 2016

The Travis file has options for the language and either os or dist to use. It would be good for people to be able to utilize these and Buildbot to map those options to whatever needed internally to effect what is expected. It is unclear to me at the moment if the os or dist option is the correct one to use. I am going to use os from now on for simplicity.

As an example, if using Docker, the os option could point to a higher-level option such as "trusty" or "xenial" and then Buildbot would map that to what the Docker worker needs in order to use a container for that OS. I think if an unknown option is used, the build for that OS should not be triggered and instead fail.

A similar thing for the language. There could be variants for the OS that include packages specific for that language so the basic tools do not have to be installed.

@seankelly seankelly changed the title Make the lang and dist/os Travis options useful Make the language and dist/os Travis options useful Sep 16, 2016
@tardyp
Copy link
Member

tardyp commented Sep 29, 2016

You can already use the renderable image for that matter.

My goal is to keep buildbot_travis simple, so we need to figure out a programing model that is very simple yet powerful

@seankelly
Copy link
Member Author

I have some code for this. What I did first was expose the os, dist, language, and what version the language is using as properties. Then I added a key that looked up the os, dist, and language to set properties for the build.

@vdsbenoit
Copy link

I upvote this feature request.

Simple way

IMO, a good way to keep it simple would be to have "os" and "language" fields in the Docker worker configuration. When a build is run, buildbot would choose a matching worker configuration.

Here is a mockup:

mockup1

For instance, this worker would be used with the following yml file:

os: windows

language: 
  - python27
  - python36
  
script:
  # a build script for a python software

or

os: windows

language: 
  - java8
  
script:
  # a build script for a java software

Extended way

A more extended idea would be to add field named "requirements" or "labels". This field would hold elements that are also involved in the worker selection.

Here is an example:

mockup2

This worker would be used with the following yml file:

os: windows

language: 
  - python27
  - python36
  
requirements: vs2017, curl, 7zip
  
script:
  # a build script for a python software that needs Visual Studio 2017, curl and 7zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

3 participants