Clean up Hacl-rs integration and add Poly1305 and ChaCha20Poly1305 #1208
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: Build & Test C | |
on: | |
push: | |
branches: ["main", "dev"] | |
pull_request: | |
branches: ["main", "dev"] | |
workflow_dispatch: | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
extract: | |
runs-on: ubuntu-latest | |
container: franziskus/libcrux-c:latest | |
defaults: | |
run: | |
working-directory: libcrux-ml-kem | |
shell: bash | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Extract C | |
run: | | |
./c.sh | |
- name: Upload C extraction | |
uses: actions/upload-artifact@v4 | |
with: | |
name: c-extraction | |
path: libcrux-ml-kem/c | |
include-hidden-files: true | |
if-no-files-found: error | |
extract-header-only: | |
runs-on: ubuntu-latest | |
container: franziskus/libcrux-c:latest | |
defaults: | |
run: | |
working-directory: libcrux-ml-kem | |
shell: bash | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Extract C (header only) | |
run: | | |
./boring.sh --no-clean | |
- name: Upload header only C extraction | |
uses: actions/upload-artifact@v4 | |
with: | |
name: header-only-c-extraction | |
path: libcrux-ml-kem/cg/ | |
include-hidden-files: true | |
if-no-files-found: error | |
diff: | |
needs: [extract] | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: c-extraction | |
path: ~/c-extraction | |
- uses: actions/checkout@v4 | |
- name: Diff Extraction | |
run: | | |
libcrux-ml-kem/headers_kill_revs.sh libcrux-ml-kem/c | |
libcrux-ml-kem/headers_kill_revs.sh ~/c-extraction | |
diff -r libcrux-ml-kem/c ~/c-extraction | |
diff-header-only: | |
needs: [extract-header-only] | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: header-only-c-extraction | |
path: ~/c-extraction | |
- uses: actions/checkout@v4 | |
- name: Diff Extraction | |
run: | | |
libcrux-ml-kem/headers_kill_revs.sh libcrux-ml-kem/cg | |
libcrux-ml-kem/headers_kill_revs.sh ~/c-extraction | |
diff -r libcrux-ml-kem/cg ~/c-extraction | |
build: | |
needs: [extract] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
- windows-latest | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: c-extraction | |
- name: π¨ Build | |
run: | | |
LIBCRUX_BENCHMARKS=1 cmake -B build | |
cmake --build build | |
- name: ππ»ββοΈ Test | |
run: ./build/Debug/ml_kem_test | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: ππ»ββοΈ Test | |
run: ./build/ml_kem_test | |
if: ${{ matrix.os != 'windows-latest' }} | |
- name: π¨ Build Release | |
run: | | |
rm -rf build | |
LIBCRUX_BENCHMARKS=1 cmake -B build -DCMAKE_BUILD_TYPE=Release | |
cmake --build build --config Release | |
if: ${{ matrix.os != 'windows-latest' }} | |
build-header-only: | |
needs: [extract-header-only] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
- windows-latest | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: header-only-c-extraction | |
- name: π¨ Build | |
run: | | |
cmake -B build | |
cmake --build build | |
# FIXME: Benchmark build for cg on Windows CI is not working right now. | |
- name: ππ»ββοΈ Test | |
run: ./build/ml_kem_test | |
if: ${{ matrix.os != 'windows-latest' }} |