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
Automated build script #29
Comments
Thanks for the reply! I am looking for a script to compile the The plugins folder for structminigame is located here. If this is possible, it would fully automate the server update process. When a plugin is changed, simply merging the pull request and bumping the version would automatically update the server. Currently, I have to manually compile the How it works on the server side, is it reads this script right here. |
It's possible. I will submit a PR shortly. Stay tuned. |
Thanks! |
Next improvement I'd suggest is either:
|
Yeah, I think pushing the compiled files from Travis to Git would be the best option. So, I need to store my public key in an encrypted variable for that method to work? |
Not exactly, public key is stored on host while client provides private key, so in order to send data via SSH Travis would need private key. Encrypting private key for Travis is not easy though, so I recommend storing OAuth token and pushing via HTTPS protocol instead. Here is what you can do:
|
Done. |
Great. We will also need an orphan branch that would contain all the files required by the server. Please do following:
After we have the implementation up and running production server will be treated with the contents of |
The orphan branch has been created. And |
Will submit implementation PR shortly. Stay tuned. |
Great, it's working as can be seen here https://travis-ci.org/stickz/Redstone/builds/113979798 just don't forget to select "Build only if .travis.yml is present" in your Travis CI settings page ;) Because otherwise it will try to build the |
Alright, I just enabled that option in my Travis CL settings. Everything is working perfectly. Thanks for the build script. This will speed up the server update process tremendously! |
Sure, glad I could help with that. Once you feel confident about the One caveat that shouldn't be ignored from now on is because Travis may print the real value of encrypted I think we could improve the build process further by automating the "bump up" step. Feel free to share more details on minimum of what updater requires in |
Using the structminigame example again, the server reads the
Under the
Updating line 7 on the |
Also, the translation updater is a special case which should automatically bump the version in the |
I need following information in order to proceed:
Thanks |
|
That's perfect! |
Just logging in my findings for reference:
|
I've noticed that some plugins from |
Those plugins do not have auto-updater support added to them. It's redundant having the automated mechanism create them. It should exclude or ignore plugins without a directory. This isn't something which should be automated, adding updater support should be done manually. There are many optimization and futuristic compatibility issues I could foresee if they are created automatically. |
Took that in count. Updater info is only created for plugins that have directories in |
The sp file version needs changed or plugins will keep resending to the server in a loop.
Issue introduced on pull request. #47 |
The version should stay consistent between compiled |
I've investigated further, that works as intended without looping. |
Great. Now after we've finished implementing fully automated build mechanism (which was an interesting experience for me btw) we know better the requirements and can think about how to refactor things around in order to make implementation even better. I guess I will start discussion in separate thread and share my vision there while this issue can be closed. @stickz what do you think? |
Sounds good! |
Hi,
I've noticed the note in README file about you looking for automated build script so I thought maybe I can help with that. I've looked into
.travis.yml
file and as I understand you compile.smx
files for each plugin in use and print the status in Gitter chat room from Travis. I haven't found any deployment stage there, please correct me if I missed it.I assume you clone the repo / pull changes into production server after successful build manually and compile all
.smx
files over again in order to apply changes on production. Is my assumption correct? :)I think what you need is automated deployment process which would automatically take pushed/merged changes to master branch and apply them on production server (only if Travis successfully compiled
.smx
files of course), is that what you're looking for?I guess it's too early for me to suggest something as I need more details in order to come up with potentially solid solutions so I will be glad to collaborate on that once you decide to proceed. Feel free to close this issue if it's not relevant any more though.
Cheers
P.S. My nickname in ND is pogran_
The text was updated successfully, but these errors were encountered: