- May 25, 2021
-
-
Maxim Cournoyer authored
When a .tarball-version file containing the version string is present, it is taken for granted that the source tarball is present. This allows to lift the requirement on a Git checkout to use the source tarball. This makes it easy and cheap to sync this tarball and accompanying .tarball-version file across different Jenkins agents to distribute the packaging jobs, bring the total build time from about 1 h 40 to 40 minutes. * Makefile (TARBALL_VERSION): New variable. When defined, do not do not invoke Git to derive the version string, simply use it. [RELEASE_TARBALL_FILENAME]: Do not compute prerequisites when TARBALL_VERSION is defined; assume the tarball is present. * .gitignore: Ignore .tarball-version. * Jenkinsfile: (Generate release tarball): Generate a .tarball-version file, and stash it along the release tarball. Explicit this should run on a 'guix' agent. (Build packages): Forward to any 'linux-builder' agent, clean the workspace, unstash and extract the tarball and build. GitLab: jami-packaging#98 Change-Id: I13088b75c9ccd5166662a84b7c5f8d4e8b7b65da
-
Maxim Cournoyer authored
* Jenkinsfile [parameters]: New directive. (Build packages): Skip building custom Qt or ARM packages depending on the parameter values. GitLab: jami-packaging#98 Change-Id: Ic68af873483ac92319061baf5f14ef7323a27a26
-
Maxim Cournoyer authored
The phony tarball-producing targets will now always clear the tarballs.manifest file before generating a new release tarball, ensuring it doesn't contain stale information. A new 'portable-release-tarball' target is also added to offer an easy to use target that was previously implemented ad-hoc in the CI. Move this logic here as a portable release tarball is useful for packagers wanting to test locally with the various supported platforms. The Jenkinsfile now makes use of it. * Makefile (daemon/contrib/native/Makefile): New target. (tarballs.manifest): Add the above target as a prerequisite and remove invocation to bootstrap script. Invoke make with --no-print-directory to prevent entering/leaving directory messages from appearing in the output (it's supposed to be on when using --silent, but when the make invocation is nested, it doesn't seem to be the case). (release-tarball): Also clear the tarballs.manifest when invoked. (purge-release-tarballs, portable-release-tarball): New targets. * guix/minimal-manifest.scm: New file. * Jenkinsfile ('Generate release tarball): Use it to spawn the container used to build the release tarball. Also expose /usr/bin/env in the container. Use the new 'portable-release-tarball' target to simplify things. Fix the shebang line; it needs to be the first line of the script. GitLab: jami-packaging#98 Change-Id: I3b55e25933108ae9930bc9fcc867f9fa51d796f2
-
- Feb 26, 2021
-
-
Maxim Cournoyer authored
The pipeline code is modernized to use the declarative pipeline DSL of Jenkins, and the GNU/Linux package builds now all share the same source release archive, which is built from cached contribs tarballs when available. GitLab: jami-packaging#55 Change-Id: Id7f37966dd80c36cfa0ebdd461c0ab90505dcd37
-