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

Automating binary attachments to release. #157

Closed
wants to merge 143 commits into from

Conversation

parro-it
Copy link
Contributor

Hi, I'm trying to automate the process of binaries attachment to GH releases.
We previously discussed this stuff on #124.

I will use these binaries on libui-download to avoid compile libui on each libui-node install.

This is a work in progress. Just publish the PR to get early feedback from you...

Some open issues and questions:

  • You can see the actual attached files on this test release. Please suggest improvement or changes to file names as you like.
  • I created many tags on my fork to trigger travis release builds, I don't know if these could be polluting this PR. please double check!
  • The travis yaml file is becoming a mess. I'm thinking of creating a scripts folder to move some commands there... thoughts?
  • Actually, there is no binaries for windows and for linux 32bit. I could try to use docker on travis to get a 32bit env, and to use appveyor for windows build
  • You'll have to change the secure key with one for your repo after merge the PR. The actual one it's for my fork...

.travis.yml Outdated
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew upgrade cmake; fi
- mkdir build
- mkdir artifacts
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Here I made an artifacts dir to keep all zip files before deploying them

.travis.yml Outdated
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then LIB_FILE=libui.A.dylib; fi
- cd out
- tar -cvf ../../artifacts/examples-shared-$TRAVIS_OS_NAME-$TRAVIS_TAG.tar.gz controlgallery controlgallery histogram $LIB_FILE
- tar -cvf ../../artifacts/libui-shared-$TRAVIS_OS_NAME-$TRAVIS_TAG.tar.gz $LIB_FILE
Copy link
Owner

Choose a reason for hiding this comment

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

I'd actually rather have everything for an OS and build type in one archive, rather than a separate one for examples, especially since you're including the library in the examples archive anyway

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I made a separate archive only for lib because I don't want to increase file size I'll have to download, but I noticed they are really small ones, so ok. Maybe I put them in a examples folder?

@andlabs
Copy link
Owner

andlabs commented Jun 18, 2016

What is appveyor?

@parro-it
Copy link
Contributor Author

AppVeyor it's a CI environment similar to travis but running on windows. IT already support cmake, I think we could use it to add CI stuff for Windows environment too...

@andlabs
Copy link
Owner

andlabs commented Jun 18, 2016

Cool, that sounds great. I'll probably not do this right away, but rather closer to the Alpha 4 release, since I still have one more thing I promised I'd have in Alpha 4 to implement (table views). Thanks for all your effort in the meantime; it's much appreciated!

@andlabs
Copy link
Owner

andlabs commented Jun 18, 2016

Also:

The thing with a separate examples directory is that the executables are programmed to look for the libui shared object first in the same directory as the executable, and then in system directories.

On second thought, if it makes distribution easier for other languages, then a library-only archive would work. I'd call the two archives something different to flag them to people looking at the GitHub website.

@parro-it
Copy link
Contributor Author

I'll continue to improve the PR, in the meanwhile I'll use my fork releases as a test repo for my libui-download module. What do you think about the creation of a scripts folder to write some shell scripts there and simplify the config file?

@andlabs
Copy link
Owner

andlabs commented Jun 18, 2016

What did you have in mind?

@cody271
Copy link
Contributor

cody271 commented Apr 19, 2018

@andlabs changed it from a class to a struct here. @mischnic is correct, void should be int.
(Not sure what uiForEach would do for us here though..)

@parro-it We desperately need AppVeyor CI on the main build to catch these sorts of problems!
Can you maybe break out your appveyor.yml without build artifacts into a separate PR? Thanks.

@parro-it
Copy link
Contributor Author

@parro-it
Copy link
Contributor Author

It compile indeed!

@parro-it We desperately need AppVeyor CI on the main build to catch these sorts of problems!
Can you maybe break out your appveyor.yml without build artifacts into a separate PR? Thanks.

As it works now, artifacts are only published when new tags are pushed, not for normal commits. Anyway, I'm fine about splitting this PR if that could help.

@parro-it
Copy link
Contributor Author

I created a PR for the fix #340

@andlabs
Copy link
Owner

andlabs commented Apr 19, 2018

Oops. Can't fix it until I leave work though. (FWIW I changed it to a struct because I felt like making it a class was a bit overkill (and I'm not much of a fan of operator overloading but eh). I don't oppose using classes in libui though (I use them for COM objects, after all =P ).)

@andlabs
Copy link
Owner

andlabs commented Apr 19, 2018

And yes, as for uiForEach I would need to make its name a bit more generic. Continue and Stop make as much sense for this, but not ForEach. One of the TODOs I added to ui.h talks about this.

@parro-it
Copy link
Contributor Author

Oops. Can't fix it until I leave work though.

Take your time, I stop working on this now anyway, tomorrow I'll get married, I should prepare 🎉🎉🎉

@andlabs
Copy link
Owner

andlabs commented Apr 19, 2018

Congratulations!

@parro-it
Copy link
Contributor Author

Congratulations!

Thank you!

@mischnic
Copy link
Contributor

Congratulations!

@cody271
Copy link
Contributor

cody271 commented Apr 19, 2018

@parro-it Congratulazioni amico mio!

@parro-it
Copy link
Contributor Author

😢 Grazie mille!
Ehi ma parliamo tutti italiano qui? 🤪

@mischnic
Copy link
Contributor

Ma certo!

@cody271
Copy link
Contributor

cody271 commented Apr 19, 2018

Spagnolo e un po 'di portoghese. Sono simili. ;-)

@parro-it
Copy link
Contributor Author

Spagnolo e un po 'di portoghese. Sono simili. ;-)

yo también un poco 😀

@andlabs
Copy link
Owner

andlabs commented Dec 30, 2018

Is this PR still relevant? I thought I merged it already...

@parro-it
Copy link
Contributor Author

Oh, I thought you already closed it.
I think it's now completely covered by all the good work on the Travis builds.
I close it.

@parro-it parro-it closed this Dec 31, 2018
@parro-it
Copy link
Contributor Author

Happy new year!!🎉🎉

@andlabs
Copy link
Owner

andlabs commented Dec 31, 2018

👍

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

Successfully merging this pull request may close these issues.

None yet

5 participants