DEBuild Package Recipe

Montuer has a continuously developed package recipe dedicated for DEB archive file distribution using 3rd-party DEBuild packager.

The objective is simple: to package the built project or app into .deb matching its archive distribution requirements using debuild.

All users has to do is to issue this command:

1
monteur package

For this recipe, they are arranged based on its own semantic versioning and is not directly related to Monteur's actual release version. Hence, feel free to explore and update each versions to suit your CI needs.

Resources

This recipe is built and maintained based on the following resources:

One Time Setup

To ensure maximum compatibiltiy with the recipe implementation, debuild requires a ONE-TIME (1) setup on your Debian-based operating system.

Cross Build

There is a very high chance that you will perform cross-build in your current build system. Hence, you need to at least make sure the correct crossbuild-essentials tools are readily available in your operating system. Here are some examples for installing cross-building essential tools for armhf and aarch64:

1
2
apt install crossbuild-essential-armhf
apt install crossbuild-essential-aarch64

DEBuild Overrides

In some cases, you might need to override dh_auto_build and dh_shlipdeps if you're using build tools elsewhere (e.g. Go already has its own build tools done and ready).

These overrides can be done in your (default path) .configs/monteur/app/config/[LANGUAGE]/debian.toml data file under DEB.Rules field. Here is an example for Go complied package:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[DEB]
...
Rules = """
#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

%:
        dh $@

override_dh_auto_build:
        echo "nothing to build"
override_dh_shlibdeps:
        echo "nothing to depend on"

Recipe File

Here are all the Monteur Package CI Job recipe files for operating DEBuild semi-autonomously. They are sorted by the latest version first, at the top.

Please read through its requiremnets and changes before procuring.

Version v2.0.0

Download Link: debuild-v2p0p0.toml

Minimum Requirements

  • Montuer version: v0.0.2 and above.

  • Supported platform: STRICTLY depends on Monteur availability.

Installation Instructions

  • Download and place the recipe file into your .configs/monteur/package/jobs/ directory as debuild.toml.

  • Update the recipe's Variables.GPGID pointing to your GPG signing key.

  • Update the recipe's Packages.XXX and list all the packages. Duplicate if there are more build variants.

  • Update the recipe's Packages.XXX.OS list all supported operating system. Minimum 1.

  • Update the recipe's Packages.XXX.Arch list all supported CPU architecture. Minimum 1.

  • Update the recipe's Packages.XXX.Changelog pointing to the package's corresponding filepath.

  • Update the recipe's Packages.XXX.Name filename without file extension.

  • Update the recipe's Packages.XXX.Distribution list of supported distributions.

  • Update the recipe's Packages.XXX.BuildSource instructs Monteur to build as source code package, not binary one, and not both. If both are required, use a separate recipe file.

  • Update the recipe's Packages.XXX.Files assemble the list of file for the package.

Changelog

  • NOT BACKWARD COMPATBILE - Removed [Changelog] as Monteur v0.0.2 supplies dedicated Prepare CI Job for this specific role."

  • BACKWARD COMPATBILE - Abstracted as many FMTVariables to many packages fields instead of hardcoding to specific ones.

Version v1.0.0

Download Link: debuild-v1p0p0.toml

Minimum Requirements

  • Montuer version: v0.0.1.

  • Supported platform: STRICTLY depends on Monteur availability.

Installation Instructions

  • Download and place the recipe file into your .configs/monteur/package/packagers/ directory as debuild.toml.

  • Update the recipe's Variables.ChangelogFrom to track your source branch for changelog generations.

  • Update the recipe's Variables.ChangelogTo to track your destination branch for changelog generations.

  • Update the recipe's Variables.GPGID pointing to your GPG signing key.

  • Update the recipe's Changelog.LineBreak to match the output line break characters for obtaining changelog entry data.

  • Update the recipe's Changelog.Regex for optionally filtering the changelog entry data.

  • Update the recipe's Packages.XXX and list all the packages. Duplicate if there are more build variants.

  • Update the recipe's Packages.XXX.OS list all supported operating system. Minimum 1.

  • Update the recipe's Packages.XXX.Arch list all supported CPU architecture. Minimum 1.

  • Update the recipe's Packages.XXX.Name filename without file extension.

  • Update the recipe's Packages.XXX.Distribution list of supported distributions.

  • Update the recipe's Packages.XXX.BuildSource instructs Monteur to build as source code package, not binary one, and not both. If both are required, use a separate recipe file.

  • Update the recipe's Packages.XXX.Files assemble the list of file for the package.

Changelog

  • BACKWARD COMPATBILE - Created the base TOML configuration recipe.

  • BACKWARD COMPATBILE - Tested with GitLab CI.

  • BACKWARD COMPATBILE - Using git to generate changelog entries between source and destination braches.

Epilogue

That's all for Monteur's Package CI Job handling DEBuild packaging tasks. If you have any question, please feel free to raise your question at our Issues Section.