forked from wolfSSL/wolfssl
19
.github/workflows/multi-compiler.yml
vendored
19
.github/workflows/multi-compiler.yml
vendored
@ -12,19 +12,32 @@ jobs:
|
|||||||
include:
|
include:
|
||||||
- CC: gcc-9
|
- CC: gcc-9
|
||||||
CXX: g++-9
|
CXX: g++-9
|
||||||
|
OS: ubuntu-latest
|
||||||
- CC: gcc-10
|
- CC: gcc-10
|
||||||
CXX: g++-10
|
CXX: g++-10
|
||||||
|
OS: ubuntu-latest
|
||||||
- CC: gcc-11
|
- CC: gcc-11
|
||||||
CXX: g++-11
|
CXX: g++-11
|
||||||
|
OS: ubuntu-latest
|
||||||
- CC: gcc-12
|
- CC: gcc-12
|
||||||
CXX: g++-12
|
CXX: g++-12
|
||||||
|
OS: ubuntu-latest
|
||||||
|
- CC: clang-10
|
||||||
|
CXX: clang++-10
|
||||||
|
OS: ubuntu-20.04
|
||||||
|
- CC: clang-11
|
||||||
|
CXX: clang++-11
|
||||||
|
OS: ubuntu-20.04
|
||||||
- CC: clang-12
|
- CC: clang-12
|
||||||
CXX: clang++-12
|
CXX: clang++-12
|
||||||
|
OS: ubuntu-20.04
|
||||||
- CC: clang-13
|
- CC: clang-13
|
||||||
CXX: clang++-13
|
CXX: clang++-13
|
||||||
|
OS: ubuntu-latest
|
||||||
- CC: clang-14
|
- CC: clang-14
|
||||||
CXX: clang++-14
|
CXX: clang++-14
|
||||||
runs-on: ubuntu-latest
|
OS: ubuntu-latest
|
||||||
|
runs-on: ${{ matrix.OS }}
|
||||||
# This should be a safe limit for the tests to run.
|
# This should be a safe limit for the tests to run.
|
||||||
timeout-minutes: 4
|
timeout-minutes: 4
|
||||||
steps:
|
steps:
|
||||||
@ -34,3 +47,7 @@ jobs:
|
|||||||
CC: ${{ matrix.CC }}
|
CC: ${{ matrix.CC }}
|
||||||
CXX: ${{ matrix.CXX }}
|
CXX: ${{ matrix.CXX }}
|
||||||
run: ./autogen.sh && ./configure && make && make dist
|
run: ./autogen.sh && ./configure && make && make dist
|
||||||
|
- name: Show log on errors
|
||||||
|
if: ${{ failure() }}
|
||||||
|
run: |
|
||||||
|
cat config.log
|
||||||
|
@ -18,6 +18,9 @@ ARG UID=1000
|
|||||||
ARG GID=1000
|
ARG GID=1000
|
||||||
RUN groupadd -f -g ${GID} docker && ( getent passwd ${UID} || useradd -ms /bin/bash ${USER} -u ${UID} -g ${GID} )
|
RUN groupadd -f -g ${GID} docker && ( getent passwd ${UID} || useradd -ms /bin/bash ${USER} -u ${UID} -g ${GID} )
|
||||||
|
|
||||||
|
# Add github.com as an SSH known host
|
||||||
|
RUN ssh -o StrictHostKeyChecking=no -T git@github.com; cat ~/.ssh/known_hosts >> /etc/ssh/ssh_known_hosts
|
||||||
|
|
||||||
# install ccache
|
# install ccache
|
||||||
RUN mkdir -p /opt/ccache/bin && for prog in gcc g++ cc c++ cpp arm-none-eabi-c++ arm-none-eabi-cpp arm-none-eabi-gcc arm-none-eabi-g++; do ln -s /usr/bin/ccache /opt/ccache/bin/$(basename $prog); done
|
RUN mkdir -p /opt/ccache/bin && for prog in gcc g++ cc c++ cpp arm-none-eabi-c++ arm-none-eabi-cpp arm-none-eabi-gcc arm-none-eabi-g++; do ln -s /usr/bin/ccache /opt/ccache/bin/$(basename $prog); done
|
||||||
ENV PATH /opt/ccache/bin:$PATH
|
ENV PATH /opt/ccache/bin:$PATH
|
||||||
@ -44,4 +47,7 @@ RUN setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/tcpdump
|
|||||||
# Allow non-root to use gdb on processes (will need SYS_PTRACE capability when running the container)
|
# Allow non-root to use gdb on processes (will need SYS_PTRACE capability when running the container)
|
||||||
RUN setcap 'CAP_SYS_PTRACE+eip' /usr/bin/gdb
|
RUN setcap 'CAP_SYS_PTRACE+eip' /usr/bin/gdb
|
||||||
|
|
||||||
USER ${UID}:${GID}
|
# Add in Jenkins userID
|
||||||
|
RUN for i in $(seq 1001 1010); do ( getent passwd ${i} || useradd -ms /bin/bash jenkins${i} -u ${i} -g ${GID} ); done
|
||||||
|
|
||||||
|
USER ${UID}:${GID}
|
||||||
|
11
Docker/Dockerfile.cross-compiler
Normal file
11
Docker/Dockerfile.cross-compiler
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
ARG DOCKER_BASE_IMAGE=wolfssl/wolfssl-builder
|
||||||
|
FROM $DOCKER_BASE_IMAGE
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG DEPS_TESTING="gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu"
|
||||||
|
RUN DEBIAN_FRONTEND=noninteractive apt update \
|
||||||
|
&& apt install -y ${DEPS_TESTING} \
|
||||||
|
&& apt clean -y && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
USER docker
|
17
Docker/buildAndPush.sh
Executable file
17
Docker/buildAndPush.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DOCKER_BUILD_OPTIONS="$1"
|
||||||
|
if [ "${DOCKER_BASE_IMAGE}" != "" ]; then
|
||||||
|
DOCKER_BUILD_OPTIONS+=" --build-arg DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
CUR_DATE=$(date -u +%F)
|
||||||
|
echo "Building wolfssl/wolfssl-builder:${CUR_DATE} as ${DOCKER_BUILD_OPTIONS}"
|
||||||
|
docker build -t wolfssl/wolfssl-builder:${CUR_DATE} ${DOCKER_BUILD_OPTIONS} "${WOLFSSL_DIR}/Docker" && \
|
||||||
|
docker push wolfssl/wolfssl-builder:${CUR_DATE} && \
|
||||||
|
docker tag wolfssl/wolfssl-builder:${CUR_DATE} wolfssl/wolfssl-builder:latest && \
|
||||||
|
docker push wolfssl/wolfssl-builder:latest && \
|
||||||
|
docker build --build-arg DOCKER_BASE_IMAGE=wolfssl/wolfssl-builder:${CUR_DATE} -t wolfssl/testing-cross-compiler:${CUR_DATE} "${WOLFSSL_DIR}/Docker" -f Dockerfile.cross-compiler && \
|
||||||
|
docker push wolfssl/testing-cross-compiler:${CUR_DATE} && \
|
||||||
|
docker tag wolfssl/testing-cross-compiler:${CUR_DATE} wolfssl/testing-cross-compiler:latest && \
|
||||||
|
docker push wolfssl/testing-cross-compiler:latest
|
@ -3,9 +3,11 @@
|
|||||||
# All paths should be given relative to the root
|
# All paths should be given relative to the root
|
||||||
|
|
||||||
EXTRA_DIST+= Docker/Dockerfile
|
EXTRA_DIST+= Docker/Dockerfile
|
||||||
|
EXTRA_DIST+= Docker/Dockerfile.cross-compiler
|
||||||
EXTRA_DIST+= Docker/run.sh
|
EXTRA_DIST+= Docker/run.sh
|
||||||
EXTRA_DIST+= Docker/README.md
|
EXTRA_DIST+= Docker/README.md
|
||||||
|
|
||||||
|
ignore_files+=Docker/buildAndPush.sh
|
||||||
ignore_files+=Docker/OpenWRT/Dockerfile
|
ignore_files+=Docker/OpenWRT/Dockerfile
|
||||||
ignore_files+=Docker/OpenWRT/runTests.sh
|
ignore_files+=Docker/OpenWRT/runTests.sh
|
||||||
ignore_files+=Docker/OpenWRT/README.md
|
ignore_files+=Docker/OpenWRT/README.md
|
||||||
|
@ -5,9 +5,9 @@ echo "Running with \"${*}\"..."
|
|||||||
# Assume we're in wolfssl/Docker
|
# Assume we're in wolfssl/Docker
|
||||||
WOLFSSL_DIR=$(builtin cd ${BASH_SOURCE%/*}/..; pwd)
|
WOLFSSL_DIR=$(builtin cd ${BASH_SOURCE%/*}/..; pwd)
|
||||||
|
|
||||||
docker build -t wolfssl --build-arg UID=$(id -u) --build-arg GID=$(id -g) "${WOLFSSL_DIR}/Docker" && \
|
docker build -t wolfssl/wolfssl-builder --build-arg UID=$(id -u) --build-arg GID=$(id -g) "${WOLFSSL_DIR}/Docker" && \
|
||||||
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl /bin/bash -c "./autogen.sh && ./configure ${*@Q} && make" && \
|
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl/wolfssl-builder /bin/bash -c "./autogen.sh && ./configure ${*@Q} && make" && \
|
||||||
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl /bin/bash
|
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl/wolfssl-builder /bin/bash
|
||||||
|
|
||||||
exitval=$?
|
exitval=$?
|
||||||
echo "Exited with error code $exitval"
|
echo "Exited with error code $exitval"
|
||||||
|
Reference in New Issue
Block a user