Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Milestone/nov election #386

Merged
merged 28 commits into from
Aug 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ffe1676
Feature/consistent hashes (#370)
john-s-morgan Jul 17, 2023
63af0c2
Feature/base k elgamal (#371)
john-s-morgan Jul 17, 2023
02c8a0c
Merge remote-tracking branch 'origin/main' into milestone/nov-election
AddressXception Jul 19, 2023
2efacf8
Feature/logging (#385)
SteveMaier-IRT Jul 25, 2023
bb7b786
Removed mutex from being used since the access is controlled from the…
SteveMaier-IRT Jul 25, 2023
5ae0b09
Feature/range proof (#366)
AddressXception Aug 2, 2023
a77a4af
update shell for x86
john-s-morgan Aug 2, 2023
5605810
library fix
john-s-morgan Aug 2, 2023
d5abec5
switch build to msvc for x86
SteveMaier-IRT Aug 2, 2023
c81ac98
setting 32 bit processor to run on 32bit shell
SteveMaier-IRT Aug 2, 2023
b234b90
Task/UI cleanup (#393)
john-s-morgan Aug 2, 2023
aa2626b
try using build toolchain for tests
AddressXception Aug 2, 2023
54abcf9
try force a recompile
AddressXception Aug 2, 2023
20bb7d5
reset use precompute to true for nov election
AddressXception Aug 2, 2023
4b847cc
Merge remote-tracking branch 'origin/main' into milestone/nov-election
AddressXception Aug 2, 2023
ae69b5c
use explicit flags for executing tests
AddressXception Aug 2, 2023
b0f2ade
add a test for validating precompute
AddressXception Aug 2, 2023
3e70a8a
adjust x86 release pipeline path files
AddressXception Aug 2, 2023
30e160b
replace the test data
AddressXception Aug 2, 2023
4bbc476
overload is valid check in web assembly
AddressXception Aug 2, 2023
aad5dce
drive ready (#395)
john-s-morgan Aug 3, 2023
b53bf9c
lowercase files (#403)
john-s-morgan Aug 3, 2023
3a820a1
Enhance logging for decryption. (#405)
john-s-morgan Aug 3, 2023
36a8f98
Changes due to integration testing with election product (#406)
SteveMaier-IRT Aug 3, 2023
06de93c
QA updates from integration test with CP Vendor (#410)
john-s-morgan Aug 3, 2023
7d74ce2
reenable branch PR CI rule
AddressXception Aug 4, 2023
80b1061
try include x86 in nuget
AddressXception Aug 4, 2023
c9c2b56
Fix unit tests for netstandard
john-s-morgan Aug 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 27 additions & 8 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ jobs:
"macos-13-xcode-14.2",
"macos-13-xcode-14.2-arm64",
"windows-2022-gcc-11",
"windows-2022-msvc-latest",
"windows-2022-msvc-latest-x86",
"windows-2022-msvc-latest-x64",
"ubuntu-22.04-linter",
]
include:
Expand Down Expand Up @@ -129,7 +130,16 @@ jobs:
lint: false
runCsTests: false
runTsTests: false
- name: windows-2022-msvc-latest
- name: windows-2022-msvc-latest-x86
os: windows-2022
processor: x86
compiler: msvc
version: "latest"
makeReleaseBuild: false
lint: false
runCsTests: false
runTsTests: false
- name: windows-2022-msvc-latest-x64
os: windows-2022
processor: x64
compiler: msvc
Expand Down Expand Up @@ -240,11 +250,20 @@ jobs:
sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app

- name: Update Environment (Windows MSYS2)
if: (runner.os == 'Windows' && matrix.compiler == 'gcc' && steps.filter.outputs.any == 'true')
if: (runner.os == 'Windows' && matrix.compiler == 'clang' && steps.filter.outputs.any == 'true')
uses: msys2/setup-msys2@v2
with:
update: true
install: mingw-w64-x86_64-gcc
msystem: clang64
install: >-
base-devel
mingw-w64-clang-x86_64-gcc
mingw-w64-clang-x86_64-toolchain
mingw-w64-clang-x86_64-clang-14
mingw-w64-clang-x86_64-cmake
mingw-w64-clang-x86_64-llvm-14
make
git

- name: Update Environment (Windows MSVC x64)
if: (runner.os == 'Windows' && matrix.compiler == 'msvc' && matrix.processor == 'x64' && steps.filter.outputs.any == 'true')
Expand All @@ -256,7 +275,7 @@ jobs:
if: (runner.os == 'Windows' && matrix.compiler == 'msvc' && matrix.processor == 'x86' && steps.filter.outputs.any == 'true')
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_x86
arch: ${{ matrix.processor }}

# Tools
- name: Install .NET
Expand Down Expand Up @@ -301,11 +320,11 @@ jobs:
if: (runner.os == 'Windows' && matrix.compiler == 'msvc' && steps.filter.outputs.cpp == 'true')
run: make test

- name: Run Tests (Windows-msys2)
- name: Run Tests (Windows-x86)
env:
PROCESSOR: ${{ matrix.processor }}
if: (runner.os == 'Windows' && matrix.compiler == 'gcc' && steps.filter.outputs.cpp == 'true')
run: make test-msys2
if: (runner.os == 'Windows' && matrix.compiler == 'msvc' && matrix.processor == 'x86' && steps.filter.outputs.cpp == 'true')
run: make test-x86

- name: Run .Net Tests
env:
Expand Down
33 changes: 32 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,31 @@ jobs:
build/libs/wasm/Release/src/electionguard/wasm/*.js
build/libs/wasm/Release/src/electionguard/wasm/*.wasm

# TODO: win x86
windows_build_x86:
name: Windows Build (x86)
runs-on: windows-2022
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- name: Setup Environment
run: make environment
- name: Build
run: make build-x86
- name: Upload Library (x86)
uses: actions/upload-artifact@v3
with:
name: win-x86
path: |
build/libs/Windows/x86/Release/src/Release/*.dll
build/libs/Windows/x86/Release/src/Release/*.exp
build/libs/Windows/x86/Release/src/Release/*.lib
build/libs/Windows/x86/Release/libs/hacl/Release/*.dll
build/libs/Windows/x86/Release/libs/hacl/Release/*.exp
build/libs/Windows/x86/Release/libs/hacl/Release/*.lib

windows_build_x64:
name: Windows Build (x64)
Expand Down Expand Up @@ -190,6 +214,7 @@ jobs:
macos_build_arm64,
macos_build_x64,
windows_build_x64,
windows_build_x86,
]
runs-on: ubuntu-22.04
steps:
Expand Down Expand Up @@ -222,6 +247,12 @@ jobs:
name: osx-x64
path: build/libs/Darwin/x64/Release

- name: Get Windows x86 Artifacts
uses: actions/download-artifact@v3
with:
name: win-x86
path: build/libs/Windows/x86/Release

- name: Get Windows x64 Artifacts
uses: actions/download-artifact@v3
with:
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"omnisharp.enableRoslynAnalyzers": true,
"omnisharp.enableEditorConfigSupport": true,
"files.associations": {
".env": "properties",
"hacl_hmac_drbg.h": "c",
"array": "cpp",
"atomic": "cpp",
Expand Down
102 changes: 75 additions & 27 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,24 @@ ifeq ($(OPERATING_SYSTEM),Windows)
choco upgrade ninja -y
choco upgrade vswhere -y
endif
wget -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.35.5/CPM.cmake
wget -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.38.2/CPM.cmake
make fetch-sample-data
dotnet tool restore

environment-msys2:
ifeq ($(OPERATING_SYSTEM),Windows)
@echo 🏁 MSYS2 INSTALL
pacman -S --noconfirm --needed --overwrite \
base-devel \
mingw-w64-x86_64-gcc \
mingw-w64-clang-x86_64-clang \
mingw-w64-clang-x86_64-toolchain \
mingw-w64-clang-x86_64-cmake \
mingw-w64-clang-x86_64-llvm \
make \
git
endif

environment-ui:
ifeq ($(OPERATING_SYSTEM),Windows)
dotnet workload install maui
Expand All @@ -159,16 +173,16 @@ else
endif

# Builds

build:
@echo 🧱 BUILD $(OPERATING_SYSTEM) $(PROCESSOR) $(TARGET)
@echo 🧱 BUILD $(OPERATING_SYSTEM) $(PROCESSOR) $(TARGET) $(VSPLATFORM)
ifeq ($(OPERATING_SYSTEM),Windows)
cmake -S . -B $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(OPERATING_SYSTEM)/$(PROCESSOR)/$(TARGET) \
-G "Visual Studio 17 2022" -A $(VSPLATFORM) \
-DCMAKE_BUILD_TYPE=$(TARGET) \
-DBUILD_SHARED_LIBS=ON \
-DDISABLE_VALE=$(TEMP_DISABLE_VALE) \
-DUSE_MSVC=ON \
-DUSE_32BIT_MATH=$(USE_32BIT_MATH) \
-DANDROID_NDK_PATH=$(ANDROID_NDK_PATH) \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/$(PROCESSOR)-$(OPERATING_SYSTEM).cmake
Expand All @@ -186,23 +200,23 @@ endif

build-arm64:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=arm64" & make build
PROCESSOR=arm64 && make build
else
PROCESSOR=arm64 && make build
endif

build-x86:
build-x64:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=x86" & set "VSPLATFORM=Win32" & make build
PROCESSOR=x64 && make build
else
PROCESSOR=x86 VSPLATFORM=Win32 && make build
PROCESSOR=x64 && make build
endif

build-x64:
build-x86:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=x64" & make build
PROCESSOR=x86 VSPLATFORM=Win32 USE_32BIT_MATH=ON && make build
else
PROCESSOR=x64 && make build
PROCESSOR=x86 VSPLATFORM=Win32 USE_32BIT_MATH=ON && make build
endif

build-msys2:
Expand All @@ -211,18 +225,26 @@ ifeq ($(OPERATING_SYSTEM),Windows)
cmake -S . -B $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(OPERATING_SYSTEM)/$(PROCESSOR)/$(TARGET) -G "MSYS Makefiles" \
-DCMAKE_BUILD_TYPE=$(TARGET) \
-DBUILD_SHARED_LIBS=ON \
-DCAN_USE_VECTOR_INTRINSICS=ON \
-DDISABLE_VALE=$(TEMP_DISABLE_VALE) \
-DUSE_32BIT_MATH=$(USE_32BIT_MATH) \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/$(PROCESSOR)-$(OPERATING_SYSTEM)-msys2.cmake
cmake --build $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(OPERATING_SYSTEM)/$(PROCESSOR)/$(TARGET)
else
echo "MSYS2 builds are only supported on Windows"
endif

build-msys2-x86:
ifeq ($(OPERATING_SYSTEM),Windows)
PROCESSOR=x86 USE_32BIT_MATH=ON && make build-msys2
else
echo "MSYS2 builds are only supported on Windows"
endif

build-android:
@echo 📱 BUILD ANDROID
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=arm64" & set "OPERATING_SYSTEM=Android" & make build
PROCESSOR=arm64 OPERATING_SYSTEM=Android && make build
else
PROCESSOR=arm64 OPERATING_SYSTEM=Android && make build
endif
Expand Down Expand Up @@ -259,11 +281,16 @@ build-netstandard: build

build-netstandard-x64:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=x64" & make build-netstandard
PROCESSOR=x64 && make build-netstandard
else
PROCESSOR=x64 && make build-netstandard
endif

build-netstandard-x86:
ifeq ($(OPERATING_SYSTEM),Windows)
PROCESSOR=x86 VSPLATFORM=Win32 USE_32BIT_MATH=ON && make build-netstandard
endif

build-cli:
@echo 🖥️ BUILD CLI $(OPERATING_SYSTEM) $(PROCESSOR) $(TARGET)
cd ./apps/electionguard-cli && dotnet restore
Expand Down Expand Up @@ -518,63 +545,84 @@ endif
# Test

test:
@echo 🧪 TEST $(OPERATING_SYSTEM) $(PROCESSOR) $(TARGET)
@echo 🧪 TEST $(OPERATING_SYSTEM) $(PROCESSOR) $(TARGET) $(VSPLATFORM)
ifeq ($(OPERATING_SYSTEM),Windows)
cmake -S . -B $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(OPERATING_SYSTEM)/$(PROCESSOR)/$(TARGET) \
-G "Visual Studio 17 2022" -A $(VSPLATFORM) \
-DCMAKE_BUILD_TYPE=$(TARGET) \
-DBUILD_SHARED_LIBS=ON \
-DEXPORT_INTERNALS=ON \
-DUSE_TEST_PRIMES=OFF \
-DDISABLE_VALE=$(TEMP_DISABLE_VALE) \
-DUSE_MSVC=ON \
-DUSE_32BIT_MATH=$(USE_32BIT_MATH) \
-DOPTION_ENABLE_TESTS=ON \
-DLOG_LEVEL=debug \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/test.cmake
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/$(PROCESSOR)-$(OPERATING_SYSTEM).cmake
cmake --build $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(OPERATING_SYSTEM)/$(PROCESSOR)/$(TARGET)/ --config $(TARGET)
$(ELECTIONGUARD_BUILD_LIBS_DIR)/$(OPERATING_SYSTEM)/$(PROCESSOR)/$(TARGET)/test/$(TARGET)/ElectionGuardTests
$(ELECTIONGUARD_BUILD_LIBS_DIR)/$(OPERATING_SYSTEM)/$(PROCESSOR)/$(TARGET)/test/$(TARGET)/ElectionGuardCTests
else
cmake -S . -B $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET) \
-DCMAKE_BUILD_TYPE=$(TARGET) \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DBUILD_SHARED_LIBS=ON \
-DEXPORT_INTERNALS=ON \
-DUSE_TEST_PRIMES=OFF \
-DDISABLE_VALE=$(TEMP_DISABLE_VALE) \
-DUSE_32BIT_MATH=$(USE_32BIT_MATH) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/test.cmake
-DOPTION_ENABLE_TESTS=ON \
-DLOG_LEVEL=debug \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/$(PROCESSOR)-$(OPERATING_SYSTEM).cmake
cmake --build $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)
$(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)/test/ElectionGuardTests
$(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)/test/ElectionGuardCTests
endif

test-arm64:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=arm64" & make test
PROCESSOR=arm64 && make test
else
PROCESSOR=arm64 && make test
endif

test-x64:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=x64" & make test
PROCESSOR=x64 && make test
else
PROCESSOR=x64 && make test
endif

test-x86:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=x86" & set "USE_32BIT_MATH=ON" & set "VSPLATFORM=Win32" & make test
else
PROCESSOR=x86 USE_32BIT_MATH=ON VSPLATFORM=Win32 && make test
endif

test-msys2:
@echo 🧪 TEST MSYS2 $(OPERATING_SYSTEM) $(PROCESSOR) $(TARGET)
ifeq ($(OPERATING_SYSTEM),Windows)
cmake -S . -B $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET) -G "MSYS Makefiles" \
-DCMAKE_BUILD_TYPE=$(TARGET) \
-DBUILD_SHARED_LIBS=ON \
-DEXPORT_INTERNALS=ON \
-DUSE_TEST_PRIMES=OFF \
-DDISABLE_VALE=$(TEMP_DISABLE_VALE) \
-DUSE_32BIT_MATH=$(USE_32BIT_MATH) \
-DOPTION_ENABLE_TESTS=ON \
-DLOG_LEVEL=debug \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/test.cmake
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/$(PROCESSOR)-$(OPERATING_SYSTEM)-msys2.cmake
cmake --build $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)
$(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)/test/ElectionGuardTests
$(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)/test/ElectionGuardCTests
endif

test-msys2-x86:
ifeq ($(OPERATING_SYSTEM),Windows)
PROCESSOR=x86 USE_32BIT_MATH=ON && make test-msys2
else
echo "MSYS2 tests are only supported on Windows"
endif

test-netstandard: build-netstandard
@echo 🧪 TEST NETSTANDARD $(PROCESSOR) $(TARGET)
dotnet test -a $(PROCESSOR) -c $(TARGET) ./bindings/netstandard/ElectionGuard/ElectionGuard.ElectionSetup.Tests/ElectionGuard.ElectionSetup.Tests.csproj
Expand All @@ -583,7 +631,7 @@ test-netstandard: build-netstandard

test-netstandard-arm64:
ifeq ($(OPERATING_SYSTEM),Windows)
set "PROCESSOR=arm64" && make test-netstandard
PROCESSOR=arm64 && make test-netstandard
else
PROCESSOR=arm64 && make test-netstandard
endif
Expand Down Expand Up @@ -651,15 +699,15 @@ ifeq ($(OPERATING_SYSTEM),Windows)
-DCMAKE_BUILD_TYPE=$(TARGET) \
-DCODE_COVERAGE=ON \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/test.cmake
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/$(PROCESSOR)-$(OPERATING_SYSTEM).cmake
else
cmake -S . -B $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET) \
-DCMAKE_BUILD_TYPE=$(TARGET) \
-DCODE_COVERAGE=ON \
-DUSE_STATIC_ANALYSIS=ON \
-DDISABLE_VALE=$(TEMP_DISABLE_VALE) \
-DCPM_SOURCE_CACHE=$(CPM_SOURCE_CACHE) \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/test.cmake
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/$(PROCESSOR)-$(OPERATING_SYSTEM).cmake
endif
cmake --build $(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)
$(ELECTIONGUARD_BUILD_LIBS_DIR)/$(PROCESSOR)/$(TARGET)/test/ElectionGuardTests
Expand Down
Loading
Loading