Skip to content

fix(native): Init logger earlier without javascript side (silient err… #6859

fix(native): Init logger earlier without javascript side (silient err…

fix(native): Init logger earlier without javascript side (silient err… #6859

Workflow file for this run

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@v4
- 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@v4
- 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@v4
- 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