version: 2 jobs: build-c7-baseline: docker: - image: ossrs/srs:dev steps: - checkout - run: | echo "Build SRS baseline" && cd trunk && ./configure && make build-c7-nortc: docker: - image: ossrs/srs:dev steps: - checkout - run: | echo "Build SRS without RTC" && cd trunk && ./configure --rtc=off && make build-c7-noasm: docker: - image: ossrs/srs:dev steps: - checkout - run: | echo "Build SRS without NASM or SRTP-NASM" && cd trunk && ./configure --nasm=off --srtp-nasm=off && make build-c7-srt: docker: - image: ossrs/srs:dev steps: - checkout - run: | echo "Build SRS with SRT" && cd trunk && ./configure --srt=on && make build-c8-baseline: docker: - image: ossrs/srs:dev8 steps: - checkout - run: | echo "Build SRS for CentOS8" && cd trunk && ./configure && make build-c8-srt: docker: - image: ossrs/srs:dev8 steps: - checkout - run: | echo "Build SRS with SRT for CentOS8" && cd trunk && ./configure --srt=on && make build-u16-baseline: docker: - image: ossrs/srs:ubuntu16 steps: - checkout - run: | echo "Build SRS for Ubuntu16" && cd trunk && ./configure && make build-u16-srt: docker: - image: ossrs/srs:ubuntu16 steps: - checkout - run: | echo "Build SRS with SRT for Ubuntu16" && cd trunk && ./configure --srt=on && make build-u18-baseline: docker: - image: ossrs/srs:ubuntu18 steps: - checkout - run: | echo "Build SRS for Ubuntu18" && cd trunk && ./configure && make build-u18-srt: docker: - image: ossrs/srs:ubuntu18 steps: - checkout - run: | echo "Build SRS with SRT for Ubuntu18" && cd trunk && ./configure --srt=on && make build-u20-baseline: docker: - image: ossrs/srs:ubuntu20 steps: - checkout - run: | echo "Build SRS for Ubuntu20" && cd trunk && ./configure && make build-u20-srt: docker: - image: ossrs/srs:ubuntu20 steps: - checkout - run: | echo "Build SRS with SRT for Ubuntu20" && cd trunk && ./configure --srt=on && make run-utest: docker: - image: ossrs/srs:dev steps: - checkout - run: | echo "Build and run utest for SRS" && cd trunk && ./configure --utest=on --gcov=on && make && ./objs/srs_utest && bash auto/codecov.sh run-regression-test: docker: - image: ossrs/srs:dev steps: - checkout - run: | echo "Build and run SRS with regression config" && cd trunk && ./configure && make && ./objs/srs -c conf/regression-test.conf && echo "Run srs-bench regression test" && cd 3rdparty/srs-bench && make && ./objs/srs_test -test.v build-c7-ansi-noff: docker: - image: ossrs/srs:dev steps: - checkout - run: | echo "Build SRS C++98(ANSI), no FFmpeg-fit" && cd trunk && ./configure --cxx11=off --cxx14=off --ffmpeg-fit=off && make build-cross-build-armv7: docker: - image: ossrs/srs:ubuntu16 steps: - checkout - run: | echo "Cross build SRS for armv7" && cd trunk && ./configure --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 build-cross-build-aarch64: docker: - image: ossrs/srs:ubuntu16 steps: - checkout - run: | echo "Cross build SRS for aarch64" && cd trunk && ./configure --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 workflows: version: 2 build_and_test: jobs: - build-c7-baseline - build-c7-nortc - build-c7-noasm - build-c7-srt - build-c8-baseline - build-c8-srt - build-u16-baseline - build-u16-srt - build-u18-baseline - build-u18-srt - build-u20-baseline - build-u20-srt - build-c7-ansi-noff - build-cross-build-armv7 - build-cross-build-aarch64 - run-utest: requires: - build-c7-baseline - build-c7-nortc - build-c7-noasm - build-c7-srt - build-c8-baseline - build-c8-srt - build-u16-baseline - build-u16-srt - build-u18-baseline - build-u18-srt - build-u20-baseline - build-u20-srt - build-c7-ansi-noff - build-cross-build-armv7 - build-cross-build-aarch64 - run-regression-test: requires: - run-utest