diff --git a/fedora-build.sh b/fedora-build.sh index 3410062b..7f353f8d 100644 --- a/fedora-build.sh +++ b/fedora-build.sh @@ -1 +1,50 @@ -c \ No newline at end of file +#!/bin/bash +# Build script for Fedora 34 +set -o xtrace +set -e + +# Update and install system dependencies +dnf update -y && dnf install -y \ + gcc gcc-c++ make wget git openssl-devel bzip2-devel libffi-devel \ + elfutils-libelf-devel gmp-devel elfutils-devel clang \ + libstdc++-devel libcxx libcxx-devel ncurses-compat-libs cairo-devel \ + python3.9 python3.9-devel \ + && dnf clean all && rm -rf /var/cache/dnf + +# Create a virtual environment with Python 3.9 +python3.9 -m venv /tmp/stone-env + +# Activate the virtual environment +source /tmp/stone-env/bin/activate + +# Set a writable pip cache directory +export PIP_CACHE_DIR=/tmp/pip-cache +mkdir -p $PIP_CACHE_DIR + +# Upgrade pip within the virtual environment +pip install --upgrade pip --cache-dir $PIP_CACHE_DIR + +# Install Python dependencies without using the cache +pip install --no-cache-dir cpplint pytest numpy sympy==1.12.1 cairo-lang==0.12.0 + +# Download and install Bazelisk +wget "https://github.com/bazelbuild/bazelisk/releases/download/v1.20.0/bazelisk-linux-amd64" +chmod 755 "bazelisk-linux-amd64" +mv "bazelisk-linux-amd64" /usr/local/bin/bazelisk + +# Navigate to the checked-out code +cd "${GITHUB_WORKSPACE:-/github/workspace}" || exit + +# Ensure TARGET_ARCH is set +arch=${TARGET_ARCH:-x86_64} + +# Build and test with Bazelisk +bazelisk build --cpu="$arch" //... +bazelisk test --cpu="$arch" //... + +# Create symbolic links for cpu_air_prover and cpu_air_verifier +ln -s "$(pwd)/bazel-bin/src/starkware/main/cpu/cpu_air_prover" /usr/local/bin/cpu_air_prover +ln -s "$(pwd)/bazel-bin/src/starkware/main/cpu/cpu_air_verifier" /usr/local/bin/cpu_air_verifier + +# Deactivate the virtual environment +deactivate