Skip to content

Commit 5f4ec7d

Browse files
authored
Merge pull request #16 from USTakAssociation/dev
Dev to main
2 parents 3b8b57a + 5a5c4ae commit 5f4ec7d

File tree

119 files changed

+6633
-109
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+6633
-109
lines changed
Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,54 @@
1-
name: Playtak API service deploy Dev
1+
name: PlayTak API service deploy Dev
22

33
on:
44
push:
55
branches: [ dev ]
6+
paths:
7+
- 'api/**'
68

79
jobs:
810
build:
911

1012
runs-on: ubuntu-20.04
13+
1114
environment: Beta
15+
1216
strategy:
1317
matrix:
1418
node-version: [22.x]
1519

1620
steps:
1721
- uses: actions/checkout@v2
18-
- name: Use Node.js ${{ matrix.node-version }}
22+
23+
- name: Setup Node.js ${{ matrix.node-version }}
1924
uses: actions/setup-node@v1
2025
with:
2126
node-version: ${{ matrix.node-version }}
22-
- run: npm ci
27+
28+
- name: Install dependencies
29+
working-directory: ./api
30+
run: npm ci
2331

2432
- name: Lint code
33+
working-directory: ./api
2534
run: npm run lint
2635

2736
- name: Run Unit tests
37+
working-directory: ./api
2838
run: npm run test
2939

3040
- name: Build
41+
working-directory: ./api
3142
env:
3243
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
3344
run: |
3445
mkdir -p ./src/assets/
3546
touch ./src/assets/client_secret.json
3647
echo -n "${CLIENT_SECRET}" >> ./src/assets/client_secret.json
3748
npm run build
49+
3850
- name: Prep Artifact
51+
working-directory: ./api
3952
env:
4053
PORT : ${{ secrets.PORT }}
4154
NODE_ENV: ${{ secrets.NODE_ENV }}
@@ -61,9 +74,10 @@ jobs:
6174
echo "RATING_CRON_VALUE = ${RATING_CRON_VALUE}" >> .env
6275
mv .env ./dist
6376
mv node_modules ./dist
64-
mv previous.txt ./dist
6577
tar -czf artifact.tar.gz ./dist
78+
6679
- name: Deploy
80+
working-directory: ./api
6781
env:
6882
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
6983
HOSTNAME : ${{ secrets.HOSTNAME }}
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,45 @@
1-
name: Playtak API service deploy Prod
1+
name: PlayTak API service deploy Prod
22

33
on:
44
push:
55
branches: [ main ]
6+
paths:
7+
- 'api/**'
68

79
jobs:
810
build:
911

1012
runs-on: ubuntu-20.04
13+
1114
environment: Prod
15+
1216
strategy:
1317
matrix:
1418
node-version: [22.x]
1519

1620
steps:
1721
- uses: actions/checkout@v2
18-
- name: Use Node.js ${{ matrix.node-version }}
22+
- name: Setup Node.js ${{ matrix.node-version }}
1923
uses: actions/setup-node@v1
2024
with:
2125
node-version: ${{ matrix.node-version }}
22-
- run: npm ci
23-
24-
- name: Lint code
25-
run: npm run lint
2626

27-
- name: Run Unit tests
28-
run: npm run test
27+
- name: Install dependencies
28+
working-directory: ./api
29+
run: npm ci
2930

3031
- name: Build
32+
working-directory: ./api
3133
env:
3234
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
3335
run: |
3436
mkdir -p ./src/assets/
3537
touch ./src/assets/client_secret.json
3638
echo -n "${CLIENT_SECRET}" >> ./src/assets/client_secret.json
3739
npm run build
40+
3841
- name: Prep Artifact
42+
working-directory: ./api
3943
env:
4044
PORT : ${{ secrets.PORT }}
4145
NODE_ENV: ${{ secrets.NODE_ENV }}
@@ -62,7 +66,9 @@ jobs:
6266
mv .env ./dist
6367
mv node_modules ./dist
6468
tar -czf artifact.tar.gz ./dist
69+
6570
- name: Deploy
71+
working-directory: ./api
6672
env:
6773
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
6874
HOSTNAME : ${{ secrets.HOSTNAME }}
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
name: Play Tak API CI
1+
name: PlayTak API CI
22

33
on:
44
pull_request:
55
branches:
66
- main
77
- dev
8+
paths:
9+
- 'api/**'
810

911
jobs:
1012
lint_and_test:
@@ -17,16 +19,19 @@ jobs:
1719

1820
steps:
1921
- uses: actions/checkout@v3
20-
- name: Use Node.js ${{ matrix.node-version }}
22+
- name: Setup Node.js ${{ matrix.node-version }}
2123
uses: actions/setup-node@v3
2224
with:
2325
node-version: ${{ matrix.node-version }}
2426

2527
- name: Install Dependencies
28+
working-directory: ./api
2629
run: npm ci
2730

2831
- name: Lint code
32+
working-directory: ./api
2933
run: npm run lint
3034

3135
- name: Run Unit tests
36+
working-directory: ./api
3237
run: npm run test
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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+
'
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: PlayTak Server CI/CD Prod
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
paths:
7+
- 'server/**'
8+
9+
jobs:
10+
build:
11+
12+
runs-on: ubuntu-latest
13+
14+
environment: Prod
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-prod.jar
42+
tar -czf artifact-prod.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-prod.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-prod-tmp
58+
mkdir playtak-server-prod-tmp
59+
echo "extracting artifact"
60+
tar -xzf artifact-prod.tar.gz -C ./playtak-server-prod-tmp
61+
echo "stopping existing prod takserver"
62+
sudo systemctl stop takserver-prod.service
63+
echo "rsyncing files into prod folder"
64+
sudo rsync -a playtak-server-prod-tmp/dist/ /var/apps/playtak-server-prod
65+
echo "Starting app"
66+
sudo systemctl start takserver-prod.service
67+
'

.gitignore

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1 @@
1-
# compiled output
2-
/dist
3-
/node_modules
4-
/src/assets/client_secret.json
5-
6-
# Logs
7-
logs
8-
*.log
9-
npm-debug.log*
10-
pnpm-debug.log*
11-
yarn-debug.log*
12-
yarn-error.log*
13-
lerna-debug.log*
14-
.env
15-
16-
17-
# OS
18-
.DS_Store
19-
20-
# Tests
21-
/coverage
22-
/.nyc_output
23-
24-
# IDEs and editors
25-
/.idea
26-
.project
27-
.classpath
28-
.c9/
29-
*.launch
30-
.settings/
31-
*.sublime-workspace
32-
33-
# IDE - VSCode
34-
.vscode/*
35-
!.vscode/settings.json
36-
!.vscode/tasks.json
37-
!.vscode/launch.json
38-
!.vscode/extensions.json
39-
40-
previous.txt
1+
playtakdb/

.nvm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v20.18.1

.vscode/launch.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"type": "java",
9+
"name": "Current File",
10+
"request": "launch",
11+
"mainClass": "${file}"
12+
},
13+
{
14+
"type": "java",
15+
"name": "Main",
16+
"request": "launch",
17+
"mainClass": "tak.Main",
18+
"projectName": "takserver",
19+
},
20+
{
21+
"name": "Debug: API",
22+
"port": 9231,
23+
"request": "attach",
24+
"type": "node",
25+
"restart": true,
26+
"remoteRoot": "/usr/src/app",
27+
"localRoot": "${workspaceRoot}/api/",
28+
"address": "0.0.0.0",
29+
"skipFiles": ["<node_internals>/**"]
30+
},
31+
]
32+
}

.vscode/settings.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"java.debug.settings.hotCodeReplace": "auto",
3+
"java.configuration.updateBuildConfiguration": "automatic",
4+
"editor.tabSize": 2,
5+
"editor.detectIndentation": true,
6+
"editor.useTabStops": true,
7+
"editor.insertSpaces": false
8+
}

0 commit comments

Comments
 (0)