Refactor run-tests.sh to source individual test scripts and update TESTING.md for clarity on smoke test execution. CI now sets SKIP_SMOKE_BUILD to optimize the workflow.
All checks were successful
Smoke tests / Build and smoke test (push) Successful in 1m18s
All checks were successful
Smoke tests / Build and smoke test (push) Successful in 1m18s
This commit is contained in:
@@ -7,6 +7,8 @@ jobs:
|
||||
smoke:
|
||||
name: Build and smoke test
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TEST_DB: ./mudserver.db.test
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
@@ -23,5 +25,121 @@ jobs:
|
||||
- name: Validate world data
|
||||
run: ./target/debug/mudtool validate -w ./world
|
||||
|
||||
- name: Run smoke tests
|
||||
run: ./run-tests.sh
|
||||
- name: Reset smoke database
|
||||
run: rm -f "$TEST_DB"
|
||||
|
||||
- name: Smoke - new player and basics
|
||||
run: |
|
||||
set -euo pipefail
|
||||
RUST_LOG=info ./target/debug/mudserver -d "$TEST_DB" &
|
||||
MUD_PID=$!
|
||||
trap 'kill $MUD_PID 2>/dev/null || true' EXIT
|
||||
sleep 2
|
||||
set +e
|
||||
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 smoketest@localhost <<'EOF'
|
||||
1
|
||||
1
|
||||
look
|
||||
stats
|
||||
go south
|
||||
go down
|
||||
go north
|
||||
talk barkeep
|
||||
go south
|
||||
go south
|
||||
examine thief
|
||||
attack thief
|
||||
flee
|
||||
quit
|
||||
EOF
|
||||
r=$?
|
||||
set -e
|
||||
[[ $r -eq 0 || $r -eq 255 ]]
|
||||
|
||||
- name: Smoke — persistence (reconnect)
|
||||
run: |
|
||||
set -euo pipefail
|
||||
RUST_LOG=info ./target/debug/mudserver -d "$TEST_DB" &
|
||||
MUD_PID=$!
|
||||
trap 'kill $MUD_PID 2>/dev/null || true' EXIT
|
||||
sleep 2
|
||||
set +e
|
||||
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 smoketest@localhost <<'EOF'
|
||||
look
|
||||
stats
|
||||
quit
|
||||
EOF
|
||||
r=$?
|
||||
set -e
|
||||
[[ $r -eq 0 || $r -eq 255 ]]
|
||||
|
||||
- name: Smoke - mudtool admin
|
||||
run: |
|
||||
set -euo pipefail
|
||||
./target/debug/mudtool -d "$TEST_DB" players list
|
||||
./target/debug/mudtool -d "$TEST_DB" players set-admin smoketest true
|
||||
./target/debug/mudtool -d "$TEST_DB" players show smoketest
|
||||
./target/debug/mudtool -d "$TEST_DB" settings set registration_open false
|
||||
./target/debug/mudtool -d "$TEST_DB" settings list
|
||||
|
||||
- name: Smoke — in-game admin
|
||||
run: |
|
||||
set -euo pipefail
|
||||
RUST_LOG=info ./target/debug/mudserver -d "$TEST_DB" &
|
||||
MUD_PID=$!
|
||||
trap 'kill $MUD_PID 2>/dev/null || true' EXIT
|
||||
sleep 2
|
||||
set +e
|
||||
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 smoketest@localhost <<'EOF'
|
||||
admin help
|
||||
admin list
|
||||
admin registration on
|
||||
admin info smoketest
|
||||
quit
|
||||
EOF
|
||||
r=$?
|
||||
set -e
|
||||
[[ $r -eq 0 || $r -eq 255 ]]
|
||||
|
||||
- name: Smoke - registration gate
|
||||
run: |
|
||||
set -euo pipefail
|
||||
./target/debug/mudtool -d "$TEST_DB" settings set registration_open false
|
||||
RUST_LOG=info ./target/debug/mudserver -d "$TEST_DB" &
|
||||
MUD_PID=$!
|
||||
trap 'kill $MUD_PID 2>/dev/null || true' EXIT
|
||||
sleep 2
|
||||
set +e
|
||||
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 newplayer@localhost <<'EOF'
|
||||
quit
|
||||
EOF
|
||||
r=$?
|
||||
set -e
|
||||
[[ $r -eq 0 || $r -eq 255 ]]
|
||||
|
||||
- name: Smoke - tick-based combat
|
||||
run: |
|
||||
set -euo pipefail
|
||||
./target/debug/mudtool -d "$TEST_DB" settings set registration_open true
|
||||
./target/debug/mudtool -d "$TEST_DB" players delete smoketest
|
||||
RUST_LOG=info ./target/debug/mudserver -d "$TEST_DB" &
|
||||
MUD_PID=$!
|
||||
trap 'kill $MUD_PID 2>/dev/null || true' EXIT
|
||||
sleep 2
|
||||
set +e
|
||||
(
|
||||
echo "1"
|
||||
echo "1"
|
||||
echo "go south"
|
||||
echo "go down"
|
||||
echo "go south"
|
||||
echo "attack thief"
|
||||
sleep 8
|
||||
echo "stats"
|
||||
echo "quit"
|
||||
) | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 smoketest@localhost
|
||||
r=$?
|
||||
set -e
|
||||
[[ $r -eq 0 || $r -eq 255 ]]
|
||||
./target/debug/mudtool -d "$TEST_DB" settings set registration_open true
|
||||
./target/debug/mudtool -d "$TEST_DB" players delete smoketest
|
||||
|
||||
Reference in New Issue
Block a user