Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
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
53 changes: 53 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Build & Test

on:
pull_request:
branches:
- main

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v4

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Install Just
uses: extractions/setup-just@v2

- name: Install dependencies
run: |

sudo apt-get install build-essential libncursesw5-dev bison flex liblua5.1-0-dev \
libsqlite3-dev libz-dev pkg-config python3-yaml binutils-gold python-is-python3 \
bzip2 ncurses-term locales-all sqlite3 libpcre3 liblua5.1-0 locales autoconf \
lsof flex libbot-basicbot-perl lua5.1 man libpng-dev python3-tornado

- name: Build DCSS Webtiles (multiple versions)
run: just setup-dcss-server

- name: Run DCSS Webtiles
run: |
python3 crawl/server/server.py &
sleep 5

- name: Create users
run: just dcss-create-users

- name: Test Rust dcss-api
run: just test-api

- name: Test Rust dcss-scenario-builder
run: just test-scenario

- name: Setup python dcss-api
run: just setup-python

- name: Test python dcss-api
run: just test-python
31 changes: 20 additions & 11 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,20 @@ setup-dcss-server:
cp -r ./crawl/dcss-0.32/crawl-ref/source/webserver/. ./crawl/server
sed -i -e 's/subprocess.signal/signal_module/g' ./crawl/server/webtiles/process_handler.py
sed -i -e 's/import subprocess/import signal as signal_module/g' ./crawl/server/webtiles/process_handler.py
cp ./tests/config/config.py ./crawl/server/config.py
cp ./tests/config/init-player.sh ./crawl/server/init-player.sh
cp ./crawl-config/config.py ./crawl/server/config.py
cp ./crawl-config/init-player.sh ./crawl/server/init-player.sh
echo save_dir = ./crawl/server/saves-0.29 > ./crawl/server/init-0.29.txt
echo save_dir = ./crawl/server/saves-0.30 > ./crawl/server/init-0.30.txt
echo save_dir = ./crawl/server/saves-0.31 > ./crawl/server/init-0.31.txt
echo save_dir = ./crawl/server/saves-0.32 > ./crawl/server/init-0.32.txt

rm -rf ./crawl/main

dcss-create-users:
cd ./dcss-api && cargo -r run --example 0_setup

dcss-run:
python crawl/server/server.py
python3 crawl/server/server.py

dcss-create-users:
cd ./dcss-api && cargo run -r --example 0_setup

dcss-clear:
rm -rf ./saves
Expand All @@ -62,20 +62,29 @@ dcss-disable-logging:
sed -i -e 's/print("SENT FROM DCSS: ", msg, data)/# type: (str, Any) -> bool/g' ./crawl/server/webtiles/ws_handler.py

test-api:
cd ./dcss-api && cargo test
cd ./dcss-api && GAME_ID=dcss-0.29 cargo test
cd ./dcss-api && GAME_ID=dcss-0.30 cargo test
cd ./dcss-api && GAME_ID=dcss-0.31 cargo test
cd ./dcss-api && GAME_ID=dcss-0.32 cargo test

test-scenario:
cd ./dcss-scenario-builder && cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.29 cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.30 cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.31 cargo test
cd ./dcss-scenario-builder && GAME_ID=dcss-0.32 cargo test

setup-python:
rm -rf ./dcss-api-python/pyo3
mkdir ./dcss-api-python/pyo3
python -m venv ./dcss-api-python/pyo3
source ./dcss-api-python/pyo3/bin/activate && cd ./dcss-api-python/ && pip install maturin patchelf pytest
source ./dcss-api-python/pyo3/bin/activate && cd ./dcss-api-python/ && maturin develop -r
. ./dcss-api-python/pyo3/bin/activate && cd ./dcss-api-python/ && pip install maturin patchelf pytest
. ./dcss-api-python/pyo3/bin/activate && cd ./dcss-api-python/ && maturin develop -r

test-python:
source ./dcss-api-python/pyo3/bin/activate && pytest ./dcss-api-python/tests
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.29 pytest ./dcss-api-python/tests
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.30 pytest ./dcss-api-python/tests
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.31 pytest ./dcss-api-python/tests
. ./dcss-api-python/pyo3/bin/activate && GAME_ID=dcss-0.32 pytest ./dcss-api-python/tests

cargo-update:
cd ./dcss-api && cargo update
Expand Down
Loading
Loading