-
Notifications
You must be signed in to change notification settings - Fork 4
169 lines (129 loc) · 3.8 KB
/
c-cpp.yml
File metadata and controls
169 lines (129 loc) · 3.8 KB
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
167
168
169
name: C/C++ CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
test:
name: Build and Test (Ubuntu)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: build and test
run: g++ -std=c++20 -O3 -Iexternal/googletest/googletest/include -Iexternal/googletest/googletest src/TinyJSON.cpp tests/*.cpp external/googletest/googletest/src/gtest-all.cc -pthread -o testtinyjson
- name: run tests
run: |
set +e
./testtinyjson
windows-test:
name: Build and Test (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: setup MSYS2 and install GCC
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
install: mingw-w64-x86_64-gcc
update: true
release: true
- name: build and test
shell: msys2 {0}
run: |
g++ -std=c++20 -O3 \
-Iexternal/googletest/googletest/include \
-Iexternal/googletest/googletest \
src/TinyJSON.cpp tests/*.cpp \
external/googletest/googletest/src/gtest-all.cc \
-pthread \
-o testtinyjson.exe
- name: run tests
shell: msys2 {0}
run: |
./testtinyjson.exe
warnings:
name: Build Warnings as Errors
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build basic with warnings
run: g++ -std=c++20 -Wall -Wextra -Werror -O3 src/TinyJSON.cpp example/basic_parse.cpp -o basic_parse
- name: run basic with warnings
run: |
set +e
./basic_parse
build20:
name: Build C++ 20
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build basic
run: g++ -std=c++20 src/TinyJSON.cpp example/basic_parse.cpp -o basic_parse
- name: run basic
run: |
set +e
./basic_parse
- name: build options
run: g++ -std=c++20 src/TinyJSON.cpp example/options.cpp -o options
- name: run options
run: |
set +e
./options
- name: user literals
run: g++ -std=c++20 src/TinyJSON.cpp example/user_literals.cpp -o user_literals
- name: run user literals
run: |
set +e
./user_literals
build11:
name: Build C++ 11
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build options c++11
run: g++ -std=c++11 src/TinyJSON.cpp example/options11.cpp -o options11
- name: run options11
run: |
set +e
./options11
build_array:
name: Build array
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build custom array c++11
run: g++ -std=c++11 -D TJ_INCLUDE_STDVECTOR=0 -Wall -Wextra -Werror -O3 src/TinyJSON.cpp example/basic_parse.cpp -o basic_parse
- name: run custom array
run: |
set +e
./basic_parse
- name: build std::vector c++11
run: g++ -std=c++11 -D TJ_INCLUDE_STDVECTOR=1 -Wall -Wextra -Werror -O3 src/TinyJSON.cpp example/basic_parse.cpp -o basic_parse
- name: run std::vector
run: |
set +e
./basic_parse
fast_dump:
name: Fast dump test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build fast dump c++11
run: g++ -std=c++11 -Wall -Wextra -Werror -O3 src/TinyJSON.cpp example/fast_dump.cpp -o fast_dump
- name: run fast dump c++11
run: |
set +e
./fast_dump
- name: build fast dump c++20
run: g++ -std=c++20 -Wall -Wextra -Werror -O3 src/TinyJSON.cpp example/fast_dump.cpp -o fast_dump
- name: run fast dump c++20
run: |
set +e
./fast_dump