Skip to content

Commit 176c5fe

Browse files
committed
CI: Linux, Windows and OSX support
1 parent cc4ed24 commit 176c5fe

5 files changed

Lines changed: 145 additions & 49 deletions

File tree

.github/workflows/ccpp.yml

Lines changed: 0 additions & 48 deletions
This file was deleted.

.travis.yml

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
language: cpp
2+
3+
# compiler:
4+
# - gcc
5+
# - clang
6+
7+
jobs:
8+
include:
9+
10+
- stage: Linux normal operation
11+
os: linux
12+
dist: xenial
13+
name: 'Example: single-objective'
14+
script: make ex_so1
15+
- name: 'Example: single-objective Rastrigin'
16+
os: linux
17+
dist: xenial
18+
script: make ex_so_rastrigin
19+
- name: 'Example: single-objective bind'
20+
os: linux
21+
dist: xenial
22+
script: make ex_so_bind
23+
- name: 'Example: multi-objective'
24+
os: linux
25+
dist: xenial
26+
script: make ex_mo1
27+
- name: 'Example: multi-objective DTLZ2'
28+
os: linux
29+
dist: xenial
30+
script: make ex_mo_dtlz2
31+
- name: 'Example: GA with solution initialization'
32+
os: linux
33+
dist: xenial
34+
script: make ex_init_solutions
35+
36+
- stage: Windows
37+
os: windows
38+
name: 'Example: single-objective'
39+
script: cmd.exe //C 'ci-test-cases\compile_cl.bat examples/so-1/example_so1.cpp .\bin\example_so1.exe'
40+
- name: 'Example: single-objective Rastrigin'
41+
os: windows
42+
script: cmd.exe //C 'ci-test-cases\compile_cl.bat examples/so-rastrigin/so-rastrigin.cpp .\bin\so-rastrigin.exe'
43+
- name: 'Example: single-objective bind'
44+
os: windows
45+
script: cmd.exe //C 'ci-test-cases\compile_cl.bat examples/so-bind/example_bind.cpp .\bin\example_bind.exe'
46+
- name: 'Example: multi-objective'
47+
os: windows
48+
script: cmd.exe //C 'ci-test-cases\compile_cl.bat examples/mo-1/example_mo1.cpp .\bin\example_mo1.exe'
49+
- name: 'Example: multi-objective DTLZ2'
50+
os: windows
51+
script: cmd.exe //C 'ci-test-cases\compile_cl.bat examples/mo-dtlz2/mo-dtlz2.cpp .\bin\mo-dtlz2.exe'
52+
- name: 'Example: GA with solution initialization'
53+
os: windows
54+
script: cmd.exe //C 'ci-test-cases\compile_cl.bat examples/so-init-solutions/example_so-init-solutions.cpp .\bin\example_so-init-solutions.exe'
55+
56+
- stage: OSX normal operation
57+
os: osx
58+
osx_image: xcode8
59+
name: 'Example: single-objective'
60+
script: make ex_so1
61+
- name: 'Example: single-objective Rastrigin'
62+
os: osx
63+
osx_image: xcode8
64+
script: make ex_so_rastrigin
65+
- name: 'Example: single-objective bind'
66+
os: osx
67+
osx_image: xcode8
68+
script: make ex_so_bind
69+
- name: 'Example: multi-objective'
70+
os: osx
71+
osx_image: xcode8
72+
script: make ex_mo1
73+
- name: 'Example: multi-objective DTLZ2'
74+
os: osx
75+
osx_image: xcode8
76+
script: make ex_mo_dtlz2
77+
- name: 'Example: GA with solution initialization'
78+
os: osx
79+
osx_image: xcode8
80+
script: make ex_init_solutions
81+
82+
- stage: Linux regression test
83+
os: linux
84+
dist: xenial
85+
name: Single-objective skim test
86+
script: cd ci-test-cases && make so-skim
87+
- name: Multi-objective skim test
88+
os: linux
89+
dist: xenial
90+
script: cd ci-test-cases && make mo-skim
91+
- name: Address sanitizer single-objective
92+
os: linux
93+
dist: xenial
94+
script: cd ci-test-cases && make so-sanitizer-address
95+
- name: Address sanitizer multi-objective
96+
os: linux
97+
dist: xenial
98+
script: cd ci-test-cases && make mo-sanitizer-address
99+
- name: Thread sanitizer test single-objective
100+
os: linux
101+
dist: xenial
102+
script: cd ci-test-cases && make so-sanitizer-thread
103+
- name: Thread sanitizer test multi-objective
104+
os: linux
105+
dist: xenial
106+
script: cd ci-test-cases && make mo-sanitizer-thread
107+
- name: UB sanitizer test single-objective
108+
os: linux
109+
dist: xenial
110+
script: cd ci-test-cases && make so-sanitizer-ub
111+
- name: UB sanitizer test multi-objective
112+
os: linux
113+
dist: xenial
114+
script: cd ci-test-cases && make mo-sanitizer-ub
115+
- name: Clang compatibility check single-objective
116+
os: linux
117+
dist: xenial
118+
script: cd ci-test-cases && make so-clang
119+
- name: Clang compatibility check multi-objective
120+
os: linux
121+
dist: xenial
122+
script: cd ci-test-cases && make mo-clang

ci-test-cases/compile_cl.bat

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
echo off
2+
3+
if NOT DEFINED VCINSTALLDIR (
4+
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" (
5+
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64
6+
echo "Applying Visual Studio 17"
7+
)
8+
)
9+
10+
if NOT DEFINED VCINSTALLDIR (
11+
if exist "C:\Program Files (x86)\Microsoft Visual Studio 15.0\VC\vcvarsall.bat" (
12+
call "C:\Program Files (x86)\Microsoft Visual Studio 15.0\VC\vcvarsall.bat" amd64
13+
echo "Applying Visual Studio 15"
14+
)
15+
)
16+
17+
if NOT DEFINED VCINSTALLDIR (
18+
echo "No Visual Studio was found!"
19+
)
20+
21+
cl.exe /O2 /D_CRT_SECURE_NO_WARNINGS /D_HAS_EXCEPTIONS=0 /EHsc /W4 /Isrc %1 /link /out:%2 && %2

examples/so-1/example_so1.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// This library is free and distributed under
22
// Mozilla Public License Version 2.0.
33

4-
#include <string>
54
#include <iostream>
5+
#include <string>
66
#include <fstream>
77
#include "openGA.hpp"
88

examples/so-init-solutions/example_so-init-solutions.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ struct MySolution
1919

2020
MySolution()
2121
{
22+
// default constructor is a must
2223
}
2324

2425
MySolution(std::vector<double> x):

0 commit comments

Comments
 (0)