Skip to content
Merged
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
6 changes: 6 additions & 0 deletions .github/actions/build-and-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ runs:
- if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libudev-dev libdbus-1-dev
shell: bash
- run: make build-test-wasms
shell: bash
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
CARGO_BUILD_TARGET: ${{ inputs.target }}
CI_TESTS: true
- run: cargo clippy --all-targets --target ${{ inputs.target }}
shell: bash
- run: make test
Expand Down
1 change: 0 additions & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ stellar keys address test # Test key operations
The project uses GitHub Actions with workflows in `.github/workflows/`:

- `rust.yml`: Main CI pipeline with formatting, linting, building, and testing
- `e2e.yml`: End-to-end system tests
- `binaries.yml`: Multi-platform binary builds

Always run `make fmt` and `make check` locally before pushing to ensure CI passes.
7 changes: 3 additions & 4 deletions .github/workflows/bindings-ts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,9 @@ jobs:
# Apple Intel (this runner has better support to nested virtualization)
- macos-15-large
exclude:
# Only run Linux x64 tests on pull request to save some time
- sys:
${{ github.event_name != 'push' && 'ubuntu-jammy-8-cores-arm64' }}
- sys: ${{ github.event_name != 'push' && 'macos-15-large' }}
# Only run Linux x64 on non-release PRs to save CI minutes
- sys: ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'ubuntu-jammy-8-cores-arm64' }}
- sys: ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'macos-15-large' }}
runs-on: ${{ matrix.sys }}
steps:
- uses: stellar/quickstart@main
Expand Down
47 changes: 0 additions & 47 deletions .github/workflows/e2e.yml

This file was deleted.

6 changes: 3 additions & 3 deletions .github/workflows/ledger-emulator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ jobs:
# Apple Large Intel (this runner has better support to nested virtualization)
# - macos-15-large (temporarily until the runner becomes more reliable. To be re-enabled in https://github.com/stellar/stellar-cli/issues/2299)
exclude:
# Only run Linux x64 tests on pull request to save some time
- sys: ${{ github.event_name != 'push' && 'ubuntu-jammy-8-cores-arm64' }}
- sys: ${{ github.event_name != 'push' && 'macos-15-large' }}
# Only run Linux x64 on non-release PRs to save CI minutes
- sys: ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'ubuntu-jammy-8-cores-arm64' }}
- sys: ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'macos-15-large' }}
runs-on: ${{ matrix.sys }}
env:
CI_TESTS: true
Expand Down
19 changes: 7 additions & 12 deletions .github/workflows/rpc-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ jobs:
# Apple Intel (this runner has better support to nested virtualization)
- macos-15-large
exclude:
# Only run Linux x64 tests on pull request to save some time
- sys:
${{ github.event_name != 'push' && 'ubuntu-jammy-8-cores-arm64' }}
- sys: ${{ github.event_name != 'push' && 'macos-15-large' }}
# Only run Linux x64 on non-release PRs to save CI minutes
- sys: ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'ubuntu-jammy-8-cores-arm64' }}
- sys: ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'macos-15-large' }}
runs-on: ${{ matrix.sys }}
env:
TEST_THREADS: ${{ contains(matrix.sys, 'macos') && '--test-threads=1' || '' }} # macOS has limited resources, so we run tests (that rely on `testcontainers`) with 1 thread
TEST_THREADS: ${{ contains(matrix.sys, 'macos') && '2' || '4' }} # macOS has limited resources
steps:
- uses: stellar/quickstart@main
with:
tag: future
enable: core,rpc
- uses: actions/checkout@v5
- uses: stellar/actions/rust-cache@main
- run: rustup update
Expand All @@ -49,15 +49,10 @@ jobs:
# the login password doesn't matter, but the keyring must be unlocked for the tests to work
# this is based on the ci workflow in the keyring crate repo
run:
gnome-keyring-daemon --components=secrets --daemonize --unlock <<<
'foobar'
- name: Check GNOME Keyring
if: runner.os == 'Linux'
run: |
gnome-keyring-daemon
gnome-keyring-daemon --components=secrets --daemonize --unlock <<< 'foobar'
- run: cargo build --features additional-libs
- run: rustup target add wasm32v1-none
- run: make build-test-wasms
- run:
RUST_BACKTRACE=1 cargo test --features it --package soroban-test --test it --
integration $TEST_THREADS
integration --test-threads=$TEST_THREADS
1 change: 1 addition & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ jobs:
- run: sudo apt update && sudo apt install -y libudev-dev libdbus-1-dev
- run: rustup update
- run: npm install
- run: make build-test-wasms
- run: make check

build-and-test:
Expand Down
9 changes: 5 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
all: check build test
all: build-test-wasms check build test


REPOSITORY_COMMIT_HASH := "$(shell git rev-parse HEAD)"
Expand Down Expand Up @@ -52,8 +52,9 @@ test: build-test
cargo test --workspace --exclude soroban-test --features additional-libs
cargo test -p soroban-test -- --skip integration::

e2e-test:
cargo test --features it --test it -- integration
# expects a quickstart container running with the rpc exposed at localhost:SOROBAN_PORT
rpc-test:
cargo test --features it --test it -- integration --test-threads=4

check:
cargo clippy --all-targets
Expand Down Expand Up @@ -85,4 +86,4 @@ typescript-bindings-fixtures: build-test-wasms


# PHONY lists all the targets that aren't file names, so that make would skip the timestamp based check.
.PHONY: publish clean fmt watch check e2e-test test build-test-wasms install build build-snapshot typescript-bindings-fixtures
.PHONY: publish clean fmt watch check rpc-test test build-test-wasms install build build-snapshot typescript-bindings-fixtures
Loading