fix #2452
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Websockets CI | |
on: | |
push: | |
paths-ignore: | |
- '**.md' | |
- '**.yml' | |
- '!**/websockets_ci.yml' | |
- 'cmd/tools/**' | |
- '!cmd/tools/builders/**.v' | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
- '**.yml' | |
- '!**/websockets_ci.yml' | |
- 'cmd/tools/**' | |
- '!cmd/tools/builders/**.v' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
websocket_tests: | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 121 | |
env: | |
VFLAGS: -cc tcc -no-retry-compilation | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build v | |
run: | | |
echo $VFLAGS | |
sudo ln -s $PWD/thirdparty/tcc/tcc.exe /usr/local/bin/tcc ## TODO: remove | |
make -j4 && ./v symlink | |
./v -g -o v cmd/v | |
- name: Install dependencies | |
run: v retry -- sudo apt install --quiet -y libssl-dev | |
- name: v doctor | |
run: ./v doctor | |
- name: Run websockets tests | |
run: ./v -g test vlib/net/websocket/ | |
## Autobahn integrations tests | |
- name: Run autobahn services | |
run: docker compose -f ${{github.workspace}}/vlib/net/websocket/tests/autobahn/docker-compose.yml up -d | |
- name: Wait for the service to start | |
run: sleep 10s | |
- name: Build client test | |
run: docker exec autobahn_client "/src/v" "/src/vlib/net/websocket/tests/autobahn/autobahn_client.v" | |
- name: Run client test | |
run: docker exec autobahn_client "/src/vlib/net/websocket/tests/autobahn/autobahn_client" | |
- name: Build client wss test | |
run: docker exec autobahn_client "/src/v" "/src/vlib/net/websocket/tests/autobahn/autobahn_client_wss.v" | |
- name: Run client wss test | |
run: docker exec autobahn_client "/src/vlib/net/websocket/tests/autobahn/autobahn_client_wss" | |
- name: Run server test | |
run: docker exec autobahn_server "wstest" "-m" "fuzzingclient" "-s" "/config/fuzzingclient.json" | |
- name: Copy reports | |
run: docker cp autobahn_server:/reports ${{github.workspace}}/reports | |
- name: Copy reports wss | |
run: docker cp autobahn_server_wss:/reports ${{github.workspace}}/reports_wss | |
- name: Test success | |
run: docker exec autobahn_server "python" "/check_results.py" | |
- name: Test success WSS | |
run: docker exec autobahn_server_wss "python" "/check_results.py" | |
- name: Publish all reports | |
uses: actions/upload-artifact@v4 | |
with: | |
name: full report | |
path: ${{github.workspace}}/reports | |
- name: Publish report client | |
uses: actions/upload-artifact@v4 | |
with: | |
name: client | |
path: ${{github.workspace}}/reports/clients/index.html | |
- name: Publish report server | |
uses: actions/upload-artifact@v4 | |
with: | |
name: server | |
path: ${{github.workspace}}/reports/servers/index.html | |
- name: Publish all reports WSS | |
uses: actions/upload-artifact@v4 | |
with: | |
name: full report wss | |
path: ${{github.workspace}}/reports_wss | |
- name: Publish report client wss | |
uses: actions/upload-artifact@v4 | |
with: | |
name: client wss | |
path: ${{github.workspace}}/reports_wss/clients/index.html |