Skip to content

Commit

Permalink
chore: Add a compcert docker run script.
Browse files Browse the repository at this point in the history
Useful for local runs. Does the same as CI, so if it fails on CI, this
can be used to test locally, avoiding slow CI round trips.
  • Loading branch information
iphydf committed Nov 18, 2023
1 parent 41e6ea8 commit 6c35cef
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 46 deletions.
73 changes: 27 additions & 46 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,24 +60,44 @@ jobs:
with:
file: other/docker/misra/Dockerfile

cimplefmt:
build-nacl:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Docker Build
uses: docker/build-push-action@v2
with:
submodules: recursive
- name: Run cimplefmt
run: other/docker/cimplefmt/run -u $(find tox* -name "*.[ch]")
file: other/docker/autotools/Dockerfile

build-nacl:
build-tcc:
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
file: other/docker/tcc/Dockerfile

build-compcert:
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/compcert/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-win32:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -125,45 +145,6 @@ jobs:
- name: Build, test, and upload coverage
run: .github/scripts/coverage-linux

build-tcc:
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/tcc/Dockerfile

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:
Expand Down
30 changes: 30 additions & 0 deletions other/docker/compcert/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
FROM toxchat/compcert:latest

WORKDIR /work
COPY auto_tests/ /work/auto_tests/
COPY testing/ /work/testing/
COPY toxav/ /work/toxav/
COPY toxcore/ /work/toxcore/
COPY toxencryptsave/ /work/toxencryptsave/
COPY third_party/ /work/third_party/

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

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) \
&& ./send_message_test | grep 'tox clients connected'
5 changes: 5 additions & 0 deletions other/docker/compcert/run
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh

set -eux

docker build -t toxchat/c-toxcore:compcert -f other/docker/compcert/Dockerfile .

0 comments on commit 6c35cef

Please sign in to comment.