-
Notifications
You must be signed in to change notification settings - Fork 263
107 lines (107 loc) · 4.1 KB
/
build-cachelib-rockylinux-9.yml
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
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: build-cachelib-rockylinux-9.0
on:
push:
tags:
- 'v*'
pull_request:
workflow_dispatch:
schedule:
- cron: '0 17 * * *'
jobs:
build-cachelib-rockylinux-9:
name: "RockyLinux-9.0 - Build CacheLib with all dependencies"
runs-on: ubuntu-latest
# Docker container image name
container: "rockylinux:9.0"
steps:
- name: "Show Head Commit"
env:
CONTENT: ${{ toJSON(github.event.head_commit) }}
run: echo "$CONTENT"
- name: "update packages"
# stock centos has a problem with CMAKE, fails with:
# "cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd"
# updating solves it
run: dnf update -y
- name: "install sudo,git"
run: dnf install -y sudo git cmake gcc procps
- name: "System Information"
run: |
echo === uname ===
uname -a
echo === /etc/os-release ===
cat /etc/os-release
echo === df -hl ===
df -hl
echo === nproc ===
nproc || true
echo === free -h ===
free -h
echo === top ===
top -b -n1 -1 -Eg || timeout 1 top -b -n1
echo === env ===
env
echo === gcc -v ===
gcc -v
- name: "checkout sources"
uses: actions/checkout@v3
- name: "Add workspace as a safe directory"
run: git config --system --add safe.directory $GITHUB_WORKSPACE
- name: "Install Prerequisites"
run: ./contrib/build.sh -S -B
- name: "Test: update-submodules"
run: ./contrib/update-submodules.sh
- name: "Install dependency: zstd"
run: ./contrib/build-package.sh -j -v -i zstd
- name: "Install dependency: googleflags"
run: ./contrib/build-package.sh -j -v -i googleflags
- name: "Install dependency: googlelog"
run: ./contrib/build-package.sh -j -v -i googlelog
- name: "Install dependency: googletest"
run: ./contrib/build-package.sh -j -v -i googletest
- name: "Install dependency: sparsemap"
run: ./contrib/build-package.sh -j -v -i sparsemap
- name: "Install dependency: fmt"
run: ./contrib/build-package.sh -j -v -i fmt
- name: "Install dependency: folly"
run: |
# see: https://aur.archlinux.org/packages/folly#comment-862543
sed -i '$aset(LIBDWARF_INCLUDE_DIRS "/usr/include/libdwarf-0")' cachelib/external/folly/CMake/FindLibDwarf.cmake
./contrib/build-package.sh -S -j -v -i folly
- name: "Install dependency: fizz"
run: ./contrib/build-package.sh -j -v -i fizz
- name: "Install dependency: wangle"
run: ./contrib/build-package.sh -j -v -i wangle
- name: "Install dependency: mvfst"
run: ./contrib/build-package.sh -j -v -i mvfst
- name: "Install dependency: fbthrift"
run: ./contrib/build-package.sh -j -v -i fbthrift
- name: "build CacheLib"
# Build cachelib in debug mode (-d)
run: ./contrib/build-package.sh -j -v -i -d cachelib
- name: "run cachebench"
run: ./opt/cachelib/bin/cachebench --json_test_config ./opt/cachelib/test_configs/simple_test.json
- uses: actions/upload-artifact@v3
if: failure()
with:
name: cachelib-cmake-logs
path: |
build-cachelib/CMakeFiles/*.log
build-cachelib/CMakeCache.txt
build-cachelib/Makefile
build-cachelib/**/Makefile
if-no-files-found: warn
retention-days: 1