name: ci on: pull_request: branches: [master] # Cancel old PR builds when pushing new commits. concurrency: group: build-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: common: uses: TokTok/ci-tools/.github/workflows/common-ci.yml@master mypy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: recursive - 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 doxygen: 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/doxygen/Dockerfile tokstyle: 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/tokstyle/Dockerfile misra: 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/misra/Dockerfile cimplefmt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Run cimplefmt run: other/docker/cimplefmt/run -u $(find tox* -name "*.[ch]") 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 with: submodules: recursive - name: Cross compilation run: .github/scripts/cmake-win32 script build-win64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Cross compilation run: .github/scripts/cmake-win64 script build-freebsd: runs-on: ubuntu-latest container: toxchat/freebsd steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Build on FreeBSD run: .github/scripts/cmake-freebsd-stage2 build-macos: runs-on: macos-latest steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Build and test run: .github/scripts/cmake-osx coverage-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Build, test, and upload coverage run: .github/scripts/coverage-linux build-tcc: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: recursive - 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 -Dinline=static -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 toxcore/*/*.c toxencryptsave/*.c third_party/cmp/*.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 with: submodules: recursive - 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 toxcore/*/*.c toxencryptsave/*.c third_party/cmp/*.c -D__COMPCERT__ -DDISABLE_VLA -Dinline= -lpthread $(pkg-config --cflags --libs libsodium opus vpx) - name: Run the test run: "./send_message_test | grep 'tox clients connected'" build-android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: recursive - run: .github/scripts/cmake-android armeabi-v7a - run: .github/scripts/cmake-android arm64-v8a - run: .github/scripts/cmake-android x86 - run: .github/scripts/cmake-android x86_64