1. 03 Jun, 2020 2 commits
  2. 01 Jun, 2020 1 commit
  3. 25 May, 2020 1 commit
  4. 21 May, 2020 3 commits
  5. 18 May, 2020 1 commit
    • Michał Kępień's avatar
      Install Python test prerequisites in all images · 2aa539bb
      Michał Kępień authored
      With the introduction of Python-based system tests in BIND, all
      operating system images used in GitLab CI should now have pytest and the
      "requests" module installed.  Additionally, the pip tool should also be
      available to facilitate prototyping tests in merge requests by
      eliminating the need to install pip in each CI job.
      2aa539bb
  6. 13 May, 2020 2 commits
  7. 29 Apr, 2020 7 commits
  8. 27 Apr, 2020 5 commits
    • Michał Kępień's avatar
      Improve CI job triggering rules · 361e1aab
      Michał Kępień authored
        - Automatically start jobs for all images potentially affected by a
          Dockerfile template change or a Packer source file modification.
          The rationale here is that most meaningful changes to image contents
          happen through modifications to Dockerfile templates and Packer
          source files while Makefile updates are rare (and starting all
          relevant jobs when a Makefile is modified would be reckless).
      
        - Allow all jobs to be run (on demand) for pipelines created through
          the web interface.  This allows any build job to be tested before
          merging a branch which modifies Makefile(s) but does not touch any
          Dockerfile templates or Packer source files (since Makefile changes
          alone do not trigger build jobs).
      
        - Automatically push rebuilt images to the production Docker registry
          when a branch is merged into "master".  Propagating changes
          introduced by branches which only touch Makefile(s) will require
          creating a pipeline for the "master" branch using the web interface,
          but that is expected to be needed rarely.
      
        - Ensure scheduled build jobs are still run automatically.
      361e1aab
    • Michał Kępień's avatar
      Enable parallel compilation for FreeBSD QCOW2 jobs · 8ddcd2cb
      Michał Kępień authored
      Packer jobs should also benefit from parallel compilation the way Docker
      jobs do.  This only applies to FreeBSD jobs for the time being (since we
      do not compile any source code while building other QCOW2 images), but
      make the necessary adjustments on a "global" level (in packer/Makefile)
      anyway, so that further platforms can be tweaked more conveniently if
      the need arises in the future.  While packer/freebsd/packer.json only
      allocates 2 vCPUs to the VM building the QCOW2 image and the default
      number of parallel build jobs is set to 6, we do not care much about
      that discrepancy.
      8ddcd2cb
    • Michał Kępień's avatar
      Only push "production" QCOW2 images from master · 543773f3
      Michał Kępień authored
      Use a "staging" registry for QCOW2 images in a similar spirit as for its
      Docker counterpart - only update QCOW2 images in the main registry when
      a CI job is run for the "master" branch.  This allows us to experiment
      freely with the build process using custom branches, merge requests,
      etc., without any risk of affecting GitLab CI results.
      543773f3
    • Michal Nowak's avatar
      Build custom software in parallel · 494a7c88
      Michal Nowak authored
      Number of make jobs is the same as in the BIND repository.
      494a7c88
    • Michal Nowak's avatar
      Cache Kyua · de0f7f2a
      Michal Nowak authored
      Since image building happens in special Docker-in-Docker container, we
      can't use GitLab cache as-is but we need to get the extracted cache
      content first to the root/context directory where Docker build will take
      place and then to the image itself during the Docker build. After that
      updated content is copied out of the published image to a place where it
      can be cached by GitLab.
      de0f7f2a
  9. 24 Apr, 2020 1 commit
    • Michal Nowak's avatar
      Rebuild Tumbleweed and sid images periodically · 58711bba
      Michal Nowak authored
      'when:manual' for all Docker (and KVM) jobs prevents us from executing
      them via Scheduler (a pipeline with 'skipped' jobs is created). As we
      nearly never intend to execute all jobs at once, and thus removing
      'when:manual' is not an option, special 'REBUILD_PERIODICALLY' variable
      is added for jobs which should rather have 'when:always' set and thus
      start automatically in Schedule.
      
      'only_if_XXX_changed' templates were removed as 'only' is not compatible
      with 'rules' (and is deprecated anyway) and because they are not working
      as intended in most situations.
      58711bba
  10. 21 Apr, 2020 1 commit
  11. 01 Apr, 2020 1 commit
  12. 27 Mar, 2020 2 commits
    • Michał Kępień's avatar
      Fix dnstap installation conditions · c517bfea
      Michał Kępień authored
      dnstap dependencies are currently unconditionally included in Alpine
      Linux images.  Only install them if the relevant Makefile variable is
      set.
      
      Tweak the condition for installing dnstap dependencies on CentOS so that
      it matches its Debian counterpart.
      c517bfea
    • Michał Kępień's avatar
      Include vendor in optional installation variables · 0be3b668
      Michał Kępień authored
      Some Linux distributions (e.g. Alpine Linux) neither use release
      codenames nor include the distribution name in their Docker tags.  Since
      variable names like "dnstap_3.11_amd64" would cause confusion, include
      distribution names in the names of Makefile variables controlling
      conditional installations.
      0be3b668
  13. 26 Mar, 2020 5 commits
  14. 25 Mar, 2020 7 commits
    • Michal Nowak's avatar
      Drop Fedora 30 · 7ec026e7
      Michal Nowak authored
      7ec026e7
    • Michal Nowak's avatar
      Drop Alpine Linux 3.10 · e1efd647
      Michal Nowak authored
      e1efd647
    • Michał Kępień's avatar
      39bdcd30
    • Ondřej Surý's avatar
      ffdab6a5
    • Ondřej Surý's avatar
      Rework the way we build and use Debian/Ubuntu images · 8a94d972
      Ondřej Surý authored
      Following changes have been made to the Makefile and Dockerfile for
      Debian/Ubuntu images:
      
      * With introduction of arm64 builder, we needed more fine grained
        switches that define whether to install specific software bundle into
        the image.  The switches are now defined as a tripplets:
        <software>_<version>_<architecture>, e.g. dnstap_buster_amd64
      
      * Change the install/no-install logic for abi-compliance-checker,
        shellcheck, and compiledb from Dockerfile to the Makefile
      
      * It was hard to test whether the images build correctly and not mess
        with production environment.  Now, the images are pushed only if the
        pipeline is run on the default repository branch (e.g. master).
      
      * Install only a single LLVM/Clang version - 10 at the time of this
        commit.  This has to match with bind9's .gitlab-ci.yml.
      
      * Don't install the LLVM/Clang to Debian sid, this is more often broken
        than it's not.
      
      * Pick a "base_image" in the bind9's .gitlab-ci.yml that will have the
        extra software.  At the time of writing this, The Debian amd64 buster
        image was picked.  This means needs to get the latest version of the
        clang, coccinelle, abicc, cppcheck and others.
      
      * If `@FOO@` in the `if [ -n "@FOO@" ]` construct didn't get replaced it
        would default to true.  Change this to `if [ "@FOO@" = "yes" ]` that
        defaults to false.
      
      * Install the abi-compliance-checker and it's dependencies from the git
        repository instead from the Debian buster repository.
      8a94d972
    • Ondřej Surý's avatar
      e071c7b5
    • Ondřej Surý's avatar
      bcc828c9
  15. 24 Mar, 2020 1 commit