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

Windows: Support cygwin pipline and packager. v5.0.89 (#3257)

1. Support github actions on Windows Server 2022.
2. Use cygwin64 in windows-latest to build SRS.
3. Package SRS-xxx-setup.exe by NSIS.exe
4. Patch crypto/include/config.h for libsrtp.
5. Support run as administrator.
6. Apply utest for cygwin.
7. Enable srtp over openssl.
This commit is contained in:
Winlin 2022-11-20 15:02:08 +08:00 committed by GitHub
parent d741f81110
commit b18ee398ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 834 additions and 60 deletions

View file

@ -4,6 +4,34 @@ name: "Test"
on: [push, pull_request]
jobs:
cygwin64:
name: cygwin64
runs-on: windows-latest
steps:
# See https://github.com/cygwin/cygwin-install-action#parameters
# Note that https://github.com/egor-tensin/setup-cygwin fails to install packages.
- name: Setup Cygwin
uses: cygwin/cygwin-install-action@master
with:
platform: x86_64
packages: bash make gcc-g++ cmake automake patch pkg-config tcl
install-dir: C:\cygwin64
##################################################################################################################
- name: Checkout repository
uses: actions/checkout@v2
##################################################################################################################
- name: Build and test SRS
env:
SHELLOPTS: igncr
SRS_WORKSPACE: ${{ github.workspace }}
shell: C:\cygwin64\bin\bash.exe --login '{0}'
run: |
export PATH=/usr/bin:/usr/local/bin &&
cd $(cygpath -u $SRS_WORKSPACE)/trunk && ./configure --utest=on && make utest &&
./objs/srs_utest
outputs:
SRS_CYGWIN_DONE: ok
build-centos7:
name: build-centos7
runs-on: ubuntu-20.04
@ -23,6 +51,8 @@ jobs:
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos7-no-asm .
- name: Build on CentOS7, C++98, no FFmpeg
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos7-ansi-no-ffmpeg .
outputs:
SRS_BUILD_CENTOS7_DONE: ok
build-centos6:
name: build-centos6
@ -37,6 +67,8 @@ jobs:
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos6-baseline .
- name: Build on CentOS6, with all features
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target centos6-all .
outputs:
SRS_BUILD_CENTOS6_DONE: ok
build-ubuntu16:
name: build-ubuntu16
@ -51,6 +83,8 @@ jobs:
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-baseline .
- name: Build on Ubuntu16, with all features
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-all .
outputs:
SRS_BUILD_UBUNTU16_DONE: ok
build-ubuntu18:
name: build-ubuntu18
@ -65,6 +99,8 @@ jobs:
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu18-baseline .
- name: Build on Ubuntu18, with all features
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu18-all .
outputs:
SRS_BUILD_UBUNTU18_DONE: ok
build-ubuntu20:
name: build-ubuntu20
@ -79,6 +115,8 @@ jobs:
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu20-baseline .
- name: Build on Ubuntu20, with all features
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu20-all .
outputs:
SRS_BUILD_UBUNTU20_DONE: ok
build-cross-arm:
name: build-cross-arm
@ -92,6 +130,8 @@ jobs:
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-cross-armv7 .
- name: Cross Build for ARMv7 on Ubuntu20
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu20-cross-armv7 .
outputs:
SRS_BUILD_CROSS_ARM_DONE: ok
build-cross-aarch64:
name: build-cross-aarch64
@ -105,6 +145,8 @@ jobs:
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu16-cross-aarch64 .
- name: Cross Build for AARCH64 on Ubuntu20
run: DOCKER_BUILDKIT=1 docker build -f trunk/Dockerfile.builds --target ubuntu20-cross-aarch64 .
outputs:
SRS_BUILD_CROSS_AARCH64_DONE: ok
build:
name: build
@ -119,6 +161,8 @@ jobs:
runs-on: ubuntu-20.04
steps:
- run: echo 'Build done'
outputs:
SRS_BUILD_DONE: ok
utest:
name: utest
@ -135,10 +179,14 @@ jobs:
# For regression-test
- name: Run SRS regression-test
run: docker run --rm srs:test bash -c 'make && (./objs/srs -c conf/regression-test.conf; ./etc/init.d/srs status) && cd 3rdparty/srs-bench && make && ./objs/srs_test -test.v'
outputs:
SRS_UTEST_DONE: ok
coverage:
name: coverage
runs-on: ubuntu-20.04
needs:
- utest
steps:
- name: Checkout repository
uses: actions/checkout@v2
@ -166,6 +214,8 @@ jobs:
--env SRS_BRANCH=$SRS_BRANCH --env SRS_PR=$SRS_PR --env SRS_SHA=$SRS_SHA --env SRS_PROJECT=$SRS_PROJECT \
srs:cov bash -c 'make utest && ./objs/srs_utest && bash auto/codecov.sh'
#
outputs:
SRS_COVERAGE_DONE: ok
multile-arch-armv7:
name: multile-arch-armv7
@ -186,6 +236,8 @@ jobs:
--output "type=image,push=false" \
--build-arg IMAGE=ossrs/srs:ubuntu20-cache \
-f trunk/Dockerfile .
outputs:
SRS_MULTIPLE_ARCH_ARMV7_DONE: ok
multile-arch-aarch64:
name: multile-arch-aarch64
@ -206,10 +258,14 @@ jobs:
--output "type=image,push=false" \
--build-arg IMAGE=ossrs/srs:ubuntu20-cache \
-f trunk/Dockerfile .
outputs:
SRS_MULTIPLE_ARCH_AARCH64_DONE: ok
multile-arch-amd64:
name: multile-arch-amd64
runs-on: ubuntu-20.04
needs:
- utest
steps:
- name: Checkout repository
uses: actions/checkout@v2
@ -226,10 +282,13 @@ jobs:
--output "type=image,push=false" \
--build-arg IMAGE=ossrs/srs:ubuntu20-cache \
-f trunk/Dockerfile .
outputs:
SRS_MULTIPLE_ARCH_AMD64_DONE: ok
done:
name: done
needs:
- cygwin64
- build
- coverage
- multile-arch-armv7