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

TravisCI Testing #19

Open
ghost opened this issue Mar 22, 2017 · 30 comments
Open

TravisCI Testing #19

ghost opened this issue Mar 22, 2017 · 30 comments

Comments

@ghost
Copy link

ghost commented Mar 22, 2017

@jonbev

Okay, so, the way we currently build LW4 binaries with Electron-builder is:

  1. This repo (lw.comm-server) has a branch, Electron_bundler, that has a couple simple npm scripts in package.json

See https://github.com/LaserWeb/lw.comm-server/blob/electron_bundler/package.json#L40-L51

The manual instructions are on https://github.com/LaserWeb/lw.comm-server/blob/electron_bundler/README-ELECTRON.md

(Might be worthwhile doing a manual build on your machine to familiarise yourself)

Once the manual run works on a machine, if you have push permissions to the LaserWeb repos (you do now (: ) - then its as simple as running 'npm run nightlylinux' on the linux box, and 'npm run nightlywindows' on a windows box. Note I use git-scm which comes with bash - so it might not work in windows cmd. I use https://git-scm.com/downloads - once installed it adds a Open Git Bash context menu to all folders. I use that as my primary CLI interface for everything on windows lol)

  1. The process also gets the /dist/ built fresh from the LaserWeb4 repo - the readme tells the whole story:
    (pull LaserWeb4, run npm run bundle-dev to let Webpack build the /dist/, then copy that /dist/'s content to lw.comms-server(Electron_bundler branch)'s /app
@jonbev
Copy link
Contributor

jonbev commented Mar 22, 2017

Ok thanks, i'll give it a go.

@jonbev
Copy link
Contributor

jonbev commented Mar 22, 2017

OK so the manual build works but on running the AppImage file I get Lasweb running just get a white area where the grid normally is. Did I miss something?

image

@ghost
Copy link
Author

ghost commented Mar 22, 2017 via email

@jonbev
Copy link
Contributor

jonbev commented Mar 22, 2017

I just tried one of the builds you did and get the same so must be my machine.

I can't get to the settings tab either.

@ghost
Copy link
Author

ghost commented Mar 22, 2017 via email

@probonopd
Copy link

Where can the AppImage be found?

@ghost
Copy link
Author

ghost commented Mar 22, 2017 via email

@probonopd
Copy link

Err, why are you putting binary downloads in git rather than on GitHub Releases? That's totally abusing git and GitHub certainly won't like it.

https://www.quora.com/Should-binary-files-be-stored-in-a-Git-repository

@ghost
Copy link
Author

ghost commented Mar 22, 2017 via email

@ghost
Copy link
Author

ghost commented Mar 22, 2017 via email

@probonopd
Copy link

Happy to help if I can, but I am not an Electron expert at all.

@ghost
Copy link
Author

ghost commented Mar 22, 2017 via email

@ghost
Copy link
Author

ghost commented Mar 22, 2017 via email

@probonopd
Copy link

So, would you like to have automated continuous builds on each git push on Travis CI?

@ghost
Copy link
Author

ghost commented Mar 22, 2017

@probonopd - lets run that past @cprezzi (developer of the comms-server) and @jorgerobles / @tbfleming (the major frontend guys) for their call

@ghost
Copy link
Author

ghost commented Mar 22, 2017

Travis or something else? Also not sure, we use node-serialport in the comms server and since its a native module, I couldnt get it to build crossplatform locally. I assume the same applies to the various CI services?

@tbfleming
Copy link
Member

It'd be nice if pushing to a specific branch caused it to create new binaries. It'd also be nice to have some way of marking known-good binaries.

@jonbev
Copy link
Contributor

jonbev commented Mar 22, 2017

I have it working when you push to the electron_bundler branch Travis will build the linux AppImage and upload it to an S3 bucket. I have also set a daily cron to do the same.

Here is the latest file that it built - http://laserweb-release.s3-website-us-east-1.amazonaws.com/laserweb-release/LaserWeb/lw.comm-server/10/10.1/dist/lw.comm-server-4.0.45-x86_64.AppImage

Clearly needs more work but at least there is something working.

@jonbev
Copy link
Contributor

jonbev commented Mar 23, 2017

I also have it building the AppImage for each commit to Laserweb4. If you click on the green tick next to the commit, it will take you to Travis, scroll down to the bottom of the log and there is a link to the artifact.

I'll see what I can do about cross platform builds next.

@ghost
Copy link
Author

ghost commented Mar 23, 2017 via email

@jonbev
Copy link
Contributor

jonbev commented Mar 23, 2017

Just knocked up a lambda function to maintain a list of files in the bucket here -

http://laserweb-release.s3-website-us-east-1.amazonaws.com/

@ghost
Copy link
Author

ghost commented Apr 1, 2017

@jonbev Can you explain this thread (in non technical language) and how we can use it OR how it will fit into the big picture?

@jonbev
Copy link
Contributor

jonbev commented Apr 1, 2017

It basically just means that there is a build available for every commit. Just makes it easy for non technical people to use the latest build as they dont need to use git and npm etc.

@ghost
Copy link
Author

ghost commented Apr 1, 2017

@jonbev Thanks for the explanation. Is it up and running yet? If so, where can we find the various builds?

@jonbev
Copy link
Contributor

jonbev commented Apr 1, 2017

I have only managed to get it working on linux build so far. I attempted windows but couldn't get it working as Travis runs on Ubuntu so made it very difficult. Could probably do with someone who has a clue about macs to have a look at the mac build as Travis does support them.

The link to a list of builds is here - http://laserweb-release.s3-website-us-east-1.amazonaws.com/ with the newest at the top.

@ghost
Copy link
Author

ghost commented Apr 1, 2017

We are compiling mac builds locally using the procedure outlined by Peter. It works very reliably for Mac but we do have problems with Win builds and often have to re-clone and do some manual deletions to lw.comms directory to get it to pick up the latest versions and build correctly.

@ghost
Copy link
Author

ghost commented Apr 12, 2017

I updated the LaserWeb4-Binaries repo and removed the linux nighly builds. The readme on LaserWeb4 binaries now redirect to the S3 bucket

@ghost
Copy link
Author

ghost commented Apr 24, 2017

The linux builds are working so awesomely flawless!!!!

Any chance we can ask you to take another look at getting Windows/Mac builds working? (;

As I understand, TravisCI doesnt do Windows native modules, but AppVeyor can: http://hoverbaum.gitlab.io/2016/08/03/Building-Electron-based-applications-using-CIs/

If its paywall related issues, let me know, and we can make a plan around those

@ghost
Copy link
Author

ghost commented Apr 24, 2017

PS: @probonopd - i also took your advice... Releases for Windows are now on https://github.com/LaserWeb/LaserWeb4-Binaries/releases (for now, until we get the CI figured out with node-serialport needed a native windows environment to compile)

Linux builds are on the Amazon Bucket

Mac... Hmmm, well, for now, nowhere! Yikes!

@probonopd
Copy link

Thank you very much. Unfortunately the nightly AppImage does not work for me:

me@host:~$ /home/me/Downloads/lw.comm-server-4.0.68-x86_64.AppImage 
2695
 
***************************************************************
        ---- LaserWeb Comm Server 4.0.68 ----        
***************************************************************
  Use  http://127.0.1.1:8000 to connect this server.
 
* Updates: 
  Remember to check the commit log on
  https://github.com/LaserWeb/lw.comm-server/commits/master
  regularly, to know about updates and fixes, and then when ready
  update accordingly by running git pull
 
* Support: 
  If you need help / support, come over to 
  https://plus.google.com/communities/115879488566665599508
***************************************************************
 
[3738:0424/201320.654755:FATAL:nss_util.cc(203)] nss_error=-5925, os_error=0
#0 0x000001cc9fbe <unknown>
#1 0x000001caf25b <unknown>
#2 0x000002fd78ce <unknown>
#3 0x0000007baf9b <unknown>
#4 0x00000072d2d7 <unknown>
#5 0x000000835bcb <unknown>
#6 0x000003c5ffc8 atom::AtomCertVerifier::AtomCertVerifier()
#7 0x000003c48da7 atom::AtomBrowserContext::CreateCertVerifier()
#8 0x000003ce2af4 brightray::URLRequestContextGetter::GetURLRequestContext()
#9 0x000002cd236c <unknown>
#10 0x000002deccd5 <unknown>
#11 0x000001cb26be <unknown>
#12 0x000001d04d0c <unknown>
#13 0x000001d04fb8 <unknown>
#14 0x000001d0531b <unknown>
#15 0x000001cb4a19 <unknown>
#16 0x000001d04aa7 <unknown>
#17 0x000001ce73f0 <unknown>
#18 0x000002de1de6 <unknown>
#19 0x000002de1f99 <unknown>
#20 0x000001d1cae5 <unknown>
#21 0x000001cf7543 <unknown>
#22 0x7f14098a46fa start_thread
#23 0x7f1402c54b5d clone

Possibly libnss3 and friends need to be bundled inside the AppImage then, also see probonopd/linuxdeployqt#35.

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

No branches or pull requests

3 participants