From cf2465e21c3d1f9db40a338561f2dc320f8852bd Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 4 Jul 2024 19:54:59 +0800 Subject: [PATCH] Release v5.15.11 --- .github/workflows/test.yml | 359 +------------------------------- platform/version.go | 2 +- scripts/setup-aapanel/info.json | 2 +- scripts/setup-bt/info.json | 2 +- scripts/setup-droplet/srs.json | 2 +- ui/src/pages/Settings.js | 2 +- 6 files changed, 7 insertions(+), 362 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 65fb8b6e..3d8ff9bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,9 +32,8 @@ jobs: SRS_MAJOR: ${{ env.SRS_MAJOR }} runs-on: ubuntu-20.04 - build-platform-image: - name: Build platform image - runs-on: ubuntu-20.04 + test-en-image: + name: Test EN image needs: - envs steps: @@ -44,21 +43,6 @@ jobs: run: | docker build -t platform:latest -f Dockerfile . docker images - docker save -o platform.tar platform:latest - - uses: actions/upload-artifact@v3 - with: - name: platform-cache - path: platform.tar - retention-days: 1 - - test-en-image: - name: Test EN image - needs: - - envs - - build-platform-image - steps: - - name: Checkout repository - uses: actions/checkout@v3 - name: Download test file run: | curl --location --output test/source.200kbps.768x320.flv \ @@ -68,12 +52,8 @@ jobs: docker run --rm -v /usr/bin:/g ossrs/srs:tools \ cp /usr/local/bin/ffmpeg /usr/local/bin/ffprobe /g/ ffmpeg -version - - uses: actions/download-artifact@v3 - with: - name: platform-cache - name: Run test for platform image run: | - docker load -i platform.tar docker tag platform ossrs/oryx:5 docker run --rm -d -p 2022:2022 -p 2443:2443 -p 1935:1935 \ -p 8000:8000/udp -p 10080:10080/udp --name oryx \ @@ -125,339 +105,6 @@ jobs: exit $ret runs-on: ubuntu-20.04 - test-bt-plugin: - name: Test BT plugin - runs-on: ubuntu-20.04 - needs: - - envs - - build-platform-image - steps: - - name: Remove unnecessary files - run: | - df -h - echo "" - echo "After removed some unused files." - echo "" - sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \ - /usr/local/share/powershell /usr/share/swift /usr/lib/jvm - df -h - - name: Covert output to env - run: | - echo "SRS_TAG=${{ needs.envs.outputs.SRS_TAG }}" >> $GITHUB_ENV - echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_MAJOR }}" >> $GITHUB_ENV - - name: Checkout repository - uses: actions/checkout@v3 - - name: Download test file - run: | - curl --location --output test/source.200kbps.768x320.flv \ - https://github.com/ossrs/srs/raw/develop/trunk/doc/source.200kbps.768x320.flv - - name: Install tools - run: | - docker run --rm -v /usr/bin:/g ossrs/srs:tools \ - cp /usr/local/bin/ffmpeg /usr/local/bin/ffprobe /g/ - ffmpeg -version - - uses: actions/download-artifact@v3 - with: - name: platform-cache - # See https://github.com/moby/moby/issues/13742#issuecomment-725197223 - - name: Force docker to use vfs. - run: | - sudo systemctl stop docker - echo '{"cgroup-parent":"/actions_job","storage-driver":"vfs"}' | sudo tee /etc/docker/daemon.json - sudo systemctl start docker - - name: Add hosts to /etc/hosts - run: | - sudo echo "127.0.0.1 srs.stack.local" | sudo tee -a /etc/hosts - - name: Build package - run: | - bash scripts/setup-bt/auto/zip.sh --version $SRS_TAG \ - --output build --extract - du -sh build/* - - name: Start BT develop container - env: - BT_API: ${{ secrets.BT_API }} - BT_USER: ${{ secrets.BT_USER }} - run: | - mkdir -p $HOME/.bt - echo -n "$BT_API" > $HOME/.bt/api.json - echo -n "$BT_USER" > $HOME/.bt/userInfo.json - BT_KEY=$(cat $HOME/.bt/api.json |awk -F token_crypt '{print $2}' |cut -d'"' -f3) - - # Note that we must mount the /data to allow test to read the MGMT_PASSWORD in /data/config/.env - docker run -v /data:/data -p 80:80 -p 443:443 -p 7800:7800 \ - -p 2022:2022 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \ - -v $(pwd)/build/oryx:/www/server/panel/plugin/oryx \ - -v $HOME/.bt/userInfo.json:/www/server/panel/data/userInfo.json \ - -v $HOME/.bt/api.json:/www/server/panel/config/api.json -e BT_KEY=$BT_KEY \ - --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - -d --rm -v $(pwd):/g -w /g --name=bt ossrs/bt-plugin-dev:1 - echo "BT docker started." - - name: Wait for systemd service start - run: | - # We will handle the error by ourselves. - set +e - - for ((i=0; i<10; i++)); do - if [[ $(docker exec bt systemctl status docker >/dev/null 2>/dev/null && echo yes) == yes ]]; then - echo "Docker service started." - break - else - echo "Wait for docker service start." - sleep 1 - fi - done - - docker exec bt systemctl status docker - echo "Docker service started." - - name: Import platform image to BT - run: | - docker exec bt docker load -i platform.tar - echo "Import platform image to BT ok." - - docker exec bt docker tag platform:latest ossrs/oryx:$SRS_TAG - docker exec bt docker tag platform:latest ossrs/oryx:$SRS_MAJOR - docker exec bt docker tag platform:latest registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:$SRS_TAG - docker exec bt docker tag platform:latest registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:$SRS_MAJOR - echo "Tag platform image to BT ok." - - docker exec bt docker images - - name: Install Oryx plugin - run: | - docker exec bt bash /www/server/panel/plugin/oryx/install.sh install - echo "Install Oryx plugin ok." - - docker exec bt python3 /www/server/panel/plugin/oryx/bt_api_create_site.py - docker exec bt python3 /www/server/panel/plugin/oryx/bt_api_setup_site.py - echo "Create SRS site ok." - - docker exec bt bash /www/server/panel/plugin/oryx/setup.sh \ - --r0 /tmp/oryx_install.r0 --nginx /www/server/nginx/logs/nginx.pid \ - --www /www/wwwroot --site srs.stack.local - echo "Setup Oryx plugin ok." - - echo "Setup the dns lookup for domain" - PIP=$(docker exec bt ifconfig eth0 |grep 'inet ' |awk '{print $2}') && - docker exec bt bash -c "echo '$PIP srs.stack.local' >> /etc/hosts" && - docker exec bt cat /etc/hosts && echo OK && - docker exec bt docker exec oryx bash -c "echo '$PIP srs.stack.local' >> /etc/hosts" && - docker exec bt docker exec oryx cat /etc/hosts - - set +e - docker exec bt systemctl status oryx - docker exec bt journalctl -u oryx - docker exec bt docker logs oryx - - name: Check and Test service - env: - SRS_OPENAI_KEY: ${{ secrets.SRS_OPENAI_KEY }} - run: | - # We will handle the error by ourselves. - set +e - - # Record all logs. - docker exec bt journalctl -u oryx -f >journalctl.log 2>&1 & - - echo "Wait for service ready." && - make -j -C test && - bash scripts/tools/secret.sh --output test/.env && - ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint http://srs.stack.local:80 \ - -srs-log=true -wait-ready=true -init-password=true -init-self-signed-cert=true \ - -check-api-secret=true -test.run TestSystem_Empty && - - echo "Make upload writable." && - sudo chmod 777 /data/upload && - - echo "Test HTTP service." && - bash scripts/tools/secret.sh --output test/.env && - ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint http://srs.stack.local:80 \ - -srs-log=true -wait-ready=true -init-password=false -init-self-signed-cert=false \ - -check-api-secret=true -no-media-test && - - echo "Test HTTPS service." && - bash scripts/tools/secret.sh --output test/.env && - ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint https://srs.stack.local:443 \ - -srs-log=true -wait-ready=true -init-password=false -init-self-signed-cert=false \ - -check-api-secret=true -no-media-test && - - echo "Run media test with retry" && - bash scripts/tools/secret.sh --output test/.env && - ./scripts/tools/failed-retry.sh 3 ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint http://srs.stack.local:80 \ - -srs-log=true -wait-ready=true -init-password=false -init-self-signed-cert=false \ - -check-api-secret=true -test.run WithStream - ret=$?; echo "Test result: $ret" - - echo "Stop service" - docker exec bt systemctl stop oryx - docker stop bt - - echo "Log of journalctl.log" && cat journalctl.log - - exit $ret - - test-aapanel-plugin: - name: Test aaPanel plugin - runs-on: ubuntu-20.04 - needs: - - envs - - build-platform-image - steps: - - name: Remove unnecessary files - run: | - df -h - echo "" - echo "After removed some unused files." - echo "" - sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \ - /usr/local/share/powershell /usr/share/swift /usr/lib/jvm - df -h - - name: Covert output to env - run: | - echo "SRS_TAG=${{ needs.envs.outputs.SRS_TAG }}" >> $GITHUB_ENV - echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_MAJOR }}" >> $GITHUB_ENV - - name: Checkout repository - uses: actions/checkout@v3 - - name: Download test file - run: | - curl --location --output test/source.200kbps.768x320.flv \ - https://github.com/ossrs/srs/raw/develop/trunk/doc/source.200kbps.768x320.flv - - name: Install tools - run: | - docker run --rm -v /usr/bin:/g ossrs/srs:tools \ - cp /usr/local/bin/ffmpeg /usr/local/bin/ffprobe /g/ - ffmpeg -version - - uses: actions/download-artifact@v3 - with: - name: platform-cache - # See https://github.com/moby/moby/issues/13742#issuecomment-725197223 - - name: Force docker to use vfs. - run: | - sudo systemctl stop docker - echo '{"cgroup-parent":"/actions_job","storage-driver":"vfs"}' | sudo tee /etc/docker/daemon.json - sudo systemctl start docker - - name: Add hosts to /etc/hosts - run: | - sudo echo "127.0.0.1 srs.stack.local" | sudo tee -a /etc/hosts - - name: Build package - run: | - bash scripts/setup-aapanel/auto/zip.sh --version $SRS_TAG \ - --output build --extract - du -sh build/* - - name: Start aaPanel develop container - env: - AAPANEL_API: ${{ secrets.BT_API }} - run: | - mkdir -p $HOME/.aapanel - echo -n "$AAPANEL_API" > $HOME/.aapanel/api.json - AAPANEL_KEY=$(cat $HOME/.aapanel/api.json |awk -F token_crypt '{print $2}' |cut -d'"' -f3) - - # Note that we must mount the /data to allow test to read the MGMT_PASSWORD in /data/config/.env - docker run -v /data:/data -p 80:80 -p 443:443 -p 7800:7800 \ - -p 2022:2022 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \ - -v $(pwd)/build/oryx:/www/server/panel/plugin/oryx \ - -v $HOME/.aapanel/api.json:/www/server/panel/config/api.json -e BT_KEY=$AAPANEL_KEY \ - --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - -d --rm -v $(pwd):/g -w /g --name=aapanel ossrs/aapanel-plugin-dev:1 - echo "aaPanel docker started." - - name: Wait for systemd service start - run: | - # We will handle the error by ourselves. - set +e - - for ((i=0; i<10; i++)); do - if [[ $(docker exec aapanel systemctl status docker >/dev/null 2>/dev/null && echo yes) == yes ]]; then - echo "Docker service started." - break - else - echo "Wait for docker service start." - sleep 1 - fi - done - - docker exec aapanel systemctl status docker - echo "Docker service started." - - name: Import platform image to aaPanel - run: | - docker exec aapanel docker load -i platform.tar - echo "Import platform image to aaPanel ok." - - docker exec aapanel docker tag platform:latest ossrs/oryx:$SRS_TAG - docker exec aapanel docker tag platform:latest ossrs/oryx:$SRS_MAJOR - docker exec aapanel docker tag platform:latest registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:$SRS_TAG - docker exec aapanel docker tag platform:latest registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:$SRS_MAJOR - echo "Tag platform image to aaPanel ok." - - docker exec aapanel docker images - - name: Install Oryx plugin - run: | - docker exec aapanel bash /www/server/panel/plugin/oryx/install.sh install - echo "Install Oryx plugin ok." - - docker exec aapanel python3 /www/server/panel/plugin/oryx/bt_api_create_site.py - docker exec aapanel python3 /www/server/panel/plugin/oryx/bt_api_setup_site.py - echo "Create SRS site ok." - - docker exec aapanel bash /www/server/panel/plugin/oryx/setup.sh \ - --r0 /tmp/oryx_install.r0 --nginx /www/server/nginx/logs/nginx.pid \ - --www /www/wwwroot --site srs.stack.local - echo "Setup Oryx plugin ok." - - echo "Setup the dns lookup for domain" - PIP=$(docker exec aapanel ifconfig eth0 |grep 'inet ' |awk '{print $2}') && - docker exec aapanel bash -c "echo '$PIP srs.stack.local' >> /etc/hosts" && - docker exec aapanel cat /etc/hosts && echo OK && - docker exec aapanel docker exec oryx bash -c "echo '$PIP srs.stack.local' >> /etc/hosts" && - docker exec aapanel docker exec oryx cat /etc/hosts - - set +e - docker exec aapanel systemctl status oryx - docker exec aapanel journalctl -u oryx - docker exec aapanel docker logs oryx - - name: Check and Test service - env: - SRS_OPENAI_KEY: ${{ secrets.SRS_OPENAI_KEY }} - run: | - # We will handle the error by ourselves. - set +e - - # Record all logs. - docker exec aapanel journalctl -u oryx -f >journalctl.log 2>&1 & - - echo "Wait for service ready." && - make -j -C test && - bash scripts/tools/secret.sh --output test/.env && - ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint http://srs.stack.local:80 \ - -srs-log=true -wait-ready=true -init-password=true -init-self-signed-cert=true \ - -check-api-secret=true -test.run TestSystem_Empty && - - echo "Make upload writable." && - sudo chmod 777 /data/upload && - - echo "Test HTTP service." && - bash scripts/tools/secret.sh --output test/.env && - ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint http://srs.stack.local:80 \ - -srs-log=true -wait-ready=true -init-password=false -init-self-signed-cert=false \ - -check-api-secret=true -no-media-test && - - echo "Test HTTPS service." && - bash scripts/tools/secret.sh --output test/.env && - ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint https://srs.stack.local:443 \ - -srs-log=true -wait-ready=true -init-password=false -init-self-signed-cert=false \ - -check-api-secret=true -no-media-test && - - echo "Run media test with retry" && - bash scripts/tools/secret.sh --output test/.env && - ./scripts/tools/failed-retry.sh 3 ./test/oryx.test -test.timeout=1h -test.failfast -test.v -endpoint http://srs.stack.local:80 \ - -srs-log=true -wait-ready=true -init-password=false -init-self-signed-cert=false \ - -check-api-secret=true -test.run WithStream - ret=$?; echo "Test result: $ret" - - echo "Stop service" - docker exec aapanel systemctl stop oryx - docker stop aapanel - - echo "Log of journalctl.log" && cat journalctl.log - - exit $ret - check-pr-test: steps: - name: Wait for PR Test Workflow @@ -480,7 +127,5 @@ jobs: needs: - check-pr-test - test-en-image - - test-bt-plugin - - test-aapanel-plugin steps: - run: echo OK diff --git a/platform/version.go b/platform/version.go index e2c1ba36..410c64b3 100644 --- a/platform/version.go +++ b/platform/version.go @@ -6,4 +6,4 @@ package main // The version for platform. -const version = "v5.15.5" +const version = "v5.15.11" diff --git a/scripts/setup-aapanel/info.json b/scripts/setup-aapanel/info.json index 57c13527..ed533b43 100644 --- a/scripts/setup-aapanel/info.json +++ b/scripts/setup-aapanel/info.json @@ -2,7 +2,7 @@ "title": "Oryx", "name": "oryx", "ps": "Oryx(SRS Stack) is an all-in-one, out-of-the-box, and open-source video solution for creating online video services, including live streaming and WebRTC, on the cloud or through self-hosting. Built with SRS, FFmpeg, and WebRTC, it supports various protocols and offers features like authentication, multi-platform streaming, recording, transcoding, virtual live events, AI transcription, AI assistant, Video Dubbing, automatic HTTPS, and HTTP Open API.", - "versions": "5.15.5", + "versions": "5.15.11", "checks": "/www/server/panel/plugin/oryx", "author": "Winlin", "home": "https://github.com/ossrs/oryx" diff --git a/scripts/setup-bt/info.json b/scripts/setup-bt/info.json index efb0cb8f..79349caa 100644 --- a/scripts/setup-bt/info.json +++ b/scripts/setup-bt/info.json @@ -2,7 +2,7 @@ "title": "Oryx", "name": "oryx", "ps": "Oryx(SRS Stack)让你一键拥有自己的视频云解决方案,可以在云上或私有化部署,支持丰富的音视频协议,提供鉴权、私人直播间、多平台转播、录制、转码、虚拟直播、AI字幕、直播间AI助手、视频翻译、自动HTTPS、开放API等丰富功能,基于SRS、FFmpeg和WebRTC构建。", - "versions": "5.15.5", + "versions": "5.15.11", "checks": "/www/server/panel/plugin/oryx", "author": "Winlin", "home": "https://github.com/ossrs/oryx" diff --git a/scripts/setup-droplet/srs.json b/scripts/setup-droplet/srs.json index 75bc1994..5ecc0b69 100644 --- a/scripts/setup-droplet/srs.json +++ b/scripts/setup-droplet/srs.json @@ -3,7 +3,7 @@ "do_token": "{{env `DIGITALOCEAN_TOKEN`}}", "image_name": "srs-5-snapshot-{{timestamp}}", "application_name": "SRS", - "application_version": "5.15.5" + "application_version": "5.15.11" }, "sensitive-variables": ["do_token"], "builders": [ diff --git a/ui/src/pages/Settings.js b/ui/src/pages/Settings.js index 6f746f49..7bdf0940 100644 --- a/ui/src/pages/Settings.js +++ b/ui/src/pages/Settings.js @@ -527,7 +527,7 @@ function SettingLLM() { alert(t('helper.setOk')); console.log(`Setting: Update open ai ok`); }).catch(handleError); - }, [handleError, aiSecretKey, aiBaseURL, aiOrganization]); + }, [t, handleError, aiSecretKey, aiBaseURL, aiOrganization]); return <>