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

chore(drive): reduce withdrawal limits [WIP] #2286

Open
wants to merge 17 commits into
base: v1.6-dev-ugly
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
55 changes: 55 additions & 0 deletions .github/actions/librocksdb/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
# This action builds and caches librocksdb. If we find that this solution consumes too much time, we can consider
# prebuilding librocksdb outside of the pipeline (eg. in the grovedb release process), publish as an artifact, and
# download it in the pipeline.
name: "librocksdb"
description: "Build and install librocksdb"
inputs:
version:
description: RocksDB version, eg. "8.10.2"
required: false
default: "8.10.2"
bucket:
description: S3 bucket to use for caching
required: false
default: multi-runner-cache-x1xibo9c
force:
description: Force rebuild
required: false
default: "false"

runs:
using: composite
steps:
# Cache librocksdb using s3 bucket
- name: Restore cached librocksdb from S3
id: librocksdb-cache
uses: strophy/actions-cache@opendal-update
with:
bucket: ${{ inputs.bucket }}
path: /opt/rocksdb
key: librocksdb/${{ inputs.version }}/${{ runner.os }}/${{ runner.arch }}

- if: ${{ steps.librocksdb-cache.outputs.cache-hit != 'true' || inputs.force == 'true' }}
shell: bash
name: Build librocksdb
run: |
set -ex
WORKDIR=/tmp/rocksdb-build
mkdir -p ${WORKDIR}/rocksdb
mkdir -p /opt/rocksdb/usr/local/lib/
pushd ${WORKDIR}/rocksdb

# building rocksdb
git clone https://github.com/facebook/rocksdb.git -b v${{ inputs.version }} --depth 1 .
make -j$(nproc) static_lib
make DESTDIR=/opt/rocksdb install-static
set +x

echo Done.
echo Configuration:
echo
echo "ROCKSDB_STATIC='/opt/rocksdb/usr/local/lib/librocksdb.a'"
echo "ROCKSDB_LIB_DIR='/opt/rocksdb/usr/local/lib'"

popd
23 changes: 23 additions & 0 deletions .github/workflows/cached.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Rebuild cached dependencies

on:
workflow_dispatch:
jobs:
build-rust-deps:
name: Prebuild and cache some Rust dependencies
runs-on: ubuntu-24.04
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Precompile librocksdb
uses: ./.github/actions/librocksdb
with:
force: true
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
build:
name: Deploy docs
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout main
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/manage-runs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
cancel-merged-or-closed-pr-runs:
name: Cancel runs for merged or closed PRs
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: octokit/[email protected]
id: get_active_workflows
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
jobs:
pr-title:
name: PR title
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- name: Validate conventional PR title
uses: amannn/action-semantic-pull-request@v5
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/prebuild-devcontainers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
- '.github/workflows/prebuild-devcontainers.yml'
- rust-toolchain.toml
- Dockerfile
branches:
- master
workflow_dispatch:

concurrency:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ jobs:
publish-manifest:
name: Publish image tags
needs: build-image
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Download digests
uses: actions/download-artifact@v3
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,11 +208,11 @@ jobs:
matrix:
include:
- package_type: tarballs
os: ubuntu-22.04
os: ubuntu-24.04
- package_type: win
os: ubuntu-22.04
os: ubuntu-24.04
- package_type: deb
os: ubuntu-22.04
os: ubuntu-24.04
- package_type: macos
os: macos-14
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests-codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
jobs:
codeql:
name: Run Code QL
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
actions: read
contents: read
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests-js-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:
jobs:
lint:
name: Linting
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
id-token: write
contents: read
Expand Down Expand Up @@ -51,7 +51,7 @@ jobs:

test:
name: Tests
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
id-token: write
contents: read
Expand Down
37 changes: 32 additions & 5 deletions .github/workflows/tests-rs-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
lint-runner:
description: Runner for linting. Must be JSON valid string.
type: string
default: '"ubuntu-22.04"'
default: '"ubuntu-24.04"'
check-each-feature:
description: If true, try to build each individual feature for this crate
type: boolean
Expand Down Expand Up @@ -42,6 +42,9 @@ jobs:
with:
components: clippy

- name: Install librocksdb
uses: ./.github/actions/librocksdb

- uses: clechasseur/rs-clippy-check@v3
with:
args: --package ${{ inputs.package }} --all-features --locked -- --no-deps
Expand All @@ -50,10 +53,12 @@ jobs:
SCCACHE_BUCKET: multi-runner-cache-x1xibo9c
SCCACHE_REGION: ${{ secrets.AWS_REGION }}
SCCACHE_S3_KEY_PREFIX: ${{ runner.os }}/sccache/${{ runner.arch }}/linux-gnu
ROCKSDB_STATIC: "/opt/rocksdb/usr/local/lib/librocksdb.a"
ROCKSDB_LIB_DIR: "/opt/rocksdb/usr/local/lib"

formatting:
name: Formatting
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- name: Check out repo
Expand All @@ -65,12 +70,19 @@ jobs:
components: rustfmt
cache: false

# This step doesn't need librocksdb, so we don't install it

- name: Check formatting
env:
RUSTC_WRAPPER: sccache
SCCACHE_BUCKET: multi-runner-cache-x1xibo9c
SCCACHE_REGION: ${{ secrets.AWS_REGION }}
SCCACHE_S3_KEY_PREFIX: ${{ runner.os }}/sccache/${{ runner.arch }}/linux-gnu
run: cargo fmt --check --package=${{ inputs.package }}

unused_deps:
name: Unused dependencies
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
id-token: write
contents: read
Expand All @@ -89,6 +101,9 @@ jobs:
- name: Setup Rust
uses: ./.github/actions/rust

- name: Install librocksdb
uses: ./.github/actions/librocksdb

- name: Get crate ${{ inputs.package }} info
id: crate_info
uses: ./.github/actions/crate_info
Expand All @@ -102,12 +117,14 @@ jobs:
SCCACHE_BUCKET: multi-runner-cache-x1xibo9c
SCCACHE_REGION: ${{ secrets.AWS_REGION }}
SCCACHE_S3_KEY_PREFIX: ${{ runner.os }}/sccache/${{ runner.arch }}/linux-gnu
ROCKSDB_STATIC: "/opt/rocksdb/usr/local/lib/librocksdb.a"
ROCKSDB_LIB_DIR: "/opt/rocksdb/usr/local/lib"
with:
args: ${{ steps.crate_info.outputs.cargo_manifest_dir }}

detect_structure_changes:
name: Detect immutable structure changes
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
# FIXME: as we use `gh pr view` below, this check can only
# run on pull requests. We should find a way to run it
# when manual triggers are used.
Expand Down Expand Up @@ -184,13 +201,18 @@ jobs:
- name: Setup Rust
uses: ./.github/actions/rust

- name: Install librocksdb
uses: ./.github/actions/librocksdb

- name: Run tests
run: cargo test --package=${{ inputs.package }} --all-features --locked
env:
RUSTC_WRAPPER: sccache
SCCACHE_BUCKET: multi-runner-cache-x1xibo9c
SCCACHE_REGION: ${{ secrets.AWS_REGION }}
SCCACHE_S3_KEY_PREFIX: ${{ runner.os }}/sccache/${{ runner.arch }}/linux-gnu
ROCKSDB_STATIC: "/opt/rocksdb/usr/local/lib/librocksdb.a"
ROCKSDB_LIB_DIR: "/opt/rocksdb/usr/local/lib"

check_each_feature:
name: Check each feature
Expand All @@ -199,7 +221,7 @@ jobs:
if: ${{ inputs.check-each-feature }}
steps:
- name: Check out repo
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Configure AWS credentials and bucket region
uses: aws-actions/configure-aws-credentials@v4
Expand All @@ -211,6 +233,9 @@ jobs:
- name: Setup Rust
uses: ./.github/actions/rust

- name: Install librocksdb
uses: ./.github/actions/librocksdb

- name: Get crate ${{ runner.arch }} info
id: crate_info
uses: ./.github/actions/crate_info
Expand All @@ -223,6 +248,8 @@ jobs:
SCCACHE_BUCKET: multi-runner-cache-x1xibo9c
SCCACHE_REGION: ${{ secrets.AWS_REGION }}
SCCACHE_S3_KEY_PREFIX: ${{ runner.os }}/sccache/${{ runner.arch }}/linux-gnu
ROCKSDB_STATIC: "/opt/rocksdb/usr/local/lib/librocksdb.a"
ROCKSDB_LIB_DIR: "/opt/rocksdb/usr/local/lib"
run: |
echo Verify all features disabled
set -ex
Expand Down
Loading