Server: Make Windows builds work with 2.2.0 branch (Jenkins)

Created on 23 Jan 2018  路  9Comments  路  Source: CasparCG/server

Create a Jenkins job that builds the 2.2.0 branch so builds will be available again at builds.casparcg.com.

build

Most helpful comment

Have you considered switching from Jenkins to Travis or similar service?
I know there are a load, some of which are free for open source.
Advantages of doing that are the scripts will reside in the repo, so adding a new branch or Linux distro can be done super easily.
They can also push status back to github, so everyone can see a build failure, which would be of particular use to prs, to check that they build on both Linux and Windows.
Also it will reduce the burden on svt to run and maintain build severs. They will need to upload the resulting binaries back to you, but that will be pretty simple to setup, and is a lot less demanding.
I can have a look at the available services to see what would work if you are interested.

All 9 comments

We don't use the same build scripts for linux anymore, so the Jenkins job and server probably needs some updates.

Servers needs to get some love with or without those changes hehe! :)

Have you considered switching from Jenkins to Travis or similar service?
I know there are a load, some of which are free for open source.
Advantages of doing that are the scripts will reside in the repo, so adding a new branch or Linux distro can be done super easily.
They can also push status back to github, so everyone can see a build failure, which would be of particular use to prs, to check that they build on both Linux and Windows.
Also it will reduce the burden on svt to run and maintain build severs. They will need to upload the resulting binaries back to you, but that will be pretty simple to setup, and is a lot less demanding.
I can have a look at the available services to see what would work if you are interested.

@Julusian I have been thinking of it for a while to go over from Jenkins to Travis because it would be easier just as you say to add a new branch or Linux bistro etc. and it shows at GitHub if the build fails or not as you say. But I haven't spent so much time yet on this but it's on my todo for sure! It also seems that Travis is free for open source projects hosted at GitHub. If we go that path then we could skip the build servers that are hosted by svt.

Thanks Julian!

I've been having a look at potential ci services that could be used.

  • Travis is the standard, well known and free for open source, but doesn't support windows. I cant find anything which indicates when they will support it. Most discussion about it dates to 2012.
  • Appveyor looks great and is a name I have heard a couple of times, and is only windows. It is also free for open source, and looks to have everything the current build script needs preinstalled.

While it would be cleaner to use one service, I can't find many which support windows while being free, and can't find any which will do both platforms without svt having to host and maintain build servers. so I think that using travis for linux/mac and appveyor for windows is the way to go, unless anyone has any better suggestions. I am making sure to include mac in here, because the Client will also want to do something similar

Build artifacts can then be uploaded as the last stage of the build back to builds.casparcg.com. That will need some discussion with Armin to figure out the protocol and credentials etc to do so, but should be pretty straight forward to do.

Both of these services support building pull requests, and they will not share any secret variables to those builds, so we can safely make the scripts upload build artifacts whilst not allowing the same to happen for any pr builds.

I am willing to write the scripts to get this running unless @k0d wants to do it or has anything to add?

In my opinion, although not having to maintain a build-server ourselves is nice...we do have the resources (servers) to do it and we can maintain tighter control over the build process.

I also have experience with Jenkins and even have a build-server setup at home using it! So my feeling is that we continue down the current road in terms of automated builds. I should mention though, that I intend to get builds to be able to be triggered on your local machine with a one line command (depending on OS/setup of course!). So porting to a different build system for the 'official builds' or someone setting up one for themselves...should be very easy.

Other opinions are most welcome...

One other thing to mention just now...the changes I'm making at the moment are not perfect, but they are leading towards a better system. For example I may move something from one folder to another...but there is the intention to have it somewhere else in the future. We're trying to cleanup the project, both in code, build scripts and procedures.

Windows builds works now. Linux builds will work shortly.

Is the windows build a debug or release build?

Release, do you experience issues with the build or was it just a question?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dotarmin picture dotarmin  路  44Comments

Punkley picture Punkley  路  24Comments

dimitry-ishenko picture dimitry-ishenko  路  28Comments

Behinder picture Behinder  路  28Comments

Bernie333 picture Bernie333  路  47Comments