1+ name : PlayTak Server CI/CD Beta
2+
3+ on :
4+ push :
5+ branches : [ "dev" ]
6+ paths :
7+ - ' server/**'
8+
9+ jobs :
10+ build :
11+
12+ runs-on : ubuntu-latest
13+
14+ environment : Beta
15+
16+ steps :
17+ - uses : actions/checkout@v3
18+ - name : Set up JDK 21
19+ uses : actions/setup-java@v3
20+ with :
21+ java-version : ' 21'
22+ distribution : ' temurin'
23+ cache : maven
24+
25+ - name : Build with Maven
26+ working-directory : ./server
27+ run : |
28+ mvn -B compile
29+ mvn -B package
30+
31+ - name : Prep Artifact
32+ working-directory : ./server
33+ env :
34+ PROPERTIES : ${{ secrets.PROPERTIES }}
35+ run : |
36+ rm properties.xml
37+ touch properties.xml
38+ echo "${PROPERTIES}" >> properties.xml
39+ mkdir dist
40+ mv properties.xml ./dist
41+ mv ./target/takserver-jar-with-dependencies.jar ./dist/takserver-beta.jar
42+ tar -czf artifact-beta.tar.gz ./dist/*
43+
44+ - name : Deploy
45+ working-directory : ./server
46+ env :
47+ PRIVATE_KEY : ${{ secrets.PRIVATE_KEY }}
48+ HOSTNAME : ${{ secrets.HOSTNAME }}
49+ USER_NAME : ${{ secrets.USER_NAME }}
50+ SSH_PORT : ${{ secrets.SSH_PORT }}
51+ run : |
52+ echo "$PRIVATE_KEY" > private_key.pem && chmod 0400 private_key.pem
53+ scp -P ${SSH_PORT} -o StrictHostKeyChecking=no -i private_key.pem artifact-beta.tar.gz ${USER_NAME}@${HOSTNAME}:~
54+ ssh -p ${SSH_PORT} -o StrictHostKeyChecking=no -i private_key.pem ${USER_NAME}@${HOSTNAME} '
55+ source /etc/profile
56+ echo "setting up tmp folder"
57+ rm -rf playtak-server-beta-tmp
58+ mkdir playtak-server-beta-tmp
59+ echo "extracting artifact"
60+ tar -xzf artifact-beta.tar.gz -C ./playtak-server-beta-tmp
61+ echo "stopping existing beta takserver"
62+ sudo systemctl stop takserver-beta.service
63+ echo "rsyncing files into beta folder"
64+ sudo rsync -a playtak-server-beta-tmp/dist/ /var/apps/playtak-server-beta
65+ echo "Starting app"
66+ sudo systemctl start takserver-beta.service
67+ '
0 commit comments