4 echo "# Generated file; do not edit!\n";
8 "Linux" => "ubuntu-20.04",
9 "macOS" => "macos-10.15",
10 "ubuntu-20.04" => "gnu",
11 "macos-10.15" => "clang",
27 "INSTALL_CC" => "gcc-10",
28 "INSTALL_CXX" => "g++-10",
35 "CXXFLAGS" => "-stdlib=libc++"
82 * @var bool $splat_map false = no splat map, null = default splat map, true = full splat map
84 function steps_setenv($splat_map = null) {
85 if ($splat_map !== false) {
86 foreach (MAP
as $os_is => $os_vers) {
87 foreach ($os_vers as $os_ver => $cc_vnds_) {
88 if (!$splat_map && DEF
[DEF
["os"]] != $os_ver) continue;
89 foreach ($cc_vnds_ as $cc_vnd_is => $cc_vnds) {
90 foreach ($cc_vnds as $cc_vnd => $cc_vers_) {
91 if (!$splat_map && DEF
[DEF
[DEF
["os"]]] != $cc_vnd) continue;
92 foreach ($cc_vers_ as $cc_ver_is => $cc_vers) {
93 foreach ($cc_vers as $cc_ver => $ver) {
94 if (!$splat_map && DEF
[DEF
[DEF
[DEF
["os"]]]]["ver"] != $cc_ver) continue;
96 - name
: Prepare
environment (<?
= "for $cc_ver $cc_vnd on $os_ver" ?
>)
97 if: (<?
="$os_is=='$os_ver') && ($cc_vnd_is=='$cc_vnd') && ($cc_ver_is=='$cc_ver'"?
>)
99 echo CC
="<?=DEF[$cc_vnd]["CC
"] . $ver?>" >> $
{GITHUB_ENV
}
100 echo CXX
="<?=DEF[$cc_vnd]["CXX
"] . $ver?>" >> $
{GITHUB_ENV
}
102 if (isset(ENV
[$os_ver][$cc_vnd][$cc_ver])) {
103 foreach (ENV
[$os_ver][$cc_vnd][$cc_ver] as $env => $val) {
105 echo <?
=$env?
>="<?=$val?>" >> $
{GITHUB_ENV
}
118 function steps_getdeps() {
120 - name
: Install
dependencies (Linux
)
121 if: runner
.os
== 'Linux'
123 sudo apt
-get install \
126 $
{INSTALL_MEMCACHED
} \
127 $
{INSTALL_CC
} $
{INSTALL_CXX
}
128 sudo systemctl stop memcached ||
true
129 - name
: Install
dependencies (Mac
)
130 if: runner
.os
== 'macOS'
132 brew install bison flex $
{INSTALL_MEMCACHED
}
133 brew services stop memcached ||
true
134 echo MEMCACHED_BINARY
="/usr/local/bin/memcached" >> $
{GITHUB_ENV
}
135 - name
: Build memcached
141 ./configure CFLAGS
="-O2 -pipe" \
142 --prefix
=$
{MEMCACHED_PREFIX
} \
146 --disable
-dependency
-tracking \
149 --disable
-option
-checking \
154 echo MEMCACHED_BINARY
="${MEMCACHED_PREFIX}/bin/memcached" >> $
{GITHUB_ENV
}
159 function steps_build() {
161 - name
: Generate build
tree ($
{{ env
.CMAKE_BUILD_TYPE
}})
162 run
: cmake
-S
. -B build
163 - name
: Build all with $
{{ env
.CXX
}} $
{{ env
.CXXFLAGS
}}
164 run
: make
-C build
-j2 all
166 run
: make
-C build
-j2 test
168 run
: make
-C build
-j2 install DESTDIR
=.
169 - name
: Failed tests log
171 run
: cat build
/Testing
/Temporary
/LastTest
.log ||
true
175 function steps($splat_map = null) {
176 steps_setenv($splat_map);
181 function defaults() {
182 $os_ver = DEF
[DEF
["os"]];
183 $cc_vnd = DEF
[$os_ver];
184 $cc_ver = DEF
[$cc_vnd]["ver"];
185 return "$os_ver, $cc_vnd, $cc_ver";
195 - ".github/workflows/docs*"
204 INSTALL_MEMCACHED
: memcached
205 CMAKE_BUILD_TYPE
: Debug
208 ENABLE_HASH_HSIEH
: "ON"
211 OS_VND
: <?
=DEF
["os"]?
> #
212 OS_VER
: <?
=DEF
[DEF
["os"]]?
> #
213 CC_VND
: <?
=DEF
[DEF
[DEF
["os"]]]?
> #
214 CC_VER
: <?
=DEF
[DEF
[DEF
[DEF
["os"]]]]["ver"]?
> #
220 name
: dbg
-new (<?
=defaults()?
>)
221 runs
-on
: <?
=DEF
[DEF
["os"]]?
> #
224 MEMCACHED_PREFIX
: /tmp
227 - uses
: actions
/checkout@v2
228 - uses
: actions
/checkout@v2
230 repository
: memcached
/memcached
237 name
: dbg
-san (<?
=defaults()?
>)
238 runs
-on
: <?
=DEF
[DEF
["os"]]?
> #
240 ENABLE_SANITIZERS
: "address;undefined"
242 - uses
: actions
/checkout@v2
247 name
: dbg
-cov (<?
=defaults()?
>)
248 runs
-on
: <?
=DEF
[DEF
["os"]]?
> #
250 CFLAGS
: -O0
--coverage
251 CXXFLAGS
: -O0
--coverage
253 - uses
: actions
/checkout@v2
255 - uses
: codecov
/codecov
-action@v1
.0
.13
259 name
: dbg
-mac (<?
=DEF
["macOS"]?
>, <?
=DEF
[DEF
["macOS"]]?
>, <?
=DEF
[DEF
[DEF
["macOS"]]]["ver"]?
>)
260 runs
-on
: <?
=DEF
["macOS"]?
> #
262 CFLAGS
: -O0
--coverage
263 CXXFLAGS
: -O0
--coverage
264 continue-on
-error
: true
266 - uses
: actions
/checkout@v2
267 <?php
steps(false); ?
>
268 - uses
: codecov
/codecov
-action@v1
.0
.13
275 os_ver
: [ubuntu
-20.04, ubuntu
-18.04]
277 cc_ver
: [new, cur
, old
]
278 runs
-on
: $
{{ matrix
.os_ver
}}
279 continue-on
-error
: $
{{ matrix
.cc_vnd
== 'clang' }}
281 CMAKE_BUILD_TYPE
: Release
283 OS_VER
: $
{{ matrix
.os_ver
}}
284 CC_VND
: $
{{ matrix
.cc_vnd
}}
285 CC_VER
: $
{{ matrix
.cc_ver
}}
287 - uses
: actions
/checkout@v2
288 <?php
steps(true); ?
>