HYDRA: TOP-NOTCH CONTINUOUS INTEGRATION FOR DEMANDING PEOPLE

Size: px
Start display at page:

Download "HYDRA: TOP-NOTCH CONTINUOUS INTEGRATION FOR DEMANDING PEOPLE"

Transcription

1 HYDRA: TOP-NOTCH CONTINUOUS INTEGRATION FOR DEMANDING PEOPLE Ludovic Courtès Service d expérimentation & développement Inria Bordeaux Sud-Ouest 3 November 2011

2 introduction features practice closing L. Courtès Hydra: continuous integration for demanding people 2

3 scenario 1: a peaceful development team... L. Courtès Hydra: continuous integration for demanding people 3

4 scenario 1:... software that works... L. Courtès Hydra: continuous integration for demanding people 4

5 scenario 1:... and suddenly... L. Courtès Hydra: continuous integration for demanding people 5

6 scenario 1: who broke it?! L. Courtès Hydra: continuous integration for demanding people 6

7 scenario 2: works for me user: It s broken. L. Courtès Hydra: continuous integration for demanding people 7

8 scenario 2: works for me user: It s broken. dev: Weird, it works for me. L. Courtès Hydra: continuous integration for demanding people 8

9 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? L. Courtès Hydra: continuous integration for demanding people 9

10 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin L. Courtès Hydra: continuous integration for demanding people 10

11 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x L. Courtès Hydra: continuous integration for demanding people 11

12 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. L. Courtès Hydra: continuous integration for demanding people 12

13 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. L. Courtès Hydra: continuous integration for demanding people 13

14 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. dev: Well, too bad. I rather test on GNU/Linux, i686 L. Courtès Hydra: continuous integration for demanding people 14

15 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. dev: Well, too bad. I rather test on GNU/Linux, i686, with GCC 4.6.2, GMP 4.2.1, MPFR 2.4.1, GDBM 1.8.2, GTK Oh, and with --enable-color --enable-gui. L. Courtès Hydra: continuous integration for demanding people 15

16 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. dev: Well, too bad. I rather test on GNU/Linux, i686, with GCC 4.6.2, GMP 4.2.1, MPFR 2.4.1, GDBM 1.8.2, GTK Oh, and with --enable-color --enable-gui. L. Courtès Hydra: continuous integration for demanding people 16

17 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. dev: Well, too bad. I rather test on GNU/Linux, i686, with GCC 4.6.2, GMP 4.2.1, MPFR 2.4.1, GDBM 1.8.2, GTK Oh, and with --enable-color --enable-gui. L. Courtès Hydra: continuous integration for demanding people 17

18 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. dev: Well, too bad. I rather test on GNU/Linux, i686, with GCC 4.6.2, GMP 4.2.1, MPFR 2.4.1, GDBM 1.8.2, GTK Oh, and with --enable-color --enable-gui. L. Courtès Hydra: continuous integration for demanding people 18

19 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. dev: Well, too bad. I rather test on GNU/Linux, i686, with GCC 4.6.2, GMP 4.2.1, MPFR 2.4.1, GDBM 1.8.2, GTK Oh, and with --enable-color --enable-gui. L. Courtès Hydra: continuous integration for demanding people 19

20 scenario 2: works for me user: It s broken. dev: Weird, it works for me. Which platform? user: Darwin On x With Apple GCC 4.0.1, GMP 4.2.4, MPFR 2.4.2, BDB 4.2. Et avec --disable-color. dev: Well, too bad. I rather test on GNU/Linux, i686, with GCC 4.6.2, GMP 4.2.1, MPFR 2.4.1, GDBM 1.8.2, GTK Oh, and with --enable-color --enable-gui. L. Courtès Hydra: continuous integration for demanding people 20

21 why continuous integration is so great 1. continuous compilation/test L. Courtès Hydra: continuous integration for demanding people 21

22 why continuous integration is so great 1. continuous compilation/test 2. quick feedback L. Courtès Hydra: continuous integration for demanding people 22

23 why continuous integration is so great 1. continuous compilation/test 2. quick feedback 3. pristine build environment L. Courtès Hydra: continuous integration for demanding people 23

24 why continuous integration is so great 1. continuous compilation/test 2. quick feedback 3. pristine build environment 4. different configurations under test L. Courtès Hydra: continuous integration for demanding people 24

25 why continuous integration is so great 1. continuous compilation/test 2. quick feedback 3. pristine build environment 4. different configurations under test 5. build results published L. Courtès Hydra: continuous integration for demanding people 25

26 the true cost of doing it yourself while true do rm -rf foo svn co svn+ssh://scm.gforge.inria.fr/svn/foo/trunk foo cd foo make sleep 300 done L. Courtès Hydra: continuous integration for demanding people 26

27 the true cost of doing it yourself while true do rm -rf foo svn co svn+ssh://scm.gforge.inria.fr/svn/foo/trunk foo cd foo make 2>&1 > build-log \ mail michel.cosnard@inria.fr -s "Build failed!" \ < build-log sleep 300 done L. Courtès Hydra: continuous integration for demanding people 27

28 the true cost of doing it yourself function svn revision { ( cd "$1" svn info \ grep \^R.vision *: *\([0-9]\+\)$ \ sed -e s/[^0-9]//g ) } function svn update { ( prev rev="$(svn revision $1)" ( cd "$1" ; svn update ) new rev="$(svn revision $1)" test $prev rev -ne $new rev ) } function update html report { local stamp="$(date -u +%Y%m%d-%H%M)" local test log="$builddir/testsuite/log" local failure rate="(tests not run)" gzip --best < "$2" > "build-$stamp.log.gz" scp "build-$stamp.log.gz" "$ssh remote dir/" if [ -f "$test log" ] then i failure rate="$(test failure rate $test log)" $html gzip --best. scp "test-$stamp.log.gz" "$ssh remote dir/" wq fi EOF local result bgcolor if [ $1 -ne 0 ] then } result="<b>fail</b>" bgcolor="lightred" else result="pass" bgcolor="lightgreen" fi local rev="$(svn revision $srcdir)" local html="<tr bgcolor= $bgcolor > <td><a href= $(gforge revision url foo $rev) >$rev< <td>$stamp</td> <td>$failure rate</td> <td> $result [ <a href= build-$stamp.log.gz >build</a> <a href=ẗest-$stamp.log.gz >test</a> ] </td> </tr>" ed "$html report" <<EOF /INSERT BUILD RESULTS +1 < "$builddir/testsuite/log" scp "$html report" "$ssh remote dir/index.html" L. Courtès Hydra: continuous integration for demanding people 28

29 the true cost of doing it yourself function svn revision { ( cd "$1" svn info \ grep \^R.vision *: *\([0-9]\+\)$ \ sed -e s/[^0-9]//g ) } function svn update { ( prev rev="$(svn revision $1)" ( cd "$1" ; svn update ) new rev="$(svn revision $1)" test $prev rev -ne $new rev ) } function update html report { local stamp="$(date -u +%Y%m%d-%H%M)" local test log="$builddir/testsuite/log" local failure rate="(tests not run)" gzip --best < "$2" > "build-$stamp.log.gz" scp "build-$stamp.log.gz" "$ssh remote dir/" if [ -f "$test log" ] then i failure rate="$(test failure rate $test log)" $html gzip --best. scp "test-$stamp.log.gz" "$ssh remote dir/" wq fi EOF local result bgcolor if [ $1 -ne 0 ] then } result="<b>fail</b>" bgcolor="lightred" else result="pass" bgcolor="lightgreen" fi local rev="$(svn revision $srcdir)" local html="<tr bgcolor= $bgcolor > <td><a href= $(gforge revision url foo $rev) >$rev< <td>$stamp</td> <td>$failure rate</td> <td> $result [ <a href= build-$stamp.log.gz >build</a> <a href=ẗest-$stamp.log.gz >test</a> ] </td> </tr>" ed "$html report" <<EOF /INSERT BUILD RESULTS +1 < "$builddir/testsuite/log" scp "$html report" "$ssh remote dir/index.html" L. Courtès Hydra: continuous integration for demanding people 29

30 lots of tools! BuildBot Jenkins (formerly Hudson) CruiseControl... Hydra L. Courtès Hydra: continuous integration for demanding people 30

31 suitability of a continuous integration tool languages & build systems? build notification & visualization? portability? reproducibility? scalability? L. Courtès Hydra: continuous integration for demanding people 31

32 introduction features practice closing L. Courtès Hydra: continuous integration for demanding people 32

33 testimonial Thanks to Hydra, my software projects shine more than ever! Ludovic C. L. Courtès Hydra: continuous integration for demanding people 33

34 Hydra, Nix, & you Nix build tool focus on controlling the build environment Hydra continuous integration tool based on Nix L. Courtès Hydra: continuous integration for demanding people 34

35 Hydra, Nix, & you Nix build tool focus on controlling the build environment Hydra continuous integration tool based on Nix web interface + notification GNU/Linux, FreeBSD, MacOS X, Cygwin distributed builds L. Courtès Hydra: continuous integration for demanding people 35

36 Hydra, Nix, & you Nix build tool focus on controlling the build environment Hydra continuous integration tool based on Nix web interface + notification GNU/Linux, FreeBSD, MacOS X, Cygwin distributed builds SSH/root access to the build host not needed L. Courtès Hydra: continuous integration for demanding people 36

37 Hydra, Nix, & you Nix build tool focus on controlling the build environment Hydra continuous integration tool based on Nix web interface + notification GNU/Linux, FreeBSD, MacOS X, Cygwin distributed builds SSH/root access to the build host not needed manage the build environment by yourself! L. Courtès Hydra: continuous integration for demanding people 37

38 a project L. Courtès Hydra: continuous integration for demanding people 38

39 a job set L. Courtès Hydra: continuous integration for demanding people 39

40 a build L. Courtès Hydra: continuous integration for demanding people 40

41 build inputs L. Courtès Hydra: continuous integration for demanding people 41

42 build input changes L. Courtès Hydra: continuous integration for demanding people 42

43 view of a successful job set L. Courtès Hydra: continuous integration for demanding people 43

44 a failed build L. Courtès Hydra: continuous integration for demanding people 44

45 build input changes that led to a failure L. Courtès Hydra: continuous integration for demanding people 45

46 build environments vs. reproducibility versions of the dependencies compiler compilation options, and those of dependencies miscellaneous (locale, timezone, etc.) paths L. Courtès Hydra: continuous integration for demanding people 46

47 build environments vs. reproducibility versions of the dependencies compiler compilation options, and those of dependencies miscellaneous (locale, timezone, etc.) paths -I/path/to/headers -L/path/to/lib $CPATH $LIBRARY PATH L. Courtès Hydra: continuous integration for demanding people 47

48 build environments vs. reproducibility versions of the dependencies compiler compilation options, and those of dependencies miscellaneous (locale, timezone, etc.) paths -I/path/to/headers -L/path/to/lib $LD LIBRARY PATH RPATH $CPATH $LIBRARY PATH RUNPATH L. Courtès Hydra: continuous integration for demanding people 48

49 build environments vs. reproducibility versions of the dependencies compiler compilation options, and those of dependencies miscellaneous (locale, timezone, etc.) paths -I/path/to/headers -L/path/to/lib $LD LIBRARY PATH $PYTHONPATH $XML CATALOG FILES $CPATH $LIBRARY PATH RPATH RUNPATH $CLASSPATH $PERL5LIB $GUILE LOAD PATH L. Courtès Hydra: continuous integration for demanding people 49

50 build environments vs. reproducibility versions of the dependencies compiler compilation options, and those of dependencies miscellaneous (locale, timezone, etc.) paths -I/path/to/headers $CPATH -L/path/to/lib $LIBRARY PATH $LD LIBRARY PATH $PYTHONPATH RPATH Ahem, reproducible builds? $CLASSPATH RUNPATH $XML CATALOG FILES $PERL5LIB $GUILE LOAD PATH L. Courtès Hydra: continuous integration for demanding people 50

51 build environment control without Nix hello qt4 which compiler? which libc? L. Courtès Hydra: continuous integration for demanding people 51

52 build environment control without Nix hello qt4 which compiler? which libc? and now your favorite admin upgrades the system... L. Courtès Hydra: continuous integration for demanding people 52

53 build environment control without Nix hello qt4 which compiler? which libc? and now your favorite admin upgrades the system... Segmentation fault L. Courtès Hydra: continuous integration for demanding people 53

54 build environment control without Nix hello qt4 uncontrolled build environment = untraceable failures which compiler? which libc? and now your favorite admin upgrades the system... Segmentation fault L. Courtès Hydra: continuous integration for demanding people 54

55 default-builder.sh ncurses-5.7.drv lzma drv texinfo-4.13a.drv perl drv linux-headers drv binutils drv replace-2.24.drv pcre-7.8.drv gawk drv lzma drv gettext-0.17.drv perl drv gnused drv bzip drv gnum drv gnupatch drv patchelf-0.4.drv gnumake-3.81.drv gnugrep drv prehook.sh bootstrap-tools.drv builder.sh setup.sh libtool-2.2.6a.drv attr drv acl drv no-sys-dirs.patch builder.sh ld-wrapper.sh bootstrap-glibc.drv utils.sh setup-hook.sh add-flags gcc-wrapper.sh setup-hook.sh malloc.patch gettext-fix.patch stdenv-linux-boot.drv builder.sh log.patch impure-dirs.patch diffutils drv coreutils-7.2.drv bootstrap-gcc.drv prehook.sh builder.sh stdenv-linux-boot.drv nss-skip-unavail.patch glibc-2.9.drv locale-override.patch rpcgen-path.patch gcc-wrapper drv new-dtags.patch bootstrap-gcc.drv stdenv-linux-boot.drv pass-cxxcpp.patch builder.sh no-sys-dirs.patch linux tar.bz2.drv gnum drv gcc drv gmp drv mpfr drv glibc tar.bz2.drv binutils tar.bz2.drv mpfr tar.bz2.drv gmp tar.bz2.drv texinfo-4.13a.tar.lzma.drv ncurses-5.7.tar.gz.drv perl tar.gz.drv gcc-core tar.bz2.drv m tar.bz2.drv lzma tar.gz.drv sed tar.gz.drv gcc-g tar.bz2.drv bash drv attr_ tar.gz.drv bzip tar.gz.drv bash drv bash drv coreutils-7.2.tar.gz.drv bash drv bison-2.3.tar.bz2.drv bash drv bash-4.0.tar.gz.drv bash drv bash drv bash drv gettext-0.17.tar.gz.drv libtool-2.2.6a.tar.lzma.drv bash drv bash drv bash drv bash drv replace-2.24-src tar.gz.drv bash drv bash drv bash drv bash drv bash drv diffutils tar.gz.drv gawk tar.bz2.drv acl_ tar.gz.drv pcre-7.8.tar.bz2.drv grep tar.bz2.drv patch tar.gz.drv findutils tar.gz.drv patchelf-0.4.tar.bz2.drv make-3.81.tar.bz2.drv gzip tar.gz.drv bison-2.3.drv write-mirror-list.sh gcc-wrapper drv findutils-path.patch change_echo_path.patch findutils drv mirrors-list.drv perl drv stdenv-linux.drv hello-2.3.drv bash-4.0-p17.drv hello-2.3.tar.bz2.drv bzip2 mkdir curl.bz2 download.sh ln cpio sh openssl-0.9.8k.drv curl drv bootstrap-tools.cpio.bz2.drv connect-timeout.patch zlib drv unpack-bootstrap-tools.sh gnulib-futimens.patch gzip drv gnutar-1.22.drv implausible.patch mirrors-list.drv stdenv-linux-boot.drv builder.sh tar-1.22.tar.bz2.drv zlib tar.gz.drv openssl-0.9.8k.tar.gz.drv curl tar.bz2.drv build environment control with Nix... down to the compiler s compiler! 1 Except for the kernel, the hardware, the direction of the wind, etc. L. Courtès Hydra: continuous integration for demanding people 55

56 default-builder.sh ncurses-5.7.drv lzma drv texinfo-4.13a.drv perl drv linux-headers drv binutils drv replace-2.24.drv pcre-7.8.drv gawk drv lzma drv gettext-0.17.drv perl drv gnused drv bzip drv gnum drv gnupatch drv patchelf-0.4.drv gnumake-3.81.drv gnugrep drv prehook.sh bootstrap-tools.drv builder.sh setup.sh libtool-2.2.6a.drv attr drv acl drv no-sys-dirs.patch builder.sh ld-wrapper.sh bootstrap-glibc.drv utils.sh setup-hook.sh add-flags gcc-wrapper.sh setup-hook.sh malloc.patch gettext-fix.patch stdenv-linux-boot.drv builder.sh log.patch impure-dirs.patch diffutils drv coreutils-7.2.drv bootstrap-gcc.drv prehook.sh builder.sh stdenv-linux-boot.drv nss-skip-unavail.patch glibc-2.9.drv locale-override.patch rpcgen-path.patch gcc-wrapper drv new-dtags.patch bootstrap-gcc.drv stdenv-linux-boot.drv pass-cxxcpp.patch builder.sh no-sys-dirs.patch linux tar.bz2.drv gnum drv gcc drv gmp drv mpfr drv glibc tar.bz2.drv binutils tar.bz2.drv mpfr tar.bz2.drv gmp tar.bz2.drv texinfo-4.13a.tar.lzma.drv ncurses-5.7.tar.gz.drv perl tar.gz.drv gcc-core tar.bz2.drv m tar.bz2.drv lzma tar.gz.drv sed tar.gz.drv gcc-g tar.bz2.drv bash drv attr_ tar.gz.drv bzip tar.gz.drv bash drv bash drv coreutils-7.2.tar.gz.drv bash drv bison-2.3.tar.bz2.drv bash drv bash-4.0.tar.gz.drv bash drv bash drv bash drv gettext-0.17.tar.gz.drv libtool-2.2.6a.tar.lzma.drv bash drv bash drv bash drv bash drv replace-2.24-src tar.gz.drv bash drv bash drv bash drv bash drv bash drv diffutils tar.gz.drv gawk tar.bz2.drv acl_ tar.gz.drv pcre-7.8.tar.bz2.drv grep tar.bz2.drv patch tar.gz.drv findutils tar.gz.drv patchelf-0.4.tar.bz2.drv make-3.81.tar.bz2.drv gzip tar.gz.drv bison-2.3.drv write-mirror-list.sh gcc-wrapper drv findutils-path.patch change_echo_path.patch findutils drv mirrors-list.drv perl drv stdenv-linux.drv hello-2.3.drv bash-4.0-p17.drv hello-2.3.tar.bz2.drv bzip2 mkdir curl.bz2 download.sh ln cpio sh openssl-0.9.8k.drv curl drv bootstrap-tools.cpio.bz2.drv connect-timeout.patch zlib drv unpack-bootstrap-tools.sh gnulib-futimens.patch gzip drv gnutar-1.22.drv implausible.patch mirrors-list.drv stdenv-linux-boot.drv builder.sh tar-1.22.tar.bz2.drv zlib tar.gz.drv openssl-0.9.8k.tar.gz.drv curl tar.bz2.drv build environment control with Nix... down to the compiler s compiler! build environment entirely under control 1 all the build inputs are known to Nix 1 Except for the kernel, the hardware, the direction of the wind, etc. L. Courtès Hydra: continuous integration for demanding people 56

57 introduction features practice closing L. Courtès Hydra: continuous integration for demanding people 57

58 hello, world! L. Courtès Hydra: continuous integration for demanding people 58

59 a job set L. Courtès Hydra: continuous integration for demanding people 59

60 writing a Hydra job set in Nix job set } { tarball =...; build =...; coverage =...; deb =...; job name L. Courtès Hydra: continuous integration for demanding people 60

61 writing a Hydra job set in Nix } { tarball =...; build =...; coverage =...; deb =...; make dist make && make check... make CFLAGS=--coverage... qemu... checkinstall... L. Courtès Hydra: continuous integration for demanding people 61

62 writing Hydra jobs in Nix parameters tarball = { nixpkgs, hellosrc } : function let pkgs = import nixpkgs { }; in pkgs.releasetools.sourcetarball { name = "hello"; src = hellosrc; }; L. Courtès Hydra: continuous integration for demanding people 62

63 writing Hydra jobs in Nix checkout of the distro checkout of Hello tarball = { nixpkgs, hellosrc } : let pkgs = import nixpkgs { }; in pkgs.releasetools.sourcetarball { name = "hello"; src = hellosrc; }; L. Courtès Hydra: continuous integration for demanding people 63

64 writing Hydra jobs in Nix result of tarball job x86 64-linux, or x86 64-darwin, etc. build = { nixpkgs, tarball, system } : let pkgs = import nixpkgs { inherit system; }; in pkgs.releasetools.nixbuild { name = "hello"; src = tarball; }; L. Courtès Hydra: continuous integration for demanding people 64

65 writing Hydra jobs in Nix build = { nixpkgs, tarball, system } : let pkgs = import nixpkgs { inherit system; }; in pkgs.releasetools.nixbuild { name = "hello"; explicit dependency src = tarball; buildinputs = [ pkgs.qt4 ]; hello }; qt4 L. Courtès Hydra: continuous integration for demanding people 65

66 writing Hydra jobs in Nix build = { nixpkgs, tarball, system } : let pkgs = import nixpkgs { inherit system; }; in pkgs.releasetools.nixbuild { name = "hello"; src = tarball; buildinputs = [ pkgs.qt4 ]; configureflags = "--with-colors"; }; L. Courtès Hydra: continuous integration for demanding people 66

67 writing Hydra jobs in Nix coverage = { nixpkgs, tarball, system } : let pkgs = import nixpkgs { inherit system; }; in pkgs.releasetools.coverageanalysis { name = "hello"; src = tarball; buildinputs = [ pkgs.qt4 ]; configureflags = "--with-colors"; }; L. Courtès Hydra: continuous integration for demanding people 67

68 writing Hydra jobs in Nix deb = { nixpkgs, tarball, system } : let pkgs = import nixpkgs { inherit system; }; in pkgs.releasetools.debbuild { name = "hello"; src = tarball; configureflags = "--with-colors"; diskimage = vmtools.diskimages.debian50x86 64; }; L. Courtès Hydra: continuous integration for demanding people 68

69 filling in the blanks... L. Courtès Hydra: continuous integration for demanding people 69

70 But Autotools suck, CMake rocks. Anonymous (and cavalier) attendee. L. Courtès Hydra: continuous integration for demanding people 70

71 building with CMake build = { system, nixpkgs, hellosrc }: let pkgs = import nixpkgs { inherit system; }; in pkgs.releasetools.nixbuild { name = "hello-cmake" ; src = hellosrc; cmakeflags = "-DFOO BAR=on"; buildinputs = [ pkgs.cmake pkgs.qt4 ]; }; L. Courtès Hydra: continuous integration for demanding people 71

72 All these C-ish things suck anyway; Java is the way. Anonymous attendee. L. Courtès Hydra: continuous integration for demanding people 72

73 building with Ant build = { nixpkgs, hellosrc }: let pkgs = import nixpkgs { }; in pkgs.releasetools.antbuild { name = "hello-ant" ; src = hellosrc; anttargets = [ "jar" "test" ]; buildinputs = with pkgs; [ ant jdk ]; }; L. Courtès Hydra: continuous integration for demanding people 73

74 building with Maven build = { nixpkgs, hellosrc }: let pkgs = import nixpkgs { }; in pkgs.releasetools.mvnbuild { name = "hello-maven" ; src = hellosrc; dojavadoc = true; docheckstyle = true; buildinputs = with pkgs; [ maven2 jdk ]; }; L. Courtès Hydra: continuous integration for demanding people 74

75 building things differently customize existing build functions (nixbuild, etc.) write your own build function L. Courtès Hydra: continuous integration for demanding people 75

76 building things differently customize existing build functions (nixbuild, etc.) define configureflags, makeflags, etc. define configurephase, buildphase, etc. (shell snippets)... write your own build function pythonbuild anyone? L. Courtès Hydra: continuous integration for demanding people 76

77 introduction features practice closing L. Courtès Hydra: continuous integration for demanding people 77

78 Continuous integration pacifies developers! L. Courtès Hydra: continuous integration for demanding people 78

79 summary Continuous integration pacifies developers! quick feedback to developers source + binaries + doc snapshots for users tests of various configurations L. Courtès Hydra: continuous integration for demanding people 79

80 summary Continuous integration pacifies developers! quick feedback to developers source + binaries + doc snapshots for users tests of various configurations available today! L. Courtès Hydra: continuous integration for demanding people 80

81 Inria: what s missing production-ready! L. Courtès Hydra: continuous integration for demanding people 81

82 Inria: what s missing not quite production-ready L. Courtès Hydra: continuous integration for demanding people 82

83 Inria: what s missing not quite production-ready no private/proprietary projects yet L. Courtès Hydra: continuous integration for demanding people 83

84 Inria: what s missing not quite production-ready no private/proprietary projects yet no GPUs, no webcams, no USB percolator (yet) L. Courtès Hydra: continuous integration for demanding people 84

85 Inria: what s missing not quite production-ready no private/proprietary projects yet no GPUs, no webcams, no USB percolator (yet) some of your dependencies might be missing L. Courtès Hydra: continuous integration for demanding people 85

86 Inria: what s missing not quite production-ready no private/proprietary projects yet no GPUs, no webcams, no USB percolator (yet) some of your dependencies might be missing no blame list, no favorite Jenkins plug-in here... L. Courtès Hydra: continuous integration for demanding people 86

87 Inria: what s already there small & growing compile farm: 12 x86 64 cores L. Courtès Hydra: continuous integration for demanding people 87

88 Inria: what s already there small & growing compile farm: 12 x86 64 cores GNU/Linux, MacOS X, and FreeBSD L. Courtès Hydra: continuous integration for demanding people 88

89 Inria: what s already there small & growing compile farm: 12 x86 64 cores GNU/Linux, MacOS X, and FreeBSD kernel & distributed tests in virtual machines virtual build environments: Debian, Fedora, opensuse, etc. L. Courtès Hydra: continuous integration for demanding people 89

90 Inria: what s already there small & growing compile farm: 12 x86 64 cores GNU/Linux, MacOS X, and FreeBSD kernel & distributed tests in virtual machines virtual build environments: Debian, Fedora, opensuse, etc. 6.5 projects being built (C/C++/Fortran, Autotools/CMake) L. Courtès Hydra: continuous integration for demanding people 90

91 Inria: what s already there small & growing compile farm: 12 x86 64 cores GNU/Linux, MacOS X, and FreeBSD kernel & distributed tests in virtual machines virtual build environments: Debian, Fedora, opensuse, etc. 6.5 projects being built (C/C++/Fortran, Autotools/CMake)... L. Courtès Hydra: continuous integration for demanding people 91

92 getting started 1. L. Courtès Hydra: continuous integration for demanding people 92

93 getting started add your recipes to L. Courtès Hydra: continuous integration for demanding people 93

94 getting started add your recipes to 3. watch your project at L. Courtès Hydra: continuous integration for demanding people 94

95 getting help copy/paste from read the fine manual at L. Courtès Hydra: continuous integration for demanding people 95

96

Continuous Integration @ Inria https://ci.inria.fr

Continuous Integration @ Inria https://ci.inria.fr Continuous Integration @ Inria https://ci.inria.fr Damien Martin-Guillerez Outline 1. Introduction 2. CI@Inria service description 3. CI@Inria usage example 4. Summary Damien Martin-Guillerez Mardi du

More information

SOFTWARE DEVELOPMENT BASICS SED

SOFTWARE DEVELOPMENT BASICS SED SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2

More information

Using NixOS for declarative deployment and testing

Using NixOS for declarative deployment and testing Using NixOS for declarative deployment and testing Sander van der Burg Eelco Dolstra Delft University of Technology, EEMCS, Department of Software Technology February 5, 2010 Linux distributions There

More information

The Nix project. Sander van der Burg. June 24, 2013. Delft University of Technology, EEMCS, Department of Software Technology

The Nix project. Sander van der Burg. June 24, 2013. Delft University of Technology, EEMCS, Department of Software Technology Delft University of Technology, EEMCS, Department of Software Technology June 24, 2013 Software deployment Software deployment Software deployment All of the activities that make a software system available

More information

Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6)

Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6) Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6) Configuring the environment manually Using CMake CLHEP full version installation

More information

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira Ingolf Krueger Department of Computer Science & Engineering University

More information

How To Write A Distributed Deployment System On Nix (Programming)

How To Write A Distributed Deployment System On Nix (Programming) Delft University of Technology, EEMCS, Department of Software Technology Philips Healthcare, Philips Informatics Infrastructure (PII), Best February 2, 2012 Service Oriented Computing The Service Oriented

More information

The Nix Build Farm: A Declarative Approach to Continuous Integration

The Nix Build Farm: A Declarative Approach to Continuous Integration The Nix Build Farm: A Declarative Approach to Continuous Integration Eelco Dolstra, Eelco Visser Delft University of Technology Abstract There are many tools to support continuous integration (the process

More information

Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab

Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab Yocto Project Developer Day San Francisco, 2013 Jessica Zhang Introduction Welcome to the Yocto Project Eclipse plug-in

More information

Jenkins: The Definitive Guide

Jenkins: The Definitive Guide Jenkins: The Definitive Guide John Ferguson Smart O'REILLY8 Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Foreword xiii Preface xv 1. Introducing Jenkins 1 Introduction 1 Continuous

More information

Of Penguins and Wildebeest. Anthony Rodgers VA7IRL

Of Penguins and Wildebeest. Anthony Rodgers VA7IRL Of Penguins and Wildebeest Anthony Rodgers VA7IRL The Penguin Linux was created by a Swedish-speaking Finn called Linus Torvalds Version 0.01 was released in September 1991 We are now on version 2.6 It

More information

Other trademarks and Registered trademarks include: LONE-TAR. AIR-BAG. RESCUE-RANGER TAPE-TELL. CRONY. BUTTSAVER. SHELL-LOCK

Other trademarks and Registered trademarks include: LONE-TAR. AIR-BAG. RESCUE-RANGER TAPE-TELL. CRONY. BUTTSAVER. SHELL-LOCK Quick Start Guide Copyright Statement Copyright Lone Star Software Corp. 1983-2013 ALL RIGHTS RESERVED. All content viewable or accessible from this guide is the sole property of Lone Star Software Corp.

More information

How Bigtop Leveraged Docker for Build Automation and One-Click Hadoop Provisioning

How Bigtop Leveraged Docker for Build Automation and One-Click Hadoop Provisioning How Bigtop Leveraged Docker for Build Automation and One-Click Hadoop Provisioning Evans Ye Apache Big Data 2015 Budapest Who am I Apache Bigtop PMC member Software Engineer at Trend Micro Develop Big

More information

Hydra: A Declarative Approach to Continuous Integration 1

Hydra: A Declarative Approach to Continuous Integration 1 Hydra: A Declarative Approach to Continuous Integration 1 Eelco Dolstra, Eelco Visser Department of Software Technology, Faculty of Electrical Engineering, Mathematics and Computer Science (EWI), Delft

More information

What is this talk about?

What is this talk about? Building GNOME What is this talk about? Meta-build systems (jhbuild, rpm/dpkg, Yocto) Improving new GNOME developer experience Improving long-time GNOME developer experience Changing what we're building

More information

Break It Before You Buy It!

Break It Before You Buy It! Break It Before You Buy It! Test Driven Development and Continuous Integration Chris Hartjes -- CodeMash 2011 -- @chartjes http://www.littlehart.net/atthekeyboard Huge Sports Nerd TL;DR The Problem Build

More information

Using Subversion in Computer Science

Using Subversion in Computer Science School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or

More information

Lab 0 (Setting up your Development Environment) Week 1

Lab 0 (Setting up your Development Environment) Week 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself

More information

Continuous integration, package update mechanism and release management in GAP

Continuous integration, package update mechanism and release management in GAP Continuous integration, package update mechanism and release management in GAP Alexander Konovalov GAP Days 2014, Aachen, 25-29 August To users, package authors and contributors to the core system A popular

More information

A Reference Architecture for Distributed Software Deployment

A Reference Architecture for Distributed Software Deployment A Reference Architecture for Distributed Software Deployment Delft University of Technology, EEMCS, Department of Software Technology August 2, 2013 A Reference Architecture for Distributed Software Deployment

More information

Developing Embedded Linux Devices Using the Yocto Project

Developing Embedded Linux Devices Using the Yocto Project It s not an embedded Linux distribution It creates a custom one for you. Developing Embedded Linux Devices Using the Yocto Project David Stewart Intel Corporation October, 2011 Agenda What is the Yocto

More information

Modulo II Software Configuration Management - SCM

Modulo II Software Configuration Management - SCM Modulo II Software Configuration Management - SCM Professor Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Introduction to Apache

More information

CURRENT STATE OF ICINGA

CURRENT STATE OF ICINGA Monitoring Workshop Berlin 15th May - TEAM ICINGA CURRENT STATE OF ICINGA WWW.ICINGA.ORG Agenda Introduction Tools & Platform Icinga project update New in Icinga 1.x Icinga 2 Icinga Web 2 What s next Questions

More information

USER GUIDE. Snow Inventory Client for Unix Version 1.1.03 Release date 2015-04-29 Document date 2015-05-20

USER GUIDE. Snow Inventory Client for Unix Version 1.1.03 Release date 2015-04-29 Document date 2015-05-20 USER GUIDE Product Snow Inventory Client for Unix Version 1.1.03 Release date 2015-04-29 Document date 2015-05-20 CONTENT ABOUT THIS DOCUMENT... 3 OVERVIEW... 3 OPERATING SYSTEMS SUPPORTED... 3 PREREQUISITES...

More information

Version Control with Git. Dylan Nugent

Version Control with Git. Dylan Nugent Version Control with Git Dylan Nugent Agenda What is Version Control? (and why use it?) What is Git? (And why Git?) How Git Works (in theory) Setting up Git (surviving the CLI) The basics of Git (Just

More information

Introduction to Version Control

Introduction to Version Control Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria Winter semester 2014 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline

More information

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues Zend Server 4.0 Beta 2 Release Announcement Thank you for your participation in the Zend Server 4.0 beta program. Your involvement will help us ensure we best address your needs and deliver even higher

More information

Linux Distributions. What they are, how they work, which one to choose. avix@br.ibm.com> +55-11-2132-2327. Avi Alkalay <avix@br.ibm.

Linux Distributions. What they are, how they work, which one to choose. avix@br.ibm.com> +55-11-2132-2327. Avi Alkalay <avix@br.ibm. Linux Distributions What they are, how they work, which one to choose Avi Alkalay +55-11-2132-2327 Linux, Open Standards Consultant IBM Corporation Before You Start...

More information

How To Run Linux On Windows 7 (For A Non-Privileged User) On A Windows 7 Computer (For Non-Patty) On Your Computer (Windows) On An Unix Computer (Unix) On Windows) On The Same

How To Run Linux On Windows 7 (For A Non-Privileged User) On A Windows 7 Computer (For Non-Patty) On Your Computer (Windows) On An Unix Computer (Unix) On Windows) On The Same Working from Home Tools and Technologies for Improving Your Programming Environment Daniel J. Hood danielhood@umbc.edu Overview Tools for MS Windows (and others OSs) SSH SCP X Windows Tunneling X Connections

More information

Hudson configuration manual

Hudson configuration manual Hudson configuration manual 1 Chapter 1 What is Hudson? Hudson is a powerful and widely used open source continuous integration server providing development teams with a reliable way to monitor changes

More information

Backup of ESXi Virtual Machines using Affa

Backup of ESXi Virtual Machines using Affa Backup of ESXi Virtual Machines using Affa From SME Server Skill level: Advanced The instructions on this page may require deviations from procedure, a good understanding of linux and SME is recommended.

More information

Linux command line. An introduction to the Linux command line for genomics. Susan Fairley

Linux command line. An introduction to the Linux command line for genomics. Susan Fairley Linux command line An introduction to the Linux command line for genomics Susan Fairley Aims Introduce the command line Provide an awareness of basic functionality Illustrate with some examples Provide

More information

Software Development In the Cloud Cloud management and ALM

Software Development In the Cloud Cloud management and ALM Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect

More information

Yocto Project ADT, Eclipse plug-in and Developer Tools

Yocto Project ADT, Eclipse plug-in and Developer Tools Yocto Project ADT, Eclipse plug-in and Developer Tools Jessica Zhang LinuxCon - Japan Tokyo 2013 Agenda The Application Development Toolkit Usage Flow And Roles Yocto Project Eclipse Plug-in Interacts

More information

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style Introducing Hudson Click to edit Master subtitle style Winston Prakash What is Hudson? Hudson is an open source continuous integration (CI) server. A CI server can do various tasks

More information

ULTEO OPEN VIRTUAL DESKTOP V4.0

ULTEO OPEN VIRTUAL DESKTOP V4.0 ULTEO OPEN VIRTUAL DESKTOP V4.0 MIGRATION GUIDE 28 February 2014 Contents Section 1 Introduction... 4 Section 2 Overview... 5 Section 3 Preparation... 6 3.1 Enter Maintenance Mode... 6 3.2 Backup The OVD

More information

INF-110. GPFS Installation

INF-110. GPFS Installation INF-110 GPFS Installation Overview Plan the installation Before installing any software, it is important to plan the GPFS installation by choosing the hardware, deciding which kind of disk connectivity

More information

Android: How To. Thanks. Aman Nijhawan

Android: How To. Thanks. Aman Nijhawan Android: How To. This is just a collection of useful information and tricks that I used during the time I was developing on the android ADP1. In some cases the information might be a little old and new

More information

Using Actian PSQL as a Data Store with VMware vfabric SQLFire. Actian PSQL White Paper May 2013

Using Actian PSQL as a Data Store with VMware vfabric SQLFire. Actian PSQL White Paper May 2013 Using Actian PSQL as a Data Store with VMware vfabric SQLFire Actian PSQL White Paper May 2013 Contents Introduction... 3 Prerequisites and Assumptions... 4 Disclaimer... 5 Demonstration Steps... 5 1.

More information

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management IKAN ALM Architecture Closing the Gap Enterprise-wide Application Lifecycle Management Table of contents IKAN ALM SERVER Architecture...4 IKAN ALM AGENT Architecture...6 Interaction between the IKAN ALM

More information

Click Start > Control Panel > System icon to open System Properties dialog box. Click Advanced > Environment Variables.

Click Start > Control Panel > System icon to open System Properties dialog box. Click Advanced > Environment Variables. Configure Java environment on Windows After installing Java Development Kit on Windows, you may still need to do some configuration to get Java ready for compiling and executing Java programs. The following

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

GeBro-BACKUP. Die Online-Datensicherung. Manual Pro Backup Client on a NAS

GeBro-BACKUP. Die Online-Datensicherung. Manual Pro Backup Client on a NAS GeBro-BACKUP Die Online-Datensicherung. Manual Pro Backup Client on a NAS Created and tested on a QNAP TS-559 Pro Firmware 4.0.2 Intel x86 Architecture Default hardware configuration OBM v6.15.0.0 Last

More information

Technical Writing - Advantages of Version Control Systems

Technical Writing - Advantages of Version Control Systems Fachpraktikum Grafik-Programmierung WS2010 Introduction to Version Control Alexandros Panagiotidis, Daniel Kauker Institut für Visualisierung und Interaktive Systeme Universität Stuttgart Advantages of

More information

Apache Gump. Continuous Integration on Steroids. Apache Software Foundation Building Bridges @ FOSDEM 2005

Apache Gump. Continuous Integration on Steroids. Apache Software Foundation Building Bridges @ FOSDEM 2005 Apache Gump Continuous Integration on Steroids About LSD http://www.leosimons.com/ leosimons@apache.org ASF Member Apache Excalibur, Gump, Wiki, Infrastructure Physics Student, Enschede Presentations,

More information

CSE 70: Software Development Pipeline Build Process, XML, Repositories

CSE 70: Software Development Pipeline Build Process, XML, Repositories CSE 70: Software Development Pipeline Build Process, XML, Repositories Ingolf Krueger Department of Computer Science & Engineering University of California, San Diego La Jolla, CA 92093-0114, USA California

More information

Source code management systems

Source code management systems Source code management systems SVN, Git, Mercurial, Bazaar,... for managing large projects with multiple people work locally or across a network store and retrieve all versions of all directories and files

More information

CMake/CTest/CDash OSCON 2009

CMake/CTest/CDash OSCON 2009 CMake/CTest/CDash OSCON 2009 Open Source Tools to build, test, and install software Bill Hoffman bill.hoffman@kitware.com Overview Introduce myself and Kitware Automated Testing About CMake Building with

More information

Embedded Linux development with Buildroot training 3-day session

Embedded Linux development with Buildroot training 3-day session Embedded Linux development with training 3-day session Title Overview Duration Trainer Language Audience Embedded Linux development with training Introduction to Managing and building the configuration

More information

About Me Developer Workspaces Enable Agile Teams

About Me Developer Workspaces Enable Agile Teams About Me Developer Workspaces Enable Agile Teams Steve Berczuk Cyrus Innovation New England Agile Bazaar March 2008 Software Developer Certified Scrum Master Author (SCM Patterns Book, CM Crossroads) Technical

More information

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery at NSIDC National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research

More information

vs. Web Site: www.soebes.com Blog: blog.soebes.com Email: info@soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

vs. Web Site: www.soebes.com Blog: blog.soebes.com Email: info@soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise Project Organization vs. Build- and Configuration Management Web Site: www.soebes.com Blog: blog.soebes.com Email: info@soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise Agenda 1.Initialization 2.Specification

More information

Builder User Guide. Version 6.0.1. Visual Rules Suite - Builder. Bosch Software Innovations

Builder User Guide. Version 6.0.1. Visual Rules Suite - Builder. Bosch Software Innovations Visual Rules Suite - Builder Builder User Guide Version 6.0.1 Bosch Software Innovations Americas: Bosch Software Innovations Corp. 161 N. Clark Street Suite 3500 Chicago, Illinois 60601/USA Tel. +1 312

More information

Sahana Training Program Day Schedule v0.5

Sahana Training Program Day Schedule v0.5 Day 1 Description Duration 9:20 am 9:20 am Welcome to Sahana Training Program Keynote Training Program overview, introduction to trainers and participants Overview of the Sahana system Introduction to

More information

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically

More information

Maven or how to automate java builds, tests and version management with open source tools

Maven or how to automate java builds, tests and version management with open source tools Maven or how to automate java builds, tests and version management with open source tools Erik Putrycz Software Engineer, Apption Software erik.putrycz@gmail.com Outlook What is Maven Maven Concepts and

More information

Installing (1.8.7) 9/2/2009. 1 Installing jgrasp

Installing (1.8.7) 9/2/2009. 1 Installing jgrasp 1 Installing jgrasp Among all of the jgrasp Tutorials, this one is expected to be the least read. Most users will download the jgrasp self-install file for their system, doubleclick the file, follow the

More information

opensuse.org Build Service

opensuse.org Build Service opensuse.org Build Service Maintain one source for all Linux platforms Putting cross development support into OBS Martin Mohring 5e Datasoft GmbH martin.mohring@opensuse.org How to join such a FOSS project

More information

LinuxCon #1 OpenVAS Open Vulnerability Scanning Free your vulnerabilities!

LinuxCon #1 OpenVAS Open Vulnerability Scanning Free your vulnerabilities! LinuxCon #1 OpenVAS Open Vulnerability Scanning Free your vulnerabilities! Vlatko Košturjak kost@linux.hr LinuxCon #1, 2009 09 22, Portland, Oregon, USA 1 Agenda Nessus Free alternatives Free feed(s) Oval

More information

Software Development for Embedded GNU Radio Applications

Software Development for Embedded GNU Radio Applications Software Development for Embedded GNU Radio Applications Philip Balister philip@opensdr.com Open SDR May 28, 2015 1 Embedded SW Development 2 OpenEmbedded 3 Develop Software 4 Creating a Finished Product

More information

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies About the author My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies I am going to take you through the journey that my team embarked on as we looked for ways to automate processes,

More information

Additional Information: SSH, PuTTY, and VmWare

Additional Information: SSH, PuTTY, and VmWare Additional Information: SSH, PuTTY, and VmWare Gianpierre Villagomez EECS 268 Additional Information: SSH, PuTTY, and VMware 1 EECS Linux machine remote access There are several ways you can access EECS

More information

Table of Contents. Java CGI HOWTO

Table of Contents. Java CGI HOWTO Table of Contents Java CGI HOWTO...1 by David H. Silber javacgi document@orbits.com...1 1.Introduction...1 2.Setting Up Your Server to Run Java CGI Programs (With Explanations)...1 3.Setting Up Your Server

More information

Better Automation Environments

Better Automation Environments Better Automation Environments Matthew B. Doar March 2006 Peninsula Linux Users' Group (PenLUG) What's a Toolsmith? A catch-all term for build guy, SCM engineer, and tools wizard It's very useful when

More information

Installation Guide for WebSphere Application Server (WAS) and its Fix Packs on AIX V5.3L

Installation Guide for WebSphere Application Server (WAS) and its Fix Packs on AIX V5.3L Installation Guide for WebSphere Application Server (WAS) and its Fix Packs on AIX V5.3L Introduction: This guide is written to help any person with little knowledge in AIX V5.3L to prepare the P Server

More information

Integration with ESB. Filip Nguyen Jiří Kolář

Integration with ESB. Filip Nguyen Jiří Kolář Integration with ESB Filip Nguyen Jiří Kolář Task - Open Project and build it cp -r /home/xnguyen/maven-repo/* ~/.m2/repository cp -r /home/xnguyen/pa165/pa165-esb /tmp/jboss4 Task prepare for running

More information

Shakambaree Technologies Pvt. Ltd.

Shakambaree Technologies Pvt. Ltd. Welcome to Support Express by Shakambaree Technologies Pvt. Ltd. Introduction: This document is our sincere effort to put in some regular issues faced by a Digital Signature and USB Token user doing on

More information

RPC and TI-RPC Test Suite Test Plan Document

RPC and TI-RPC Test Suite Test Plan Document RPC and TI-RPC Test Suite Test Plan Document Cyril LACABANNE Bull S.A.S. Version 1.3 12 July 2007 Revision history Version Description 1.0 First release 1.1 Several correction on 1, 5, 8, 14 1.2 Add first

More information

Linux Overview. The Senator Patrick Leahy Center for Digital Investigation. Champlain College. Written by: Josh Lowery

Linux Overview. The Senator Patrick Leahy Center for Digital Investigation. Champlain College. Written by: Josh Lowery Linux Overview Written by: Josh Lowery The Senator Patrick Leahy Center for Digital Investigation Champlain College October 29, 2012 Disclaimer: This document contains information based on research that

More information

How To Write A Test Drive For Kaspersky Anti Virus 6.0 For Windows Server (For Windows)

How To Write A Test Drive For Kaspersky Anti Virus 6.0 For Windows Server (For Windows) Kaspersky Anti-Virus >> Enterprise Proof of Concept (PoC) Request Form Dear Kaspersky Lab Prospect, To facilitate the proof of concept (PoC) process, we require the following form which documents your

More information

Secure Shell Demon setup under Windows XP / Windows Server 2003

Secure Shell Demon setup under Windows XP / Windows Server 2003 Secure Shell Demon setup under Windows XP / Windows Server 2003 Configuration inside of Cygwin $ chgrp Administrators /var/{run,log,empty} $ chown Administrators /var/{run,log,empty} $ chmod 775 /var/{run,log}

More information

An Overview of Servlet & JSP Technology

An Overview of Servlet & JSP Technology 2007 Marty Hall An Overview of Servlet & JSP Technology 2 Customized J2EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF, EJB3, Ajax, Java 5, Java 6, etc. Ruby/Rails coming soon.

More information

Developer Workshop 2015. Marc Dumontier McMaster/OSCAR-EMR

Developer Workshop 2015. Marc Dumontier McMaster/OSCAR-EMR Developer Workshop 2015 Marc Dumontier McMaster/OSCAR-EMR Agenda Code Submission 101 Infrastructure Tools Developing OSCAR Code Submission: Process OSCAR EMR Sourceforge http://www.sourceforge.net/projects/oscarmcmaster

More information

Tutorial 5: Developing Java applications

Tutorial 5: Developing Java applications Tutorial 5: Developing Java applications p. 1 Tutorial 5: Developing Java applications Georgios Gousios gousiosg@aueb.gr Department of Management Science and Technology Athens University of Economics and

More information

Canto Integration Platform (CIP)

Canto Integration Platform (CIP) Canto Integration Platform (CIP) Getting Started Guide Copyright 2013, Canto GmbH. All rights reserved. Canto, the Canto logo, the Cumulus logo, and Cumulus are registered trademarks of Canto, registered

More information

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns Introducing FACTORY SCHEMES Adaptable software factory Patterns FACTORY SCHEMES 3 Standard Edition Community & Enterprise Key Benefits and Features GECKO Software http://consulting.bygecko.com Email: Info@gecko.fr

More information

Eclipse IDE for Embedded AVR Software Development

Eclipse IDE for Embedded AVR Software Development Eclipse IDE for Embedded AVR Software Development Helsinki University of Technology Jaakko Ala-Paavola February 17th, 2006 Version 0.2 Abstract This document describes how to set up Eclipse based Integrated

More information

Software Tools Bootcamp

Software Tools Bootcamp Software Tools Bootcamp RISC-V ISA Tutorial HPCA-21 08 February 2015 Albert Ou UC Berkeley aou@eecs.berkeley.edu 2 Preliminaries To follow along, download these slides at http://riscv.org/tutorial-hpca2015.html

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion http://www.oit.duke.edu/scsc/ http://wiki.duke.edu/display/scsc scsc@duke.edu John Pormann, Ph.D. jbp1@duke.edu Software Carpentry Courseware This is a re-work from the

More information

Acronis Backup & Recovery 10 Server for Linux. Installation Guide

Acronis Backup & Recovery 10 Server for Linux. Installation Guide Acronis Backup & Recovery 10 Server for Linux Installation Guide Table of contents 1 Before installation...3 1.1 Acronis Backup & Recovery 10 components... 3 1.1.1 Agent for Linux... 3 1.1.2 Management

More information

CruiseControl. Extreme Programming-Praktikum Sommersemester 2010 Andreas Höfer, Thomas Karcher, Ali Jannesari. www.kit.edu

CruiseControl. Extreme Programming-Praktikum Sommersemester 2010 Andreas Höfer, Thomas Karcher, Ali Jannesari. www.kit.edu CruiseControl Extreme Programming-Praktikum Sommersemester 2010 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu CruiseControl Continuous

More information

CS 253: Intro to Systems Programming

CS 253: Intro to Systems Programming CS 253: Intro to Systems Programming Spring 2014 Amit Jain, Shane Panter, Marissa Schmidt Department of Computer Science College of Engineering Boise State University Logistics Instructor: Amit Jain http://cs.boisestate.edu/~amit

More information

Continuous Delivery of Debian packages. Michael Prokop

Continuous Delivery of Debian packages. Michael Prokop Continuous Delivery of Debian packages Michael Prokop Terminology Continuous Integration well known from software development Continuous Deployment Q/A criteria says OK? Ship/deploy! Continuous Delivery

More information

ABS Manual Installation Guide

ABS Manual Installation Guide This document includes all the information required to install, upgrade and configure the Amberdms Billing System manually on nonoffically supported platforms. If you are a user of RHEL, CentOS, Debian

More information

Bull Service & Solutions

Bull Service & Solutions Bull Service & Solutions NovaForge NovaForge WebOS Installation Guide Emmanuel Rias Version Date Write by Content 0.1.0 28/11/2007 Emmanuel RIAS Document initialization 0.1.1 06/12/2007 Cédric TRAN-XUAN

More information

SYSTEM BACKUP AND RESTORE (AlienVault USM 4.8+)

SYSTEM BACKUP AND RESTORE (AlienVault USM 4.8+) Complete. Simple. Affordable Copyright 2014 AlienVault. All rights reserved. AlienVault, AlienVault Unified Security Management, AlienVault USM, AlienVault Open Threat Exchange, AlienVault OTX, Open Threat

More information

Data management on HPC platforms

Data management on HPC platforms Data management on HPC platforms Transferring data and handling code with Git scitas.epfl.ch September 10, 2015 http://bit.ly/1jkghz4 What kind of data Categorizing data to define a strategy Based on size?

More information

Jenkins on Windows with StreamBase

Jenkins on Windows with StreamBase Jenkins on Windows with StreamBase Using a Continuous Integration (CI) process and server to perform frequent application building, packaging, and automated testing is such a good idea that it s now a

More information

More about Continuous Integration: http://www.martinfowler.com/articles/continuousintegration.html

More about Continuous Integration: http://www.martinfowler.com/articles/continuousintegration.html 1 2 3 4 More about Continuous Integration: http://www.martinfowler.com/articles/continuousintegration.html 5 6 7 * Hudson was not evaluated separately. Most of the things which apply on Jenkins should

More information

Free Java and OpenJDK. Andrew Haley Tech Lead, Open Source Java

Free Java and OpenJDK. Andrew Haley Tech Lead, Open Source Java Free Java and OpenJDK Andrew Haley Tech Lead, Open Source Java 16 May 2006: Sun announce that it's going to free Java: "This announcement represents the next phase of open sourcing Sun's Java software

More information

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server Hardware Windows Windows NT 4.0 Linux Server Software and

More information

Building, testing and deploying mobile apps with Jenkins & friends

Building, testing and deploying mobile apps with Jenkins & friends Building, testing and deploying mobile apps with Jenkins & friends Christopher Orr https://chris.orr.me.uk/ This is a lightning talk which is basically described by its title, where "mobile apps" really

More information

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Reminders. Lab opens from today. Many students want to use the extra I/O pins on Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students

More information

Protect, License and Sell Xojo Apps

Protect, License and Sell Xojo Apps Protect, License and Sell Xojo Apps To build great software with Xojo, you focus on user needs, design, code and the testing process. To build a profitable business, your focus expands to protection and

More information

Unix Sampler. PEOPLE whoami id who

Unix Sampler. PEOPLE whoami id who Unix Sampler PEOPLE whoami id who finger username hostname grep pattern /etc/passwd Learn about yourself. See who is logged on Find out about the person who has an account called username on this host

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

Contents Set up Cassandra Cluster using Datastax Community Edition on Amazon EC2 Installing OpsCenter on Amazon AMI References Contact

Contents Set up Cassandra Cluster using Datastax Community Edition on Amazon EC2 Installing OpsCenter on Amazon AMI References Contact Contents Set up Cassandra Cluster using Datastax Community Edition on Amazon EC2... 2 Launce Amazon micro-instances... 2 Install JDK 7... 7 Install Cassandra... 8 Configure cassandra.yaml file... 8 Start

More information

Continuous Integration: Put it at the heart of your development

Continuous Integration: Put it at the heart of your development Continuous Integration: Put it at the heart of your development Susan Duncan Tools Product Manager, Oracle 1 Program Agenda What is CI? What Does It Mean To You? Make it Hudson Evolving Best Practice For

More information