storj-archived / autobin Goto Github PK
View Code? Open in Web Editor NEWDeprecated. Cross platform batch / shell scripts used to automatically build binaries.
Home Page: https://storj.io
License: GNU Affero General Public License v3.0
Deprecated. Cross platform batch / shell scripts used to automatically build binaries.
Home Page: https://storj.io
License: GNU Affero General Public License v3.0
There are 2 different ways to implement that:
1)
Remove comments from the build scripts and add a new notification script. The new script should watch for pull requests and wait for binary upload. As soon as all 3 binaries are uploaded the notification script should write one comment. If one script does not work for some reason the notification script should write the comment without the missing binary after a given timeout.
Positiv: One comment on github and slack.
Negativ: First binary is uploaded after a few minutes but my windows build server could need one hour. The comment for the first binary has to wait. New pull request commit would restart the timer.
All 3 scripts still add there comments but delete there old comments. All 3 scripts add all existing binaries to there comment.
Positiv: One comment with all 3 binaries on github. No wait time. On github it would look like editing one comment.
Negativ: Full spam support for slack.
A pull request with syntax errors is a problem for the autobin script. py2exe will return an error and it does not return to the main autobin folder. Bugfix needed to return to the main folder even in case of a bad pull request.
Farmer-GUI rename to storjshare-gui stoped the github comment script. No comments added and no cleanup of closed pull requests.
Appveyor can build a binary but autobin has problems. The folder structure is to long. I have to fix that for every windows binary.
The windows script must be updated.
https://github.com/Storj/autobin/blob/master/storjshare-gui/build-windows-binary.bat#L74
https://github.com/Storj/autobin/blob/master/storjshare-gui/build-windows-binary.bat#L137-L138
https://github.com/Storj/autobin/blob/master/storjshare-gui/build-windows-binary.bat#L201
https://github.com/Storj/autobin/blob/master/storjshare-gui/build-windows-binary.bat#L251-L252
64bit and 32bit nodejs must be installed. Set path variable to select the nodejs version.
set path=%path%;"C:\Program Files\nodejs"
set path=%path%;"C:\Program Files (x86)\nodejs"
At the moment pull request binaries are published as draft release on github. Only a few developer have access to it. Lets add a ftp server and allow other comunity member to download the test binaries. Lets start with an passwort protected ftp server.
At the moment autobin is building binaries only for draft releases. We had no failed binary build for a while now. It is time to move on. I would like to add ARM binaries but they will need more than one hour to complete. If we have to release a hotfix as fast as possible we can't wait more than one hour.
Solution:
Autobin should build even for published releases. Lets start with a tiny time frame of 7 days or the last 2 release tags. We don't want to build binaries for old release tags.
This will allow us to publish the release while the ARM build server is still running.
I am using my nas as windows build server. Running Windows10 64 bit with only 512MB. That setup needs 30 minutes for one binary. Windows10 32 bit should be a littlebit faster.
OSX binaries are build and uploaded but the comment looks like this:
autobin binaries (only available for team members)
last commit: 662fbf52934dabf8f7cb530e0792806792d50fcc
storjshare-gui.amd64.deb
storjshare-gui.win32.exe
storjshare-gui.win64.exe
As developer I would like to use autobin to update storshare-cli and storj docker container. That will allow the user to use the container a few minutes after a new release without waiting hours for a sheduled build.
At the moment autobin starts with building binaries for pull requests and later the script will build the release binaries. Sometimes a pull request has commits every few minutes. The release binaries are delayed. As long as the pull request is open there will always be a new binary to build.
Solution: Build release binaries first. Don't delay them. Build pull request binaries later.
Autobin is using merge_commit_sha
to track any new commit. In case of a merge conflict that is not working. head.sha
would be better in that case.
Normal Situation:
autobin builds a binary and uploads it. A new pull request commit will trigger the script again. autobin deletes the old binary and uploads the new one with the same filename. 2 binaries with the same filename are not possible.
Bug Situation:
autobin builds a binary and while it uploads the binary the connection is lost for some reason. autobin will start again and build the same binary. So far everything works as designed. autobin is not able to detect the old binary. Uploading the new binary failed. Perfect endless loop.
All 3 driveshare-gui build scripts have the same bug. They delete the release binary and not the pull request binary.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.