summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/mciproject.yml
blob: 3df1ce5805e0b7c9e4a999fb4f2da4837712b981 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#
# This file defines the tasks and platforms for WiredTiger in the
# MongoDB continuous integration system (see https://mci.mongodb.com).
#

functions:
  "fetch source" :
    command: git.get_project
    params:
      directory: wiredtiger
  "fetch artifacts" : &fetch_artifacts
    - command: s3.get
      params:
        aws_key: ${aws_key}
        aws_secret: ${aws_secret}
        remote_file: wiredtiger/${build_variant}/${revision}/artifacts/${build_id}.tgz
        bucket: build_external
        extract_to: wiredtiger

pre:
  - command: shell.exec
    params:
      script: |
        rm -rf "wiredtiger"
post:
  - command: shell.exec
    params:
      script: |
        rm -rf "wiredtiger"

tasks:
## Base compile task on posix flavours
  - name: compile
    depends_on: []
    commands:
      - func: "fetch source"
      - command: git.apply_patch
        params:
          directory: wiredtiger
      - command: shell.exec
        params:
          working_dir: "wiredtiger"
          script: |
            set -o errexit
            set -o verbose
            if [ "Windows_NT" = "$OS" ]; then
              scons.bat --enable-python=c:\\swigwin-3.0.2\\swig.exe --enable-diagnostic --enable-verbose ${smp_command|}
            else
              ./build_posix/reconf
              ${configure_env_vars|} ./configure --enable-diagnostic --enable-python --enable-zlib --enable-strict --enable-verbose
              ${make_command|make} ${smp_command|} 2>&1
              ${make_command|make} check 2>&1
            fi
      - command: archive.targz_pack
        params:
          target: "wiredtiger.tgz"
          source_dir: "wiredtiger"
          include:
             - "./**"
      - command: s3.put
        params:
          aws_secret: ${aws_secret}
          aws_key: ${aws_key}
          local_file: wiredtiger.tgz
          bucket: build_external
          permissions: public-read
          content_type: application/tar
          display_name: Artifacts
          remote_file: wiredtiger/${build_variant}/${revision}/artifacts/${build_id}.tgz

  - name: unit-test
    depends_on:
    - name: compile
    commands:
      - func: "fetch artifacts"
      - command: shell.exec
        params:
          working_dir: "wiredtiger"
          script: |
            set -o errexit
            set -o verbose
            ${test_env_vars|} python ./test/suite/run.py -v 2 ${smp_command|} 2>&1

  - name: compile-windows-alt
    depends_on:
    - name: compile
    commands:
      - func: "fetch artifacts"
      - command: shell.exec
        params:
          working_dir: "wiredtiger"
          script: |
            set -o errexit
            set -o verbose

            scons.bat ${smp_command|} "CFLAGS=/Gv /wd4090 /wd4996 /we4047 /we4024 /TC /we4100" wiredtiger.dll libwiredtiger.lib

  - name: fops
    depends_on:
    - name: compile
    commands:
      - func: "fetch artifacts"
      - command: shell.exec
        params:
          working_dir: "wiredtiger"
          script: |
            set -o errexit
            set -o verbose
            if [ "Windows_NT" = "$OS" ]; then
              cmd.exe /c t_fops.exe
            else
              ./test/fops/t
            fi

buildvariants:
- name: ubuntu1404
  display_name: Ubuntu 14.04
  run_on:
  - ubuntu1404-test
  expansions:
    # It's ugly, but we need the absolute path here, not the relative
    test_env_vars: LD_LIBRARY_PATH=`pwd`/.libs
    smp_command: -j $(grep -c ^processor /proc/cpuinfo)
    configure_env_vars: CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++
  tasks:
    - name: compile
    - name: unit-test
    - name: fops

- name: solaris
  display_name: Solaris
  run_on:
  - solaris
  expansions:
    make_command: PATH=/opt/mongodbtoolchain/bin:$PATH gmake
    test_env_vars: LD_LIBRARY_PATH=`pwd`/.libs
    smp_command: -j $(kstat cpu | sort -u | grep -c "^module")
    configure_env_vars: PATH=/opt/mongodbtoolchain/bin:$PATH CFLAGS="-m64"
  tasks:
    - name: compile
    - name: unit-test
    - name: fops

- name: windows-64
  display_name: Windows 64-bit
  run_on:
  - windows-64-vs2013-test
  tasks:
    - name: compile
    - name: compile-windows-alt
    - name: unit-test
    - name: fops

- name: osx-1010
  display_name: OS X 10.10
  run_on:
  - osx-1010
  expansions:
    smp_command: -j $(sysctl -n hw.logicalcpu)
    configure_env_vars: PATH=/opt/local/bin:$PATH
    make_command: PATH=/opt/local/bin:$PATH ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future make
    test_env_vars: DYLD_LIBRARY_PATH=`pwd`/.libs
  tasks:
    - name: compile
    - name: unit-test
    - name: fops