mirror of
https://github.com/facebook/rocksdb.git
synced 2026-07-07 14:47:40 +08:00
2950e99219
Summary: I am wanting to use std::counting_semaphore for something and the timing seems good to require C++20 support. The internets suggest: * GCC >= 10 is adequate, >= 11 preferred * Clang >= 10 is needed * Visual Studio >= 2019 is adquate And popular linux distributions look like this: * CentOS Stream 9 -> GCC 11.2 (CentOS 8 is EOL) * Ubuntu 22.04 LTS -> GCC 11.x (Ubuntu 20 just ended standard support) * Debian 12 (oldstable) -> GCC 12.2 * (Debian 11 has ended security updates, uses GCC 10.2) This required generating a new docker image based on Ubuntu 22 for CI using gcc. The existing Ubuntu 20 image works for covering appropriate clang versions (though we should maybe add a much later version as well, in the next increment of our Ubuntu 22 image; however the minimum available clang build from apt.llvm.org for Ubuntu 22 is clang 13). Update to SetDumpFilter is to quiet a mysterious gcc-13 warning-as-error. Removed --compile-no-warning-as-error from a cmake command line because cmake in the new docker image is too old for this option. Pull Request resolved: https://github.com/facebook/rocksdb/pull/13904 Test Plan: CI, one minor unit test added to verify std::counting_semaphor works Reviewed By: xingbowang Differential Revision: D81266435 Pulled By: pdillinger fbshipit-source-id: 26040eeccca7004416e29a6ff4f6ea93f2052684
133 lines
4.3 KiB
YAML
133 lines
4.3 KiB
YAML
name: facebook/rocksdb/nightly
|
|
on:
|
|
schedule:
|
|
- cron: 0 9 * * *
|
|
workflow_dispatch:
|
|
permissions: {}
|
|
jobs:
|
|
build-format-compatible:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 16-core-ubuntu
|
|
container:
|
|
image: ghcr.io/facebook/rocksdb_ubuntu:22.0
|
|
options: --shm-size=16gb
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
with:
|
|
fetch-depth: 0 # Need full repo history
|
|
fetch-tags: true
|
|
- uses: "./.github/actions/setup-upstream"
|
|
- uses: "./.github/actions/pre-steps"
|
|
- name: test
|
|
run: |-
|
|
export TEST_TMPDIR=/dev/shm/rocksdb
|
|
rm -rf /dev/shm/rocksdb
|
|
mkdir /dev/shm/rocksdb
|
|
git config --global --add safe.directory /__w/rocksdb/rocksdb
|
|
tools/check_format_compatible.sh
|
|
- uses: "./.github/actions/post-steps"
|
|
build-linux-non-shm:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 16-core-ubuntu
|
|
container:
|
|
image: ghcr.io/facebook/rocksdb_ubuntu:22.0
|
|
options: --shm-size=16gb
|
|
env:
|
|
TEST_TMPDIR: "/tmp/rocksdb_test_tmp"
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/pre-steps"
|
|
- run: make V=1 -j32 check
|
|
- uses: "./.github/actions/post-steps"
|
|
build-linux-clang-13-asan-ubsan-with-folly:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 16-core-ubuntu
|
|
container:
|
|
image: zjay437/rocksdb:0.6
|
|
options: --shm-size=16gb
|
|
env:
|
|
CC: clang-13
|
|
CXX: clang++-13
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/pre-steps"
|
|
- uses: "./.github/actions/setup-folly"
|
|
- uses: "./.github/actions/build-folly"
|
|
- run: LIB_MODE=static USE_CLANG=1 USE_FOLLY=1 COMPILE_WITH_UBSAN=1 COMPILE_WITH_ASAN=1 make -j32 check
|
|
- uses: "./.github/actions/post-steps"
|
|
build-linux-valgrind:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 16-core-ubuntu
|
|
container:
|
|
image: ghcr.io/facebook/rocksdb_ubuntu:22.0
|
|
options: --shm-size=16gb
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/pre-steps"
|
|
- run: make V=1 -j32 valgrind_test
|
|
- uses: "./.github/actions/post-steps"
|
|
build-windows-vs2022-avx2:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on: windows-2022
|
|
env:
|
|
CMAKE_GENERATOR: Visual Studio 17 2022
|
|
CMAKE_PORTABLE: AVX2
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/windows-build-steps"
|
|
build-linux-arm-test-full:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 4-core-ubuntu-arm
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/pre-steps"
|
|
- run: sudo apt-get update && sudo apt-get install -y build-essential libgflags-dev
|
|
- run: make V=1 J=4 -j4 check
|
|
- uses: "./.github/actions/post-steps"
|
|
build-examples:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 4-core-ubuntu
|
|
container:
|
|
image: ghcr.io/facebook/rocksdb_ubuntu:22.0
|
|
options: --shm-size=16gb
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/pre-steps"
|
|
- name: Build examples
|
|
run: make V=1 -j4 static_lib && cd examples && make V=1 -j4
|
|
- uses: "./.github/actions/post-steps"
|
|
build-fuzzers:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 4-core-ubuntu
|
|
container:
|
|
image: zjay437/rocksdb:0.6
|
|
options: --shm-size=16gb
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/pre-steps"
|
|
- name: Build rocksdb lib
|
|
run: CC=clang-13 CXX=clang++-13 USE_CLANG=1 make -j4 static_lib
|
|
- name: Build fuzzers
|
|
run: cd fuzz && make sst_file_writer_fuzzer db_fuzzer db_map_fuzzer
|
|
- uses: "./.github/actions/post-steps"
|
|
build-linux-cmake-with-folly-lite-no-test:
|
|
if: ${{ github.repository_owner == 'facebook' }}
|
|
runs-on:
|
|
labels: 16-core-ubuntu
|
|
container:
|
|
image: ghcr.io/facebook/rocksdb_ubuntu:22.0
|
|
options: --shm-size=16gb
|
|
steps:
|
|
- uses: actions/checkout@v4.1.0
|
|
- uses: "./.github/actions/pre-steps"
|
|
- uses: "./.github/actions/setup-folly"
|
|
- run: "(mkdir build && cd build && cmake -DUSE_FOLLY_LITE=1 -DWITH_GFLAGS=1 .. && make V=1 -j20)"
|
|
- uses: "./.github/actions/post-steps"
|