should be it
This commit is contained in:
687
external/duckdb/.github/workflows/NightlyTests.yml
vendored
Normal file
687
external/duckdb/.github/workflows/NightlyTests.yml
vendored
Normal file
@@ -0,0 +1,687 @@
|
||||
name: NightlyTests
|
||||
on:
|
||||
workflow_dispatch:
|
||||
repository_dispatch:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'main'
|
||||
- 'feature'
|
||||
- 'v*.*-*'
|
||||
paths-ignore:
|
||||
- '**'
|
||||
- '!.github/workflows/NightlyTests.yml'
|
||||
- '!.github/patches/duckdb-wasm/**'
|
||||
pull_request:
|
||||
types: [opened, reopened, ready_for_review, converted_to_draft]
|
||||
paths-ignore:
|
||||
- '**'
|
||||
- '!.github/workflows/NightlyTests.yml'
|
||||
- '!.github/patches/duckdb-wasm/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
DUCKDB_WASM_VERSION: "cf2048bd6d669ffa05c56d7d453e09e99de8b87e"
|
||||
CCACHE_SAVE: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }}
|
||||
|
||||
jobs:
|
||||
check-draft:
|
||||
# We run all other jobs on PRs only if they are not draft PR
|
||||
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Preliminary checks on CI
|
||||
run: echo "Event name is ${{ github.event_name }}"
|
||||
|
||||
linux-memory-leaks:
|
||||
name: Linux Memory Leaks
|
||||
needs: check-draft
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
GEN: ninja
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Install Ninja
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: make
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: |
|
||||
python3 test/memoryleak/test_memory_leaks.py
|
||||
|
||||
release-assert:
|
||||
name: Release Assertions
|
||||
runs-on: ubuntu-latest
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
GEN: ninja
|
||||
BUILD_JEMALLOC: 1
|
||||
CORE_EXTENSIONS: "icu;tpch;tpcds;fts;json;inet;httpfs"
|
||||
DISABLE_SANITIZER: 1
|
||||
CRASH_ON_ASSERT: 1
|
||||
RUN_SLOW_VERIFIERS: 1
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build libcurl4-openssl-dev
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: UNSAFE_NUMERIC_CAST=1 make relassert
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: |
|
||||
python3 scripts/run_tests_one_by_one.py build/relassert/test/unittest "*" --no-exit --timeout 1200
|
||||
|
||||
release-assert-osx:
|
||||
name: Release Assertions OSX
|
||||
runs-on: macos-latest
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
GEN: ninja
|
||||
CORE_EXTENSIONS: "icu;tpch;tpcds;fts;json;inet;httpfs"
|
||||
DISABLE_SANITIZER: 1
|
||||
CRASH_ON_ASSERT: 1
|
||||
RUN_SLOW_VERIFIERS: 1
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Install Ninja
|
||||
run: brew install ninja llvm
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: CMAKE_LLVM_PATH='/opt/homebrew/opt/llvm' UNSAFE_NUMERIC_CAST=1 make relassert
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: |
|
||||
python3 scripts/run_tests_one_by_one.py build/relassert/test/unittest "*" --no-exit --timeout 1200
|
||||
|
||||
release-assert-osx-storage:
|
||||
name: Release Assertions OSX Storage
|
||||
runs-on: macos-latest
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
GEN: ninja
|
||||
CORE_EXTENSIONS: "icu;tpch;tpcds;fts;json;inet"
|
||||
DISABLE_SANITIZER: 1
|
||||
CRASH_ON_ASSERT: 1
|
||||
RUN_SLOW_VERIFIERS: 1
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Install Ninja
|
||||
run: brew install ninja
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: UNSAFE_NUMERIC_CAST=1 make relassert
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: |
|
||||
python3 scripts/run_tests_one_by_one.py build/relassert/test/unittest "*" --no-exit --timeout 1200 --force-storage
|
||||
|
||||
smaller-binary:
|
||||
name: Smaller Binary
|
||||
runs-on: ubuntu-24.04
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
GEN: ninja
|
||||
BUILD_JEMALLOC: 1
|
||||
CORE_EXTENSIONS: "icu;tpch;tpcds;json"
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: SMALLER_BINARY=1 make
|
||||
|
||||
- name: Measure Size
|
||||
shell: bash
|
||||
run: ls -trlah build/release/src/libduckdb*
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: |
|
||||
build/release/test/unittest "*"
|
||||
|
||||
release-assert-clang:
|
||||
name: Release Assertions with Clang
|
||||
runs-on: ubuntu-latest
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
CC: clang
|
||||
CXX: clang++
|
||||
GEN: ninja
|
||||
BUILD_JEMALLOC: 1
|
||||
CORE_EXTENSIONS: "icu;tpch;tpcds;fts;json;inet;httpfs"
|
||||
DISABLE_SANITIZER: 1
|
||||
CRASH_ON_ASSERT: 1
|
||||
RUN_SLOW_VERIFIERS: 1
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build llvm libcurl4-openssl-dev
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: UNSAFE_NUMERIC_CAST=1 make relassert
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: |
|
||||
python3 scripts/run_tests_one_by_one.py build/relassert/test/unittest "*" --no-exit --timeout 1200
|
||||
|
||||
sqllogic:
|
||||
name: Sqllogic tests
|
||||
runs-on: ubuntu-latest # Secondary task of this CI job is to test building duckdb on latest ubuntu
|
||||
needs: linux-memory-leaks
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2.11 # Note: pinned due to GLIBC incompatibility in later releases
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
# Build is implied by 'make sqlite' that will invoke implicitly 'make release' (we make it explicit)
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: make release
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: make sqlite
|
||||
|
||||
storage-initialization:
|
||||
name: Storage Initialization Verification
|
||||
runs-on: ubuntu-22.04
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
CC: gcc-10
|
||||
CXX: g++-10
|
||||
GEN: ninja
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: make debug
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: python3 scripts/test_zero_initialize.py
|
||||
|
||||
extension-updating:
|
||||
name: Extension updating test
|
||||
runs-on: ubuntu-22.04
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
CC: gcc-10
|
||||
CXX: g++-10
|
||||
GEN: ninja
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Cleanup disk before build
|
||||
run: |
|
||||
echo "Disk usage before clean up:"
|
||||
df -h
|
||||
sudo apt-get clean
|
||||
sudo rm -rf /var/lib/apt/lists/*
|
||||
docker system prune -af || true
|
||||
rm -rf ~/.cache
|
||||
sudo rm -rf /usr/share/dotnet
|
||||
sudo rm -rf /opt/ghc
|
||||
sudo rm -rf "/usr/local/share/boost"
|
||||
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
||||
echo "Disk usage after clean up:"
|
||||
df -h
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
|
||||
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: pip install awscli
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: CORE_EXTENSIONS="tpch" make
|
||||
|
||||
- name: Start Minio
|
||||
shell: bash
|
||||
run: |
|
||||
sudo ./scripts/install_s3_test_server.sh
|
||||
./scripts/generate_presigned_url.sh
|
||||
source ./scripts/run_s3_test_server.sh
|
||||
source ./scripts/set_s3_test_server_variables.sh
|
||||
sleep 60
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: |
|
||||
./scripts/run_extension_medata_tests.sh
|
||||
|
||||
regression-test-memory-safety:
|
||||
name: Regression Tests between safe and unsafe builds
|
||||
runs-on: ubuntu-22.04
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
CC: gcc-10
|
||||
CXX: g++-10
|
||||
GEN: ninja
|
||||
BUILD_BENCHMARK: 1
|
||||
BUILD_JEMALLOC: 1
|
||||
CORE_EXTENSIONS: "tpch;tpcds;httpfs"
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Checkout tools repo
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
path: unsafe
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build libcurl4-openssl-dev && pip install requests
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: |
|
||||
make
|
||||
|
||||
cd unsafe
|
||||
UNSAFE_NUMERIC_CAST=1 DISABLE_MEMORY_SAFETY=1 make
|
||||
|
||||
- name: Set up benchmarks
|
||||
shell: bash
|
||||
run: |
|
||||
cp -r benchmark unsafe/
|
||||
|
||||
- name: Regression Test Micro
|
||||
if: always()
|
||||
shell: bash
|
||||
run: |
|
||||
python scripts/regression/test_runner.py --old unsafe/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/micro.csv --verbose --threads 2
|
||||
|
||||
- name: Regression Test TPCH
|
||||
if: always()
|
||||
shell: bash
|
||||
run: |
|
||||
python scripts/regression/test_runner.py --old unsafe/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/tpch.csv --verbose --threads 2
|
||||
|
||||
- name: Regression Test TPCDS
|
||||
if: always()
|
||||
shell: bash
|
||||
run: |
|
||||
python scripts/regression/test_runner.py --old unsafe/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/tpcds.csv --verbose --threads 2
|
||||
|
||||
- name: Regression Test H2OAI
|
||||
if: always()
|
||||
shell: bash
|
||||
run: |
|
||||
python scripts/regression/test_runner.py --old unsafe/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/h2oai.csv --verbose --threads 2
|
||||
|
||||
- name: Regression Test IMDB
|
||||
if: always()
|
||||
shell: bash
|
||||
run: |
|
||||
python scripts/regression/test_runner.py --old unsafe/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/imdb.csv --verbose --threads 2
|
||||
|
||||
vector-and-block-sizes:
|
||||
name: Tests different vector and block sizes
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
LSAN_OPTIONS: suppressions=${{ github.workspace }}/.sanitizer-leak-suppressions.txt
|
||||
needs: linux-memory-leaks
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
id: build
|
||||
shell: bash
|
||||
env:
|
||||
CORE_EXTENSIONS: "json;parquet;icu;tpch;tpcds"
|
||||
GEN: ninja
|
||||
STANDARD_VECTOR_SIZE: 512
|
||||
run: make relassert
|
||||
|
||||
- name: Fast and storage tests with default and small block size
|
||||
shell: bash
|
||||
run: |
|
||||
./build/relassert/test/unittest
|
||||
./build/relassert/test/unittest "test/sql/storage/*"
|
||||
./build/relassert/test/unittest --test-config test/configs/block_size_16kB.json
|
||||
./build/relassert/test/unittest "test/sql/storage/*" --test-config test/configs/block_size_16kB.json
|
||||
|
||||
linux-debug-configs:
|
||||
name: Tests different configurations with a debug build
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
LSAN_OPTIONS: suppressions=${{ github.workspace }}/.sanitizer-leak-suppressions.txt
|
||||
needs: linux-memory-leaks
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
id: build
|
||||
shell: bash
|
||||
env:
|
||||
CORE_EXTENSIONS: "json;parquet;icu;tpch;tpcds"
|
||||
GEN: ninja
|
||||
run: make debug
|
||||
|
||||
- name: test/configs/enable_verification_for_debug.json
|
||||
if: (success() || failure()) && steps.build.conclusion == 'success'
|
||||
shell: bash
|
||||
run: |
|
||||
./build/debug/test/unittest --test-config test/configs/enable_verification_for_debug.json
|
||||
|
||||
linux-wasm-experimental:
|
||||
name: WebAssembly duckdb-wasm builds
|
||||
# disable in NightlyTests
|
||||
if: false
|
||||
needs: check-draft
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: mymindstorm/setup-emsdk@v12
|
||||
with:
|
||||
version: 'latest'
|
||||
|
||||
- name: Setup
|
||||
shell: bash
|
||||
run: |
|
||||
git clone https://github.com/duckdb/duckdb-wasm
|
||||
cd duckdb-wasm
|
||||
git checkout ${{ env.DUCKDB_WASM_VERSION }}
|
||||
shopt -s nullglob
|
||||
for filename in ../.github/patches/duckdb-wasm/*.patch; do
|
||||
git apply $filename
|
||||
done
|
||||
git submodule init
|
||||
git submodule update
|
||||
git rm -r submodules/duckdb
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
path: duckdb-wasm/submodules/duckdb
|
||||
|
||||
- name: Setup
|
||||
shell: bash
|
||||
run: |
|
||||
cd duckdb-wasm
|
||||
make patch_duckdb || echo "done"
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Print version
|
||||
shell: bash
|
||||
run: |
|
||||
emcc --version
|
||||
|
||||
- name: Build WebAssembly MVP
|
||||
shell: bash
|
||||
run: |
|
||||
cd duckdb-wasm
|
||||
bash scripts/wasm_build_lib.sh relsize mvp $(pwd)/submodules/duckdb
|
||||
|
||||
- name: Build WebAssembly EH
|
||||
shell: bash
|
||||
run: |
|
||||
cd duckdb-wasm
|
||||
bash scripts/wasm_build_lib.sh relsize eh $(pwd)/submodules/duckdb
|
||||
|
||||
- name: Build WebAssembly COI
|
||||
shell: bash
|
||||
run: |
|
||||
cd duckdb-wasm
|
||||
bash scripts/wasm_build_lib.sh relsize coi $(pwd)/submodules/duckdb
|
||||
|
||||
- name: Package
|
||||
shell: bash
|
||||
run: |
|
||||
zip -r duckdb-wasm32.zip duckdb-wasm/packages/duckdb-wasm/src/bindings
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: duckdb-wasm32
|
||||
path: |
|
||||
duckdb-wasm32.zip
|
||||
|
||||
hash-zero:
|
||||
name: Hash Zero
|
||||
runs-on: ubuntu-24.04
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
GEN: ninja
|
||||
CORE_EXTENSIONS: "icu;parquet;tpch;tpcds;fts;json;inet"
|
||||
HASH_ZERO: 1
|
||||
LSAN_OPTIONS: suppressions=${{ github.workspace }}/.sanitizer-leak-suppressions.txt
|
||||
DUCKDB_TEST_DESCRIPTION: 'Compiled with HASH_ZERO=1. Use require no_hash_zero to skip.'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
|
||||
|
||||
- name: Setup Ccache
|
||||
uses: hendrikmuhs/ccache-action@main
|
||||
with:
|
||||
key: ${{ github.job }}
|
||||
save: ${{ env.CCACHE_SAVE }}
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: make relassert
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: build/relassert/test/unittest --test-config test/configs/hash_zero.json
|
||||
|
||||
codecov:
|
||||
name: Code Coverage
|
||||
runs-on: ubuntu-22.04
|
||||
needs: linux-memory-leaks
|
||||
env:
|
||||
GEN: ninja
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build lcov curl g++ zip
|
||||
|
||||
- name: Set up Python 3.9
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.9'
|
||||
|
||||
- name: Install pytest
|
||||
run: |
|
||||
python3 -m pip install pytest
|
||||
|
||||
- name: Check Coverage
|
||||
shell: bash
|
||||
continue-on-error: true
|
||||
run: |
|
||||
make coverage-check
|
||||
|
||||
- name: Create Archive
|
||||
if: ${{ success() || failure() }}
|
||||
shell: bash
|
||||
run: |
|
||||
zip -r coverage.zip coverage_html
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: ${{ success() || failure() }}
|
||||
with:
|
||||
name: coverage
|
||||
path: coverage.zip
|
||||
if-no-files-found: error
|
||||
Reference in New Issue
Block a user