Repository navigation
92 lines (79 loc) Β· 3.15 KB
/
Copy pathprod-ci.yml
File metadata and controls
92 lines (79 loc) Β· 3.15 KB
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
name: RUNNECT PROD CI
on:
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
# ν
μ€νΈ(contextLoads λ±)λ μ€μ prod DB/Redisκ° μλλΌ CI μμμ λμ°λ
# μμ 컨ν
μ΄λλ₯Ό λ°λΌλ³΄κ² νλ€ (μ격 prod νκ²½μ μ§μ μμ‘΄νμ§ μλλ‘).
# Course.pathκ° PostGIS geometry 컬λΌμ΄λΌ μμ postgres μ΄λ―Έμ§λ‘λ κ·Έ 컬λΌμ΄ μλ
# ν
μ΄λΈ(course) μμ± μμ²΄κ° μ€ν¨νλ€(Hibernateκ° ddl-auto μ€ν¨λ₯Ό μ‘°μ©ν 무μν΄μ
# μ§κΈκΉμ§ λλ¬λμ§ μμμ λΏ, course ν
μ΄λΈμ΄ CIμ μ‘΄μ¬ν μ μ΄ μμλ€ β μ€μ Course rowκ°
# νμ μλ ν
μ€νΈλ§ μ°μ°ν κ³μ ν΅κ³Όν΄μ¨ κ²). prod/stagingκ³Ό λμΌνκ² PostGISκ° ν¬ν¨λ
# μ΄λ―Έμ§λ₯Ό μ¨μ CIκ° μ€μ νκ²½κ³Ό κ°μ μ€ν€λ§λ‘ κ²μ¦νλλ‘ νλ€.
services:
postgres:
image: postgis/postgis:15-3.4
env:
POSTGRES_DB: runnect
POSTGRES_USER: runnect
POSTGRES_PASSWORD: runnect_local_password
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'gradle'
- name: make application.properties νμΌ μμ±
run: |
## create application.yml
mkdir -p ./src/main/resources
cd ./src/main/resources
# application.yml νμΌ μμ±
touch ./application.yml
# GitHub-Actions μμ μ€μ ν κ°μ application.yml νμΌμ μ°κΈ°
echo "${{ secrets.RUNNECT_PROD_APPLICATION }}" >> ./application.yml
# application.yml νμΌ νμΈ
cat ./application.yml
shell: bash
# μ΄ μν¬νλ‘μ°λ gradle build
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
env:
SPRING_DATASOURCE_URL: jdbc:postgresql://localhost:5432/runnect
SPRING_DATASOURCE_USERNAME: runnect
SPRING_DATASOURCE_PASSWORD: runnect_local_password
SPRING_DATA_REDIS_HOST: localhost
# PRμμ μλ‘ μΆκ°/μμ λ λΌμΈλ§ 컀λ²λ¦¬μ§λ₯Ό κ²μ¬νλ€ (μ 체 컀λ²λ¦¬μ§ κ²μ΄νΈκ° μλ).
# λ‘μ§μ΄ λ°λμλλ° ν
μ€νΈκ° μ λ°λΌμ€λ κ²½μ°λ₯Ό CIμμ κΈ°κ³μ μΌλ‘ μ‘κΈ° μν¨.
- name: Diff coverage κ²μ΄νΈ (λ³κ²½λ λΌμΈ κΈ°μ€)
run: |
pip install diff-cover
diff-cover build/reports/jacoco/test/jacocoTestReport.xml \
--compare-branch=origin/${{ github.base_ref }} \
--fail-under=70