Mike Torrettinni 198 Posted October 22, 2021 I'm putting a list of tasks together that I do for every update, release, or just in general around the project, so that I never forget anything and also to see what I can automate or streamline. So, I'm interested in what kind of steps, tasks do you do in your CI process, manual and automated. So far I have, in the process of update release: manual, before automated: - copy user guide files to common destination - prepare change logs run automated (cmd script): - git commit (comment: version number) - build project (msbuild script) - create installers (Inno setup) manual, after automated: - to ftp - prepare and send update emails So, not a lot automated, yet. I don't run test cases, so I assume most of you will have this part of the build process. At least I'm missing these tasks in automated part, which I still plan to integrate : - backup projects and all important files, docs - git Push I assume some of you use FixInsight as part of the build process for final check before release, right? Do you use any other tools for build process to check for code? Do you do any reports, like summary of code changes... I can't even imagine what kind of task list a large team has, or someone who deploys to other platforms. Share this post Link to post
David Schwartz 426 Posted October 22, 2021 My last job I built a tool that integrated git into our workflow. Boy did it save a ton of errors and ensured we all did things the same way. It was a kind of "dashboard" that I did my work through. I also integrated a bunch of things that I found myself doing very regularly in my daily tasks. They were all very specific to the work we did, but it was extremely repetitive and automating parts of it made a huge difference. But the biggest benefit was with git, for sure. Share this post Link to post
Stano 143 Posted October 22, 2021 I as a non-programmer: FixInsight - I use it continuously. Depending on the situation. You can check the whole project or just the current unit (that's instant) EurekaLog - without it (or other similar products) it is out of the question Tests - I can't do them. That's why I test everything manually. It's tiring. I don't like it at all. I have to force myself into it GIT - I only use it as an archive. I don't do any branches or test versions Your whole process skeleton looks logical and good Share this post Link to post
Mike Torrettinni 198 Posted October 22, 2021 51 minutes ago, David Schwartz said: I also integrated a bunch of things that I found myself doing very regularly in my daily tasks. They were all very specific to the work we did, but it was extremely repetitive and automating parts of it made a huge difference. I'm actually still at the point when I regularly check the automated parts... if git did it's work, if installers contain appropriate files, when I do ftp I always download the files to check... and some details change, get improved almost monthly. So, still in progress. Share this post Link to post
Lars Fosdal 1792 Posted October 22, 2021 We have multiple sites that are development sites, test/qa sites or production sites. Each site can have one of three build tracks: Development, Pilot or Live. Update model can be automatic or manual. The config is kept in a database. The Continua CI will push new builds automatically to the dev/test/qa sites that have been configured as automatic, only if the automated unit tests was a success, and uses the same PowerShell scripts that are used when pushing out a new version manually. This saves a lot of time during test/qa, when fixes are more frequent than for a live site. The manual part consists of using a UI to select which site(s) that will get which executable(s), and db schema updates from the relevant build track. Scripting based on a stored config minimizes the chance of pushing the wrong version to the wrong site. Share this post Link to post
Mike Torrettinni 198 Posted October 22, 2021 3 hours ago, Stano said: Tests - I can't do them. That's why I test everything manually. It's tiring. I don't like it at all. I have to force myself into it I know the feeling, no tests. But I started running test for 'output', so if same input produces the same output from previous version. This is 'easier' than to write test cases for old code. Share this post Link to post
Rollo62 536 Posted October 22, 2021 I wanted to use Jenkins, but since Jenkins X arrived I'm a kind of starred like a rabbit in front of a snake, not konwing the status and future of Jenkins. While Jenkins X is a dockerized version of Jenkins, but not really compatible and not my true favorite, I'm not sure where the roadmap and the developers will move. Will Jenkins dissappear and get less active, or not ? Will Jenkins be replaced by Jenkins X in the long run ? Is Jenkins X just intended for different kind of customers ? Meanwhile still some time has passed by, and Jenkins seemed still normal and active, but I haven't checked the current situation for a least a few months now. Share this post Link to post
Vincent Parrett 750 Posted October 23, 2021 13 hours ago, Mike Torrettinni said: At least I'm missing these tasks in automated part, which I still plan to integrate : - backup projects and all important files, docs - git Push I think perhaps you are coming at this from the wrong angle.. git push is your backup (assuming you are using an offsite git server/service) - and should also be the trigger for automation in CI - ie you push your git commits, the CI server detects those changes and fires off a build, runs your unit tests, builds your installer, ftp's the files to the server and sends out email notificiations. (vendor plug) These days CI is very accessible even for solo developers. Our Continua CI product is free for a single concurrent build and a single build agent (installed on the same machine as the server) - other than that it's fully functional, unlimited configurations (and users) - perfect for solo developers and it's very easy to scale it up (add licenses, install extra agents as needed). It only takes a few minute to install and get up and running with a build process - The video shows using mercurial, visual studio and nunit, but it works just as well using git, delphi and dunitx. https://www.finalbuilder.com/resources/blogs/building-delphi-projects-with-continua-ci If you really want to expand your automation then take a look at FinalBuilder (built with delphi) - over 600 built in actions that cover version control (git, mercurial, svn and a bunch of others), compilation (delphi 3 - 11, msbuild, vs etc) - install builders (innosetup, installshield etc), deployment (FTP/FPTS/SFTP/SSH) and a too many others to mention here. The cool thing about FinalBuilder is you get to develop and debug your build process in an IDE that lets you step through your build process, stop on breakpoints, watch variables etc.. and then your build project can be checked into version control along with your source code and your CI server can run FinalBuilder to build your projects (using the console version of FinalBuilder). Of course Continua CI and FinalBuilder play very nicely together - we build FinalBuilder, Automise and Continua CI with FinalBuilder an Continua CI. https://www.finalbuilder.com/resources/blogs/continuous-integration-with-finalbuilder 2 Share this post Link to post
Mike Torrettinni 198 Posted October 23, 2021 12 hours ago, Vincent Parrett said: I think perhaps you are coming at this from the wrong angle.. The push is last action in my process. I only make new build when is ready (enough changes implemented) and then run the whole process. When all is done, I verify the commits and if all aligns I push. I don't really see Github as a backup, I see it more as a storage. But need to automate another backup to local disk. I use Archive from SourceTree that creates zip already. Perhaps this can be automated, or I guess directly from git. Thanks, Continua CI looks interesting. Share this post Link to post
David Champion 48 Posted October 23, 2021 37 minutes ago, Mike Torrettinni said: Thanks, Continua CI looks interesting. I have used it with a number of clients to good effect; highly recommended. Share this post Link to post
DPStano 15 Posted October 23, 2021 we are using gitflow + merge request CI pipeline(Gitlab runner) looks like - precheck like changelog/tags validation - build - prepare resources like versioninfo, build info, theme, licences, changelog .... - build dcc32 - postprocessing (like dfm packing clearing) - tests - updater and update - setups inno + msi - deploy (based on branch like upload to web for testerd when mr is merged to develop ...) Share this post Link to post
Mike Torrettinni 198 Posted October 23, 2021 15 minutes ago, DPStano said: - precheck like changelog what does this mean, automated changelogs? or this is manual pre-check? Share this post Link to post
DPStano 15 Posted October 23, 2021 the changelog is part of commit message like commit title [changelog] - bla bla bla - bla each mr has to have at least one commit with changelog with fixed structure, it will not stop pipeline just auto label merge request with "missing-changelog" or something like that... Share this post Link to post
Mike Torrettinni 198 Posted October 23, 2021 Interesting, my commit messages are not same as what users see, need. Commits are more about code change, while changelog gets end user feature change info, so I need to manually write them. Share this post Link to post
DPStano 15 Posted October 23, 2021 (edited) you have to track code changes and some changelog info together, when there are more like 100 commits in each release you are not able to look at every commit and write some info to release notes so normally you would have a file like changelog.md and every change should be written there before the merge, but when you are working on multiple branches with multiple developers its pain for constant rebase and conflict solving (you are constantly rewriting same line) so you will end up with multiple changelog.md files or ideally will move changelog from any tracked git file and now you have like two options write changelog to commit message or merge request description ... first one is simpler for processing so we started with that... and it working nicely ... and before new version release all commit's changelog lines are processed and some nice markdown file is created and uploaded to the web. Edited October 23, 2021 by DPStano 1 Share this post Link to post
corneliusdavid 214 Posted October 25, 2021 Does anyone use TaskRunner for automated builds/CI? Share this post Link to post
Mike Torrettinni 198 Posted October 26, 2021 4 hours ago, corneliusdavid said: Does anyone use TaskRunner for automated builds/CI? No, but the video looks a bit confusing to me with all the parameters setup. Perhaps my simple builds are just not suitable, too simple for it. On 10/22/2021 at 8:04 PM, Vincent Parrett said: Our Continua CI product is free for a single concurrent build and a single build agent (installed on the same machine as the server) I only see download for client/server version. Does it also come in a standalone, client only version, or does it need server running all the time? Share this post Link to post
Vincent Parrett 750 Posted October 26, 2021 18 minutes ago, Mike Torrettinni said: I only see download for client/server version. Does it also come in a standalone, client only version, or does it need server running all the time? It's a continuous integration server - it's designed to run as a service running all the time. It monitors your source code repositories (git, svn etc) for changes and triggers builds based on those changes. It can only do that when it's running. If you just want to automate the build process without doing continuous integration, then look at FinalBuilder. It's a desktop IDE application (there is also a console version included). Share this post Link to post
Mike Torrettinni 198 Posted October 26, 2021 31 minutes ago, Vincent Parrett said: look at FinalBuilder. It's a desktop IDE application (there is also a console version included). I re-read this topic and I assume my tasks are still way too simple for FinalBuilder: Even though I have more tasks now and a few more are coming, I guess still staying with batch files, for now. Share this post Link to post
Vincent Parrett 750 Posted October 26, 2021 19 minutes ago, Mike Torrettinni said: I re-read this topic and I assume my tasks are still way too simple for FinalBuilder: Download a trial version and see for yourself. Yes, you will need to give us your email address so we can send you a code and you will get a few follow up emails that are not sales, just trying to help you evaluate the product - we use drip.com for those emails and you can unsubscribe quite easily. Share this post Link to post