fix(cubestore): Missing filter in the middle of an index prunes unnecessary partitions #6611
Workflow file for this run
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
name: Rust | |
on: | |
push: | |
paths: | |
- '.github/workflows/rust-cubestore.yml' | |
- 'rust/cubestore/**' | |
branches-ignore: | |
- master | |
pull_request: | |
paths: | |
- '.github/workflows/rust-cubestore.yml' | |
- 'rust/cubestore/**' | |
jobs: | |
debian: | |
name: Debian Rust ${{ matrix.rust }} | |
# 22.04 has gcc 11, new binutils (ld) | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 90 | |
strategy: | |
fail-fast: false | |
matrix: | |
rust: [nightly-2022-06-22] | |
env: | |
RUST: ${{ matrix.rust }} | |
steps: | |
- name: Maximize build space (disk space limitations) | |
run: | | |
echo "Before" | |
df -h | |
sudo apt-get remove -y 'php.*' | |
sudo apt-get remove -y '^mongodb-.*' | |
sudo apt-get remove -y '^mysql-.*' | |
sudo apt-get autoremove -y | |
sudo apt-get clean | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /usr/local/lib/android | |
sudo rm -rf /opt/ghc | |
sudo rm -rf /opt/hostedtoolcache/CodeQL | |
echo "After" | |
df -h | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
components: rustfmt | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: ./rust/cubestore -> target | |
# We should use a separate key for testing to pass disk space limitations | |
shared-key: cubestore-testing | |
key: ubuntu-22.04 | |
- name: Run cargo fmt cubestore | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --manifest-path rust/cubestore/cubestore/Cargo.toml -- --check | |
- name: Run cargo fmt cubehll | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --manifest-path rust/cubestore/cubehll/Cargo.toml -- --check | |
- name: Run cargo build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --manifest-path rust/cubestore/Cargo.toml -j 4 | |
- name: Run cargo test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --manifest-path rust/cubestore/Cargo.toml -j 1 | |
docker-image-latest: | |
name: Build only :latest image | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-20.04 | |
target: x86_64-unknown-linux-gnu | |
platforms: linux/amd64 | |
build-args: WITH_AVX2=1 | |
- os: self-hosted | |
target: aarch64-unknown-linux-gnu | |
platforms: linux/arm64 | |
build-args: WITH_AVX2=0 | |
timeout-minutes: 60 | |
if: github.ref != 'refs/heads/master' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
version: v0.9.1 | |
- name: Cache Docker layers | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-${{ matrix.target }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.target }}-buildx- | |
- name: Build only | |
uses: docker/build-push-action@v3 | |
with: | |
context: ./rust/cubestore/ | |
file: ./rust/cubestore/Dockerfile | |
platforms: ${{ matrix.platforms }} | |
build-args: ${{ matrix.build-args }} | |
push: false | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache | |
cross: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 90 | |
env: | |
RUSTFLAGS: '-Ctarget-feature=+crt-static' | |
OPENSSL_STATIC: 1 | |
strategy: | |
matrix: | |
target: | |
- x86_64-unknown-linux-gnu | |
- x86_64-unknown-linux-musl | |
- x86_64-pc-windows-msvc | |
- x86_64-apple-darwin | |
- aarch64-unknown-linux-gnu | |
include: | |
- os: ubuntu-20.04 | |
target: x86_64-unknown-linux-gnu | |
executable_name: cubestored | |
cross: true | |
strip: true | |
compress: false | |
- os: ubuntu-20.04 | |
target: x86_64-unknown-linux-musl | |
executable_name: cubestored | |
cross: true | |
strip: true | |
# cubestored: CantPackException: bad DT_HASH nbucket=0x344 len=0x1890 | |
compress: false | |
- os: windows-2019 | |
target: x86_64-pc-windows-msvc | |
executable_name: cubestored.exe | |
cross: false | |
strip: true | |
# cubestored.exe: CantPackException: superfluous data between sections | |
compress: false | |
# Please use minimal possible version of macOS, because it produces constraint on libstdc++ | |
- os: macos-11 | |
target: x86_64-apple-darwin | |
executable_name: cubestored | |
cross: false | |
strip: true | |
compress: true | |
- os: ubuntu-20.04 | |
target: aarch64-unknown-linux-gnu | |
executable_name: cubestored | |
cross: true | |
# Unable to recognise the format of the input file `rust/cubestore/target/aarch64-unknown-linux-gnu/release/cubestored' | |
strip: false | |
# UPX is broken, issue https://github.com/cube-js/cube/issues/4474 | |
compress: false | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Disable rustup update (issue workaround for Windows) | |
run: rustup set auto-self-update disable | |
if: contains(runner.os, 'windows') | |
shell: bash | |
- name: Setup Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2022-06-22 | |
target: ${{ matrix.target }} | |
override: true | |
components: rustfmt | |
- uses: Swatinem/rust-cache@v1 | |
with: | |
working-directory: rust/cubestore | |
key: cross-${{ runner.OS }}-${{ matrix.target }} | |
sharedKey: cross-${{ runner.OS }}-${{ matrix.target }} | |
- run: source .github/actions/${{ matrix.before_script }}.sh | |
if: ${{ matrix.before_script }} | |
shell: bash | |
- uses: ilammy/msvc-dev-cmd@v1 | |
if: ${{ startsWith(matrix.os, 'windows') }} | |
- name: Install OpenSSL for Windows | |
if: ${{ startsWith(matrix.os, 'windows') }} | |
run: vcpkg integrate install; vcpkg install openssl:x64-windows | |
- name: Instal LLVM for Windows | |
if: ${{ startsWith(matrix.os, 'windows') }} | |
run: choco install -y --force llvm --version 9.0.1 | |
- name: Set Env Variables for Windows | |
uses: allenevans/[email protected] | |
if: ${{ startsWith(matrix.os, 'windows') }} | |
with: | |
OPENSSL_DIR: 'C:/vcpkg/packages/openssl_x64-windows' | |
# This paths are required to work with static linking | |
OPENSSL_LIB_DIR: 'C:/vcpkg/packages/openssl_x64-windows/lib' | |
OPENSSL_INCLUDE_DIR: 'C:/vcpkg/packages/openssl_x64-windows/include' | |
LIBCLANG_PATH: 'C:\Program Files\LLVM\bin' | |
# Hotfix before https://github.com/actions/runner-images/pull/7125 will be released/rolled on the productions servers | |
- name: Hotfix for macOS (pkg-config) | |
if: contains(runner.os, 'macos') | |
run: brew install pkg-config | |
- name: Build with Cross | |
if: ${{ matrix.cross }} | |
run: | | |
wget -c https://github.com/rust-embedded/cross/releases/download/v0.2.1/cross-v0.2.1-x86_64-unknown-linux-gnu.tar.gz -O - | tar -xz | |
chmod +x cross && sudo mv cross /usr/local/bin/cross | |
cd rust/cubestore | |
cross build --release --target=${{ matrix.target }} | |
- name: Build with Cargo | |
if: ${{ !matrix.cross }} | |
run: | | |
cd rust/cubestore && cargo build --release --target=${{ matrix.target }} | |
- name: Compress binaries | |
uses: svenstaro/upx-action@v2 | |
if: ${{ matrix.compress }} | |
with: | |
file: rust/cubestore/target/${{ matrix.target }}/release/${{ matrix.executable_name }} | |
args: --lzma | |
strip: ${{ matrix.strip }} | |
- name: Create folder for archive | |
run: | | |
mkdir cubestore-archive | |
mkdir cubestore-archive/bin | |
- name: Copy/paste OpenSSL to Archive (hotfix for Windows) | |
if: ${{ startsWith(matrix.os, 'windows') }} | |
run: cp C:/vcpkg/packages/openssl_x64-windows/bin/*.dll cubestore-archive/bin | |
- name: Create archive for release | |
run: | | |
mv rust/cubestore/target/${{ matrix.target }}/release/${{ matrix.executable_name }} cubestore-archive/bin/${{ matrix.executable_name }} | |
cd cubestore-archive | |
tar -cvzf cubestored-${{ matrix.target }}.tar.gz * | |
- uses: actions/upload-artifact@v2 | |
with: | |
path: cubestore-archive/cubestored-${{ matrix.target }}.tar.gz | |
name: cubestored-${{ matrix.target }}.tar.gz | |
retention-days: 1 |