1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Speedup test by using cache image.

This commit is contained in:
winlin 2022-08-13 10:27:14 +08:00
parent d4e5138a58
commit 1fe12b8e8c
7 changed files with 84 additions and 77 deletions

View file

@ -22,16 +22,6 @@ RUN apt-get update && apt-get install -y gcc make g++ patch unzip perl git
COPY . /srs
WORKDIR /srs/trunk
# Use srs-cache from base image.
RUN if [[ -d /usr/local/srs-cache/srs/trunk/objs ]]; then \
./configure --generate-objs=on && \
SOURCE_DIR=$(ls -d /usr/local/srs-cache/srs/trunk/objs/Platform-*) && \
TARGET_DIR=$(ls -d objs/Platform-*) && \
echo "Build from cache, source=$SOURCE_DIR, target=$TARGET_DIR" && \
rm -rf $TARGET_DIR && mv $SOURCE_DIR $TARGET_DIR && \
du -sh $TARGET_DIR && ls -lh objs; \
fi
# Build and install SRS.
# Note that SRT is enabled by default, so we configure without --srt=on.
RUN ./configure --jobs=${JOBS} && make -j${JOBS} && make install

View file

@ -1,87 +1,74 @@
########################################################
FROM ossrs/srs:dev AS centos7-baseline
FROM ossrs/srs:dev-cache AS centos7-baseline
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off && make -j2
FROM ossrs/srs:dev AS centos7-no-webrtc
FROM ossrs/srs:dev-cache AS centos7-no-webrtc
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --rtc=off && make -j2
FROM ossrs/srs:dev AS centos7-no-asm
FROM ossrs/srs:dev-cache AS centos7-no-asm
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --nasm=off --srtp-nasm=off && make -j2
FROM ossrs/srs:dev AS centos7-srt
FROM ossrs/srs:dev-cache AS centos7-srt
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=on && make -j2
FROM ossrs/srs:dev AS centos7-ansi-no-ffmpeg
FROM ossrs/srs:dev-cache AS centos7-ansi-no-ffmpeg
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --cxx11=off --cxx14=off --ffmpeg-fit=off && make -j2
########################################################
FROM ossrs/srs:dev6 AS centos6-baseline
FROM ossrs/srs:dev6-cache AS centos6-baseline
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --cxx11=off --cxx14=off && make -j2
FROM ossrs/srs:dev6 AS centos6-srt
FROM ossrs/srs:dev6-cache AS centos6-srt
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=on --cxx11=off --cxx14=off && make -j2
########################################################
FROM ossrs/srs:dev8 AS centos8-baseline
FROM ossrs/srs:ubuntu16-cache AS ubuntu16-baseline
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off && make -j2
FROM ossrs/srs:dev8 AS centos8-srt
FROM ossrs/srs:ubuntu16-cache AS ubuntu16-srt
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=on && make -j2
########################################################
FROM ossrs/srs:ubuntu16 AS ubuntu16-baseline
FROM ossrs/srs:ubuntu18-cache AS ubuntu18-baseline
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off && make -j2
FROM ossrs/srs:ubuntu16 AS ubuntu16-srt
FROM ossrs/srs:ubuntu18-cache AS ubuntu18-srt
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=on && make -j2
########################################################
FROM ossrs/srs:ubuntu18 AS ubuntu18-baseline
FROM ossrs/srs:ubuntu20-cache AS ubuntu20-baseline
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off && make -j2
FROM ossrs/srs:ubuntu18 AS ubuntu18-srt
FROM ossrs/srs:ubuntu20-cache AS ubuntu20-srt
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=on && make -j2
########################################################
FROM ossrs/srs:ubuntu20 AS ubuntu20-baseline
FROM ossrs/srs:ubuntu16-cross-arm AS ubuntu16-cross-armv7
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off && make -j2
RUN cd /srs/trunk && ./configure --jobs=2 --cross-build --cross-prefix=arm-linux-gnueabihf- && make -j2
FROM ossrs/srs:ubuntu20 AS ubuntu20-srt
FROM ossrs/srs:ubuntu16-cross-aarch64 AS ubuntu16-cross-aarch64
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=on && make -j2
RUN cd /srs/trunk && ./configure --jobs=2 --cross-build --cross-prefix=aarch64-linux-gnu- && make -j2
########################################################
FROM ossrs/srs:ubuntu16 AS ubuntu16-cross-armv7
FROM ossrs/srs:ubuntu20-cross-arm AS ubuntu20-cross-armv7
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --cross-build --cc=arm-linux-gnueabihf-gcc --cxx=arm-linux-gnueabihf-g++ \
--ar=arm-linux-gnueabihf-ar --ld=arm-linux-gnueabihf-ld --randlib=arm-linux-gnueabihf-randlib && make -j2
RUN cd /srs/trunk && ./configure --jobs=2 --cross-build --cross-prefix=arm-linux-gnueabihf- && make -j2
FROM ossrs/srs:ubuntu16 AS ubuntu16-cross-aarch64
FROM ossrs/srs:ubuntu20-cross-aarch64 AS ubuntu20-cross-aarch64
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --cross-build --cc=aarch64-linux-gnu-gcc --cxx=aarch64-linux-gnu-g++ \
--ar=aarch64-linux-gnu-ar --ld=aarch64-linux-gnu-ld --randlib=aarch64-linux-gnu-randlib && make -j2
########################################################
FROM ossrs/srs:ubuntu20 AS ubuntu20-cross-armv7
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --cross-build --cc=arm-linux-gnueabihf-gcc --cxx=arm-linux-gnueabihf-g++ \
--ar=arm-linux-gnueabihf-ar --ld=arm-linux-gnueabihf-ld --randlib=arm-linux-gnueabihf-randlib && make -j2
FROM ossrs/srs:ubuntu20 AS ubuntu20-cross-aarch64
COPY . /srs
RUN cd /srs/trunk && ./configure --jobs=2 --srt=off --cross-build --cc=aarch64-linux-gnu-gcc --cxx=aarch64-linux-gnu-g++ \
--ar=aarch64-linux-gnu-ar --ld=aarch64-linux-gnu-ld --randlib=aarch64-linux-gnu-randlib && make -j2
RUN cd /srs/trunk && ./configure --jobs=2 --cross-build --cross-prefix=aarch64-linux-gnu- && make -j2

View file

@ -1,4 +1,4 @@
FROM ossrs/srs:dev-gcc7
FROM ossrs/srs:dev-gcc7-cache
# Install depends tools.
RUN yum install -y gcc make gcc-c++ patch unzip perl git

View file

@ -1,4 +1,4 @@
FROM ossrs/srs:dev-gcc7
FROM ossrs/srs:dev-gcc7-cache
# Install depends tools.
RUN yum install -y gcc make gcc-c++ patch unzip perl git

View file

@ -369,6 +369,22 @@ if [[ $OS_IS_UBUNTU = NO && $OS_IS_CENTOS = NO && $OS_IS_OSX = NO && $SRS_CROSS_
exit 1
fi
#####################################################################################
# Try to load cache if exists /usr/local/srs-cache
#####################################################################################
# Use srs-cache from base image.
if [[ -d /usr/local/srs-cache/srs/trunk/objs && $(pwd) != "/usr/local/srs-cache/srs/trunk" ]]; then
SOURCE_DIR=$(ls -d /usr/local/srs-cache/srs/trunk/objs/Platform-* 2>/dev/null|head -n 1)
if [[ -d $SOURCE_DIR ]]; then
TARGET_DIR=${SRS_OBJS}/${SRS_PLATFORM} &&
echo "Build from cache, source=$SOURCE_DIR, target=$TARGET_DIR" &&
rm -rf $TARGET_DIR && mkdir -p ${SRS_OBJS} && cp -R $SOURCE_DIR $TARGET_DIR &&
du -sh /usr/local/srs-cache/srs/trunk/objs/Platform-* &&
du -sh objs/Platform-* &&
ls -lh objs
fi
fi
#####################################################################################
# state-threads
#####################################################################################