Skip to content
Snippets Groups Projects
  1. Dec 09, 2020
    • lvl's avatar
      Introduce astcachedir, to be used for temporary bucket files · b0842713
      lvl authored
      As described in the issue, /tmp is not a suitable location for a
      large amount of cached media files, since most distributions make
      /tmp a RAM-based tmpfs mount with limited capacity.
      
      I opted for a location that can be configured separately, as opposed
      to using a subdirectory of spooldir, given the different storage
      profile (transient files vs files that might stay there indefinitely).
      
      This commit just makes the cache directory configurable, and changes
      the default location from /tmp to /var/cache/asterisk.
      
      ASTERISK-29143
      
      Change-Id: Ic54e95199405abacd9e509cef5f08fa14c510b5d
      b0842713
  2. Jul 24, 2020
  3. Mar 13, 2020
    • George Joseph's avatar
      CI: Create generic jenkinsfile · 00a7e4b5
      George Joseph authored
      This is a generic jenkinsfile to build Asterisk and optionally
      perform one or more of the following:
       * Publish the API docs to the wiki
       * Run the Unit tests
       * Run Testsuite Tests
      
      This job can be triggered manually from Jenkins or be triggered
      automatically on a schedule based on a cron string.
      
      Change-Id: Id9d22a778a1916b666e0e700af2b9f1bacda0852
      00a7e4b5
  4. Jan 08, 2020
    • George Joseph's avatar
      CI: Update buildAsterisk.sh to do a "make full" · d5f3ec92
      George Joseph authored
      If you do a "make all" when building Asterisk the xml documentation
      produced will be missing certain AMI events where their
      documentation is located not at the top of the c source file but
      embedded further down next to the event's manager_event()
      registration call.  See main/manager_mwi.c for an example.
      
      "make full" does produce the correct documentation so we're changing
      it in the build script.  A separate commit/issue will address the
      problem with "make all".
      
      ASTERISK-28507
      Reported by: David Lee
      
      Change-Id: I4a22635d6eef99eacecc0efb69e28360eebdb86c
      d5f3ec92
  5. Dec 02, 2019
  6. Nov 19, 2019
    • George Joseph's avatar
      CI: Fix missing script block in jenkinsfiles · 2a6a2800
      George Joseph authored
      Change-Id: I9f44a3d5085ea7880fad1a3883a4820907e29ea3
      (cherry picked from commit 95213b01)
      2a6a2800
    • George Joseph's avatar
      CI: Fix missing script block in jenkinsfiles · 4abb54b2
      George Joseph authored
      Change-Id: Ib4b6e4887695f230ea7a5b0c879b29fc5a13be4f
      (cherry picked from commit d60f23ec)
      (cherry picked from commit ce8a23fd)
      (cherry picked from commit f0d1ce50)
      4abb54b2
    • George Joseph's avatar
      CI: Increase clone depth and do better cleanup · e8e1314f
      George Joseph authored
      The original clone depth of 10 was causing the need to rebase
      changes whose parent was older than the 10 commits.  The clone
      depth has been increased to 100.
      
      Workspace cleanup was only happening for successful builds which
      wasn't enough to keep the 8G workspace in-memory drives on the
      docker slaves from filling up.  Now the workspaces are cleaned up
      after every build regardless of success/failure.  If you need to
      preserve builds temporarily, you can log into Jenkins/Manage
      Jenkins/Configure System and change the CLEANUP_WS_* environment
      variable for the job type you're troubleshooting to "FALSE".
      
      Change-Id: I0d7366e87cea714e5dbc9488caf718802fce75ca
      e8e1314f
  7. Aug 08, 2019
    • George Joseph's avatar
      CI: Escape backslashes in printenv/sort/tr · 446bac73
      George Joseph authored
      Change-Id: I52be64c8f6af2bbe15148a856d1f10cb113e1e94
      (cherry picked from commit c6558e09)
      446bac73
    • George Joseph's avatar
      CI: Add "throttle" label and "skip_gate" capability · be613060
      George Joseph authored
      To make throttling by label fully active, the "throttle" option
      has to be specified with a specific label.
      
      You can now specify "skip_gate" in the Gerrit comments when you
      do a +2 code review to tell Jenkins not to actually run the
      gate.  You'd do this if you plan to manually merge the change.
      
      Also updated the "printenv" debug output to better sort multi-line
      comments.
      
      Change-Id: I4c0b1085acec4805f2ca207eebac50aad81f27e2
      be613060
  8. Aug 06, 2019
    • George Joseph's avatar
      CI: Make node labels job-specific · c01dd2a4
      George Joseph authored
      Originally, the eligible nodes for a job were labelled only by
      "swdev-docker".  So basically any node could run any job.  We had
      found that allowing a node to run more than 1 gate at a time was
      problematic so we limited the nodes to processing 1 job at a time.
      With the creation of the Asterisk 17 branches however, we now have
      so many active branches that getting checks and gates through in
      a timely manner is problematic when a node can run only 1 job
      at a time.
      
      Now the nodes are also labelled by the job type they can run.
      For instance: "asterisk-check", "asterisk-gate", etc.  With the
      "Throttle Concurrent Builds" plugin, we can now allow a node to
      run more than 1 job BUT throttle by job type.  For instance:
        Allow 2 jobs but only 1 asterisk-gate at a time.
      Now a node can run 2 checks or 1 check and 1 gate or 1 gate but
      not 2 gates at a time.
      
      Change-Id: I2032bf6afbcec5c341d9b852214c0c812d3d6db5
      c01dd2a4
  9. Jul 24, 2019
  10. Jul 19, 2019
    • George Joseph's avatar
      CI: Add cleanWs to cleanup steps in jenkinsfiles · be8d41bd
      George Joseph authored
      We're at the point where there are enough Jenkins jobs for
      Asterisk branches than even cleaned checkouts of Asterisk
      will add up to more disk space than is available on the
      in-memory workspace mount.  Since we archive all relevent
      artifacts anyway, there's no need to keep the workspace
      around after the job finishes, whether it succeeds or fails.
      
      Change-Id: I1cd3b73ebb045a987df0f62526d152a510210c39
      be8d41bd
    • George Joseph's avatar
      CI: Add install-headers to the install make targets · 8b88994b
      George Joseph authored
      The testsuite actually needs the headers installed to run
      it's self_test.
      
      Change-Id: Ice41d331131b876ad4a9c056085fe6aac34b32b2
      8b88994b
  11. Jun 19, 2019
    • George Joseph's avatar
      CI: New way to determnine libdir · 0ba52ce3
      George Joseph authored
      We were using the presence of /usr/lib64 to determine where
      shared libraries should be installed.  This only existed on
      Redhat based systems and was safe.  If it existed, use it,
      otherwise use /usr/lib.
      
      Unfortunately, Ubuntu 19 decided to create a /usr/lib64 BUT
      NOT INCLUDE IT IN THE DEFAULT ld.so.conf.  So if anything is
      installed there, it won't work.
      
      The new method, just looks for $ID in /etc/os-release and if it's
      centos or fedora, uses /usr/lib64 and if ubuntu, uses /usr/lib.
      
      NOTE:  This applies only to the CI scripts.  Normal asterisk
      build and install is not affected.
      
      Change-Id: Iad66374b550fd89349bedbbf2b93f8edd195a7c3
      0ba52ce3
  12. Apr 15, 2019
    • George Joseph's avatar
      CI: Move test group config files to Jenkins · 8a32b680
      George Joseph authored
      One of the downaides of having things like test configuration
      in the git repo is that it can't be changed at runtime.  You have
      to create a review for the changes and merge it mefore it will
      take effect.
      
      This review moves the data currently held in
      tests/CI/periodic-dailyTestGroups.json and
      tests/CI/gateTestGroups.json into a Jenkins Config File attached
      to the job definitions.  This allows us to alter it from the
      Jenkins UI at runtime.  The original files stay in the repo
      as documentation.
      
      Change-Id: I14b9702f6285ce1fb2420287ba0e7d3b59109763
      8a32b680
  13. Apr 03, 2019
  14. Feb 27, 2019
    • George Joseph's avatar
      CI: Update jenkinsfiles with new Gerrit URLs · e0fc6632
      George Joseph authored
      The recent upgrade of Gerrit to 2.16 elimiated referencing a
      repository in a way the jenkinsfiles were relying on so
      the URL references were changed to a more consistent and supported
      format.
      
      Change-Id: I2e8e3f213b9a96bb1b27665eca4a9a24bc49820e
      (cherry picked from commit 5ce08457)
      e0fc6632
  15. Feb 19, 2019
    • Joshua Colp's avatar
      CI: Use tmpfs option to Docker instead of mount. · f4c9a351
      Joshua Colp authored
      Some tests require Asterisk to execute scripts which
      are stored in /tmp. When mount is used for tmpfs there
      is no ability to allow scripts to be executed from
      that location.
      
      This change switches to using tmpfs which can be told
      to allow executables to be run from /tmp.
      
      Change-Id: I0e598ca2b76af1f7f2d29f0da7b1731a214a291a
      f4c9a351
  16. Feb 08, 2019
    • Joshua Colp's avatar
      ci: Rerun unit tests when non-code changes occur. · c2ea9c90
      Joshua Colp authored
      This change makes it so that even if non-code changes
      occur (such as commit message changing) unit tests
      will still be run and result in a verification.
      
      ASTERISK-28251
      
      Change-Id: I6491fff7c93e5d5cd8e41054486968bf66c4f608
      c2ea9c90
  17. Dec 05, 2018
    • George Joseph's avatar
      CI: Various updates to buildAsterisk.sh · 19c4e0f5
      George Joseph authored
      * Added ---no-configure, --no-menuselect, --no-make and --no-alembic
        options that prevent those actions from being performed.  Useful
        for testing and re-running portions of the build after fixing
        earlier failures.
      
      * Added "set -e" to abort the script on command failure.
        Not sure why this wasn't there in the first place.
      
      * Fixed a few echos that were redirecting to stderr when they shouldn't
        have been.
      
      * Catch more alembic failures by actually trying to generate the SQL.
      
      Change-Id: I9f395fa4e9254be7299e7c1014f1a13db78faffb
      19c4e0f5
  18. Nov 19, 2018
    • George Joseph's avatar
      CI: Get job timeouts from environment · bcdfb903
      George Joseph authored
      The job timeouts were hard coded in the jenkinsfiles which
      means changes had to go through gerrit.  Now they are taken
      from the following environment variables (and their defaults) that
      can be set in Jenkins configuration...
      
      TIMEOUT_GATES =      "60 MINUTES"
      TIMEOUT_DAILIES =    "3 HOURS"
      TIMEOUT_REF_DEBUG =  "24 HOURS"
      TIMEOUT_UNITTESTS =  "30 MINUTES"
      
      Change-Id: I673a551c1780bf665a3bc160b245da574aa4bbab
      bcdfb903
  19. Nov 18, 2018
  20. Nov 17, 2018
    • George Joseph's avatar
      CI: Mount a tmpfs on /tmp for testsuite docker containers · f5e3832d
      George Joseph authored
      Change-Id: I0566d81b0852f22066cd76d58eae5f1fda5602aa
      (cherry picked from commit 73efe864)
      f5e3832d
    • George Joseph's avatar
      CI: Pass work directory to runTestsuite · be87185f
      George Joseph authored
      The testsuite can now use a user-specified work directory for
      all it's temp files.  This allows the docker containers to use
      a tmpfs backed directory for the temp files instead of it's
      own write-layer image.
      
      * runTestsuite.sh now accepts a --work-dir command line argument
        that gets exported as AST_WORK_DIR before running the testsuite.
      
      * gates.jenkinsfile now specifies --work-dir to be
        <testsuite_dir>/astroot.
      
      Since the Asterisk CI docker hosts now mount /srv/jenkins/workspace
      on a tmpfs, asterisk should be compiled and the testsuite run all in
      memory.
      
      Change-Id: If5ee905a15821296c355bb84cda38950ad8edc45
      (cherry picked from commit a335f4c9)
      be87185f
  21. Nov 16, 2018
    • George Joseph's avatar
      CI: Allow runUnittests to use 'expect' to run the tests · 8ff3435c
      George Joseph authored
      There seems to be a race condition between starting the asterisk
      daemon and attempting to use 'asterisk -r' that can cause the
      control socket file to not be created.  Since all of the Jenkins
      slaves have 'expect' installed, the runUnittests script can use
      it to start asterisk in the forground and issue the commands
      interactively.  This is much more reliable and it can also make
      startup errors more visible since they'll be in the Jenkins console
      output.
      
      If 'expect' isn't installed, the original daemon/asterisk -r
      process is used.
      
      Also added a "core show settings" before running the tests
      and added "notice,warning,error" to the console log.
      
      Change-Id: Idd656085f854afede813ac241b9e312b31358160
      8ff3435c
  22. Oct 04, 2018
  23. Oct 03, 2018
  24. Sep 26, 2018
  25. Sep 17, 2018
  26. Sep 14, 2018
  27. Sep 12, 2018
  28. Aug 27, 2018
    • Corey Farrell's avatar
      Create --disable-binary-modules option. · a2001c00
      Corey Farrell authored
      This new option can be passed for ./configure or
      ./tests/CI/buildAsterisk.sh to prevent download/install of binary
      modules.
      
      Normally enabling the categories MENUSELECT_CODECS or MENUSELECT_RES
      will result in binary modules being enabled even if the build target is
      incompatible with those modules.  This includes CI scripts which enable
      categories before disabling specific modules.
      
      If more binary modules are offered in the future this will help avoid
      accidentally downloading them if unwanted or incompatible.  Adding a
      binary module will only require creating a new menuselect entry similar
      to the existing ones, it will not be necessary to modify the CI scripts.
      
      Change-Id: I6b1bd1c75a2e48f05b8b8a45b7a7a2d00a079166
      a2001c00
  29. Aug 16, 2018
Loading