Stan` Posted September 1, 2022 Report Share Posted September 1, 2022 5 hours ago, hyperion said: man git-worktree ? As far as I know Jenkins doesn't support worktree out of the box. So what it does is create one folder per pipeline which in theory leads to 9GB of useless files per pipeline. (My git repo is a bit lighter than the current one, and that's with depth 1) On linux we use zfs pools and we mount that into dockers. So we have one XGB repo and only the extra binaries in eached jenkins folder. Quote Link to comment Share on other sites More sharing options...
hyperion Posted September 2, 2022 Report Share Posted September 2, 2022 https://trac.wildfiregames.com/wiki/JenkinsSetup isn't really helpful in understanding the current setup or what you want to do, neither zfs, docker, phab integration, full/partial builds, machines nor test runs are mentioned. Anyway I thought worktree support was added a few years back, whether this might be of use here I don't know Quote Link to comment Share on other sites More sharing options...
Stan` Posted September 2, 2022 Report Share Posted September 2, 2022 2 hours ago, hyperion said: https://trac.wildfiregames.com/wiki/JenkinsSetup isn't really helpful in understanding the current setup or what you want to do, neither zfs, docker, phab integration, full/partial builds, machines nor test runs are mentioned. Anyway I thought worktree support was added a few years back, whether this might be of use here I don't know I had no idea those pages existed. I wasn't the one to set up the CI, Itms did, so I kind of picked it up when it started failing. Basically Phabricators and now Gitea trigger webhooks that call Jenkins pipelines. Those run and then pingback the Phabricator server (or don't and then you get stuck builds) The Jenkins pipelines can be found here pipelines in ps/trunk/build/jenkins – Wildfire Games I made some fixes recently I should commit when I get some free time. I made the first experiments with the ligther git on gitlab.wildfiregames.com and managed to build the game on macOS and on FreeBSD, because the setup is simpler. On linux you've got at least two docker images, gcc7 and clang7 that are mounted when the CI runs. The idea was to not have to install any dependencies on the host VM. Jenkins is a VM, the Linux Autobuilder is another VM, the Windows Autobuilder is another one, and the macOS one is running courtesy of MacStadium on their servers. This script is ran periodically and restores the zpool images docker-rebuild.Jenkinsfile in ps/trunk/build/jenkins/pipelines – Wildfire Games This script is run at each commit and updates the zpool images docker-svn.Jenkinsfile in ps/trunk/build/jenkins/pipelines – Wildfire Games This one makes the releases macos-all-bundles.Jenkinsfile in ps/trunk/build/jenkins/pipelines – Wildfire Games Quote Link to comment Share on other sites More sharing options...
hyperion Posted September 3, 2022 Report Share Posted September 3, 2022 Thanks, I probably have a rough idea now. on commit to trunk: for each builder in freebsd windows-v2015 linux-gcc7 linux-clang7 macos: restore snapshot ${builder}:trunk do partial build on success: run tests on failure: go boink update snapshot ${builder}:trunk on failure: go boink keep logs Well, except macos, hurray to MacStadium Should be possible to use worktrees if careful, but clones are robuster. Another hack to save another 30+ GB $ git checkout $(git commit-tree -p HEAD $(git hash-object -t tree /dev/null) < /dev/null) save/restore snapshot $ git checkout HEAD^ The combination would shrink your repo to a couple kB and the snapshot to basically only build artifacts. PS: windows-v2015 has c++17 support? 1 Quote Link to comment Share on other sites More sharing options...
Lion.Kanzen Posted October 18, 2022 Report Share Posted October 18, 2022 (edited) Explicación en español para dummies( tontitos) Spanish(Explanation) It will be useful to those of us who are not programmers, like me. @Duileoga Esto te puede servir como base, no es importante pero así funciona nuestro proyecto. Edited October 18, 2022 by Lion.Kanzen 1 Quote Link to comment Share on other sites More sharing options...
Ceres Posted October 31, 2022 Report Share Posted October 31, 2022 Hello! I would love to exchange files as PRs or similar via git (GitHub, GitLab, or some other repo system). I have added/modified files on my laptop (to show game paths) but am unsure if/how to make them available to other developers/reviewers. I know very little about Trac, Phab, etc., but that is (for me) much too complicated. Quote Link to comment Share on other sites More sharing options...
asterix Posted February 7, 2023 Report Share Posted February 7, 2023 https://code.blender.org/2023/02/new-blender-development-infrastructure/ @Stan` 1 Quote Link to comment Share on other sites More sharing options...
BafS Posted February 8, 2023 Report Share Posted February 8, 2023 I there any chance we could use the public instance of gitlab or github and use their "actions"? I'm pretty sure it would help other developers to participate. Quote Link to comment Share on other sites More sharing options...
Stan` Posted February 8, 2023 Report Share Posted February 8, 2023 2 hours ago, BafS said: I there any chance we could use the public instance of gitlab or github and use their "actions"? I'm pretty sure it would help other developers to participate. No it was decided it will be self hosted on https://git.wildfiregames.com CI will be handled by Jenkins. 2 Quote Link to comment Share on other sites More sharing options...
sternstaub Posted February 8, 2023 Report Share Posted February 8, 2023 8 minutes ago, Stan` said: No it was decided it will be self hosted Nice, looking forward to see it Quote Link to comment Share on other sites More sharing options...
BafS Posted February 10, 2023 Report Share Posted February 10, 2023 Okay thanks for the information, it's great to see the project moving to git. We could still do a mirror on github to make the project more visible (https://docs.gitea.io/en-us/repo-mirror/). Quote Link to comment Share on other sites More sharing options...
Stan` Posted February 10, 2023 Report Share Posted February 10, 2023 1 minute ago, BafS said: Okay thanks for the information, it's great to see the project moving to git. We could still do a mirror on github to make the project more visible (https://docs.gitea.io/en-us/repo-mirror/). Well you have github.com/0AD/0AD and gitlab.com/0AD/0AD Quote Link to comment Share on other sites More sharing options...
BafS Posted February 10, 2023 Report Share Posted February 10, 2023 1 minute ago, Stan` said: Well you have github.com/0AD/0AD and gitlab.com/0AD/0AD That's true, unfortunately you cannot do a pull request from there right? I don't know if that could be an option with gitea Quote Link to comment Share on other sites More sharing options...
Stan` Posted February 10, 2023 Report Share Posted February 10, 2023 Just now, BafS said: That's true, unfortunately you cannot do a pull request from there right? I don't know if that could be an option with gitea Don't think you can do cross website pull requests either. Quote Link to comment Share on other sites More sharing options...
Ceres Posted February 10, 2023 Report Share Posted February 10, 2023 @Stan` Will there be something like PRs? Quote Link to comment Share on other sites More sharing options...
Stan` Posted February 10, 2023 Report Share Posted February 10, 2023 6 hours ago, Ceres said: @Stan` Will there be something like PRs? Yeah. I have to think about it but basically in my head you'll be able (when granted access for obvious reasons) to create branches on the main repo. (Forks would be nice but it seems it would take too much space on the server) 1 Quote Link to comment Share on other sites More sharing options...
hyperion Posted February 10, 2023 Report Share Posted February 10, 2023 43 minutes ago, Stan` said: Forks would be nice but it seems it would take too much space on the server If it's on a filesystem which supports hardlinks this shouldn't be to costly, not sure about giteas support, but worth testing for sure. Quote Link to comment Share on other sites More sharing options...
Stan` Posted February 11, 2023 Report Share Posted February 11, 2023 It's most probably EXT4 but from what I've seen gitea copies the whole .git folder. So each time someone makes a patch we could get an extra 5GB and that would quickly be unmanageable. That VM is already 500GB large which is starting to be an issue for backups. Feel free to investigate Quote Link to comment Share on other sites More sharing options...
Ceres Posted February 11, 2023 Report Share Posted February 11, 2023 Do you own the server/VM and can change the FS? Would it be possible to exclude certain assets from forks? If somebody wants to contribute (by forking & PR'ing) to the code but not to SFX or GFX, would that be possible (and save space)? Quote Link to comment Share on other sites More sharing options...
Stan` Posted February 11, 2023 Report Share Posted February 11, 2023 6 hours ago, Ceres said: Do you own the server/VM and can change the FS? We do and we can, although not that easily. First we need to migrate everything. The same vm is used for gitea phabricator and trac. 6 hours ago, Ceres said: Would it be possible to exclude certain assets from forks? If somebody wants to contribute (by forking & PR'ing) to the code but not to SFX or GFX, would that be possible (and save space)? Not really. You'd need to split the repo into subrepos for that and some team members don't like the idea because it makes contributing to both much harder cause you have to write N PRs where N is the number of repos. Again not an issue with a lot of people much more annoying with little amount of contributors 1 Quote Link to comment Share on other sites More sharing options...
maroder Posted February 12, 2023 Report Share Posted February 12, 2023 On 10/02/2023 at 1:38 PM, Stan` said: Don't think you can do cross website pull requests either. You can't do official "Pull requests" But my understanding based on this SO answer: https://stackoverflow.com/a/15057469 by Eevee (CC-BY-SA) is that people could just fork the gh/gitlab repository, do whatever pull request they want over there in separate feature branches (we can even use the free "actions" to run some test) and the we could just merge those manually or automatically back into the gitea one. The question is more: do we want to accept pr's from there/ does it make sense to split the development discussion in even more places/ is this worth the effort. 1 Quote Link to comment Share on other sites More sharing options...
Stan` Posted February 12, 2023 Report Share Posted February 12, 2023 1 hour ago, maroder said: The question is more: do we want to accept pr's from there/ does it make sense to split the development discussion in even more places/ is this worth the effort. My answer is no ^^ 1 1 Quote Link to comment Share on other sites More sharing options...
maroder Posted February 12, 2023 Report Share Posted February 12, 2023 10 minutes ago, Stan` said: My answer is no ^^ yeah, that's also what I thought when I wrote it. Quote Link to comment Share on other sites More sharing options...
hyperion Posted February 12, 2023 Report Share Posted February 12, 2023 19 hours ago, Stan` said: It's most probably EXT4 but from what I've seen gitea copies the whole .git folder. Then a COW filesystem like Btrfs might be best bet as it supports "offline" de-duplication so even if gitea doesn't cp --reflink you'd be fine. https://www.man7.org/linux/man-pages/man2/ioctl_fideduperange.2.html Added bonus of using Btrfs, backups are easier. Don't know Go but I'll grab the gitea sources, maybe I can figure out what it does. 9 hours ago, Stan` said: The same vm is used for gitea phabricator and trac. They don't share subdomain so splitting sounds like a good idea regardless? 1 Quote Link to comment Share on other sites More sharing options...
hyperion Posted February 12, 2023 Report Share Posted February 12, 2023 1 hour ago, hyperion said: Don't know Go but I'll grab the gitea sources, maybe I can figure out what it does. Appears to run "git clone --bare", which when testing locally on a btrfs file systems uses reflinks, ie. the clone shares physical extents. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.