Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ jobs:
- name: Install FFI
env:
GITHUB_TOKEN: ${{ github.token }}
CURIO_OPTIMAL_LIBFILCRYPTO: 0
run: |
make deps
shell: bash
Expand Down Expand Up @@ -230,7 +231,7 @@ jobs:
echo "Using YugabyteDB Container IP: ${{env.CURIO_HARMONYDB_HOSTS}}"
export CURIO_HARMONYDB_HOSTS=${{ env.CURIO_HARMONYDB_HOSTS }}
export LOTUS_HARMONYDB_HOSTS=${{ env.CURIO_HARMONYDB_HOSTS }}
go test -v --tags=debug -timeout 30m ${{ matrix.test-suite.target }}
go test -v --tags="debug,fvm" -timeout 30m ${{ matrix.test-suite.target }}

- name: Stop YugabyteDB container
if: always() # Ensure this runs even if the tests fail
Expand Down
31 changes: 30 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,32 @@ FFI_DEPS:=$(addprefix $(FFI_PATH),$(FFI_DEPS))

$(FFI_DEPS): build/.filecoin-install ;

# When enabled, build size-optimized libfilcrypto by default
CURIO_OPTIMAL_LIBFILCRYPTO ?= 1

build/.filecoin-install: $(FFI_PATH)
$(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%)
@if [ "$(CURIO_OPTIMAL_LIBFILCRYPTO)" = "1" ]; then \
$(MAKE) curio-libfilecoin; \
else \
FFI_USE_FVM=1 $(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%); \
fi
@touch $@

MODULES+=$(FFI_PATH)
BUILD_DEPS+=build/.filecoin-install
CLEAN+=build/.filecoin-install

## Custom libfilcrypto build for Curio (size-optimized, no FVM)
.PHONY: curio-libfilecoin
curio-libfilecoin:
FFI_BUILD_FROM_SOURCE=1 \
FFI_USE_GPU=1 \
FFI_USE_OPENCL=1 \
FFI_USE_MULTICORE_SDR=1 \
RUSTFLAGS='-C codegen-units=1 -C opt-level=3 -C strip=symbols' \
$(MAKE) -C $(FFI_PATH) clean .install-filcrypto
@echo "Rebuilt libfilcrypto for Curio (OpenCL+multicore, no default features)."

ffi-version-check:
@[[ "$$(awk '/const Version/{print $$5}' extern/filecoin-ffi/version.go)" -eq 3 ]] || (echo "FFI version mismatch, update submodules"; exit 1)
BUILD_DEPS+=ffi-version-check
Expand Down Expand Up @@ -82,6 +100,17 @@ CLEAN+=build/.update-modules
deps: $(BUILD_DEPS)
.PHONY: deps

## Test targets

test-deps: CURIO_OPTIMAL_LIBFILCRYPTO=0
test-deps: $(BUILD_DEPS)
@echo "Built dependencies with FVM support for testing"
.PHONY: test-deps

test: test-deps
go test -v -tags="cgo,fvm" -timeout 30m ./itests/...
.PHONY: test

## ldflags -s -w strips binary

CURIO_TAGS ?= cunative
Expand Down