diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 5873d4a79e..8732affbd0 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -190,7 +190,7 @@ jobs: strategy: fail-fast: false matrix: - build_type: [ debug ] + build_type: [ debug, release ] env: BUILD_TYPE: ${{ matrix.build_type }} GIT_VERSION: ${{ github.event.pull_request.head.sha || github.sha }} @@ -266,6 +266,7 @@ jobs: CARGO_FEATURES="--features testing" if [[ $BUILD_TYPE == "debug" ]]; then cov_prefix="scripts/coverage --profraw-prefix=$GITHUB_JOB --dir=/tmp/coverage run" + make_prefix="CC=clang CARGO_BUILD_FLAGS=${CARGO_FEATURES}" CARGO_FLAGS="--locked" ASAN_OPTIONS="detect_leaks=0:abort_on_error=1:print_stacktrace=1:disable_coredump=0:\ strict_string_checks=1:check_initialization_order=1:strict_init_order=1:detect_stack_use_after_return=0" @@ -273,6 +274,7 @@ jobs: RUSTFLAGS="-C linker=clang" elif [[ $BUILD_TYPE == "release" ]]; then cov_prefix="" + make_prefix="" ASAN_OPTIONS="" UBSAN_OPTIONS="" RUSTFLAGS="" @@ -280,6 +282,7 @@ jobs: fi { echo "cov_prefix=${cov_prefix}" + echo "make_prefix"=${make_prefix}" echo "ASAN_OPTIONS=${ASAN_OPTIONS}" echo "UBSAN_OPTIONS=${UBSAN_OPTIONS}" echo "RUSTFLAGS=${RUSTFLAGS}" @@ -330,46 +333,46 @@ jobs: - name: Build postgres v14 if: steps.cache_pg_14.outputs.cache-hit != 'true' - run: CC=clang CARGO_BUILD_FLAGS="--features=testing" mold -run make postgres-v14 -j$(nproc) + run: ${make_prefix} mold -run make postgres-v14 -j$(nproc) - name: Build postgres v15 if: steps.cache_pg_15.outputs.cache-hit != 'true' - run: CC=clang CARGO_BUILD_FLAGS="--features=testing" mold -run make postgres-v15 -j$(nproc) + run: ${make_prefix} mold -run make postgres-v15 -j$(nproc) - name: Build postgres v16 if: steps.cache_pg_16.outputs.cache-hit != 'true' - run: CC=clang CARGO_BUILD_FLAGS="--features=testing" mold -run make postgres-v16 -j$(nproc) + run: ${make_prefix} mold -run make postgres-v16 -j$(nproc) - name: Build neon extensions - run: CC=clang CARGO_BUILD_FLAGS="--features=testing" mold -run make neon-pg-ext -j$(nproc) + run: ${make_prefix} mold -run make neon-pg-ext -j$(nproc) - name: Build walproposer-lib - run: CC=clang CARGO_BUILD_FLAGS="--features=testing" mold -run make walproposer-lib -j$(nproc) + run: ${make_prefix} mold -run make walproposer-lib -j$(nproc) - name: Run cargo build run: | ${cov_prefix} mold -run cargo build $CARGO_FLAGS $CARGO_FEATURES --bins --tests - # - name: Run rust tests - # run: | - # ${cov_prefix} cargo nextest run $CARGO_FLAGS $CARGO_FEATURES + - name: Run rust tests + run: | + ${cov_prefix} cargo nextest run $CARGO_FLAGS $CARGO_FEATURES - # # Run separate tests for real S3 - # export ENABLE_REAL_S3_REMOTE_STORAGE=nonempty - # export REMOTE_STORAGE_S3_BUCKET=neon-github-ci-tests - # export REMOTE_STORAGE_S3_REGION=eu-central-1 - # # Avoid `$CARGO_FEATURES` since there's no `testing` feature in the e2e tests now - # ${cov_prefix} cargo nextest run $CARGO_FLAGS -E 'package(remote_storage)' -E 'test(test_real_s3)' + # Run separate tests for real S3 + export ENABLE_REAL_S3_REMOTE_STORAGE=nonempty + export REMOTE_STORAGE_S3_BUCKET=neon-github-ci-tests + export REMOTE_STORAGE_S3_REGION=eu-central-1 + # Avoid `$CARGO_FEATURES` since there's no `testing` feature in the e2e tests now + ${cov_prefix} cargo nextest run $CARGO_FLAGS -E 'package(remote_storage)' -E 'test(test_real_s3)' - # # Run separate tests for real Azure Blob Storage - # # XXX: replace region with `eu-central-1`-like region - # export ENABLE_REAL_AZURE_REMOTE_STORAGE=y - # export AZURE_STORAGE_ACCOUNT="${{ secrets.AZURE_STORAGE_ACCOUNT_DEV }}" - # export AZURE_STORAGE_ACCESS_KEY="${{ secrets.AZURE_STORAGE_ACCESS_KEY_DEV }}" - # export REMOTE_STORAGE_AZURE_CONTAINER="${{ vars.REMOTE_STORAGE_AZURE_CONTAINER }}" - # export REMOTE_STORAGE_AZURE_REGION="${{ vars.REMOTE_STORAGE_AZURE_REGION }}" - # # Avoid `$CARGO_FEATURES` since there's no `testing` feature in the e2e tests now - # ${cov_prefix} cargo nextest run $CARGO_FLAGS -E 'package(remote_storage)' -E 'test(test_real_azure)' + # Run separate tests for real Azure Blob Storage + # XXX: replace region with `eu-central-1`-like region + export ENABLE_REAL_AZURE_REMOTE_STORAGE=y + export AZURE_STORAGE_ACCOUNT="${{ secrets.AZURE_STORAGE_ACCOUNT_DEV }}" + export AZURE_STORAGE_ACCESS_KEY="${{ secrets.AZURE_STORAGE_ACCESS_KEY_DEV }}" + export REMOTE_STORAGE_AZURE_CONTAINER="${{ vars.REMOTE_STORAGE_AZURE_CONTAINER }}" + export REMOTE_STORAGE_AZURE_REGION="${{ vars.REMOTE_STORAGE_AZURE_REGION }}" + # Avoid `$CARGO_FEATURES` since there's no `testing` feature in the e2e tests now + ${cov_prefix} cargo nextest run $CARGO_FLAGS -E 'package(remote_storage)' -E 'test(test_real_azure)' - name: Install rust binaries run: | @@ -435,7 +438,7 @@ jobs: strategy: fail-fast: false matrix: - build_type: [ debug ] + build_type: [ debug, release ] pg_version: [ v14, v15, v16 ] env: BUILD_TYPE: ${{ matrix.build_type }} diff --git a/Makefile b/Makefile index f3efe14035..2da582c5e5 100644 --- a/Makefile +++ b/Makefile @@ -88,6 +88,7 @@ $(POSTGRES_INSTALL_DIR)/build/%/config.status: LDFLAGS='$(LDFLAGS)' \ $(PG_CONFIGURE_OPTS) \ --prefix=$(abspath $(POSTGRES_INSTALL_DIR))/$* > configure.log) + echo "\n\n\n\n -------\n printing path $(PATH)" # nicer alias to run 'configure' # Note: I've been unable to use templates for this part of our configuration.