1. 13 12月, 2017 2 次提交
    • S
      travis-ci: move setting environment variables to 'ci/lib-travisci.sh' · e3371e92
      SZEDER Gábor 提交于
      Our '.travis.yml's 'env.global' section sets a bunch of environment
      variables for all build jobs, though none of them actually affects all
      build jobs.  It's convenient for us, and in most cases it works just
      fine, because irrelevant environment variables are simply ignored.
      
      However, $GIT_SKIP_TESTS is an exception: it tells the test harness to
      skip the two test scripts that are prone to occasional failures on
      OSX, but as it's set for all build jobs those tests are not run in any
      of the build jobs that are capable to run them reliably, either.
      
      Therefore $GIT_SKIP_TESTS should only be set in the OSX build jobs,
      but those build jobs are included in the build matrix implicitly (i.e.
      by combining the matrix keys 'os' and 'compiler'), and there is no way
      to set an environment variable only for a subset of those implicit
      build jobs.  (Unless we were to add new scriptlets to '.travis.yml',
      which is exactly the opposite direction that we took with commit
      657343a6 (travis-ci: move Travis CI code into dedicated scripts,
      2017-09-10)).
      
      So move setting $GIT_SKIP_TESTS to 'ci/lib-travisci.sh', where it can
      trivially be set only for the OSX build jobs.
      
      Furthermore, move setting all other environment variables from
      '.travis.yml' to 'ci/lib-travisci.sh', too, because a couple of
      environment variables are already set there, and this way all
      environment variables will be set in the same place.  All the logic
      controlling our builds is already in the 'ci/*' scripts anyway, so
      there is really no good reason to keep the environment variables
      separately.
      Signed-off-by: NSZEDER Gábor <szeder.dev@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      e3371e92
    • S
      travis-ci: introduce a $jobname variable for 'ci/*' scripts · bf427a94
      SZEDER Gábor 提交于
      A couple of 'ci/*' scripts are shared between different build jobs:
      'ci/lib-travisci.sh', being a common library, is sourced from almost
      every script, while 'ci/install-dependencies.sh', 'ci/run-build.sh'
      and 'ci/run-tests.sh' are shared between the "regular" GCC and Clang
      Linux and OSX build jobs, and the latter two scripts are used in the
      GETTEXT_POISON Linux build job as well.
      
      Our builds could benefit from these shared scripts being able to
      easily tell which build job they are taking part in.  Now, it's
      already quite easy to tell apart Linux vs OSX and GCC vs Clang build
      jobs, but it gets trickier with all the additional Linux-based build
      jobs included explicitly in the build matrix.
      
      Unfortunately, Travis CI doesn't provide much help in this regard.
      The closest we've got is the $TRAVIS_JOB_NUMBER variable, the value of
      which is two dot-separated integers, where the second integer
      indicates a particular build job.  While it would be possible to use
      that second number to identify the build job in our shared scripts, it
      doesn't seem like a good idea to rely on that:
      
        - Though the build job numbering sequence seems to be stable so far,
          Travis CI's documentation doesn't explicitly states that it is
          indeed stable and will remain so in the future.  And even if it
          were stable,
      
        - if we were to remove or insert a build job in the middle, then the
          job numbers of all subsequent build jobs would change accordingly.
      
      So roll our own means of simple build job identification and introduce
      the $jobname environment variable in our builds, setting it in the
      environments of the explicitly included jobs in '.travis.yml', while
      constructing one in 'ci/lib-travisci.sh' as the combination of the OS
      and compiler name for the GCC and Clang Linux and OSX build jobs.  Use
      $jobname instead of $TRAVIS_OS_NAME in scripts taking different
      actions based on the OS and build job (when installing P4 and Git LFS
      dependencies and including them in $PATH).  The following two patches
      will also rely on $jobname.
      Signed-off-by: NSZEDER Gábor <szeder.dev@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      bf427a94
  2. 02 11月, 2017 1 次提交
  3. 11 9月, 2017 1 次提交
  4. 11 5月, 2017 2 次提交
  5. 27 4月, 2017 1 次提交
  6. 17 4月, 2017 3 次提交
  7. 29 3月, 2017 1 次提交
    • L
      travis-ci: build and test Git on Windows · 029aeeed
      Lars Schneider 提交于
      Most Git developers work on Linux and they have no way to know if their
      changes would break the Git for Windows build. Let's fix that by adding
      a job to TravisCI that builds and tests Git on Windows. Unfortunately,
      TravisCI does not support Windows.
      
      Therefore, we did the following:
      * Johannes Schindelin set up a Visual Studio Team Services build
        sponsored by Microsoft and made it accessible via an Azure Function
        that speaks a super-simple API. We made TravisCI use this API to
        trigger a build, wait until its completion, and print the build and
        test results.
      * A Windows build and test run takes up to 3h and TravisCI has a timeout
        after 50min for Open Source projects. Since the TravisCI job does not
        use heavy CPU/memory/etc. resources, the friendly TravisCI folks
        extended the job timeout for git/git to 3h.
      
      Things, that would need to be done:
      * Someone with write access to https://travis-ci.org/git/git would need
        to add the secret token as "GFW_CI_TOKEN" variable in the TravisCI
        repository setting [1]. Afterwards the build should just work.
      
      Things, that might need to be done:
      * The Windows box can only process a single build at a time. A second
        Windows build would need to wait until the first finishes. This
        waiting time and the build time after the wait could exceed the 3h
        threshold. If this is a problem, then it is likely to happen every day
        as usually multiple branches are pushed at the same time (pu/next/
        master/maint). I cannot test this as my TravisCI account has the 50min
        timeout. One solution could be to limit the number of concurrent
        TravisCI jobs [2].
      
      [1] https://docs.travis-ci.com/user/environment-variables#Defining-Variables-in-Repository-Settings
      [2] https://docs.travis-ci.com/user/customizing-the-build#Limiting-Concurrent-BuildsSigned-off-by: NLars Schneider <larsxschneider@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      029aeeed
  8. 07 3月, 2017 1 次提交
  9. 24 1月, 2017 1 次提交
  10. 06 12月, 2016 1 次提交
  11. 11 11月, 2016 1 次提交
  12. 22 10月, 2016 1 次提交
  13. 23 9月, 2016 1 次提交
  14. 13 7月, 2016 1 次提交
  15. 22 6月, 2016 1 次提交
    • J
      perf: accommodate for MacOSX · e3efa94b
      Johannes Schindelin 提交于
      As this developer has no access to MacOSX developer setups anymore,
      Travis becomes the best bet to run performance tests on that OS.
      
      However, on MacOSX /usr/bin/time is that good old BSD executable that
      no Linux user cares about, as demonstrated by the perf-lib.sh's use
      of GNU-ish extensions. And by the hard-coded path.
      
      Let's just work around this issue by using gtime on MacOSX, the
      Homebrew-provided GNU implementation onto which pretty much every
      MacOSX power user falls back anyway.
      
      To help other developers use Travis to run performance tests on
      MacOSX, the .travis.yml file now sports a commented-out line that
      installs GNU time via Homebrew.
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Reviewed-by: NLars Schneider <larsxschneider@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      e3efa94b
  16. 23 5月, 2016 1 次提交
  17. 11 5月, 2016 1 次提交
  18. 29 4月, 2016 1 次提交
  19. 20 4月, 2016 1 次提交
  20. 26 2月, 2016 1 次提交
  21. 27 1月, 2016 2 次提交
  22. 29 11月, 2015 1 次提交