📜 ⬆️ ⬇️

Midnight Commander build environment - continued

Start

In the first part, I introduced the new binary package building service for the Midnight Commander file manager for Debian / Ubuntu. The comments rightly pointed out the lack of a technical description of the medium itself, and I promised that I would lay out the details as soon as the code was brought into a divine form. Two weeks passed, a little time appeared to stabilize the functionality and brush the code (it is still terrible, but it seems to work as intended), so it's time to fulfill the promise.

I don't specifically include source codes in the topic, there are a lot of them, and in my opinion the article is overloaded. Who cares , can download them with googlecode .
')

Assembly environment


The build environment consists of several shell scripts:

Next come the scripts that make up the build environment itself:


build-mc-from-git.sh


As I mentioned earlier, this is the most important part of the build environment. Performs two types of operations: build / reassemble releases and build night slices from GIT. If the release build was chosen, then the script:

Building the night slice differs only in that the sources are generated from the GIT repository and the incrementing code is different. If the script detects that there were no changes in the master branch of the repository, the assembly is interrupted.

buildbot.sh


This script calls build-mc-from-git.sh and in case of successful completion it does an additional check of the binary package in piuparts and if there are no errors, it starts the process of building the targets (squeeze-i386, squeeze-amd64, natty-i386, etc. .). After each successful build, the repository temporary structure is updated. If all the targets are collected successfully and buildbot.sh was called by one of the CRON tasks (mc-release-builds.sh or mc-nightly-builds.sh), then the update script of my repository is launched. At this point, the APT service information is updated, the Release files are signed, and the server copy is updated.

Now the full cycle of assembling 8 targets takes a little over an hour. In the future, I will probably expand the targates on rpm-based distros (as far as I understand, upstream has not restored the normal operation of the previous buildbot). Additional info or support is available on the project page .

Source: https://habr.com/ru/post/129989/


All Articles