Skip to content

Commit 3599d5a

Browse files
committed
Add CI workflow and Gemini PR review automation
1 parent 32b3361 commit 3599d5a

File tree

2 files changed

+565
-0
lines changed

2 files changed

+565
-0
lines changed

.github/workflows/ci.yml

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# .github/workflows/ci.yml
2+
name: CI
3+
4+
on:
5+
push:
6+
branches: [ main ]
7+
paths: ['**/*.kt', '**/*.kts', '.github/workflows/ci.yml']
8+
pull_request:
9+
branches: [ main ]
10+
11+
jobs:
12+
build:
13+
if: github.event_name == 'push' || github.event_name == 'pull_request'
14+
runs-on: ubuntu-latest
15+
name: "Run Tests"
16+
17+
env:
18+
GH_USERNAME: ${{ github.actor }}
19+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20+
21+
steps:
22+
- name: Checkout code
23+
uses: actions/checkout@v4
24+
25+
- name: Set envs
26+
run: |
27+
echo "GITHUB_CURRENT_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
28+
echo "GITHUB_CURRENT_REPO_NAME=${GITHUB_REPOSITORY}" >> $GITHUB_ENV
29+
echo "GITHUB_CURRENT_REPO_URL=https://github.com/${GITHUB_REPOSITORY}" >> $GITHUB_ENV
30+
echo "GITHUB_CURRENT_RUN_URL=https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" >> $GITHUB_ENV
31+
echo "GITHUB_CURRENT_RUN_ID=${GITHUB_RUN_ID}" >> $GITHUB_ENV
32+
echo "GITHUB_CURRENT_RUN_TRIGGERING_ACTOR=${GITHUB_TRIGGERING_ACTOR}" >> $GITHUB_ENV
33+
echo "GITHUB_CURRENT_RUN_ATTEMPT=${GITHUB_RUN_ATTEMPT}" >> $GITHUB_ENV
34+
35+
- name: Notify slack on test start
36+
id: slack-test-start
37+
uses: slackapi/[email protected]
38+
with:
39+
channel-id: "C060CAKN98T"
40+
payload: |
41+
{
42+
"blocks": [
43+
{
44+
"type": "section",
45+
"fields": [
46+
{
47+
"type": "mrkdwn",
48+
"text": "*Application:*\n<${{ env.GITHUB_CURRENT_REPO_URL }}|${{ env.GITHUB_CURRENT_REPO_NAME }}>"
49+
},
50+
{
51+
"type": "mrkdwn",
52+
"text": "*Branch:*\n`${{ env.GITHUB_CURRENT_BRANCH }}`"
53+
},
54+
{
55+
"type": "mrkdwn",
56+
"text": "*Tests:*\n:large_yellow_circle: Running <${{ env.GITHUB_CURRENT_RUN_URL }}|(view)>"
57+
}
58+
]
59+
}
60+
]
61+
}
62+
env:
63+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
64+
65+
- name: Set up JDK 23
66+
uses: actions/setup-java@v4
67+
with:
68+
distribution: 'temurin'
69+
java-version: 23
70+
71+
- name: Cache Gradle dependencies
72+
uses: actions/cache@v4
73+
with:
74+
path: |
75+
~/.gradle/caches
76+
~/.gradle/wrapper
77+
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
78+
restore-keys: |
79+
gradle-${{ runner.os }}-
80+
81+
- name: Grant execute permission for gradlew
82+
run: chmod +x gradlew
83+
84+
- name: Test
85+
run: ./gradlew test
86+
87+
- name: Notify slack on passed tests
88+
id: slack-tests-passed
89+
uses: slackapi/[email protected]
90+
with:
91+
channel-id: "C060CAKN98T"
92+
update-ts: ${{ steps.slack-test-start.outputs.ts }}
93+
payload: |
94+
{
95+
"blocks": [
96+
{
97+
"type": "section",
98+
"fields": [
99+
{
100+
"type": "mrkdwn",
101+
"text": "*Application:*\n<${{ env.GITHUB_CURRENT_REPO_URL }}|${{ env.GITHUB_CURRENT_REPO_NAME }}>"
102+
},
103+
{
104+
"type": "mrkdwn",
105+
"text": "*Branch:*\n`${{ env.GITHUB_CURRENT_BRANCH }}`"
106+
},
107+
{
108+
"type": "mrkdwn",
109+
"text": "*Tests:*\n:large_green_circle: Passed <${{ env.GITHUB_CURRENT_RUN_URL }}|(view)>"
110+
}
111+
]
112+
}
113+
]
114+
}
115+
env:
116+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
117+
118+
- name: Notify slack on failed tests
119+
if: ${{ failure() }}
120+
id: slack-tests-failed
121+
uses: slackapi/[email protected]
122+
with:
123+
channel-id: "C060CAKN98T"
124+
update-ts: ${{ steps.slack-test-start.outputs.ts }}
125+
payload: |
126+
{
127+
"blocks": [
128+
{
129+
"type": "section",
130+
"fields": [
131+
{
132+
"type": "mrkdwn",
133+
"text": "*Application:*\n<${{ env.GITHUB_CURRENT_REPO_URL }}|${{ env.GITHUB_CURRENT_REPO_NAME }}>"
134+
},
135+
{
136+
"type": "mrkdwn",
137+
"text": "*Branch:*\n`${{ env.GITHUB_CURRENT_BRANCH }}`"
138+
},
139+
{
140+
"type": "mrkdwn",
141+
"text": "*Tests:*\n:red_circle: Failed <${{ env.GITHUB_CURRENT_RUN_URL }}|(view)>"
142+
}
143+
]
144+
}
145+
]
146+
}
147+
env:
148+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}

0 commit comments

Comments
 (0)