Commit Graph

119 Commits

Author SHA1 Message Date
Austin Seipp
76b05b1630 releaseTools: add {clang,coverity}Analysis tools
These two expressions greatly simplify using the clang-analyzer or
Coverity static analyzer on your C/C++ projects. In fact, they are
identical to nixBuild in every way out of the box, and should 'Just
Work' providing your code can be compiled with Clang already.

The trick is that when running 'make', we actually just alias it to the
appropriate scan build tool, and add a post-build hook that will bundle
up the results appropriately and unalias it.

For Clang, we put the results in $out/analysis and add an 'analysis'
report to $out/nix-support/hydra-build-products pointing to the result
HTML - this means that if the analyzer finds any bugs, the HTML results
will automatically show up Hydra for easy viewing.

For Coverity, it's slightly different. Instead we run the build tool and
after we're done, we tar up the results in a format that Coverity Scan's
service understands. We put the tarball in $out/tarballs under the name
'foo-cov-int.xz' and add an entry for the file to hydra-build-products
as well for easy viewing.

Of course for Coverity you must then upload the build. A Hydra plugin to
do this is on the way, and it will automatically pick up the
cov-int.tar.xz for uploading.

Note that coverityAnalysis requires allowUnfree = true;, as well as the
cov-build tools, which you can download from https://scan.coverity.com -
they're not linked to your account or anything, it's just an annoying
registration wall.

Note this is a first draft. In particular, scan-build fixes the C/C++
compiler to be Clang, and it's perfectly reasonable to want to use Clang
for the analyzer but have scan-build invoke GCC instead.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2014-05-02 14:07:37 -05:00
Eelco Dolstra
497997cc38 Move generation of coverage reports from nixos/lib/testing to releaseTools
Also, turn some stdenv adapters into setup hooks.
2014-03-03 13:57:08 +01:00
Eelco Dolstra
77376a215e debBuild: Allow setting a maintainer address 2014-02-06 14:36:50 +01:00
Eelco Dolstra
6b613f285c Fix nixBuild 2014-02-06 12:30:26 +01:00
Eelco Dolstra
80647127a3 Turn the coverage analysis stdenv adapters into setup hooks
Stdenv adapters are kinda weird and un-idiomatic (especially when they
don't actually change stdenv).  It's more idiomatic to say

  buildInputs = [ makeCoverageAnalysisReport ];
2014-02-05 19:18:33 +01:00
Rob Vermaas
13e13f279b Do not assume a .rev attribute in available in src in maven-build.nix 2014-01-24 15:52:31 +01:00
Eelco Dolstra
16e626a80d Replace lib/java -> share/java 2014-01-09 13:01:38 +01:00
Eelco Dolstra
4728ec3f99 Fix some references to apacheAntOpenJDK 2014-01-06 14:36:13 +01:00
Eelco Dolstra
0ff6f51703 Build aggregates locally
They're so trivial that we don't want to copy all those dependencies
to remote machines.
2013-08-21 14:50:34 +02:00
Eelco Dolstra
7151b3719f Aggregates should not have a build product 2013-08-21 11:47:57 +02:00
Eelco Dolstra
68469ca342 releaseTools.aggregate: Rename ‘members’ to ‘constituents’ 2013-08-15 02:29:08 +02:00
Eelco Dolstra
d46858d5b8 Propagate failure of aggregate members 2013-08-15 01:40:33 +02:00
Peter Simons
fd76a89bcb pkgs/build-support/release/nix-build.nix: unconfuse syntax highlighting 2013-04-18 12:18:39 +02:00
Eelco Dolstra
b38647766d releaseTools: Add ‘aggregate’ function
An aggregate is a trivial build that depends on other builds.  This is
intended to provide a declarative replacement of Hydra's "view"
mechanism.

For instance, you can define an aggregate named "critical" that
depends on a selected set of jobs:

  critical = releaseTools.aggregate
    { name = "foo-${tarball.version}";
      members =
        [ tarball
          build.x86_64-linux
          ...
        ];
      meta.description = "Release-critical builds";
    };

The "critical" build will only succeed if all its members
(dependencies) succeed.
2013-03-26 11:58:59 +01:00
Eelco Dolstra
85d464a031 Remove some hackery 2013-03-06 16:57:57 +01:00
Eelco Dolstra
a1c5d6642b build-support/release: Simplify meta.description
Phrases like "Build of a ..." are redundant because everything is a
build.
2013-03-01 12:50:29 +01:00
Eelco Dolstra
19ab71ff7a releaseTools.nixBuild: Put hydra-build-products in each output
Putting a single hydra-build-products in $out can cause $out to have
unnecessary dependencies on other outputs.
2013-02-18 13:57:02 +01:00
Eelco Dolstra
a0a6f0edfd releaseTools.nixBuild: Support builds with multiple outputs 2013-02-13 13:54:32 +01:00
Rob Vermaas
a049615e91 source-tarball.nix: try src.revCount when src.rev is not available. 2013-01-15 15:04:38 +01:00
Rob Vermaas
1d26619edf use openjdk as default for ant-build.nix 2012-08-25 19:39:49 +02:00
Shea Levy
cff9e132e7 binary-tarball.nix: Forgot to source functions.sh 2012-08-09 07:12:20 -04:00
Petr Rockai
ce77a5ceec Factor out repeated scriptlets from build-support/release/*.nix. 2012-07-23 20:33:04 +02:00
Petr Rockai
1eb5450bd4 Add --nodeps to rpm when test-uninstalling after a rpmBuild. 2012-07-23 20:31:51 +02:00
Petr Rockai
e1c172ab6b Call rpm -U instead of rpm -i to test package installation. 2012-07-23 20:31:35 +02:00
Eelco Dolstra
c2fd3c184b * Install/uninstall all RPMs in one operation. This is necessary if
the RPMs have dependencies between each other.

svn path=/nixpkgs/trunk/; revision=34303
2012-05-31 13:50:47 +00:00
Eelco Dolstra
ed2564f750 * Set the version number of generated Debian packages. Note that dpkg
apparently doesn't allows underscores in version strings, so we
  replace them by dashes.  This is the exact opposite of RPM, which
  doesn't allow dashes.

svn path=/nixpkgs/trunk/; revision=34220
2012-05-24 15:07:38 +00:00
Eelco Dolstra
40609ab6d5 * Add a hook for running a test after the RPMs have been installed.
svn path=/nixpkgs/trunk/; revision=33966
2012-05-01 20:31:01 +00:00
Eelco Dolstra
8ecdd3a0aa * Don't do a mkdir in the postHook.
svn path=/nixpkgs/trunk/; revision=33569
2012-04-04 16:05:08 +00:00
Eelco Dolstra
c3072a8df8 * When doing coverage builds, set useTempPrefix (in case we're doing
an "installcheck").

svn path=/nixpkgs/trunk/; revision=33261
2012-03-19 16:05:29 +00:00
Eelco Dolstra
9f683a5aac * After building an RPM, install and uninstall it.
svn path=/nixpkgs/trunk/; revision=33257
2012-03-19 13:40:57 +00:00
Eelco Dolstra
ebd19ec705 * For "nix-build --run-env" it's desirable that $stdenv/setup (and by
extension postHook) does nothing else than set up the environment.
  It shouldn't touch $out because there may not be a $out.  So move
  the "imperative" bits of postHook into a separate phase.

svn path=/nixpkgs/trunk/; revision=33249
2012-03-19 03:45:36 +00:00
Eelco Dolstra
06d28ca8f1 * Support setting postPhases.
svn path=/nixpkgs/trunk/; revision=33247
2012-03-19 02:45:52 +00:00
Yury G. Kudryashov
0210e20b5a svn merge ^/nixpkgs/trunk
svn path=/nixpkgs/branches/stdenv-updates/; revision=32713
2012-03-01 07:04:39 +00:00
Ludovic Courtès
bd68cc6f5b nix-build: Honor user-provided `failureHook'.
svn path=/nixpkgs/trunk/; revision=32680
2012-02-28 17:10:50 +00:00
Shea Levy
ea195b2507 svn merge ^/nixpkgs/trunk
svn path=/nixpkgs/branches/stdenv-updates/; revision=32564
2012-02-25 19:57:34 +00:00
Arie Middelkoop
70d56e0638 Fixed autoconfPhase so that it additionally tests if ./bootstrap is a file (and not a directory with executable permission) before executing it.
svn path=/nixpkgs/trunk/; revision=32530
2012-02-23 23:50:56 +00:00
Eelco Dolstra
c556a6ea46 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless
function, so obsolete it.

svn path=/nixpkgs/branches/stdenv-updates/; revision=31644
2012-01-18 20:16:00 +00:00
Eelco Dolstra
f3c3f11520 * Debian requires/provides should be comma-separated.
svn path=/nixpkgs/trunk/; revision=31259
2012-01-03 22:33:48 +00:00
Eelco Dolstra
032617b0ab * Check whether any packages were generated. Apparently checkinstall
doesn't return a non-zero exit code if something goes wrong.

svn path=/nixpkgs/trunk/; revision=31258
2012-01-03 22:25:46 +00:00
Eelco Dolstra
b583b816cc * Allow versionSuffix to be overriden.
svn path=/nixpkgs/trunk/; revision=30742
2011-12-05 14:16:30 +00:00
Rob Vermaas
0d62f0418c nix-build.nix: also recognize xz tarballs
svn path=/nixpkgs/trunk/; revision=29760
2011-10-11 14:47:56 +00:00
Eelco Dolstra
a1f9b6f7b6 * Enable "make check" for checkinstall-based Debian builds. I always
assumed this was enabled...

svn path=/nixpkgs/trunk/; revision=29750
2011-10-11 09:13:31 +00:00
Eelco Dolstra
167c520570 * Added Debian 6.0 and Ubuntu 10.10.
svn path=/nixpkgs/trunk/; revision=25968
2011-02-14 16:52:32 +00:00
Rob Vermaas
2bd4d50f0d nix-build.nix/source-tarball.nix: remove -v flag when copying build directory, to avoid polluting the log
svn path=/nixpkgs/trunk/; revision=25404
2011-01-05 09:06:53 +00:00
Rob Vermaas
f6426bad3b also add succeedOnFailure/keepBuildDirectory behaviour to source-tarball.nix
svn path=/nixpkgs/trunk/; revision=25400
2011-01-05 07:31:29 +00:00
Rob Vermaas
6016038097 nixBuild: add failurehook that saves build dir when succeedOnFailure = true and keepBuildDirectory = true
svn path=/nixpkgs/trunk/; revision=25243
2010-12-22 14:57:18 +00:00
Rob Vermaas
cf8da224c6 fixing wrappers in ant-build
svn path=/nixpkgs/trunk/; revision=24637
2010-11-10 12:55:25 +00:00
Rob Vermaas
0df15241ca fixes to ant-build
svn path=/nixpkgs/trunk/; revision=24383
2010-10-20 12:30:03 +00:00
Rob Vermaas
5a7fa1d061 antBuild: minor changes
svn path=/nixpkgs/trunk/; revision=24376
2010-10-20 08:23:52 +00:00
Rob Vermaas
b1332dca0f svn path=/nixpkgs/trunk/; revision=24366 2010-10-19 13:43:29 +00:00