Skip to content

Commit 323095e

Browse files
authored
Run the integration test in this repository (#477)
* Pass only ref as an argument * Run the integration test in this repository * Extract the publish job
1 parent 9243a66 commit 323095e

File tree

1 file changed

+154
-25
lines changed

1 file changed

+154
-25
lines changed

.github/workflows/ci.yml

Lines changed: 154 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches: [ master ]
66
pull_request:
77
branches: [ master ]
8+
workflow_dispatch:
89

910
jobs:
1011
build:
@@ -13,48 +14,176 @@ jobs:
1314

1415
steps:
1516
- uses: actions/checkout@v2
16-
- name: Set up JDK 1.8
17+
18+
- name: Set up JDK 8
1719
uses: actions/setup-java@v1
1820
with:
19-
java-version: 1.8
21+
java-version: 8
22+
2023
- name: Grant execute permission for gradlew
2124
run: chmod +x gradlew
25+
2226
- name: Cache Gradle packages
2327
uses: actions/cache@v2
2428
with:
2529
path: ~/.gradle/caches
2630
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('**/*.gradle') }}
2731
restore-keys: ${{ runner.os }}-gradle
32+
2833
- name: Build with Gradle
2934
run: ./gradlew assemble check
35+
3036
- name: Upload reports
3137
if: always()
3238
uses: actions/upload-artifact@v2
3339
with:
34-
name: reports
40+
name: reports (build)
3541
path: |
3642
doma-core/build/reports
3743
doma-processor/build/reports
3844
test-criteria/build/reports
39-
- name: Publish packages
40-
if: github.event_name == 'push'
41-
run: ./gradlew publish
42-
env:
43-
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
44-
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
45-
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
46-
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
47-
- name: Dispatch integaration test
48-
if: github.event_name == 'push'
49-
uses: benc-uk/workflow-dispatch@v1
50-
with:
51-
workflow: Java CI with Gradle
52-
repo: domaframework/doma-it
53-
ref: master
54-
token: ${{ secrets.WORKFLOW_DISPATCH_TOKEN }}
55-
inputs: |
56-
{ "ref": "${{ github.sha }}",
57-
"pull_request_number": "${{ (github.event.pull_request && github.event.pull_request.number) || null }}",
58-
"pull_request_sha": "${{ (github.event.pull_request && github.event.pull_request.head.sha) || null }}",
59-
"pull_request_title": "",
60-
"message": "" }
45+
46+
integration-test:
47+
if: contains(toJSON(github.event.commits.*.message), '[skip ci]') == false
48+
name: JDK ${{ matrix.java }} and ${{ matrix.db }}
49+
runs-on: ubuntu-latest
50+
51+
strategy:
52+
matrix:
53+
java: [ 8, 11, 14 ]
54+
db: [ h2, postgres, mysql ]
55+
56+
services:
57+
postgres:
58+
image: postgres:10.5
59+
env:
60+
POSTGRES_USER: postgres
61+
POSTGRES_PASSWORD: postgres
62+
POSTGRES_DB: doma_it
63+
ports:
64+
- 127.0.0.1:5432:5432
65+
mysql:
66+
image: mysql:5.7
67+
env:
68+
MYSQL_ROOT_PASSWORD: root
69+
MYSQL_DATABASE: doma_it
70+
ports:
71+
- 3306
72+
73+
steps:
74+
- name: Start the MySQL service
75+
if: matrix.db == 'mysql'
76+
run: |
77+
sudo /etc/init.d/mysql start
78+
mysql -uroot -h127.0.0.1 -proot -e 'create database doma_it;'
79+
80+
- name: Checkout (doma)
81+
uses: actions/checkout@v2
82+
with:
83+
path: doma
84+
85+
- name: Set up JDK (doma)
86+
uses: actions/setup-java@v1
87+
with:
88+
java-version: 8
89+
90+
- name: Grant execute permission for gradlew (doma)
91+
working-directory: ./doma
92+
run: chmod +x gradlew
93+
94+
- name: Build with Gradle (doma)
95+
working-directory: ./doma
96+
run: ./gradlew build -x check
97+
98+
- name: Checkout (doma-it)
99+
uses: actions/checkout@v2
100+
with:
101+
repository: domaframework/doma-it
102+
path: doma-it
103+
104+
- name: Set up JDK (doma-it)
105+
uses: actions/setup-java@v1
106+
with:
107+
java-version: ${{ matrix.java }}
108+
109+
- name: Grant execute permission for gradlew (doma-it)
110+
working-directory: ./doma-it
111+
run: chmod +x gradlew
112+
113+
- name: Build with Gradle (doma-it)
114+
working-directory: ./doma-it
115+
run: ./gradlew assemble
116+
117+
- name: Test with h2 (doma-it)
118+
if: matrix.db == 'h2'
119+
working-directory: ./doma-it
120+
run: ./gradlew check -s
121+
env:
122+
ORG_GRADLE_PROJECT_jdbcUrl: ''
123+
ORG_GRADLE_PROJECT_jdbcUser: ''
124+
ORG_GRADLE_PROJECT_jdbcPassword: ''
125+
126+
- name: Test with postgres (doma-it)
127+
if: matrix.db == 'postgres'
128+
working-directory: ./doma-it
129+
run: ./gradlew check -s
130+
env:
131+
ORG_GRADLE_PROJECT_jdbcUrl: jdbc:postgresql://127.0.0.1/doma_it
132+
ORG_GRADLE_PROJECT_jdbcUser: postgres
133+
ORG_GRADLE_PROJECT_jdbcPassword: postgres
134+
135+
- name: Test with mysql (doma-it)
136+
if: matrix.db == 'mysql'
137+
working-directory: ./doma-it
138+
run: ./gradlew check -s
139+
env:
140+
ORG_GRADLE_PROJECT_jdbcUrl: jdbc:mysql://127.0.0.1/doma_it
141+
ORG_GRADLE_PROJECT_jdbcUser: root
142+
ORG_GRADLE_PROJECT_jdbcPassword: root
143+
144+
- name: Upload reports (doma-it)
145+
if: always()
146+
uses: actions/upload-artifact@v1
147+
with:
148+
name: jdk${{ matrix.java }}-${{ matrix.db }}
149+
path: ./doma-it/build/reports
150+
151+
publish:
152+
if: github.event_name == 'push' && contains(toJSON(github.event.commits.*.message), '[skip ci]') == false
153+
needs: [build, integration-test]
154+
runs-on: ubuntu-latest
155+
156+
steps:
157+
- uses: actions/checkout@v2
158+
159+
- name: Set up JDK 8
160+
uses: actions/setup-java@v1
161+
with:
162+
java-version: 8
163+
164+
- name: Grant execute permission for gradlew
165+
run: chmod +x gradlew
166+
167+
- name: Cache Gradle packages
168+
uses: actions/cache@v2
169+
with:
170+
path: ~/.gradle/caches
171+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('**/*.gradle') }}
172+
restore-keys: ${{ runner.os }}-gradle
173+
174+
- name: Publish packages
175+
run: ./gradlew build publish
176+
env:
177+
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
178+
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
179+
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
180+
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
181+
182+
- name: Upload reports
183+
if: always()
184+
uses: actions/upload-artifact@v2
185+
with:
186+
name: reports (publish)
187+
path: |
188+
doma-core/build/reports
189+
doma-processor/build/reports

0 commit comments

Comments
 (0)