Skip to content
Snippets Groups Projects
  1. May 25, 2021
    • Maxim Cournoyer's avatar
      ci: Spread builds across multiple nodes. · 566bd6e8
      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
      Unverified
      566bd6e8
    • Maxim Cournoyer's avatar
      Jenkinsfile: Add parameters to allow skipping Qt, ARM packages. · f79926bd
      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
      Unverified
      f79926bd
    • Maxim Cournoyer's avatar
      build: Improvements to the generation of the release tarballs. · 6e0a3002
      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
      Unverified
      6e0a3002
  2. Feb 26, 2021
Loading