@@ -24,33 +24,43 @@ jobs:
2424 # Apple Intel (this runner has better support to nested virtualization)
2525 - macos-15-large
2626 exclude :
27- # Only run Linux x64 tests on pull request to save some time
28- - sys :
29- ${{ github.event_name != 'push' && 'ubuntu-jammy-8-cores-arm64' }}
30- - sys : ${{ github.event_name != 'push' && 'macos-15-large' }}
27+ # Only run Linux x64 on non-release PRs to save CI minutes
28+ - sys : ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'ubuntu-jammy-8-cores-arm64' }}
29+ - sys : ${{ github.event_name != 'push' && !startsWith(github.ref_name, 'release/') && 'macos-15-large' }}
3130 runs-on : ${{ matrix.sys }}
3231 env :
33- TEST_THREADS : ${{ contains(matrix.sys, 'macos') && '--test-threads=1 ' || '' }} # macOS has limited resources, so we run tests (that rely on `testcontainers`) with 1 thread
32+ TEST_THREADS : ${{ contains(matrix.sys, 'macos') && '2 ' || '4 ' }} # macOS has limited resources
3433 steps :
3534 - uses : stellar/quickstart@main
3635 with :
3736 tag : future
37+ enable : core,rpc
3838 - uses : actions/checkout@v5
3939 - uses : stellar/actions/rust-cache@main
4040 - run : rustup update
4141 - run :
4242 sudo apt update && sudo apt install -y libudev-dev libdbus-1-dev
4343 gnome-keyring
4444 if : runner.os == 'Linux'
45- - name : Start gnome-keyring
45+ - name : Start gnome-keyring and wait for it to be ready
4646 if : runner.os == 'Linux'
4747 # run gnome-keyring with 'foobar' as password for the login keyring
4848 # this will create a new login keyring and unlock it
4949 # the login password doesn't matter, but the keyring must be unlocked for the tests to work
50- # this is based on the ci workflow in the keyring crate repo
51- run :
52- gnome-keyring-daemon --components=secrets --daemonize --unlock <<<
53- ' foobar'
50+ run : |
51+ gnome-keyring-daemon --components=secrets --daemonize --unlock <<< 'foobar'
52+
53+ echo "Waiting for Keyring to become ready..."
54+ for i in {1..20}; do
55+ if secret-tool store --label='gh-action-secret' gh-action-domain gh-action.org <<< 'gh-action-val' 2>/dev/null; then
56+ echo "Keyring ready and operational."
57+ exit 0
58+ fi
59+ sleep 1
60+ done
61+
62+ echo "Error: GNOME Keyring failed to start or become ready within the timeout."
63+ exit 1
5464 - name : Check GNOME Keyring
5565 if : runner.os == 'Linux'
5666 run : |
6070 - run : make build-test-wasms
6171 - run :
6272 RUST_BACKTRACE=1 cargo test --features it --package soroban-test --test it --
63- integration $TEST_THREADS
73+ integration --test-threads= $TEST_THREADS
0 commit comments