-
Notifications
You must be signed in to change notification settings - Fork 18
67 lines (57 loc) · 1.87 KB
/
react.js.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
name: ChatGPT Clone App CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
eslint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run lint # Assuming your linting script is named "lint"
test:
needs: eslint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run test # Assuming you have a test script defined for your tests
deploy:
needs: [eslint, test]
runs-on: ubuntu-latest
steps:
- name: Deploy to Kinsta
env:
KINSTA_API_KEY: ${{ secrets.KINSTA_API_KEY }} # Assuming you have your API key stored as a GitHub secret
run: |
set +e # Disable error handling temporarily to check the exit code of the curl command
response=$(curl -i -X POST \
https://api.kinsta.com/v2/applications/deployments \
-H "Authorization: Bearer $KINSTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"app_id": "97354c6b-089f-4643-bef0-f466ba4e9dbc",
"branch": "main"
}' 2>&1) # Capture both stdout and stderr
exit_code=$?
set -e # Re-enable error handling
if [ $exit_code -ne 0 ]; then
echo "$response" # Output the error response for visibility
exit 1 # Exit with an error status code to mark the job as failed
fi
# Add more jobs if needed...