-
Notifications
You must be signed in to change notification settings - Fork 0
[setting] ci/cd 구축, 코드 리뷰어 자동지정 #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The head ref may contain hidden characters: "setting/ci-cd-\uAD6C\uCD95"
Conversation
- jdk 17 - apk 빌드 - 슬랙 알림
- PR 리뷰 자동 지정
- develop으로의 푸쉬 시 트리거 - firebase 환경 설정 - firebase app distribution 업로드
- main으로의 푸쉬 시 트리거 - google 환경 설정 - aab 구글 내부 테스트 배포
- 버전 태그 생성 시 트리거 - google 환경 설정 - aab 프로덕션 배포
WalkthroughSeveral new GitHub Actions workflows have been added to automate continuous integration and deployment for an Android app, covering debug builds, Firebase distribution, Google Play internal testing, and production releases. Additionally, a CODEOWNERS file was introduced to assign review responsibilities for all repository files. Changes
Sequence Diagram(s)sequenceDiagram
participant Developer
participant GitHub
participant GitHub Actions
participant Firebase
participant Google Play
participant Slack
Developer->>GitHub: Push code / Open PR
GitHub->>GitHub Actions: Trigger workflow (CI/CD)
GitHub Actions->>GitHub Actions: Checkout, setup JDK, cache dependencies
alt CI (PR Build)
GitHub Actions->>GitHub Actions: Build debug APK
GitHub Actions->>Slack: Notify build status
else Firebase Distribution
GitHub Actions->>GitHub Actions: Build release APK
GitHub Actions->>Firebase: Upload APK
GitHub Actions->>Slack: Notify deployment status
else Google Play Internal Test
GitHub Actions->>GitHub Actions: Build signed AAB
GitHub Actions->>Google Play: Upload to internal test
GitHub Actions->>Slack: Notify deployment status
else Google Play Production
GitHub Actions->>GitHub Actions: Build signed AAB
GitHub Actions->>Google Play: Upload to production
GitHub Actions->>Slack: Notify release status
end
Poem
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (3)
.github/workflows/ace_build.yml (1)
66-66: Missing trailing newline (YAML-lint).Add a final
\nto avoid tooling noise..github/workflows/ace_production.yml (1)
96-96: Add newline at EOF.Minor, but keeps YAML-lint quiet.
.github/workflows/ace_internal_test.yml (1)
96-96: Trailing newline absent.Low-impact, but fix for clean lint.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
.github/CODEOWNERS(1 hunks).github/workflows/ace_build.yml(1 hunks).github/workflows/ace_firebase_distribution.yml(1 hunks).github/workflows/ace_internal_test.yml(1 hunks).github/workflows/ace_production.yml(1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.7)
.github/workflows/ace_build.yml
36-36: step must run script with "run" section or run action with "uses" section
(syntax-check)
.github/workflows/ace_firebase_distribution.yml
2-2: "on" section is missing in workflow
(syntax-check)
.github/workflows/ace_internal_test.yml
2-2: "on" section is missing in workflow
(syntax-check)
.github/workflows/ace_production.yml
2-2: "on" section is missing in workflow
(syntax-check)
🪛 YAMLlint (1.37.1)
.github/workflows/ace_build.yml
[error] 66-66: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/ace_internal_test.yml
[error] 96-96: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/ace_production.yml
[error] 96-96: no new line character at the end of file
(new-line-at-end-of-file)
🔇 Additional comments (4)
.github/CODEOWNERS (1)
1-1: No issues – CODEOWNERS looks good.Wildcard pattern and owners list are valid.
.github/workflows/ace_firebase_distribution.yml (1)
4-9: Workflow is disabled –on:block is commented out.Without an
on:key GitHub will ignore this file.
If you intend manual runs only, add:on: workflow_dispatch:Otherwise restore the intended trigger (e.g.
push:todevelop)..github/workflows/ace_production.yml (1)
4-9: No trigger defined – workflow never starts.Uncomment or add an
on:section (e.g. tag push orworkflow_dispatch)..github/workflows/ace_internal_test.yml (1)
4-8: Missingon:– internal-test workflow won’t run.Add a trigger (
workflow_dispatchor desired branch).
| packageName: your.package.name # 서비스명 확정 후 앱의 실제 패키지 이름으로 변경해야 합니다. | ||
| releaseFile: app/build/outputs/bundle/release/app-release.aab |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
packageName placeholder will break release upload.
Replace your.package.name with the actual application ID before merging; the upload action fails otherwise.
🤖 Prompt for AI Agents
In .github/workflows/ace_production.yml at lines 76 to 77, the packageName is
set to the placeholder 'your.package.name', which will cause the release upload
to fail. Replace this placeholder with the actual application ID (the real
package name of the app) before merging to ensure the upload action works
correctly.
| serviceAccountJson: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }} # Google Play 서비스 계정 JSON (Base64 인코딩된 내용) | ||
| packageName: your.package.name # 서비스명 확정 후 앱의 실제 패키지 이름으로 변경해야 합니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
packageName placeholder still present.
Must be the real package name or the upload will fail.
🤖 Prompt for AI Agents
In .github/workflows/ace_internal_test.yml at lines 76 to 77, the packageName
field is still set to the placeholder "your.package.name". Replace this
placeholder with the actual app package name to ensure the upload process
succeeds without errors.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
.github/workflows/ace_build.yml (3)
26-35: Leveragesetup-java’s built-in Gradle cache instead of a separate cache step
actions/setup-java@v4supportscache: 'gradle', which both simplifies the workflow and avoids the need to maintain a custom cache key. You can drop 10 lines and rely on the officially maintained strategy.- - name: Gradle 캐시 설정 - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- + - name: JDK 17 설정 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + cache: 'gradle' # 🆕 built-in Gradle cache(Remove the old cache step entirely.)
41-42: Add diagnostic flags to the Gradle build commandPassing
--stacktrace --no-daemongives clearer failure logs and avoids daemon-related flakiness in CI.- run: ./gradlew assembleDebug + run: ./gradlew assembleDebug --stacktrace --no-daemon
66-66: Add a trailing newline to satisfy lintersYAML-lint warns about the missing final newline.
- SLACK_COLOR: 'danger' + SLACK_COLOR: 'danger' +
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ace_build.yml(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/ace_build.yml
[error] 66-66: no new line character at the end of file
(new-line-at-end-of-file)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
.github/workflows/ace_build.yml
Outdated
| - name: Slack 알림 (빌드 성공) | ||
| # 빌드 성공 시 Slack으로 알림을 보냅니다. | ||
| if: success() | ||
| uses: rtCamp/action-slack-notify@v2 | ||
| env: | ||
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
| SLACK_CHANNEL: '#client-actions' # 알림을 받을 Slack 채널 | ||
| SLACK_MESSAGE: "✅ CI 빌드 성공! PR: #${{ github.event.pull_request.number }} - `${{ github.event.pull_request.title }}`" | ||
|
|
||
| - name: Slack 알림 (빌드 실패) | ||
| if: failure() | ||
| uses: rtCamp/action-slack-notify@v2 | ||
| env: | ||
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
| SLACK_CHANNEL: '#client-actions' | ||
| SLACK_MESSAGE: "❌ CI 빌드 실패! PR: #${{ github.event.pull_request.number }} - `${{ github.event.pull_request.title }}`" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slack steps will fail for forked PRs because secrets are not exposed
When a PR originates from a fork, secrets.SLACK_WEBHOOK_URL is empty, causing rtCamp/action-slack-notify to error and the whole job to fail. Gate the steps so they only run when the secret is available (i.e., internal PRs).
- if: success()
+ if: success() && github.repository == github.event.pull_request.head.repo.full_name
...
- if: failure()
+ if: failure() && github.repository == github.event.pull_request.head.repo.full_name📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: Slack 알림 (빌드 성공) | |
| # 빌드 성공 시 Slack으로 알림을 보냅니다. | |
| if: success() | |
| uses: rtCamp/action-slack-notify@v2 | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| SLACK_CHANNEL: '#client-actions' # 알림을 받을 Slack 채널 | |
| SLACK_MESSAGE: "✅ CI 빌드 성공! PR: #${{ github.event.pull_request.number }} - `${{ github.event.pull_request.title }}`" | |
| - name: Slack 알림 (빌드 실패) | |
| if: failure() | |
| uses: rtCamp/action-slack-notify@v2 | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| SLACK_CHANNEL: '#client-actions' | |
| SLACK_MESSAGE: "❌ CI 빌드 실패! PR: #${{ github.event.pull_request.number }} - `${{ github.event.pull_request.title }}`" | |
| - name: Slack 알림 (빌드 성공) | |
| # 빌드 성공 시 Slack으로 알림을 보냅니다. | |
| if: success() && github.repository == github.event.pull_request.head.repo.full_name | |
| uses: rtCamp/action-slack-notify@v2 | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| SLACK_CHANNEL: '#client-actions' # 알림을 받을 Slack 채널 | |
| SLACK_MESSAGE: "✅ CI 빌드 성공! PR: #${{ github.event.pull_request.number }} - `${{ github.event.pull_request.title }}`" | |
| - name: Slack 알림 (빌드 실패) | |
| if: failure() && github.repository == github.event.pull_request.head.repo.full_name | |
| uses: rtCamp/action-slack-notify@v2 | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| SLACK_CHANNEL: '#client-actions' | |
| SLACK_MESSAGE: "❌ CI 빌드 실패! PR: #${{ github.event.pull_request.number }} - `${{ github.event.pull_request.title }}`" |
🤖 Prompt for AI Agents
In .github/workflows/ace_build.yml around lines 50 to 65, the Slack notification
steps fail for forked PRs because the SLACK_WEBHOOK_URL secret is not available.
To fix this, add a condition to each Slack notification step to check that the
secret exists by including 'env.SLACK_WEBHOOK_URL != null' in the 'if'
expression, so these steps only run when the secret is present, preventing
errors on forked PRs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
.github/workflows/ace_build.yml (1)
50-65: Slack notification steps still fail for forked PRs – previous advice unaddressed
secrets.SLACK_WEBHOOK_URLis empty for forks, sortCamp/action-slack-notifyerrors and kills the job. Gate the steps with a repository check (or verify the secret is set) exactly as pointed out in the earlier review.
🧹 Nitpick comments (2)
.github/workflows/ace_build.yml (2)
10-15: Add aconcurrencyblock to avoid duplicated CI runs on PR updates
With the current trigger, every push to the same PR queues a new workflow run even if an earlier one is still executing. A simple concurrency group keeps the queue clean and saves minutes:jobs: build: + concurrency: + group: pr-${{ github.event.pull_request.number }} + cancel-in-progress: true
66-66: Missing trailing newline
YAML-lint flags the missing blank line at EOF. Add one to keep linters quiet.- SLACK_COLOR: 'danger' + SLACK_COLOR: 'danger' +
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ace_build.yml(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/ace_build.yml
[error] 66-66: no new line character at the end of file
(new-line-at-end-of-file)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
.github/workflows/ace_build.yml (1)
50-65: Gate Slack notification steps so they don’t hard-fail on forks.
secrets.SLACK_WEBHOOK_URLis empty for forked PRs, causingrtCamp/action-slack-notifyto error and abort the job. Add a condition that checks the secret before invoking the action.- - name: Slack 알림 (빌드 성공) - # 빌드 성공 시 Slack으로 알림을 보냅니다. - if: success() + - name: Slack 알림 (빌드 성공) + # 빌드 성공 시 Slack으로 알림을 보냅니다. + if: success() && secrets.SLACK_WEBHOOK_URL != '' @@ - - name: Slack 알림 (빌드 실패) - if: failure() + - name: Slack 알림 (빌드 실패) + if: failure() && secrets.SLACK_WEBHOOK_URL != ''Without this guard the CI job will reliably fail for community contributors.
🧹 Nitpick comments (1)
.github/workflows/ace_build.yml (1)
66-66: Add trailing newline at EOF.Several linters (YAMLlint, git diff-drivers) complain about missing newline; adding one prevents noisy warnings in CI.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ace_build.yml(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/ace_build.yml
[error] 66-66: no new line character at the end of file
(new-line-at-end-of-file)
🔇 Additional comments (1)
.github/workflows/ace_build.yml (1)
36-40: 👍 Previous syntax issue resolved.The
local.properties 설정step is now completely commented out, so the workflow parses cleanly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
.github/workflows/ace_build.yml (1)
50-70: Gate Slack steps to avoid failures on forked PRsSecrets are not exposed to workflows triggered from forks, so
SLACK_WEBHOOK_URLwill be empty and the Slack action will error out, breaking the job.
Add a guard that the secret exists (or that the PR comes from the same repo).- if: success() + if: success() && env.SLACK_WEBHOOK_URL != '' ... - if: failure() + if: failure() && env.SLACK_WEBHOOK_URL != ''
🧹 Nitpick comments (1)
.github/workflows/ace_build.yml (1)
70-70: Missing trailing newlineYAML-lint flags the absence of a newline at EOF. Add one to silence the linter.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ace_build.yml(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/ace_build.yml
[error] 70-70: no new line character at the end of file
(new-line-at-end-of-file)
🔇 Additional comments (1)
.github/workflows/ace_build.yml (1)
36-39: Step correctly commented out – issue resolved.The previously-invalid
local.properties 설정step is now fully commented, so the workflow parses without errors.
Nothing further to do here. 👍
haeti-dev
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
깔끔해서 너무 좋네요. 특히 스텝 name이 한글로 되어 있어서 읽기 편합니다 ㅎㅎ
패키지명이 빨리 정해져야 좋을 것 같네요..!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
♻️ Duplicate comments (3)
.github/workflows/ace_build.yml (1)
50-70: 슬랙 알림 단계에 포크 PR 대비 조건 추가 필요
secrets.SLACK_WEBHOOK_URL값이 없는 포크(PR)에서 해당 단계가 실행되면 액션이 실패합니다. 기존 리뷰에서도 동일 지적이 있었으므로, 시크릿 존재 여부를 조건식에 포함해 주세요..github/workflows/ace_internal_test.yml (1)
76-78:packageName자리표시자가 그대로 남아있음실제 패키지명으로 교체하지 않으면 업로드가 실패합니다.
.github/workflows/ace_production.yml (1)
76-76:packageName자리표시자 교체 필요프로덕션 배포는 실제 애플리케이션 ID가 필수입니다.
🧹 Nitpick comments (1)
.github/workflows/ace_firebase_distribution.yml (1)
69-89: 슬랙 알림 단계에 시크릿 존재 조건 추가 권장포크 저장소에서 시크릿이 없을 때 실패를 방지해야 합니다.
- if: success() + if: success() && env.SLACK_WEBHOOK_URL != '' ... - if: failure() + if: failure() && env.SLACK_WEBHOOK_URL != ''
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
.github/workflows/ace_build.yml(1 hunks).github/workflows/ace_firebase_distribution.yml(1 hunks).github/workflows/ace_internal_test.yml(1 hunks).github/workflows/ace_production.yml(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/ace_build.yml
[error] 70-70: no new line character at the end of file
(new-line-at-end-of-file)
🪛 actionlint (1.7.7)
.github/workflows/ace_firebase_distribution.yml
2-2: "on" section is missing in workflow
(syntax-check)
.github/workflows/ace_internal_test.yml
2-2: "on" section is missing in workflow
(syntax-check)
.github/workflows/ace_production.yml
2-2: "on" section is missing in workflow
(syntax-check)
| author_name: GitHub Actions | ||
| text: "❌ CI 빌드 실패! PR: #${{ github.event.pull_request.number }} - `${{ github.event.pull_request.title }}`" | ||
| env: | ||
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
파일 끝에 개행 문자 누락
POSIX 규격을 따르려면 EOF 뒤에 개행을 추가해야 YAML linter 경고를 제거할 수 있습니다.
- SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
+\ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
+
+# EOF 개행Committable suggestion skipped: line range outside the PR's diff.
🧰 Tools
🪛 YAMLlint (1.37.1)
[error] 70-70: no new line character at the end of file
(new-line-at-end-of-file)
🤖 Prompt for AI Agents
In .github/workflows/ace_build.yml at line 70, the file is missing a newline
character at the end. Add a newline (empty line) after the last line to comply
with POSIX standards and remove the YAML linter warning.
| # 워크플로우 트리거 설정 | ||
| #on: | ||
| # push: | ||
| # branches: | ||
| # - develop |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
필수 on 섹션이 주석 처리되어 있음
워크플로 정의가 유효하지 않아 로드되지 않습니다.
-#on:
-# push:
-# branches:
-# - develop
+on:
+ workflow_dispatch: {}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # 워크플로우 트리거 설정 | |
| #on: | |
| # push: | |
| # branches: | |
| # - develop | |
| # 워크플로우 트리거 설정 | |
| on: | |
| workflow_dispatch: {} |
🤖 Prompt for AI Agents
In .github/workflows/ace_firebase_distribution.yml around lines 4 to 8, the
essential 'on' section that defines the workflow trigger is commented out,
making the workflow invalid and not loaded. Uncomment the 'on' section and its
nested lines to properly define the trigger for the workflow on pushes to the
develop branch.
| #on: | ||
| # push: | ||
| # branches: | ||
| # - main | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
on 섹션이 주석 처리되어 워크플로가 무효화됨
actionlint 오류처럼 on 키가 필수이며, 주석 처리된 상태로는 YAML 구문 자체가 잘못됩니다.
-#on:
-# push:
-# branches:
-# - main
+on:
+ workflow_dispatch: {} # 임시 트리거 — 서비스명 확정 후 push 조건으로 교체📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #on: | |
| # push: | |
| # branches: | |
| # - main | |
| on: | |
| workflow_dispatch: {} # 임시 트리거 — 서비스명 확정 후 push 조건으로 교체 |
🤖 Prompt for AI Agents
In .github/workflows/ace_internal_test.yml around lines 4 to 8, the 'on' section
is commented out, which disables the workflow and causes YAML syntax errors.
Uncomment the 'on' section and its nested keys so the workflow triggers
correctly on pushes to the main branch.
| - name: Slack 알림 (내부 테스트 배포 성공) | ||
| if: success() | ||
| uses: 8398a7/action-slack@v3 | ||
| with: | ||
| status: success | ||
| fields: workflow,job,commit,repo,author,took,ref | ||
| author_name: GitHub Actions | ||
| text: "🚀 Google Play 내부 테스트 배포 성공! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | ||
| env: | ||
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
|
|
||
| - name: Slack 알림 (내부 테스트 배포 실패) | ||
| if: failure() | ||
| uses: 8398a7/action-slack@v3 | ||
| with: | ||
| status: failure | ||
| fields: workflow,job,commit,repo,author,took,ref | ||
| author_name: GitHub Actions | ||
| text: "🚨 Google Play 내부 테스트 배포 실패! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | ||
| env: | ||
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
슬랙 알림 단계 조건식에 시크릿 존재 검증 필요
포크 PR 환경에서 시크릿이 노출되지 않아 액션이 실패합니다.
- if: success()
+ if: success() && env.SLACK_WEBHOOK_URL != ''
...
- if: failure()
+ if: failure() && env.SLACK_WEBHOOK_URL != ''📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: Slack 알림 (내부 테스트 배포 성공) | |
| if: success() | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: success | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚀 Google Play 내부 테스트 배포 성공! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| - name: Slack 알림 (내부 테스트 배포 실패) | |
| if: failure() | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: failure | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚨 Google Play 내부 테스트 배포 실패! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| - name: Slack 알림 (내부 테스트 배포 성공) | |
| - if: success() | |
| + if: success() && env.SLACK_WEBHOOK_URL != '' | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: success | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚀 Google Play 내부 테스트 배포 성공! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| - name: Slack 알림 (내부 테스트 배포 실패) | |
| - if: failure() | |
| + if: failure() && env.SLACK_WEBHOOK_URL != '' | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: failure | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚨 Google Play 내부 테스트 배포 실패! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |
🤖 Prompt for AI Agents
In .github/workflows/ace_internal_test.yml between lines 81 and 101, the Slack
notification steps run unconditionally on success or failure, causing failures
in forked PRs due to missing secrets. Add a condition to check if the
SLACK_WEBHOOK_URL secret exists before running these steps by including an
expression like "env.SLACK_WEBHOOK_URL != ''" combined with the existing
success() or failure() conditions in the if field. This prevents the steps from
running when the secret is not available.
| ## 워크플로우 트리거 설정 | ||
| #on: | ||
| # push: | ||
| # tags: | ||
| # - 'v*' # 'v'로 시작하는 태그(예: v1.0.0)가 푸시되었을 때만 트리거 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
on 키 누락으로 인해 워크플로가 파싱되지 않음
주석을 해제하거나 임시로 workflow_dispatch 트리거를 추가하세요.
-#on:
-# push:
-# tags:
-# - 'v*'
+on:
+ workflow_dispatch: {}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ## 워크플로우 트리거 설정 | |
| #on: | |
| # push: | |
| # tags: | |
| # - 'v*' # 'v'로 시작하는 태그(예: v1.0.0)가 푸시되었을 때만 트리거 | |
| ## 워크플로우 트리거 설정 | |
| on: | |
| workflow_dispatch: {} |
🤖 Prompt for AI Agents
In .github/workflows/ace_production.yml around lines 4 to 8, the workflow
trigger key `on` is commented out, causing the workflow to not be parsed or
triggered. To fix this, uncomment the `on` key and its nested configuration for
the push event with tag filters, or alternatively add a temporary
`workflow_dispatch` trigger to enable manual triggering of the workflow.
| - name: Slack 알림 (Google Play 프로덕션 배포 성공) | ||
| if: success() | ||
| uses: 8398a7/action-slack@v3 | ||
| with: | ||
| status: success | ||
| fields: workflow,job,commit,repo,author,took,ref | ||
| author_name: GitHub Actions | ||
| text: "🚀 Google Play 프로덕션 배포 성공! 태그: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | ||
| env: | ||
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
|
|
||
| - name: Slack 알림 (Google Play 프로덕션 배포 실패) | ||
| if: failure() | ||
| uses: 8398a7/action-slack@v3 | ||
| with: | ||
| status: failure | ||
| fields: workflow,job,commit,repo,author,took,ref | ||
| author_name: GitHub Actions | ||
| text: "🚨 Google Play 프로덕션 배포 실패! 태그: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | ||
| env: | ||
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
슬랙 단계 시크릿 검증 누락
포크 PR 상황에서 실패를 방지하려면 조건문에 시크릿 존재 여부를 추가하세요.
- if: success()
+ if: success() && env.SLACK_WEBHOOK_URL != ''
...
- if: failure()
+ if: failure() && env.SLACK_WEBHOOK_URL != ''📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: Slack 알림 (Google Play 프로덕션 배포 성공) | |
| if: success() | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: success | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚀 Google Play 프로덕션 배포 성공! 태그: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| - name: Slack 알림 (Google Play 프로덕션 배포 실패) | |
| if: failure() | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: failure | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚨 Google Play 프로덕션 배포 실패! 태그: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| - name: Slack 알림 (Google Play 프로덕션 배포 성공) | |
| if: success() && env.SLACK_WEBHOOK_URL != '' | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: success | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚀 Google Play 프로덕션 배포 성공! 태그: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| - name: Slack 알림 (Google Play 프로덕션 배포 실패) | |
| if: failure() && env.SLACK_WEBHOOK_URL != '' | |
| uses: 8398a7/action-slack@v3 | |
| with: | |
| status: failure | |
| fields: workflow,job,commit,repo,author,took,ref | |
| author_name: GitHub Actions | |
| text: "🚨 Google Play 프로덕션 배포 실패! 태그: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |
🤖 Prompt for AI Agents
In .github/workflows/ace_production.yml around lines 81 to 101, the Slack
notification steps lack a check for the presence of the SLACK_WEBHOOK_URL
secret, which can cause failures in forked PRs. Add a condition to the 'if'
statements to verify that the secret exists before sending notifications, for
example by including a check like 'env.SLACK_WEBHOOK_URL != null' combined with
the existing success() or failure() conditions.
작업 내용
이건 꼭 봐주세요
Summary by CodeRabbit