Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add support for testing easyconfig PRs from eb command line #920

Merged
merged 63 commits into from May 15, 2014

Conversation

boegel
Copy link
Member

@boegel boegel commented May 8, 2014

example usage (see also easybuilders/easybuild-easyconfigs#857 (comment)):

$ eb --test-easyconfigs-pr=857 --robot --github_user=jenkins1 --force
== temporary log file in case of crash /tmp/easybuild-FqdQKW/easybuild-1aiA1p.log
== resolving dependencies ...
== processing EasyBuild easyconfig /tmp/easybuild-FqdQKW/files_pr857/SOAPaligner-2.21_Linux-x86_64.eb
== building and installing SOAPaligner/2.21_Linux-x86_64...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== packaging...
== postprocessing...
== sanity checking...
== cleaning up...
== creating module...
== COMPLETED: Installation ended successfully
== Results of the build can be found in the log file /user/scratchdelcatty/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/SOAPaligner/2.21_Linux-x86_64/easybuild/easybuild-SOAPaligner-2.21-20140508.174314.log
== Build succeeded for 1 out of 1
== temporary log file /tmp/easybuild-FqdQKW/easybuild-1aiA1p.log has been removed.
== temporary directory /tmp/easybuild-FqdQKW has been removed.
== Test report, uploaded to https://gist.github.com/b7db9f056ef8eb2c83e8 and mentioned in a comment in easyconfigs PR#857:
Test result:
    Build succeeded for 1 out of 1 (1 easyconfigs in this PR)

Overview of tested easyconfigs (in order):
    [OK] SOAPaligner-2.21_Linux-x86_64.eb

Time info:
    start: Thu, 08 May 2014 15:43:00 +0000 (UTC)
    end: Thu, 08 May 2014 15:43:14 +0000 (UTC)

EasyBuild info:
    easybuild-framework version: 1.13.0dev
    easybuild-easyblocks version: 1.13.0dev
    command line:
        eb --test-easyconfigs-pr=857 --robot --github_user=jenkins1 --force
    full configuration (includes defaults):
        --buildpath=/user/home/gent/vsc400/vsc40023/.local/easybuild/build
        --config=/user/scratchdelcatty/gent/gvo000/gvo00002/vsc40023/easybuild_easy_installed/lib/python2.6/site-packages/easybuild_framework-1.13.0dev-py2.6.egg/easybuild/easybuild_config.py
        --disable-allow-modules-tool-mismatch
        --disable-avail-easyconfig-constants
        --disable-avail-easyconfig-licenses
        --disable-avail-easyconfig-params
        --disable-avail-easyconfig-templates
        --disable-avail-module-naming-schemes
        --disable-avail-modules-tools
        --disable-avail-repositories
        --disable-debug
        --disable-dry-run
        --disable-dry-run-short
        --disable-experimental
        --disable-ignore-osdeps
        --disable-info
        --disable-job
        --disable-list-toolchains
        --disable-logtostdout
        --disable-pretend
        --disable-quiet
        --disable-recursive-module-unload
        --disable-regtest
        --disable-regtest-online
        --disable-sequential
        --disable-set-gid-bit
        --disable-show-default-moduleclasses
        --disable-skip
        --disable-skip-test-cases
        --disable-sticky-bit
        --force
        --github_user=jenkins1
        --ignore-dirs=.git,.svn
        --installpath=/user/home/gent/vsc400/vsc40023/.local/easybuild
        --logfile-format=easybuild,easybuild-%(name)s-%(version)s-%(date)s.%(time)s.log
        --module-naming-scheme=EasyBuildModuleNamingScheme
        --moduleclasses=bio,chem,data,devel,ide,lib,mpi,perf,system,tools
        --modules-tool=EnvironmentModulesC
        --oldstyleconfig
        --repository=FileRepository
        --repositorypath=/user/home/gent/vsc400/vsc40023/.local/easybuild/ebfiles_repo
        --robot=/user/scratch/gent/vsc400/vsc40023/easybuild_easy_installed/lib/python2.6/site-packages/easybuild_easyconfigs-1.13.0.0dev-py2.6.egg/easybuild/easyconfigs
        --sourcepath=/user/home/gent/vsc400/vsc40023/.local/easybuild/sources
        --strict=warn
        --subdir-modules=modules
        --subdir-software=software
        --test-easyconfigs-pr=857
        --tmp-logdir=/tmp

System info:
    core_count: 16
    cpu_model: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
    cpu_speed: 2600.175
    cpu_vendor: Intel
    gcc_version: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4); Copyright (C) 2010 Free Software Foundation, Inc.; This is free software; see the source for copying conditions.  There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.; ; 
    hostname: node2154.delcatty.os
    kernel_name: Linux
    libc_version: ldd (GNU libc) 2.12; Copyright (C) 2010 Free Software Foundation, Inc.; This is free software; see the source for copying conditions.  There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.; Written by Roland McGrath and Ulrich Drepper.; 
    os_name: SL
    os_type: Linux
    os_version: 6.5
    platform_name: x86_64-unknown-linux
    python_version: 2.6.6 (r266:84292, Jan 22 2014, 05:06:49) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]
    system_gcc_path: /usr/bin/gcc
    system_python_path: /usr/bin/python

List of loaded modules:
    cluster/delcatty

Environment:
    EASYBUILDBUILDPATH: /tmp/vsc40023/easybuild_build
    EASYBUILDPREFIX: /user/scratchdelcatty/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge
    EASYBUILDSOURCEPATH: /user/data/gent/vsc400/vsc40023/EasyBuild/sources:/apps/gent/source:/nfsmuk/apps/gent/source/
    G_BROKEN_FILENAMES: 1
    HISTCONTROL: ignoredups
    HISTSIZE: 1000
    HOME: /user/home/gent/vsc400/vsc40023
    HOSTNAME: node2154.delcatty.os
    LANG: en_US.utf8
    LC_ALL: en_US.utf8
    LC_CTYPE: UTF-8
    LESSOPEN: |/usr/bin/lesspipe.sh %s
    LOADEDMODULES: cluster/delcatty
    LOGNAME: vsc40023
    LS_COLORS: 
    MAIL: /var/spool/mail/vsc40023
    MODULEPATH: /etc/modulefiles/vsc:/user/scratchdelcatty/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/modules/all
    MODULESHOME: /usr/share/Modules
    PATH: /user/home/gent/vsc400/vsc40023/lmod/5.1.5/libexec:/user/home/gent/vsc400/vsc40023/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/ibutils/bin:/user/scratch/gent/vsc400/vsc40023/easybuild_easy_installed/bin:/user/home/gent/vsc400/vsc40023/scratch/easybuild_easy_installed/bin
    PBS_DEFAULT: master15.delcatty.gent.vsc
    PWD: /user/home/gent/vsc400/vsc40023
    PYTHONPATH: /user/scratch/gent/vsc400/vsc40023/easybuild_easy_installed/lib/python2.6/site-packages:/user/scratch/gent/vsc400/vsc40023/easybuild_easy_installed/lib64/python2.6/site-packages:/user/home/gent/vsc400/vsc40023/.local/lib/python2.6/site-packages:/user/home/gent/vsc400/vsc40023/scratch/easybuild_easy_installed/lib/python2.6/site-packages:/user/home/gent/vsc400/vsc40023/scratch/easybuild_easy_installed/lib64/python2.6/site-packages
    SHELL: /bin/bash
    SHLVL: 2
    SSH_CLIENT: 172.24.13.3 42501 22
    SSH_CONNECTION: 172.24.13.3 42501 172.24.12.154 22
    SSH_TTY: /dev/pts/0
    TERM: xterm-256color
    USER: vsc40023
    VSCPROFILELOADED: 1
    VSC_ARCH_LOCAL: sandybridge
    VSC_DATA: /user/data/gent/vsc400/vsc40023
    VSC_DATA_VO: /user/data/gent/gvo000/gvo00002
    VSC_DATA_VO_USER: /user/data/gent/gvo000/gvo00002/vsc40023
    VSC_HOME: /user/home/gent/vsc400/vsc40023
    VSC_INSTITUTE: gent
    VSC_INSTITUTE_CLUSTER: delcatty
    VSC_INSTITUTE_LOCAL: gent
    VSC_OS_LOCAL: SL6
    VSC_SCRATCH: /user/scratch/gent/vsc400/vsc40023
    VSC_SCRATCHGULPIN: /user/scratchgulpin/gent/vsc400/vsc40023
    VSC_SCRATCH_CLUSTER: /user/scratchdelcatty/gent/gvo000/gvo00002/vsc40023
    VSC_SCRATCH_DELCATTY: /user/scratchdelcatty/gent/vsc400/vsc40023
    VSC_SCRATCH_DELCATTY_VO: /user/scratchdelcatty/gent/gvo000/gvo00002
    VSC_SCRATCH_DELCATTY_VO_USER: /user/scratchdelcatty/gent/gvo000/gvo00002/vsc40023
    VSC_SCRATCH_GENGAR: /user/scratchgengar/gent/vsc400/vsc40023
    VSC_SCRATCH_GENGAR_VO: /user/scratchgengar/gent/gvo000/gvo00002
    VSC_SCRATCH_GENGAR_VO_USER: /user/scratchgengar/gent/gvo000/gvo00002/vsc40023
    VSC_SCRATCH_GULPIN: /user/scratchgulpin/gent/vsc400/vsc40023
    VSC_SCRATCH_GULPIN_VO: /user/scratchgulpin/gent/gvo000/gvo00002
    VSC_SCRATCH_GULPIN_VO_USER: /user/scratchgulpin/gent/gvo000/gvo00002/vsc40023
    VSC_SCRATCH_NODE: /local
    VSC_SCRATCH_SITE: /user/scratch/gent/vsc400/vsc40023
    VSC_SCRATCH_VO: /user/scratch/gent/gvo000/gvo00002
    VSC_SCRATCH_VO_USER: /user/scratch/gent/gvo000/gvo00002/vsc40023
    VSC_VO: gvo00002
    _: /usr/bin/python
    _LMFILES_: /etc/modulefiles/vsc/cluster/delcatty
    module: () {  eval `/usr/bin/modulecmd bash $*`
}

try:
conn.request(method, url, body, headers)
except socket.gaierror, err:
fancylogger.getLogger().raiseException("Failed to issue HTTP request.")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe say HTTP request for the github API?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

test_report = '\n'.join(test_report)
descr = "EasyBuild test report for easyconfigs PR #%s" % pr_nr
fn = 'easybuild_test_report_easyconfigs_pr%s_%s.txt' % (pr_nr, strftime("%Y%M%d-UTC-%H-%M-%S", gmtime()))
gist_url = create_gist(test_report, descr=descr, fn=fn, github_user=options.github_user, github_token=github_token)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for all i care, this report can be always created with each build, and added to the easybuildlogdir. only in case of a pr create the gist and comment?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

creating the test report for each build separately doesn't make sense, since it's a general overview of the whole run (which may include multiple builds)

I can (and will) always mention the test report in the overall debug log though, and provide a --dump-test-report option.

@@ -28,12 +28,13 @@
Interface to GitHub.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JensTimmerman or @boegel can you make sure this is in sync with hpcugent/vsc-base#119? also when that PR is merged, a new PR should remove this module

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JensTimmerman made some changes in there, that may affects things in here

but I can tackle that as soon hpcugent/vsc-base#119 is merged in

we'll still need agithub.py though, since hpcugent/vsc-base#119 doesn't feature the GitHub interface (but we should reuse Client)

if os_type == LINUX:
glibc_tool = 'ldd'
glibc_ver_str = get_tool_version(glibc_tool)
glibc_ver_regex = re.compile(r"^%s.*?(\d[\d.]*).*$" % glibc_tool)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The output of ldd is always: ldd (system string) version. What if their is a version number in the system string?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed


if os_type == LINUX:
glibc_ver_str = get_tool_version('ldd')
glibc_ver_regex = re.compile(r"^ldd \([^)]*\) (\d[\d.]*).*$")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe a last nit pic remark: I've always understood that unless you will use a regex very often, it's no point in compiling it yourself? re already keeps a cache.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm also using glibc_ver_regex.pattern deeper down, so I need this (I don't want to store the regex in a string first to use in re.search or something like that)

@stdweird
Copy link
Contributor

@boegel some minor remark, but looks ok overall...

@boegel
Copy link
Member Author

boegel commented May 15, 2014

Jenkins: test this please

5 similar comments
@boegel
Copy link
Member Author

boegel commented May 15, 2014

Jenkins: test this please

@boegel
Copy link
Member Author

boegel commented May 15, 2014

Jenkins: test this please

@wdpypere
Copy link

Jenkins: test this please

@boegel
Copy link
Member Author

boegel commented May 15, 2014

Jenkins: test this please

@boegel
Copy link
Member Author

boegel commented May 15, 2014

Jenkins: test this please

@wdpypere
Copy link

@boegel fixed

@boegel
Copy link
Member Author

boegel commented May 15, 2014

Thanks for the extensive reviewing @stdweird, and @wpoely86!

Going in!

boegel added a commit that referenced this pull request May 15, 2014
add support for testing easyconfig PRs from eb command line
@boegel boegel merged commit 5df522a into easybuilders:develop May 15, 2014
@boegel boegel deleted the test_pr branch May 15, 2014 15:25
@fgeorgatos
Copy link
Collaborator

Congrats! This may prove to be the single most important step to help with
QA of the PRs!
On 15 May 2014 17:24, "Kenneth Hoste" notifications@github.com wrote:

Merged #920 #920.


Reply to this email directly or view it on GitHubhttps://github.com//pull/920#event-121512285
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants