mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
1859d0f44a
Most system headers contain functions (e.g. `memcpy` in `string.h`) which aren't needed in our own header files. For the most part, our own headers should only include types needed to declare our own types and functions. We now enforce this so we think twice about which headers we really need in the .h files.
164 lines
4.7 KiB
YAML
164 lines
4.7 KiB
YAML
name: ci
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
mypy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python 3.9
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.9
|
|
- name: Install mypy
|
|
run: pip install mypy
|
|
- name: Run mypy
|
|
run: |
|
|
(find . -name "*.py" -and -not -name "conanfile.py"; grep -lR '^#!.*python') \
|
|
| xargs -n1 -P8 mypy --strict
|
|
|
|
build-msan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Pull toxchat/toktok-stack:latest-msan
|
|
run: docker pull toxchat/toktok-stack:latest-msan
|
|
- name: Run tests under MemorySanitizer
|
|
# TODO(iphydf): Remove "|| true" once this works correctly.
|
|
run: docker run --rm -v $PWD:/src/workspace/c-toxcore toxchat/toktok-stack:latest-msan
|
|
bazel test //c-toxcore/auto_tests:lossless_packet_test || true
|
|
|
|
build-nacl:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
- name: Docker Build
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
file: other/docker/autotools/Dockerfile
|
|
|
|
build-win32:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Docker Build
|
|
run: .github/scripts/cmake-win32 install
|
|
- name: Cross compilation
|
|
run: .github/scripts/cmake-win32 script
|
|
|
|
build-win64:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Docker Build
|
|
run: .github/scripts/cmake-win64 install
|
|
- name: Cross compilation
|
|
run: .github/scripts/cmake-win64 script
|
|
|
|
build-freebsd:
|
|
runs-on: ubuntu-latest
|
|
container: toxchat/freebsd
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build on FreeBSD
|
|
run: .github/scripts/cmake-freebsd-stage2
|
|
|
|
build-macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build and test
|
|
run: .github/scripts/cmake-osx
|
|
|
|
coverage-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build and test
|
|
run: .github/scripts/cmake-linux
|
|
env:
|
|
CC: gcc
|
|
CXX: g++
|
|
- name: Upload coverage
|
|
run: .github/scripts/upload-coverage
|
|
|
|
build-tcc:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install dependencies
|
|
run:
|
|
sudo apt-get install -y --no-install-recommends
|
|
tcc
|
|
libconfig-dev
|
|
libopus-dev
|
|
libsodium-dev
|
|
libvpx-dev
|
|
- name: Build with TCC
|
|
run:
|
|
tcc
|
|
-o send_message_test
|
|
-Wall -Werror
|
|
-bench -g
|
|
auto_tests/auto_test_support.c
|
|
auto_tests/send_message_test.c
|
|
testing/misc_tools.c
|
|
toxav/*.c
|
|
toxcore/*.c
|
|
toxencryptsave/*.c
|
|
$(pkg-config --cflags --libs libsodium opus vpx)
|
|
- name: Run the test
|
|
run: "./send_message_test | grep 'tox clients connected'"
|
|
- name: Build amalgamation file with TCC
|
|
run:
|
|
other/make_single_file
|
|
auto_tests/auto_test_support.c
|
|
auto_tests/send_message_test.c
|
|
testing/misc_tools.c |
|
|
tcc -
|
|
-o send_message_test
|
|
-Wall -Werror
|
|
-bench -g
|
|
$(pkg-config --cflags --libs libsodium opus vpx)
|
|
- name: Run the test again
|
|
run: "./send_message_test | grep 'tox clients connected'"
|
|
|
|
build-compcert:
|
|
runs-on: ubuntu-latest
|
|
container: toxchat/compcert
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build with CompCert
|
|
run:
|
|
ccomp
|
|
-o send_message_test
|
|
-Wall -Werror
|
|
-Wno-c11-extensions
|
|
-Wno-unknown-pragmas
|
|
-Wno-unused-variable
|
|
-fstruct-passing -fno-unprototyped -g
|
|
auto_tests/auto_test_support.c
|
|
auto_tests/send_message_test.c
|
|
testing/misc_tools.c
|
|
toxav/*.c
|
|
toxcore/*.c
|
|
toxencryptsave/*.c
|
|
-D__COMPCERT__ -DDISABLE_VLA
|
|
-lpthread $(pkg-config --cflags --libs libsodium opus vpx)
|
|
- name: Run the test
|
|
run: "./send_message_test | grep 'tox clients connected'"
|
|
|
|
buildifier:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Check
|
|
run: |
|
|
wget --no-verbose --output-document=buildifier https://github.com/bazelbuild/buildtools/releases/download/4.2.5/buildifier-linux-amd64
|
|
sudo chmod +x buildifier
|
|
./buildifier --lint=warn --warnings=all -mode diff $(find . -type f -name BUILD.bazel)
|