85 lines
2.9 KiB
YAML
85 lines
2.9 KiB
YAML
name: Integration tests
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
connect-to-server:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Ruby 3.1
|
|
uses: actions/setup-ruby@v1
|
|
with:
|
|
ruby-version: 3.1.x
|
|
- name: Prepare
|
|
run: |
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y tcpdump tshark
|
|
sudo apt-get install -y shellcheck teeworlds-server teeworlds teeworlds-data
|
|
sudo apt install -y build-essential glslang-tools libavcodec-extra libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libcurl4-openssl-dev libfreetype6-dev libglew-dev libnotify-dev libogg-dev libopus-dev libopusfile-dev libpng-dev libsdl2-dev libsqlite3-dev libssl-dev libvulkan-dev libwavpack-dev libx264-dev
|
|
gem install bundler
|
|
gem install rubocop:1.31.2
|
|
bundle install --jobs 4 --retry 3
|
|
|
|
wget https://github.com/ChillerDragon/teeworlds/releases/download/v0.7.5-headless/teeworlds-0.7.5-linux_x86_64.tar.gz
|
|
tar -xvzf teeworlds-0.7.5-linux_x86_64.tar.gz
|
|
sudo mkdir -p /usr/local/bin/
|
|
sudo mv teeworlds-0.7.5-linux_x86_64/teeworlds /usr/local/bin/teeworlds-headless
|
|
rm -rf teeworlds-0.7.5-linux_x86_64*
|
|
|
|
wget https://github.com/ChillerDragon/ddnet/releases/download/v16.5-headless/DDNet-headless.zip
|
|
unzip DDNet-headless.zip
|
|
sudo mv DDNet-headless /usr/local/bin
|
|
rm DDNet-headless.zip
|
|
|
|
wget https://github.com/ChillerDragon/ddnet/releases/download/v17.4.2-headless-0.7/DDNet7-headless-linux.zip
|
|
unzip DDNet7-headless-linux.zip
|
|
chmod +x DDNet7-headless
|
|
sudo mv DDNet7-headless /usr/local/bin
|
|
rm DDNet7-headless-linux.zip
|
|
|
|
echo 'TODO: remove this ugly hack!'
|
|
mkdir -p ~/.teeworlds/downloadedmaps
|
|
cd ~/.teeworlds/downloadedmaps
|
|
wget https://heinrich5991.de/teeworlds/maps/maps/dm1_64548818.map
|
|
- name: '[CLIENT] Test sending chat messages'
|
|
run: |
|
|
./integration_test/run.sh client/chat.rb
|
|
- name: '[CLIENT] Test reconnect'
|
|
run: |
|
|
./integration_test/run.sh client/reconnect.rb
|
|
- name: '[CLIENT] Test rcon'
|
|
run: |
|
|
./integration_test/run.sh client/rcon.rb
|
|
- name: '[SERVER] Test connect'
|
|
run: |
|
|
sudo tcpdump -i lo "port 8377" -w dump.pcap &
|
|
tcpdump_pid=$!
|
|
fail=0
|
|
if ! ./integration_test/run.sh server/connect.rb
|
|
then
|
|
fail=1
|
|
fi
|
|
kill $tcpdump_pid
|
|
sleep 1
|
|
tcpdump -r dump.pcap -nX || true
|
|
[[ "$fail" == "1" ]] && exit 1
|
|
- name: '[SERVER] Test chat'
|
|
run: |
|
|
sudo tcpdump -i lo "port 8377" -w dump.pcap &
|
|
tcpdump_pid=$!
|
|
fail=0
|
|
if ! ./integration_test/run.sh server/chat.rb
|
|
then
|
|
fail=1
|
|
fi
|
|
kill $tcpdump_pid
|
|
sleep 1
|
|
tcpdump -r dump.pcap -nX || true
|
|
[[ "$fail" == "1" ]] && exit 1
|