Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update HISTORY.md #316

Closed
wants to merge 182 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
50a63bc
Update HISTORY.md
riversand963 Sep 19, 2022
5038691
Fix memtable-only iterator regression (#10705)
cbi42 Sep 21, 2022
9b1817d
Fix potential memory leak in ArenaWrappedDBIter::Refresh() (#10716)
cbi42 Sep 21, 2022
d034981
Fix sqe->addr passed in cancel request in io_uring (#10644)
akankshamahajan15 Sep 21, 2022
8a0c1e7
Mention in HISTORY.md the fix in #10705 (#10720)
cbi42 Sep 21, 2022
13f9b57
Fix DBImpl::GetLatestSequenceForKey() for Merge (#10724)
riversand963 Sep 24, 2022
73782b2
Fix segfault in Iterator::Refresh() (#10739)
cbi42 Sep 27, 2022
7b491e4
Update HISTORY.md and version.h for 7.7.1
cbi42 Sep 27, 2022
3c3112d
Cleanup SuperVersion in Iterator::Refresh() (#10770)
cbi42 Oct 5, 2022
01cd296
Ignore kBottommostFiles compaction logic when allow_ingest_behind (#1…
cbi42 Oct 5, 2022
3acb421
Sanitize min_write_buffer_number_to_merge to 1 with atomic_flush (#10…
riversand963 Oct 5, 2022
59495ff
Update HISTORY and bump version to 7.7.2
riversand963 Oct 5, 2022
6296ac6
Fix bug in HyperClockCache ApplyToEntries; cleanup (#10768)
pdillinger Oct 6, 2022
eb9a80f
Update HISTORY and version.h for 7.7.3
pdillinger Oct 11, 2022
7e4c534
Init
rtpro May 24, 2022
c7e17a2
SPDB-126: status: don't include private headers from public headers
isaac-io Jun 15, 2021
1e7d495
build: fix clang diagnostics
isaac-io Jun 20, 2021
d7ddc9b
tests: add initialisation in gtest in order to resolve a GCC diagnostic
isaac-io May 19, 2021
1c72bf7
tests: resolve GCC diagnostics
isaac-io May 20, 2021
707cb4b
build: compilation fixes
Yuval-Ariel May 17, 2022
7b7c088
SPDB-165: build: fix building on CentOS 7 with old versions of gflags…
isaac-io Jul 6, 2021
b801cfe
SPDB-556: build: fix clang 12 compilation errors
isaac-io Mar 9, 2022
daaffd6
SPDB-553: build: support sccache in the CMake config
isaac-io Mar 8, 2022
56134ce
SPDB-181: tests: add missing `override` specifier in gtest to fix a c…
isaac-io Jul 8, 2021
f7b7e1a
SPDB-87: build: fix clang compilation errors
isaac-io Apr 14, 2021
284f164
#15: fault_injection_fs: avoid division by zero in DropRandomUnsynced…
Yuval-Ariel Jun 23, 2022
09157e4
customizable_test: fix breakage caused by SPDB-556 (#27)
isaac-io Jun 23, 2022
e917872
SPDB-209: crash_test: bail if the run failed before the driver killed it
isaac-io Aug 22, 2021
9c831ca
SPDB-225: crash_test: backup last two db states
Yuval-Ariel Jun 14, 2022
f42bc0b
SPDB-229: crash_test: add timestamp and PID to command execution output
isaac-io Oct 6, 2021
54f06e9
SPDB-231: crash_test: clean left-over copies of the database on success
isaac-io Oct 6, 2021
0efaf2a
SPDB-235: crash_test: remove redundant command execution print
isaac-io Oct 6, 2021
b2d6786
SPDB-266: crash_test: fix parsing of boolean arguments
isaac-io Oct 13, 2021
bb89735
SPDB-331: db_stress: fix compare_full_db_state_snapshot with batched …
Yuval-Ariel Jun 27, 2022
4e3f1ca
SPDB-331: crash_test: don't toggle test_batches_snapshots
Yuval-Ariel Jun 23, 2022
66e52b0
SPDB-241: crash_test: add narrow crash test
Yuval-Ariel Jun 23, 2022
2442cdc
SPDB-284: crash_test: increase stress test coverage
Yuval-Ariel Jun 14, 2022
781a88b
SPDB-495: crash_test: disable test_batches_snapshots when cf_consiste…
Yuval-Ariel Jun 14, 2022
7a6441e
SPDB-469: db_stress: add data_block_index_type
Yuval-Ariel Jan 20, 2022
469665b
stress_test: fix test_cf_consistency msg and ..
Yuval-Ariel Jun 27, 2022
1a9490d
git: add clangd cache to .gitignore
isaac-io Apr 6, 2021
8b36673
column_family: make the comparison of the SuperVersion pointer explicit
Yuval-Ariel Jun 6, 2022
50f3e26
Rename rocksdb threads to speedb
speedbmike Jan 31, 2021
b4857b1
log: change log header to SpeeDB
Yuval-Ariel May 17, 2022
da3e7b0
SPDB-467: Report the metadata_cache_options table options to the trace
udi-speedb Jan 17, 2022
dc180a6
SPDB-538: Support configuration of metadata-cache-options in db_bench
udi-speedb Feb 28, 2022
bfe8152
SPDB-632: Print write_buffer_manager size to LOG
Yuval-Ariel Apr 17, 2022
09af7f3
SPDB-347: Add a version number to our builds
isaac-io Nov 25, 2022
6361dfd
SPDB-382: Exclude third party code from the checks
Yuval-Ariel Jul 3, 2022
da63840
SPDB-270: db_bench: add SeekRandomWriteRandom test
Yuval-Ariel Jul 12, 2022
c1aea6f
README: Update to contain a quick start guide for speedb
Nov 23, 2022
62ff2f1
customizable_test: revert the offsetof() build-related fixes (#55)
isaac-io Jul 14, 2022
6e10924
SPDB-180: general: avoid comparing Status using == as it only compare…
isaac-io Jul 8, 2021
33de8af
SPDB-180: tests: avoid comparing Status using == as it only compares …
isaac-io Jul 13, 2022
4d4f9ef
SPDB-156: db_test: add test for - forward the incomplete status on no_io
Yuval-Ariel May 17, 2022
49350fb
SPDB-341: optimistic_transaction_example: fix snapshots leak
isaac-io Nov 16, 2021
96c2dca
SPDB-96: ldb: fix get to print the entire value
isaac-io Apr 27, 2021
326005c
SPDB-534: db_bench: fix rocksdb bug of last_ref assertion
Yuval-Ariel Feb 23, 2022
92e8736
SPDB 521: db_bench: fix SeekRandom and ReadRandomWriteRandom
Yuval-Ariel Jun 20, 2022
4a70aa7
mutable_db_options: fix a Clang 14 build error (#57)
isaac-io Jul 14, 2022
4d6e346
db_bench: reset the last operation time where rate limiting is applied
hilikspdb Jul 10, 2022
d7362f8
Add ability to create MemTableFactory from URI/string to tools
mrambacher Jul 27, 2022
0e4658e
cmake: use the old plugin infra and add support for *_FUNC registrati…
isaac-io Jul 27, 2022
849fb7e
spdb memtable: add a new hash-based memtable
ayulas Aug 4, 2021
bdc04c2
build: always add the Speedb plugin to the build (#87)
isaac-io Jul 31, 2022
d41ef3a
crash_test: add the new memtable as a random choice (#89)
isaac-io Jul 31, 2022
783b0b6
spdb_memtable: fix an unused parameter issue (#91)
isaac-io Jul 31, 2022
88d1e94
crash_test: fix incorrect passing of the memtablerep argument (#93)
isaac-io Aug 1, 2022
35c5e62
crash_test: remove the hash-based memtable from crash test (#98)
isaac-io Aug 1, 2022
477d9c8
CI: initial setup
Nov 23, 2022
e35995f
Update issue templates
rtpro Nov 23, 2022
9de11a8
Devops ci/add build tools (#104)
nathan-bo Aug 3, 2022
8924080
ci: add a /var/tmp volume to the QA tests to fix tests failing (#107)
isaac-io Aug 3, 2022
ca0ca78
new release line network hotfix (#109)
nathan-bo Aug 4, 2022
e916378
release: publish version 2.0.0
isaac-io Aug 4, 2022
1c9a9e1
Create README.md
rtpro Aug 3, 2022
8537dcc
Update README.md
rtpro Aug 9, 2022
234ac3d
#53: Update contributing guide (#59)
isaac-io Aug 16, 2022
badefe6
Update README.md
rtpro Aug 17, 2022
8ffe798
Update CODE_OF_CONDUCT.md
rtpro Aug 18, 2022
2b8346a
build: fix the java test target dependencies (#128)
isaac-io Aug 19, 2022
c4c978a
flush_job: do not roll back memtable flush on CF drop and DB shutdown…
isaac-io Aug 18, 2022
0c30bd7
Update test_fuzz.yml
nathan-bo Aug 22, 2022
96287ff
bloom_test: fix compilation error with GCC 12 (#136)
isaac-io Aug 24, 2022
a13fd1f
build: clean up the Makefile a bit (#118)
isaac-io Aug 9, 2022
add4101
build: allow setting the path to GNU Parallel in the Makefile (#118)
isaac-io Aug 10, 2022
06497e2
licence: remove the GPL as an alternative licence (#118)
isaac-io Aug 9, 2022
c1f151a
docs: update license files to comply with Apache 2.0 (#111)
rtpro Aug 25, 2022
c0d9d0b
Adding logo to readme (#135)
rtpro Aug 30, 2022
48be17d
ci: move fuzz testing to reusable workflow (#133)
nathan-bo Sep 5, 2022
c13de62
plugins: add Plugin Tests to builds (#123)
mrambacher Sep 13, 2022
01128bf
makefile: avoid setting TEST_TMPDIR unnecessarily (#140)
isaac-io Aug 25, 2022
681938d
build: replace usages of egrep with grep -E (#166)
isaac-io Sep 16, 2022
5d2c7ea
crash_test: clean up DB copies in whitebox and narrow test (#159)
isaac-io Sep 19, 2022
229fa84
#34: set purges as Pri::Low
Yuval-Ariel Jun 28, 2022
c5c7e56
db: Fixes for db_test2 and deletefile_test
AmnonHanuhov Sep 6, 2022
324514e
Accurate memory tracking of immutable memory (#132)
udi-speedb Aug 17, 2022
36627aa
Update logo dark mode
rtpro Nov 23, 2022
380dfac
db_bench: allow setting avoid_unnecessary_blocking_io (#183)
isaac-io Sep 29, 2022
76049b5
makefile: fix shell tab-completions (#147)
isaac-io Aug 30, 2022
6c14e1d
makefile: fix parallel `make check` failing on the first run (#177)
isaac-io Sep 23, 2022
17b0e81
fix a typo
jsteemann Sep 30, 2022
c000d6c
docs: fix a broken link in the contributing guide (#153)
dinga-dinga Oct 3, 2022
8f7ea10
docs: update HISTORY.md (#189)
bosmatt Oct 3, 2022
0011841
CI: run stress tests for 1hr instead of 500secs
Yuval-Ariel Oct 3, 2022
f162f8a
cmake: allow running the tests in parallel like in the Makefile (#102)
isaac-io Aug 2, 2022
2dbc6bb
makefile: rework the dependency graph for faster test runs startup (#…
isaac-io Aug 22, 2022
9ae2752
tools: Make FilterPolicy settable via URI/CreateFromString (#71)
mrambacher Jul 28, 2022
d1540fe
options: fix documentation from #34 purges set to LOW
Yuval-Ariel Oct 20, 2022
05055a6
options: change the default value for compaction threads to 8 (#169)
isaac-io Oct 19, 2022
f9c553c
Speedb's Paired Block Bloom (#29)
udi-speedb Jul 11, 2022
b78a738
tests: fix breakage caused by the compaction threads value change (#197)
isaac-io Oct 23, 2022
72799b2
paired_filter: fix copyright and licence headers (#199) (#204)
isaac-io Oct 24, 2022
77d8bea
build: clean up the build configuration to allow rebranding (#64)
isaac-io Aug 25, 2022
b0a6256
build: rename artefacts from RocksDB to Speedb (#64)
isaac-io Jul 25, 2022
3715f3d
scripts: rename RocksDB references to Speedb (#64)
isaac-io Nov 24, 2022
a9e9f3d
general: replace RocksDB references in strings with Speedb (#64)
isaac-io Jul 25, 2022
b293388
tools: replace RocksDB version information with the Speedb version (#64)
isaac-io Jul 25, 2022
bc766ae
build: update zlib to 1.2.13 (#206)
isaac-io Nov 24, 2022
2ea92d9
Added questions section to the README file
bosmatt Oct 26, 2022
894e51a
ci: fix the release pipeline
isaac-io Oct 26, 2022
b9f0f18
release: publish version 2.1.0
Oct 26, 2022
5f08895
cmake: clean up on successful runs and randomise test scheduling (#202)
isaac-io Oct 24, 2022
d0dbefe
build: add a version build-tag for non-release builds (#156)
isaac-io Nov 25, 2022
fe0d0ea
build: support ccache and sccache in the Makefile build (#170)
isaac-io Sep 21, 2022
461e6f6
crashtest: fix 0 value of data_block_hash_table_util_ratio (#214)
Yuval-Ariel Nov 6, 2022
78ad8e7
memtable_list: avoid rolling back memtable flush on CF drop (#144)
isaac-io Aug 30, 2022
9138814
deletefile_test: fix breakage caused by the compaction threads change…
isaac-io Nov 7, 2022
567c8d5
docs: Update README.md (#212)
Yuval-Ariel Nov 25, 2022
c8b0dba
docs: readme typo fix (#223)
azmisaquib Nov 9, 2022
cf2fbe3
docs: fix instructions for building Speedb in README.md and INSTALL.md
isaac-io Nov 10, 2022
2f2e344
ci: build a release without a debug tag (#228)
isaac-io Nov 10, 2022
b482ff7
build: correctly handle merge commits when calculating a build tag (#…
isaac-io Nov 9, 2022
b14e9df
db_test2: fix BackgroundPurgeTest (#236)
Yuval-Ariel Nov 11, 2022
f29c535
docs: Update HISTORY.md README.md (#239)
bosmatt Nov 25, 2022
6c4895c
db_bench: Fix a bug when destructing a Benchmark with multiple db-s (…
udi-speedb Nov 10, 2022
8a85b53
hash spd memtable (#98)
ayulas Nov 14, 2022
eadf04b
db_bench: add benchmark - seektodeletedranges (#200)
Yuval-Ariel Nov 14, 2022
cf0fceb
db_bench: Make -statistics_string behave as -statistics (#248)
udi-speedb Nov 17, 2022
a936fdb
docs: Add db_bench README
bosmatt Nov 27, 2022
6d3349b
QA tool to check artifacts (#120)
RoyBenMoshe Nov 20, 2022
9190699
ci: added db_bench_README.txt to db_bench-speedb-V.tar.gz (#253)
maxb-io Nov 25, 2022
24f28fa
cmake: Fix build for rebase 7.7.3 (#264)
Yuval-Ariel Nov 25, 2022
a9ecde4
java makefile: fix dependencies
Yuval-Ariel Nov 25, 2022
67825ec
Fix check sources to ignore GIF files
mrambacher Nov 15, 2022
eb8b39d
rebase 7.7: Fix merge issues
mrambacher Nov 25, 2022
8c8b740
rebase 7.7: fix merge issues
Yuval-Ariel Nov 26, 2022
f3f5521
db_bench: Enhancement - Support multiple benchmarks groups, each with…
udi-speedb Nov 27, 2022
3427275
db_bench: Support control over WBM's allow_stall ctor parameter (#187)
udi-speedb Nov 24, 2022
abf2272
db_bench: Enhancement - Allow specifying the db-s to use in each group
udi-speedb Nov 27, 2022
810110f
db_bench: fix compiler warnings (#263)
Yuval-Ariel Nov 28, 2022
1dc9082
db_bench: ErrorExit from static func compiler error (#277)
Yuval-Ariel Nov 28, 2022
c528ec8
build: Add gtest-parallel to project
AmnonHanuhov Nov 22, 2022
553c63b
Update README.md (#280)
bosmatt Dec 5, 2022
badbbc6
Update README.md (#291)
bosmatt Dec 7, 2022
934b849
db_stress: Support control over WBM's allow_stall (#287)
udi-speedb Dec 7, 2022
ed71d66
db_bench: Support '--groups' in addition to '-groups' (#283)
udi-speedb Dec 14, 2022
a8226e7
unit tests: disable CompactionServiceTest.RemoteEventListener (#300)
Yuval-Ariel Dec 18, 2022
14177a2
generic switch memtable allows the ability to pre create memtable tha…
ayulas Dec 14, 2022
51efd6d
Smaller batch size in the paired bloom filter (#161)
udi-speedb Dec 14, 2022
0ceb2d6
misc: add build properties info to LOG file (#262)
RoyBenMoshe Dec 18, 2022
f1846de
Dynamic Delay: new feature - Dynamic Delay (#276)
Yuval-Ariel Dec 19, 2022
e097334
Proactive Flushes (#155)
udi-speedb Sep 29, 2022
b5ae932
unit tests: disable LoadCustomizableTest.LoadMemTableRepFactoryTest (…
ayulas Dec 21, 2022
bed23e3
Proactive Flushes: compilation warnings fix (#304)
Yuval-Ariel Dec 21, 2022
7d6ad9d
release: publish version 2.2.0
Dec 21, 2022
f34368c
Update artifact-release.yml
maxb-io Dec 21, 2022
14a511c
Update artifact-release.yml
maxb-io Dec 21, 2022
be12d4d
Update artifact-release.yml
maxb-io Dec 21, 2022
3cccb33
release: publish version 2.3.0
Dec 21, 2022
16b67f4
Update version.h
maxb-io Dec 21, 2022
520d978
Update version.h
maxb-io Dec 21, 2022
c8e7bfb
release: publish version 2.3.0
Dec 21, 2022
12f8bc7
Update version.h
maxb-io Dec 21, 2022
a846525
release: publish version 2.3.0
Dec 21, 2022
91c7b6c
Update version.h
maxb-io Dec 21, 2022
a2c3d50
release: publish version 2.2.0
Dec 22, 2022
2f46760
Delayed Writes: fix L0 calc bug (#310)
Yuval-Ariel Dec 25, 2022
9ae26fb
Print WBM's cache info to log (#312)
udi-speedb Dec 25, 2022
040de0b
Update HISTORY.md
bosmatt Dec 26, 2022
21bb631
Update HISTORY.md
bosmatt Jan 19, 2023
1a73994
Update HISTORY.md
bosmatt Jan 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1.
2.
3.
4.

**Expected behavior**
A clear and concise description of what you expected to happen.

**System (please complete the following information):**
- OS: [e.g. RHEL8.6]
- Hardware [e.g. Intel Xeon Ice Lake, 64GB, NVMe]

**Additional context**
Add any other context about the problem here.
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

Owner:

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
Binary file added .github/new-bee-mascot-dark.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/new-bee-mascot.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/speedb-b.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/speedb-logo-dark.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/speedb-logo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
113 changes: 113 additions & 0 deletions .github/workflows/artifact-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Create release artifacts

on:
push:
tags:
- 'speedb/v*'

permissions:
contents: write # Needed for release assets upload
id-token: write # Needed for AWS credentials setting

jobs:
build:
runs-on: [self-hosted, ubuntu, asrunner]

container:
image: centos:7.9.2009

steps:
- name: pre
run: |
yum install -y centos-release-scl epel-release
yum install -y make devtoolset-11-gcc-c++ \
coreutils wget unzip which git python3 openssl openssl-devel \
libzstd-devel lz4-devel snappy-devel zlib-devel \
java-1.8.0-openjdk-devel
echo "PATH=/opt/rh/devtoolset-11/root/usr/bin:${PATH}" >> $GITHUB_ENV
echo "RELEASE_VERSION=${GITHUB_REF_NAME#speedb/v}" >> $GITHUB_ENV

- name: Install CMake
run: |
CMAKE_RELEASE=3.20.1
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_RELEASE}/cmake-${CMAKE_RELEASE}.tar.gz
tar xf cmake-${CMAKE_RELEASE}.tar.gz
cd cmake-${CMAKE_RELEASE}
./bootstrap
make -j$(nproc) && make install
cd .. && rm -rf cmake-${CMAKE_RELEASE}*

- name: Install awscli
run: |
wget "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -O "awscliv2.zip"
unzip awscliv2.zip
./aws/install
rm -rf aws awscliv2.zip

- uses: actions/checkout@v3

- run: mkdir "$GITHUB_WORKSPACE/out"

- name: Build and package release libraries
run: |
rm -rf build && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DSPDB_RELEASE_BUILD=1 -DPORTABLE=1 -DWITH_GFLAGS=0 -DWITH_SNAPPY=1 -DWITH_LZ4=1 -DWITH_ZLIB=1 -DWITH_ZSTD=1
mkdir -p "$GITHUB_WORKSPACE/out/root"
DESTDIR="$GITHUB_WORKSPACE/out/root" make -j$(nproc) install
( cd "$GITHUB_WORKSPACE/out/root" && tar czf ../speedb-${RELEASE_VERSION}.tar.gz . )
rm -rf "$GITHUB_WORKSPACE/out/root"
cd .. && rm -rf build

- name: Build release Jar
run: |
make clean
SPDB_RELEASE_BUILD=1 LIB_MODE=static DEBUG_LEVEL=0 PORTABLE=1 JAVA_HOME=/usr/lib/jvm/java-openjdk make -j$(nproc) rocksdbjavastatic
cp "java/target/speedbjni-${RELEASE_VERSION}-linux64.jar" "$GITHUB_WORKSPACE/out"

- name: Build db_bench
run: |
yum install -y gflags-devel
rm -rf build && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DSPDB_RELEASE_BUILD=1 -DPORTABLE=1 -DWITH_GFLAGS=1 \
-DWITH_SNAPPY=1 -DWITH_LZ4=1 -DWITH_ZLIB=1 -DWITH_ZSTD=1 \
-DWITH_BENCHMARK_TOOLS=1 -DROCKSDB_BUILD_SHARED=1
make -j$(nproc) db_bench
cp ../docs/db_bench_README.txt .
tar czf "$GITHUB_WORKSPACE/out/db_bench-speedb-${RELEASE_VERSION}.tar.gz" db_bench db_bench_README.txt
cd .. && rm -rf build

- name: Generate checksums
run: |
for f in $GITHUB_WORKSPACE/out/*; do
sha256sum "$f" > "$f.sha256"
done

- name: Get release date
run: |
echo "RELEASE_DATE=$(git for-each-ref "--format=%(creatordate:short)" "refs/tags/${GITHUB_REF_NAME}")" >> $GITHUB_ENV

- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
generate_release_notes: false
name: Speedb ${{ env.RELEASE_VERSION }} (${{ env.RELEASE_DATE }})
files: |
out/db_bench-speedb-${{ env.RELEASE_VERSION }}.tar.gz
out/db_bench-speedb-${{ env.RELEASE_VERSION }}.tar.gz.sha256
out/speedb-${{ env.RELEASE_VERSION }}.tar.gz
out/speedb-${{ env.RELEASE_VERSION }}.tar.gz.sha256
out/speedbjni-${{ env.RELEASE_VERSION }}-linux64.jar
out/speedbjni-${{ env.RELEASE_VERSION }}-linux64.jar.sha256

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-2

- name: Upload artifacts to S3
run: |
aws s3 cp "$GITHUB_WORKSPACE/out" "s3://spdb-github-artifacts/release-${RELEASE_VERSION}" --recursive
rm -rf "$GITHUB_WORKSPACE/out"
110 changes: 110 additions & 0 deletions .github/workflows/ci_pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: CI

on:
#push:
workflow_dispatch:
workflow_call:
pull_request_review:
types: [submitted]


permissions: write-all

jobs:
#Sanity:
#uses: speedb-io/speedb/.github/workflows/sanity_check.yml@main

Build:
#needs: [Sanity]
if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }}
runs-on: [self-hosted, ubuntu, asrunner]
strategy:
matrix:
include:
- name: verify build
command: cmake .. -GNinja
- name: optimized build
command: cmake .. -DCMAKE_BUILD_TYPE=Release -GNinja
- mame: clang build
command: CC=clang CXX=clang++ cmake .. -GNinja
container:
image: alpine:3.14

steps:
- name: Pre-build
run: |
env
rm -rf /usr/share/dotnet || echo ""
df -h
apk add git
echo "nameserver 8.8.8.8" > /etc/resolv.conf
apk add bash python3 py3-pip clang clang-extra-tools shellcheck gcc g++ cmake ninja ccache \
openjdk10 gflags-dev snappy-dev lz4-dev bzip2-dev zstd-dev zlib-dev linux-headers openssh-client tar
python3 -m pip install lint-diffs flake8


- name: Checkout
uses: actions/checkout@v3


- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")


- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: ${{runner.os}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: |
${{runner.os}}-ccache-


- name: ${{ matrix.name }}
run: |
if [ -d "$GITHUB_WORKSPACE/build" ]; then
echo >&2 "error: the build directory should not exist" && false NIK
fi
if [ -d "~/.ccache" ]; then
echo "Already exists"
else
mkdir -p ~/.ccache
ls ~ | grep cache || echo ""
touch ~/.ccache/ccache.txt
echo "aaa" > ~/.ccache/ccache.txt
ls ~/.ccache
cat ~/.ccache/ccache.txt
fi
mkdir -p "$GITHUB_WORKSPACE/build"
cd "$GITHUB_WORKSPACE/build"
export "CCACHE_BASEDIR=$HOME"
export "CCACHE_DIR=$HOME/.ccache"
export "CCACHE_COMPILERCHECK=content"
${{ matrix.command }} -DPORTABLE=1 -DWITH_GFLAGS=1 \
-DWITH_ZLIB=1 -DWITH_SNAPPY=1 -DWITH_BZ2=1 -DWITH_LZ4=1 -DWITH_ZSTD=1 \
-DWITH_JNI=1 -DJAVA_HOME=/usr/lib/jvm/default-jvm \
-DWITH_BENCHMARK_TOOLS=1 -DWITH_CORE_TOOLS=1 -DWITH_TOOLS=1 \
-DWITH_TESTS=1 -DWITH_ALL_TESTS=1 -DWITH_EXAMPLES=1
ninja

#Performance:
#if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }}
#needs: [Build]
#uses: speedb-io/speedb/.github/workflows/perf-test.yml@main

QA-Tests:
if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }}
needs: [Build]
uses: speedb-io/speedb/.github/workflows/qa-tests.yml@main

Fuzz:
if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }}
needs: [Build]
uses: ./.github/workflows/test_fuzz.yml
secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
106 changes: 106 additions & 0 deletions .github/workflows/new_release_line.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: New Release Line

on:
workflow_dispatch:
inputs:
new_branch_major:
description: "Next release Major version (LEAVE EMPTY FOR AUTO-INCREMENT)"
required: false
new_branch_minor:
description: "Next release Minor version (LEAVE EMPTY FOR AUTO-INCREMENT)"
required: false
branches:
- main
- 'release/*'

permissions:
contents: read

jobs:
tag_version:
runs-on: [self-hosted, ubuntu, asrunner]
container:
image: alpine:3.14

env:
VERSION_FILE: speedb/version.h

steps:
- name: pre
run: |
echo "nameserver 8.8.8.8" > /etc/resolv.conf
apk add git openssh-client

- name: Verify chosen version
run: |
if ! echo "${{ inputs.new_branch_major }}" | grep -q "^[0-9]*$"; then
echo >&2 "error: major version must be a positive number" && false
fi
if ! echo "${{ inputs.new_branch_minor }}" | grep -q "^[0-9]*$"; then
echo >&2 "error: minor version must be a positive number" && false
fi

if [ "${{ inputs.new_branch_major }}${{ inputs.new_branch_minor }}" != "" ] && [ "$GITHUB_REF" != "refs/heads/main" ]; then
echo >&2 "error: cannot cut a major or a minor release from a branch that isn't main" && false
elif [ "$GITHUB_REF" != "refs/heads/main" ] && ! echo "$GITHUB_REF" | grep -q "^refs/heads/release/"; then
echo "error: cannot cut a patch release from a non-release branch" && false
fi

- uses: actions/checkout@v3
with:
ssh-key: ${{ secrets.RELEASE_SSH_KEY }}

- name: Calculate new version
run: |
major=$(grep '_MAJOR\s\+[0-9]\+' "$VERSION_FILE" | sed 's/[^0-9]\+//')
minor=$(grep '_MINOR\s\+[0-9]\+' "$VERSION_FILE" | sed 's/[^0-9]\+//')

if [ -n "${{ inputs.new_branch_major }}" ] && [ "${{ inputs.new_branch_major }}" -lt "$major" ]; then
echo >&2 "error: the chosen major version is lower than current one" && false
elif [ -n "${{ inputs.new_branch_major }}" ] && [ "${{ inputs.new_branch_major }}" -gt "$major" ]; then
major=${{ inputs.new_branch_major }}
if [ -n "${{ inputs.new_branch_minor }}" ] && [ "${{ inputs.new_branch_minor }}" -ne 0 ]; then
echo >&2 "error: cannot bump minor version when bumping major version" && false
fi
minor=0
patch=0
elif [ -n "${{ inputs.new_branch_minor }}" ] && [ "${{ inputs.new_branch_minor }}" -lt "$minor" ]; then
echo >&2 "error: the chosen minor version is lower than current one" && false
elif [ -n "${{ inputs.new_branch_minor }}" ] && [ "${{ inputs.new_branch_minor }}" -gt "$minor" ]; then
minor=${{ inputs.new_branch_minor }}
patch=0
elif [ "$GITHUB_REF" = "refs/heads/main" ]; then
minor=$(( $minor + 1 ))
patch=0
else
patch=$(( $(grep '_PATCH\s\+[0-9]\+' "$VERSION_FILE" | sed 's/[^0-9]\+//') + 1 ))
fi

echo "major=$major" >> $GITHUB_ENV
echo "minor=$minor" >> $GITHUB_ENV
echo "patch=$patch" >> $GITHUB_ENV

- name: Update version.h
run: |
git config user.name "GitHub Runner Bot"
git config user.email "<>"

sed -i -e "s/\(#define [^\s]\+_MAJOR\s\+\)[0-9]\+/\1${major}/" "$VERSION_FILE"
sed -i -e "s/\(#define [^\s]\+_MINOR\s\+\)[0-9]\+/\1${minor}/" "$VERSION_FILE"
sed -i -e "s/\(#define [^\s]\+_PATCH\s\+\)[0-9]\+/\1${patch}/" "$VERSION_FILE"

git add "$VERSION_FILE"
git commit -m "release: publish version ${major}.${minor}.${patch}"
git push origin ${GITHUB_REF#refs/heads/}

- name: Tag and release
run: |
# Create a branch if it's a major or a minor release
if [ "$patch" -eq 0 ]; then
git checkout -b "release/${major}.${minor}"
git push -u origin "release/${major}.${minor}"
fi

# Create a tag for the release
git tag "speedb/v${major}.${minor}.${patch}"
git push origin "speedb/v${major}.${minor}.${patch}"
Loading