-
Notifications
You must be signed in to change notification settings - Fork 622
154 lines (130 loc) · 6.28 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: Ant Media Server Community Edition Test
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
jobs:
build:
runs-on: ubuntu-22.04
env:
GPG_TTY: ${{ secrets.GPG_TTY }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'maven'
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '16.20.2'
cache: 'npm'
- name: Import GPG key
run: ls
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y redis-tools mongodb-org ffmpeg wondershaper
- name: Start Redis
run: sudo systemctl start redis-server
- name: Start MongoDB
run: sudo mongod --dbpath /var/lib/mongodb &
- name: Install Chrome
run: sudo apt-get install -y ./google-chrome-stable_current_amd64.deb
- name: Clone and build Ant Media Server Parent project
run: |
git clone --depth=1 -b ${{ github.ref_name }} https://github.com/ant-media/ant-media-server-parent.git || git clone --depth=1 https://github.com/ant-media/ant-media-server-parent.git
cd ant-media-server-parent
mvn clean install -DskipTests -Dmaven.javadoc.skip=true -Dgpg.skip=true --quiet
cd ..
- name: Build Ant Media Server project
run: mvn clean install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -Dgpg.skip=true --quiet
- name: Clone and build StreamApp project
run: |
git clone --depth=1 -b ${{ github.ref_name }} https://github.com/ant-media/StreamApp.git || git clone --depth=1 https://github.com/ant-media/StreamApp.git
cd StreamApp
npm install
npm run compile
cd embedded-player
npm install
npm run compile
npm run deploy
cd ..
mvn clean install -DskipTests -Dmaven.javadoc.skip=true -Dgpg.skip=true -B -V --quiet
cd ..
- name: Clone and build Web Panel Angular project
run: |
npm install -g @angular/[email protected]
git clone --depth=1 -b ${{ github.ref_name }} https://github.com/ant-media/ManagementConsole_AngularApp.git || git clone --depth=1 https://github.com/ant-media/ManagementConsole_AngularApp.git
cd ManagementConsole_AngularApp
npm install
ng build --prod
cp -a ./dist/. ../src/main/server/webapps/root/
mkdir -p $HOME/.antmedia/cache
rm -rf $HOME/.antmedia/cache/node_modules
cd ..
- name: Replace ffmpeg builds
run: |
wget -O ~/.m2/repository/org/bytedeco/ffmpeg/5.1.2-1.5.8/ffmpeg-5.1.2-1.5.8-linux-x86_64.jar https://storage.sbg.cloud.ovh.net/v1/AUTH_8cb28f9bc6ee43f0a3a1825efbb4311e/test-storage/ffmpeg-5.1.2-1.5.8-linux-x86_64.jar
wget -O ~/.m2/repository/org/bytedeco/ffmpeg/5.1.2-1.5.8/ffmpeg-5.1.2-1.5.8-linux-arm64.jar https://storage.sbg.cloud.ovh.net/v1/AUTH_8cb28f9bc6ee43f0a3a1825efbb4311e/test-storage/ffmpeg-5.1.2-1.5.8-linux-arm64.jar
- name: Package Ant Media Server
run: mvn clean package -U -P assemble -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -DskipTests=true --quiet
- name: Install Ant Media Server
run: |
wget https://raw.githubusercontent.com/ant-media/Scripts/${{ github.ref_name }}/install_ant-media-server.sh -O target/install_ant-media-server.sh || wget https://raw.githubusercontent.com/ant-media/Scripts/master/install_ant-media-server.sh -O target/install_ant-media-server.sh
chmod 755 target/install_ant-media-server.sh
cd target
./install_ant-media-server.sh -i ant-media-server-community*.zip
cd ..
sleep 20
if [[ -f /usr/local/antmedia/log/antmedia-error.log ]]; then
cat /usr/local/antmedia/log/antmedia-error.log
fi
cat /usr/local/antmedia/log/ant-media-server.log
cp src/test/resources/preset-red5-web.properties /usr/local/antmedia/webapps/LiveApp/WEB-INF/red5-web.properties
cp src/test/resources/preset-red5-web.db /usr/local/antmedia/liveapp.db
sed -i 's^server.cpu_limit=.*^server.cpu_limit=100^' /usr/local/antmedia/conf/red5.properties
sed -i 's^server.memory_limit_percentage=.*^server.memory_limit_percentage=100^' /usr/local/antmedia/conf/red5.properties
sudo service antmedia stop
sudo service antmedia start
sleep 10
cat /usr/local/antmedia/log/ant-media-server.log
- name: Run tests and SonarCloud analysis
run: |
export RELEASE_VERSION="$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec)"
echo $RELEASE_VERSION
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package org.jacoco:jacoco-maven-plugin:report sonar:sonar -Dmaven.javadoc.skip=true --quiet
mvn org.owasp:dependency-check-maven:check -DfailOnError=false --quiet
- name: Cache Ant Media Server logs on failure
if: failure()
run: |
cat /usr/local/antmedia/log/ant-media-server.log
cat /usr/local/antmedia/log/antmedia-error.log
cat /var/log/mongodb/mongod.log
if [[ -f /usr/local/antmedia/hs_err_pid*.log ]]; then
cat /usr/local/antmedia/hs_err_pid*.log
fi
if [[ -f hs_err_pid*.log ]]; then
cat hs_err_pid*.log
fi
sudo service mongod status
sudo service redis-server status
- name: Deploy snapshots
if: github.ref_type != 'tag'
run: |
echo "Deploy to snapshots"
mvn deploy -P assemble -DskipTests --settings mvn-settings.xml
echo "Deploy to snapshots exited with $?"
- name: Deploy release
if: startsWith(github.ref, 'refs/tags/ams-v')
run: |
echo "Deploy to release"
mvn deploy -P assemble -DskipTests --settings mvn-settings.xml --quiet
echo "Deploy to release exited with $?"