Use rust nightly for CI tests #558
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: C | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
defaults: | |
run: | |
shell: bash | |
working-directory: src | |
jobs: | |
tests: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
steps: | |
# Checkout repository and blst submodule. | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
# Check formatting. | |
# Only need to check this once. | |
- name: Check formatting | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
make format | |
git diff --exit-code | |
# Build and test with minimal preset. | |
- name: Build (minimal) | |
run: | | |
export FIELD_ELEMENTS_PER_BLOB=4 | |
make clean && make test_c_kzg_4844 | |
unset FIELD_ELEMENTS_PER_BLOB | |
- name: Save test binary (minimal) | |
if: matrix.os == 'windows-latest' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test_minimal_${{matrix.os}} | |
path: src/test_c_kzg_4844.exe | |
- name: Test (minimal) | |
run: make test | |
# Build and test with mainnet preset. | |
- name: Build (mainnet) | |
run: | | |
export FIELD_ELEMENTS_PER_BLOB=4096 | |
make clean && make test_c_kzg_4844 | |
unset FIELD_ELEMENTS_PER_BLOB | |
- name: Save test binary (mainnet) | |
if: matrix.os == 'windows-latest' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test_mainnet_${{matrix.os}} | |
path: src/test_c_kzg_4844.exe | |
- name: Test (mainnet) | |
run: make test | |
# Run sanitizers. | |
# Doesn't work on Windows. | |
- name: Clang Sanitizers | |
if: matrix.os != 'windows-latest' | |
run: make sanitize | |
# Run static analyzer. | |
# Doesn't work on Windows. | |
- name: Clang Static Analyzer | |
if: matrix.os != 'windows-latest' | |
run: make analyze | |
# Install LLVM for coverage report. | |
# Already installed on macOS. | |
# Doesn't work on Windows. | |
- name: Install LLVM | |
if: matrix.os == 'ubuntu-latest' | |
uses: egor-tensin/setup-clang@v1 | |
# Generate the coverage report. | |
# Doesn't work on Windows. | |
- name: Generate coverage report | |
if: matrix.os != 'windows-latest' | |
run: make coverage | |
# Upload the coverage report. | |
# Didn't generate it for Windows. | |
- name: Save coverage report | |
if: matrix.os != 'windows-latest' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage | |
path: src/coverage.html |