Play with failing CI
This commit is contained in:
parent
74f1205f09
commit
e32ee479a5
15
.github/workflows/integration-docker.yml
vendored
Normal file
15
.github/workflows/integration-docker.yml
vendored
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# name: Integration tests dockerized
|
||||||
|
|
||||||
|
# on:
|
||||||
|
# push:
|
||||||
|
# branches: [ "master" ]
|
||||||
|
# pull_request:
|
||||||
|
# branches: [ "master" ]
|
||||||
|
|
||||||
|
# jobs:
|
||||||
|
# docker:
|
||||||
|
# runs-on: ubuntu-latest
|
||||||
|
# steps:
|
||||||
|
# - uses: actions/checkout@v3
|
||||||
|
# - name: Run integration tests in docker
|
||||||
|
# run: docker build . --file integration_test/Dockerfile --tag teeworlds_network-integration-tests:$(date +%s)
|
39
.github/workflows/integration.yml
vendored
39
.github/workflows/integration.yml
vendored
|
@ -58,27 +58,18 @@ jobs:
|
||||||
./integration_test/run.sh client/rcon.rb
|
./integration_test/run.sh client/rcon.rb
|
||||||
- name: '[SERVER] Test connect'
|
- name: '[SERVER] Test connect'
|
||||||
run: |
|
run: |
|
||||||
sudo tcpdump -i lo "port 8377" -w dump.pcap &
|
./integration_test/run.sh server/connect.rb
|
||||||
tcpdump_pid=$!
|
# - name: '[SERVER] Test chat'
|
||||||
fail=0
|
# run: |
|
||||||
if ! ./integration_test/run.sh server/connect.rb
|
# sudo tcpdump -i lo "port 8377" -w dump.pcap &
|
||||||
then
|
# tcpdump_pid=$!
|
||||||
fail=1
|
# fail=0
|
||||||
fi
|
# if ! ./integration_test/run.sh server/chat.rb
|
||||||
kill $tcpdump_pid
|
# then
|
||||||
sleep 1
|
# fail=1
|
||||||
tcpdump -r dump.pcap -nX || true
|
# fi
|
||||||
[[ "$fail" == "1" ]] && exit 1
|
# kill -SIGINT $tcpdump_pid
|
||||||
- name: '[SERVER] Test chat'
|
# sleep 1
|
||||||
run: |
|
# file dump.pcap
|
||||||
sudo tcpdump -i lo "port 8377" -w dump.pcap &
|
# tcpdump -r dump.pcap -nX || true
|
||||||
tcpdump_pid=$!
|
# [[ "$fail" == "1" ]] && exit 1
|
||||||
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
|
|
||||||
|
|
52
integration_test/Dockerfile
Normal file
52
integration_test/Dockerfile
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
FROM ubuntu:24.04
|
||||||
|
|
||||||
|
RUN apt-get update -y && apt-get install -y sudo
|
||||||
|
RUN sudo apt-get install -y ruby ruby-dev
|
||||||
|
RUN sudo apt-get install -y tcpdump tshark
|
||||||
|
RUN sudo apt-get install -y shellcheck teeworlds-server teeworlds teeworlds-data
|
||||||
|
RUN 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
|
||||||
|
RUN sudo apt-get install -y wget
|
||||||
|
|
||||||
|
RUN wget https://github.com/ChillerDragon/teeworlds/releases/download/v0.7.5-headless/teeworlds-0.7.5-linux_x86_64.tar.gz
|
||||||
|
RUN tar -xvzf teeworlds-0.7.5-linux_x86_64.tar.gz
|
||||||
|
RUN sudo mkdir -p /usr/local/bin/
|
||||||
|
RUN sudo mv teeworlds-0.7.5-linux_x86_64/teeworlds /usr/local/bin/teeworlds-headless
|
||||||
|
RUN rm -rf teeworlds-0.7.5-linux_x86_64*
|
||||||
|
|
||||||
|
RUN wget https://github.com/ChillerDragon/ddnet/releases/download/v16.5-headless/DDNet-headless.zip
|
||||||
|
RUN unzip DDNet-headless.zip
|
||||||
|
RUN sudo mv DDNet-headless /usr/local/bin
|
||||||
|
RUN rm DDNet-headless.zip
|
||||||
|
|
||||||
|
RUN wget https://github.com/ChillerDragon/ddnet/releases/download/v17.4.2-headless-0.7/DDNet7-headless-ubuntu24.zip
|
||||||
|
RUN unzip DDNet7-headless-ubuntu24.zip
|
||||||
|
RUN chmod +x DDNet7-headless
|
||||||
|
RUN sudo mv DDNet7-headless /usr/local/bin
|
||||||
|
RUN rm DDNet7-headless-ubuntu24.zip
|
||||||
|
|
||||||
|
RUN echo 'TODO: remove this ugly hack!'
|
||||||
|
RUN mkdir -p ~/.teeworlds/downloadedmaps
|
||||||
|
RUN cd ~/.teeworlds/downloadedmaps && wget https://heinrich5991.de/teeworlds/maps/maps/dm1_64548818.map
|
||||||
|
|
||||||
|
RUN gem install bundler
|
||||||
|
RUN gem install rubocop:1.31.2
|
||||||
|
|
||||||
|
USER 1000
|
||||||
|
|
||||||
|
WORKDIR /teeworlds_network
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN bundle install --jobs 4 --retry 3
|
||||||
|
|
||||||
|
|
||||||
|
RUN echo '[CLIENT] Test sending chat messages'
|
||||||
|
RUN ./integration_test/run.sh client/chat.rb
|
||||||
|
RUN echo '[CLIENT] Test reconnect'
|
||||||
|
RUN ./integration_test/run.sh client/reconnect.rb
|
||||||
|
RUN echo '[CLIENT] Test rcon'
|
||||||
|
RUN ./integration_test/run.sh client/rcon.rb
|
||||||
|
RUN echo '[SERVER] Test connect'
|
||||||
|
RUN ./integration_test/run.sh server/connect.rb
|
||||||
|
RUN echo '[SERVER] Test chat'
|
||||||
|
RUN ./integration_test/run.sh server/chat.rb
|
||||||
|
|
|
@ -17,6 +17,8 @@ ruby_logfile_err=ruby_client_stderr.txt
|
||||||
_client_pid=''
|
_client_pid=''
|
||||||
_kill_pids=()
|
_kill_pids=()
|
||||||
|
|
||||||
|
[[ -d tmp ]] && rm -rf tmp
|
||||||
|
|
||||||
mkdir -p logs
|
mkdir -p logs
|
||||||
mkdir -p tmp
|
mkdir -p tmp
|
||||||
|
|
||||||
|
@ -32,6 +34,10 @@ start_tw_server() {
|
||||||
then
|
then
|
||||||
teeworlds-srv "$srvcfg" &> "$logdir/server.txt"
|
teeworlds-srv "$srvcfg" &> "$logdir/server.txt"
|
||||||
tw_srv_bin='teeworlds-srv'
|
tw_srv_bin='teeworlds-srv'
|
||||||
|
elif [ -f /usr/games/teeworlds-server ] # needed for docker ubuntu:24.04
|
||||||
|
then
|
||||||
|
/usr/games/teeworlds-server "$srvcfg" &> "$logdir/server.txt"
|
||||||
|
tw_srv_bin='/usr/games/teeworlds-server'
|
||||||
else
|
else
|
||||||
echo "Error: please install a teeworlds_srv"
|
echo "Error: please install a teeworlds_srv"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -220,6 +226,9 @@ fifo() {
|
||||||
local cmd="$1"
|
local cmd="$1"
|
||||||
local fifo_file="$2"
|
local fifo_file="$2"
|
||||||
echo "[*] $cmd >> $fifo_file"
|
echo "[*] $cmd >> $fifo_file"
|
||||||
|
local cmd_slug
|
||||||
|
cmd_slug="${cmd//[^a-zA-Z0-9]/_}"
|
||||||
|
echo "echo \"FIFO: $cmd_slug\"" >> "$fifo_file"
|
||||||
echo "$cmd" >> "$fifo_file"
|
echo "$cmd" >> "$fifo_file"
|
||||||
}
|
}
|
||||||
assert_in_log() {
|
assert_in_log() {
|
||||||
|
|
Loading…
Reference in a new issue