Opened 11 years ago
Last modified 6 years ago
#1819 new enhancement
[Git] [Step 1] Update autobuild utility for git workflow — at Version 21
Reported by: | historic_bruno | Owned by: | |
---|---|---|---|
Priority: | Must Have | Milestone: | Backlog |
Component: | Build & Packages | Keywords: | |
Cc: | Kieran P, Victor ADASCALITEI | Patch: |
Description (last modified by )
Currently the Windows autobuilder works with our SVN repository (see BuildServerSetup). As we're transitioning to git, we need it to work with a git repo instead.
- support multiple git branches, both the "master" and various feature branches, so e.g. artists can easily test new features
- commit a file for the relevant branch, that can be tested by an updater utility, and contains paths and checksums of each file that was built
- the built files will be uploaded to a web server
Change History (21)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
This is what I had in my head: The auto builder needs to know which branches it can build, so it needs to either maintain a git repo and get the branch list from that OR use the github API to get the branch list. Either way, for it to see that a branch is gone, we'd trigger an update of the autobuilder branch list. When it sees a branch is gone, it disappears from the list and removed the folder for that branch.
comment:3 by , 11 years ago
Summary: | Update autobuild utility for git workflow → [Git] [Step 1] Update autobuild utility for git workflow |
---|
comment:4 by , 11 years ago
See also BuildAndDeploymentEnvironment#Futuredesign, I updated it to our current plans.
follow-up: 6 comment:5 by , 11 years ago
Why under master branch the "trunk" directory and not directly its subdirectories?
comment:6 by , 11 years ago
Replying to fabio:
Why under master branch the "trunk" directory and not directly its subdirectories?
Good question :) I corrected that and improved the formatting a bit.
follow-up: 8 comment:7 by , 11 years ago
Did you consider having two different repositories for the engine (pyrogenesis) and the game data (0ad)? This should possibly make things easier for who want to use the engine for a new game (at least can follow pyrogenesis git without getting all unrelated art assets). The generated packages should also be renamed from 0ad to pyrogenesis and from 0ad-data to 0ad.
I already suggested this here: http://trac.wildfiregames.com/ticket/304#comment:4
comment:8 by , 11 years ago
Replying to fabio:
Did you consider having two different repositories for the engine (pyrogenesis) and the game data (0ad)? This should possibly make things easier for who want to use the engine for a new game (at least can follow pyrogenesis git without getting all unrelated art assets). The generated packages should also be renamed from 0ad to pyrogenesis and from 0ad-data to 0ad.
I already suggested this here: http://trac.wildfiregames.com/ticket/304#comment:4
We want to try and keep the process as simple as possible for the main development team. Having to update two repos goes counter to this and will almost inevitably lead to someone wasting time because they forgot to update one and now hit an issue. A small amount of extra downloading for people wishing to use the engine isn't so bad. Also many mods will want to use our javascript which is part of the public mod anyway.
comment:9 by , 11 years ago
And anyway there's not a clear division between engine/mod/data currently, so until (if) we make that clearer, it's not worth worrying about separating them in different repos. As-is, source/
wouldn't be usable without binaries/data/
.
comment:10 by , 11 years ago
Milestone: | Alpha 13 → Alpha 14 |
---|
comment:11 by , 11 years ago
Latest plan is to have "our" own autobuild server running Jenkins, as outlined here: JenkinsSetup
The autobuilt files will be stored in an SVN repo and retrieved by the update script according to whatever git branch the user has checked out. It would be nice if all dependencies also had MSVC projects that could be built automatically this way, instead of the current approach of building them individually with a mix of compilers, then forgetting how it's done. But that's not needed initially.
(Apart from git, we want to upgrade the autobuild compiler to VC++ 2010 or 2012, but Philip says it's as much work to do that with the current system as it would be to implement the new one.)
comment:12 by , 11 years ago
Milestone: | Alpha 14 → Alpha 15 |
---|
comment:13 by , 10 years ago
Milestone: | Alpha 15 → Alpha 16 |
---|
comment:14 by , 10 years ago
Milestone: | Alpha 16 → Alpha 17 |
---|
comment:15 by , 10 years ago
Owner: | removed |
---|
comment:16 by , 10 years ago
Milestone: | Alpha 17 → Alpha 18 |
---|
comment:17 by , 9 years ago
Milestone: | Alpha 18 → Alpha 19 |
---|
comment:18 by , 9 years ago
Milestone: | Alpha 19 → Alpha 20 |
---|---|
Priority: | Release Blocker → Must Have |
comment:20 by , 8 years ago
Milestone: | Alpha 20 → Backlog |
---|
comment:21 by , 6 years ago
Cc: | added |
---|---|
Description: | modified (diff) |
How will we clean up old autobuild files, e.g. feature branches that have been merged into the development branch and removed?
If I'm correctly understanding the proposed design, it will be like this:
http://foo.wildfiregames.com/autobuild/master/
Then someone creates a def-lighting feature branch and autobuilds it:
http://foo.wildfiregames.com/autobuild/def-lighting/
We approve it and it gets merged into master, what happens to the def-lighting directory? Should the autobuilder itself be responsible for checking the branches and pruning old ones?