-
Notifications
You must be signed in to change notification settings - Fork 6.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial CircleCI -> GitHub Actions migration (#12163)
Summary: * Largely based on #12085 but grouped into one large workflow because of bad GHA UI design (see comments). * Windows job details consolidated into an action file so that those jobs can easily move between per-pr-push and nightly. * Simplify some handling of "CIRCLECI" environment and add "GITHUB_ACTIONS" in the same places * For jobs that we want to go in pr-jobs or nightly there are disabled "candidate" workflows with draft versions of those jobs. * ARM jobs are disabled waiting on full GHA support. * build-linux-java-static needed some special attention to work, due to GLIBC compatibility issues (see comments). Pull Request resolved: #12163 Test Plan: Nightly jobs can be seen passing between these two links: https://github.com/facebook/rocksdb/actions/runs/7266835435/job/19799390061?pr=12163 https://github.com/facebook/rocksdb/actions/runs/7269697823/job/19807724471?pr=12163 And per-PR jobs of course passing on this PR. Reviewed By: hx235 Differential Revision: D52335810 Pulled By: pdillinger fbshipit-source-id: bbb95196f33eabad8cddf3c6b52f4413c80e034d
- Loading branch information
1 parent
ad0362a
commit 106058c
Showing
27 changed files
with
935 additions
and
117 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
name: build-folly | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Build folly and dependencies | ||
run: make build_folly | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
name: build-for-benchmarks | ||
runs: | ||
using: composite | ||
steps: | ||
- uses: "./.github/actions/pre-steps" | ||
- name: Linux build for benchmarks | ||
run: make V=1 J=8 -j8 release | ||
shell: bash |
10 changes: 10 additions & 0 deletions
10
.github/actions/increase-max-open-files-on-macos/action.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
name: increase-max-open-files-on-macos | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Increase max open files | ||
run: |- | ||
sudo sysctl -w kern.maxfiles=1048576 | ||
sudo sysctl -w kern.maxfilesperproc=1048576 | ||
sudo launchctl limit maxfiles 1048576 | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
name: install-gflags-on-macos | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Install gflags on macos | ||
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install gflags | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
name: install-gflags | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Install gflags | ||
run: sudo apt-get update -y && sudo apt-get install -y libgflags-dev | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
name: install-jdk8-on-macos | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Install JDK 8 on macos | ||
run: |- | ||
HOMEBREW_NO_AUTO_UPDATE=1 brew tap bell-sw/liberica | ||
HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask liberica-jdk8 | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
name: install-maven | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Install maven | ||
run: sudo apt-get update -y && sudo apt-get install -y maven | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
name: perform-benchmarks | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Test low-variance benchmarks | ||
run: "./tools/benchmark_ci.py --db_dir ${{ runner.temp }}/rocksdb-benchmark-datadir --output_dir ${{ runner.temp }}/benchmark-results --num_keys 20000000" | ||
env: | ||
LD_LIBRARY_PATH: "/usr/local/lib" | ||
DURATION_RO: 300 | ||
DURATION_RW: 500 | ||
NUM_THREADS: 1 | ||
MAX_BACKGROUND_JOBS: 4 | ||
CI_TESTS_ONLY: 'true' | ||
WRITE_BUFFER_SIZE_MB: 16 | ||
TARGET_FILE_SIZE_BASE_MB: 16 | ||
MAX_BYTES_FOR_LEVEL_BASE_MB: 64 | ||
COMPRESSION_TYPE: none | ||
CACHE_INDEX_AND_FILTER_BLOCKS: 1 | ||
MIN_LEVEL_TO_COMPRESS: 3 | ||
CACHE_SIZE_MB: 10240 | ||
MB_WRITE_PER_SEC: 2 | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
name: post-benchmarks | ||
runs: | ||
using: composite | ||
steps: | ||
- uses: actions/[email protected] | ||
with: | ||
path: "${{ runner.temp }}/benchmark-results" | ||
- name: Send benchmark report to visualisation | ||
run: |- | ||
set +e | ||
set +o pipefail | ||
./build_tools/benchmark_log_tool.py --tsvfile ${{ runner.temp }}/benchmark-results/report.tsv --esdocument https://search-rocksdb-bench-k2izhptfeap2hjfxteolsgsynm.us-west-2.es.amazonaws.com/bench_test3_rix/_doc | ||
true | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
name: post-pmd-steps | ||
runs: | ||
using: composite | ||
steps: | ||
- uses: actions/[email protected] | ||
with: | ||
path: "${{ github.workspace }}/java/target/pmd.xml" | ||
- uses: actions/[email protected] | ||
with: | ||
path: "${{ github.workspace }}/java/target/site" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
name: post-steps | ||
runs: | ||
using: composite | ||
steps: | ||
- uses: actions/[email protected] | ||
with: | ||
path: "${{ runner.temp }}/test-results" | ||
- uses: actions/[email protected] | ||
with: | ||
path: LOG | ||
- name: Compress Test Logs | ||
run: tar -cvzf t.tar.gz t | ||
if: ${{ failure() }} | ||
shell: bash | ||
- uses: actions/[email protected] | ||
with: | ||
path: t.tar.gz | ||
- run: |- | ||
mkdir -p ${{ runner.temp }}/core_dumps | ||
cp core.* ${{ runner.temp }}/core_dumps | ||
if: ${{ failure() }} | ||
shell: bash | ||
- uses: actions/[email protected] | ||
with: | ||
path: "${{ runner.temp }}/core_dumps" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
name: pre-steps-macos | ||
runs: | ||
using: composite | ||
steps: | ||
- uses: "./.github/actions/pre-steps" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
name: pre-steps | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup Environment Variables | ||
run: |- | ||
echo "GTEST_THROW_ON_FAILURE=0" >> "$GITHUB_ENV" | ||
echo "GTEST_OUTPUT=\"xml:${{ runner.temp }}/test-results/\"" >> "$GITHUB_ENV" | ||
echo "SKIP_FORMAT_BUCK_CHECKS=1" >> "$GITHUB_ENV" | ||
echo "GTEST_COLOR=1" >> "$GITHUB_ENV" | ||
echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV" | ||
echo "CTEST_TEST_TIMEOUT=300" >> "$GITHUB_ENV" | ||
echo "ZLIB_DOWNLOAD_BASE=https://rocksdb-deps.s3.us-west-2.amazonaws.com/pkgs/zlib" >> "$GITHUB_ENV" | ||
echo "BZIP2_DOWNLOAD_BASE=https://rocksdb-deps.s3.us-west-2.amazonaws.com/pkgs/bzip2" >> "$GITHUB_ENV" | ||
echo "SNAPPY_DOWNLOAD_BASE=https://rocksdb-deps.s3.us-west-2.amazonaws.com/pkgs/snappy" >> "$GITHUB_ENV" | ||
echo "LZ4_DOWNLOAD_BASE=https://rocksdb-deps.s3.us-west-2.amazonaws.com/pkgs/lz4" >> "$GITHUB_ENV" | ||
echo "ZSTD_DOWNLOAD_BASE=https://rocksdb-deps.s3.us-west-2.amazonaws.com/pkgs/zstd" >> "$GITHUB_ENV" | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
name: setup-folly | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Checkout folly sources | ||
run: make checkout_folly | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
name: build-folly | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Fix repo ownership | ||
# Needed in some cases, as safe.directory setting doesn't take effect | ||
# under env -i | ||
run: chown `whoami` . || true | ||
shell: bash | ||
- name: Set upstream | ||
run: git remote add upstream https://github.com/facebook/rocksdb.git | ||
shell: bash | ||
- name: Fetch upstream | ||
run: git fetch upstream | ||
shell: bash | ||
- name: Git status | ||
# NOTE: some old branch builds under check_format_compatible.sh invoke | ||
# git under env -i | ||
run: git status && git remote -v && env -i git branch | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
name: windows-build-steps | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Add msbuild to PATH | ||
uses: microsoft/[email protected] | ||
- name: Custom steps | ||
env: | ||
THIRDPARTY_HOME: ${{ github.workspace }}/thirdparty | ||
CMAKE_HOME: C:/Program Files/CMake | ||
CMAKE_BIN: C:/Program Files/CMake/bin/cmake.exe | ||
CTEST_BIN: C:/Program Files/CMake/bin/ctest.exe | ||
JAVA_HOME: C:/Program Files/BellSoft/LibericaJDK-8 | ||
SNAPPY_HOME: ${{ github.workspace }}/thirdparty/snappy-1.1.8 | ||
SNAPPY_INCLUDE: ${{ github.workspace }}/thirdparty/snappy-1.1.8;${{ github.workspace }}/thirdparty/snappy-1.1.8/build | ||
SNAPPY_LIB_DEBUG: ${{ github.workspace }}/thirdparty/snappy-1.1.8/build/Debug/snappy.lib | ||
run: |- | ||
echo ===================== Install Dependencies ===================== | ||
choco install liberica8jdk -y | ||
mkdir $Env:THIRDPARTY_HOME | ||
cd $Env:THIRDPARTY_HOME | ||
echo "Building Snappy dependency..." | ||
curl -Lo snappy-1.1.8.zip https://github.com/google/snappy/archive/refs/tags/1.1.8.zip | ||
unzip -q snappy-1.1.8.zip | ||
cd snappy-1.1.8 | ||
mkdir build | ||
cd build | ||
& cmake -G "$Env:CMAKE_GENERATOR" .. | ||
msbuild Snappy.sln -maxCpuCount -property:Configuration=Debug -property:Platform=x64 | ||
echo ======================== Build RocksDB ========================= | ||
cd ${{ github.workspace }} | ||
$env:Path = $env:JAVA_HOME + ";" + $env:Path | ||
mkdir build | ||
cd build | ||
& cmake -G "$Env:CMAKE_GENERATOR" -DCMAKE_BUILD_TYPE=Debug -DOPTDBG=1 -DPORTABLE="$Env:CMAKE_PORTABLE" -DSNAPPY=1 -DJNI=1 .. | ||
cd .. | ||
echo "Building with VS version: $Env:CMAKE_GENERATOR" | ||
msbuild build/rocksdb.sln -maxCpuCount -property:Configuration=Debug -property:Platform=x64 | ||
echo ========================= Test RocksDB ========================= | ||
build_tools\run_ci_db_test.ps1 -SuiteRun arena_test,db_basic_test,db_test,db_test2,db_merge_operand_test,bloom_test,c_test,coding_test,crc32c_test,dynamic_bloom_test,env_basic_test,env_test,hash_test,random_test -Concurrency 16 | ||
echo ======================== Test RocksJava ======================== | ||
cd build\java | ||
& ctest -C Debug -j 16 | ||
shell: pwsh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
name: facebook/rocksdb/benchmark-linux | ||
on: workflow_dispatch | ||
jobs: | ||
# FIXME: when this job is fixed, it should be given a cron schedule like | ||
# schedule: | ||
# - cron: 0 * * * * | ||
# workflow_dispatch: | ||
benchmark-linux: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: "./.github/actions/build-for-benchmarks" | ||
- uses: "./.github/actions/perform-benchmarks" | ||
- uses: "./.github/actions/post-benchmarks" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
name: facebook/rocksdb/nightly | ||
on: workflow_dispatch | ||
jobs: | ||
# These jobs would be in nightly but are failing or otherwise broken for | ||
# some reason. | ||
build-linux-arm-test-full: | ||
runs-on: | ||
labels: arm64large | ||
container: | ||
image: ubuntu-2004:202111-02 | ||
options: --shm-size=16gb | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: "./.github/actions/pre-steps" | ||
- uses: "./.github/actions/install-gflags" | ||
- run: make V=1 J=4 -j4 check | ||
- uses: "./.github/actions/post-steps" |
Oops, something went wrong.