Skip to content

Commit

Permalink
move build suite into docker #154
Browse files Browse the repository at this point in the history
  • Loading branch information
ukorvl committed Jun 27, 2023
1 parent fb58a46 commit 2245e61
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 122 deletions.
209 changes: 94 additions & 115 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

env:
SUITE_REPO: "NilFoundation/crypto3"
LIB_NAME: "blueprint"
LIB_PATH: "./libs/blueprint"
CACHE_NAME: "build-job-cache"

concurrency:
Expand All @@ -20,7 +20,7 @@ concurrency:

jobs:
build:
runs-on: [self-hosted, aws_autoscaling]
runs-on: ubuntu-22.04
steps:
- name: Build suite
uses: actions/checkout@v3
Expand All @@ -31,125 +31,104 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v3
with:
path: ./libs/${{ env.LIB_NAME }}
path: ${{ env.LIB_PATH }}
submodules: recursive

- name: Cmake and build
env:
CMAKE_ARGS: "
-DCMAKE_BUILD_TYPE=Debug
-DBUILD_SHARED_LIBS=FALSE
-DBUILD_TESTS=TRUE
"
run: |
mkdir build
cd build
cmake ${{ env.CMAKE_ARGS }} ..
run: ${{ env.LIB_PATH }}/scripts/ci.sh --docker build

- name: Archive build results
run: |
touch ${{ env.CACHE_NAME }}.tar.gz
tar -czf ${{ env.CACHE_NAME }}.tar.gz --exclude=${{ env.CACHE_NAME }}.tar.gz .
- name: Cache archived job output
uses: actions/upload-artifact@v3
with:
name: ${{ env.CACHE_NAME }}
path: ${{ env.CACHE_NAME }}.tar.gz
retention-days: 1

# run_tests:
# runs-on: [self-hosted, aws_autoscaling]
# needs: [build]
# strategy:
# fail-fast: false
# matrix:
# target: [
# blueprint_algebra_fields_plonk_field_operations_test,
# blueprint_algebra_fields_plonk_exponentiation_test,
# blueprint_algebra_curves_plonk_unified_addition_test,
# blueprint_algebra_curves_plonk_variable_base_scalar_mul_test,
# blueprint_algebra_curves_plonk_decomposed_variable_base_scalar_mul_test,
# blueprint_verifiers_kimchi_sponge_oracles_test,
# blueprint_hashes_plonk_poseidon_test,
# blueprint_algebra_curves_plonk_endo_scalar_test,
# blueprint_algebra_fields_plonk_range_check_test,
# blueprint_algebra_fields_plonk_non_native_addition_test,
# blueprint_algebra_fields_plonk_non_native_subtraction_test,
# blueprint_algebra_fields_plonk_non_native_multiplication_test,
# blueprint_algebra_fields_plonk_non_native_range_test,
# blueprint_algebra_fields_plonk_non_native_reduction_test,
# blueprint_algebra_fields_plonk_non_native_bit_decomposition_test,
# blueprint_algebra_fields_plonk_non_native_bit_composition_test,
# blueprint_algebra_fields_plonk_non_native_bit_shift_constant_test,
# blueprint_algebra_fields_plonk_non_native_logic_ops_test,
# blueprint_non_native_plonk_scalar_non_native_range_test,
# blueprint_non_native_plonk_bool_scalar_multiplication_test,
# blueprint_hashes_plonk_decomposition_test,
# blueprint_hashes_plonk_sha256_process_test,
# blueprint_hashes_plonk_sha512_process_test,
# blueprint_hashes_plonk_sha256_test,
# blueprint_hashes_plonk_sha512_test,
# blueprint_non_native_plonk_fixed_base_mul_test,
# blueprint_non_native_plonk_complete_addition_test,
# blueprint_non_native_plonk_var_base_mul_per_bit_test,
# blueprint_non_native_plonk_variable_base_multiplication_test,
# blueprint_algebra_fields_plonk_sqrt_test,
# blueprint_algebra_curves_plonk_multi_scalar_multiplication_test,
# blueprint_verifiers_kimchi_base_field_test,
# blueprint_verifiers_kimchi_prepare_batch_scalar_test,
# blueprint_verifiers_kimchi_verify_scalar_test,
# blueprint_verifiers_kimchi_oracles_scalar_test,
# blueprint_verifiers_kimchi_batch_verify_base_field_test,
# blueprint_verifiers_kimchi_batch_verify_scalar_field_test,
# blueprint_verifiers_kimchi_detail_lagrange_denominators_test,
# blueprint_verifiers_kimchi_detail_b_poly_test,
# blueprint_verifiers_kimchi_detail_b_poly_coefficients_test,
# blueprint_verifiers_kimchi_detail_to_group_test,
# blueprint_verifiers_kimchi_detail_public_evaluations_test,
# blueprint_verifiers_kimchi_detail_prev_chal_evals_test,
# blueprint_verifiers_kimchi_detail_ft_eval_test,
# blueprint_verifiers_kimchi_detail_combine_proof_evals_test,
# blueprint_verifiers_kimchi_detail__constraints_index_terms_scalars_test,
# blueprint_verifiers_kimchi_detail_constraints_rpn_expression_test,
# blueprint_verifiers_kimchi_detail_constraints_vanishes_on_last_4_rows_test,
# blueprint_verifiers_kimchi_detail_constraints_unnormalized_lagrange_basis_test,
# blueprint_verifiers_kimchi_detail_constraints_perm_scalars_test,
# blueprint_verifiers_kimchi_detail_constraints_generic_scalars_test,
# blueprint_verifiers_kimchi_detail_oracles_cip_test,
# blueprint_verifiers_kimchi_detail_zk_w3_test,
# blueprint_verifiers_kimchi_detail_zkpm_evaluate_test,
# blueprint_verifiers_kimchi_detail_prepare_scalars_test,
# blueprint_verifiers_kimchi_sponge_compare_test,
# blueprint_verifiers_kimchi_sponge_transcript_fr_test,
# blueprint_verifiers_kimchi_sponge_transcript_fq_test,
# blueprint_verifiers_kimchi_sponge_sponge_test
# ]
# steps:
# - name: Cleanup # TODO - move to scripts on runner
# run: |
# rm -rf ./* || true
# rm -rf ./.??* || true

run_tests:
runs-on: [self-hosted, aws_autoscaling]
needs: [build]
strategy:
fail-fast: false
matrix:
target: [
blueprint_algebra_fields_plonk_field_operations_test,
blueprint_algebra_fields_plonk_exponentiation_test,
blueprint_algebra_curves_plonk_unified_addition_test,
blueprint_algebra_curves_plonk_variable_base_scalar_mul_test,
blueprint_algebra_curves_plonk_decomposed_variable_base_scalar_mul_test,
blueprint_verifiers_kimchi_sponge_oracles_test,
blueprint_hashes_plonk_poseidon_test,
blueprint_algebra_curves_plonk_endo_scalar_test,
blueprint_algebra_fields_plonk_range_check_test,
blueprint_algebra_fields_plonk_non_native_addition_test,
blueprint_algebra_fields_plonk_non_native_subtraction_test,
blueprint_algebra_fields_plonk_non_native_multiplication_test,
blueprint_algebra_fields_plonk_non_native_range_test,
blueprint_algebra_fields_plonk_non_native_reduction_test,
blueprint_algebra_fields_plonk_non_native_bit_decomposition_test,
blueprint_algebra_fields_plonk_non_native_bit_composition_test,
blueprint_algebra_fields_plonk_non_native_bit_shift_constant_test,
blueprint_algebra_fields_plonk_non_native_logic_ops_test,
blueprint_non_native_plonk_scalar_non_native_range_test,
blueprint_non_native_plonk_bool_scalar_multiplication_test,
blueprint_hashes_plonk_decomposition_test,
blueprint_hashes_plonk_sha256_process_test,
blueprint_hashes_plonk_sha512_process_test,
blueprint_hashes_plonk_sha256_test,
blueprint_hashes_plonk_sha512_test,
blueprint_non_native_plonk_fixed_base_mul_test,
blueprint_non_native_plonk_complete_addition_test,
blueprint_non_native_plonk_var_base_mul_per_bit_test,
blueprint_non_native_plonk_variable_base_multiplication_test,
blueprint_algebra_fields_plonk_sqrt_test,
blueprint_algebra_curves_plonk_multi_scalar_multiplication_test,
blueprint_verifiers_kimchi_base_field_test,
blueprint_verifiers_kimchi_prepare_batch_scalar_test,
blueprint_verifiers_kimchi_verify_scalar_test,
blueprint_verifiers_kimchi_oracles_scalar_test,
blueprint_verifiers_kimchi_batch_verify_base_field_test,
blueprint_verifiers_kimchi_batch_verify_scalar_field_test,
blueprint_verifiers_kimchi_detail_lagrange_denominators_test,
blueprint_verifiers_kimchi_detail_b_poly_test,
blueprint_verifiers_kimchi_detail_b_poly_coefficients_test,
blueprint_verifiers_kimchi_detail_to_group_test,
blueprint_verifiers_kimchi_detail_public_evaluations_test,
blueprint_verifiers_kimchi_detail_prev_chal_evals_test,
blueprint_verifiers_kimchi_detail_ft_eval_test,
blueprint_verifiers_kimchi_detail_combine_proof_evals_test,
blueprint_verifiers_kimchi_detail__constraints_index_terms_scalars_test,
blueprint_verifiers_kimchi_detail_constraints_rpn_expression_test,
blueprint_verifiers_kimchi_detail_constraints_vanishes_on_last_4_rows_test,
blueprint_verifiers_kimchi_detail_constraints_unnormalized_lagrange_basis_test,
blueprint_verifiers_kimchi_detail_constraints_perm_scalars_test,
blueprint_verifiers_kimchi_detail_constraints_generic_scalars_test,
blueprint_verifiers_kimchi_detail_oracles_cip_test,
blueprint_verifiers_kimchi_detail_zk_w3_test,
blueprint_verifiers_kimchi_detail_zkpm_evaluate_test,
blueprint_verifiers_kimchi_detail_prepare_scalars_test,
blueprint_verifiers_kimchi_sponge_compare_test,
blueprint_verifiers_kimchi_sponge_transcript_fr_test,
blueprint_verifiers_kimchi_sponge_transcript_fq_test,
blueprint_verifiers_kimchi_sponge_sponge_test
]
steps:
- name: Cleanup # TODO - move to scripts on runner
run: |
rm -rf ./* || true
rm -rf ./.??* || true
- name: Upload checkout job cache
uses: actions/download-artifact@v3
with:
name: ${{ env.CACHE_NAME }}
# - name: Upload checkout job cache
# uses: actions/download-artifact@v3
# with:
# name: ${{ env.CACHE_NAME }}

- name: Extract artifacts
run: |
tar -xf ${{ env.CACHE_NAME }}.tar.gz
rm ${{ env.CACHE_NAME }}.tar.gz
# - name: Extract artifacts
# run: |
# tar -xf ${{ env.CACHE_NAME }}.tar.gz
# rm ${{ env.CACHE_NAME }}.tar.gz

- name: Build
working-directory: ./build
run: cmake --build . -t ${{ matrix.target }}
# - name: Build
# working-directory: ./build
# run: cmake --build . -t ${{ matrix.target }}

- name: Run test
working-directory: ./build
run: |
cd libs/${{ env.LIB_NAME }}/test
COLOR='\033[0;33m'
echo -e "${COLOR}${{ matrix.target }}"
./${{ matrix.target }}
# - name: Run test
# working-directory: ./build
# run: |
# cd libs/${{ env.LIB_NAME }}/test
# COLOR='\033[0;33m'
# echo -e "${COLOR}${{ matrix.target }}"
# ./${{ matrix.target }}
34 changes: 27 additions & 7 deletions scripts/ci.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,36 @@ set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
REPO_ROOT="$SCRIPT_DIR/.."
SUITE_ROOT="$REPO_ROOT/../.."

DOCKER="podman"
DOCKER_OPTS=""
if ! command -v podman; then
DOCKER="docker"
DOCKER_OPTS=""
else
DOCKER="podman"
DOCKER_OPTS='--detach-keys= --userns=keep-id'
fi

run_build() {
cd "$REPO_ROOT"
$CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=FALSE -DBUILD_TESTS=TRUE"
mkdir build && cd build
cmake $CMAKE_ARGS ..
cd -
if [ "$USE_DOCKER" = true ]; then
cd "$SUITE_ROOT"

$DOCKER build -t tests-env "$SCRIPT_DIR/docker"

$DOCKER run $DOCKER_OPTS \
--rm \
--user $(id -u ${USER}):$(id -g ${USER}) \
--volume ${PWD}:/home:Z -w /home \
tests-env \
sh -c "bash ./scripts/ci.sh build"
cd -
else
cd "$SUITE_ROOT"
mkdir build && cd build
CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=FALSE -DBUILD_TESTS=TRUE"
cmake $CMAKE_ARGS ..
cd -
fi
}

USE_DOCKER=false
Expand Down
1 change: 1 addition & 0 deletions scripts/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
FROM ghcr.io/nilfoundation/evm-solana-verification/environment:latest

0 comments on commit 2245e61

Please sign in to comment.