feat(release): adds notifications release ci configs#1367
Conversation
WalkthroughThe changes add support for the Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer
participant GitHub as GitHub Actions
participant Releaser as @akashnetwork/releaser
participant Docker as Docker Registry
participant K8s as Kubernetes Cluster
Dev->>GitHub: Push to main (apps/notifications/package.json)
GitHub->>GitHub: notifications-release.yml triggered
GitHub->>Releaser: Create Release (generate git_tag)
Releaser-->>GitHub: Release created with git_tag
GitHub->>Docker: Build Docker image tagged with git_tag
Docker-->>GitHub: Image built and pushed
GitHub->>K8s: Deploy image to beta sandbox with git_tag
K8s-->>GitHub: Deployment complete
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
npm warn config production Use ✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 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 (
|
9cec6d0 to
6cdfd96
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (7)
.github/workflows/create-pre-release-pr.yml(1 hunks).github/workflows/notifications-release.yml(1 hunks).github/workflows/reusable-build-image.yml(1 hunks).github/workflows/reusable-create-github-release.yml(1 hunks).github/workflows/reusable-deploy-k8s.yml(1 hunks)apps/notifications/.release-it.js(1 hunks)apps/notifications/package.json(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: validate-notifications
🔇 Additional comments (10)
apps/notifications/package.json (2)
15-15: Release script added
The"release": "release-it"command enables automated releases for the notifications app using your standardized releaser config.
72-72: Dev dependency for releaser
Introducing@akashnetwork/releaserintodevDependenciesaligns with your centralized release setup. Ensure the wildcard version is acceptable for stability..github/workflows/reusable-deploy-k8s.yml (1)
20-20: Enable notifications deployment
Including"notifications"in theappchoices exposes the notifications service for manual K8s deployment. Ensure that a corresponding Helm chart and values file exist under.helm/notifications-<environment>-values.yaml.apps/notifications/.release-it.js (1)
1-1: Re-export centralized releaser
Leveragingmodule.exports = require("@akashnetwork/releaser");ensures consistent release behavior across projects. Confirm that@akashnetwork/releaseris installed in this workspace and that any custom configuration hooks are applied..github/workflows/create-pre-release-pr.yml (1)
88-88: Include notifications in pre-release step
Addingnpm run release -w apps/notifications -- --verbose --ciensures the notifications workspace is versioned and changelogged alongside other apps. Verify that theapps/notificationspath matches your workspace configuration inpackage.json..github/workflows/reusable-create-github-release.yml (1)
59-60: Support notifications tag mapping
The new branch mapping for"notifications"tonotifications/v$git_tagcorrectly extends your tag generation logic. Keep this branch in sync if the app directory name changes..github/workflows/notifications-release.yml (4)
1-9: Appropriate workflow trigger
Thepushevent onmainwhenapps/notifications/package.jsonchanges scopes the release correctly, preventing unnecessary runs.
11-17: Release job setup is correct
Thereleasejob invokes the reusable release workflow, inherits secrets, and passesapp: notificationsas expected.
18-29: Build job looks solid
The conditionalif: needs.release.outputs.git_tag != ''avoids orphan builds, and permissions for Docker registry publishing are minimal yet sufficient.
30-38: Deploy-to-beta wiring is correct
Thedeploy-betajob depends on build output, passesappVersionandenvironment: stagingto the reusable deploy workflow.
Please verify thatreusable-deploy-k8s.ymlexpects anappVersioninput and uses theenvironmentkey.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1367 +/- ##
=======================================
Coverage 34.67% 34.68%
=======================================
Files 805 805
Lines 19587 19584 -3
Branches 3614 3614
=======================================
Hits 6792 6792
+ Misses 12055 12052 -3
Partials 740 740
*This pull request uses carry forward flags. Click here to find out more. 🚀 New features to boost your workflow:
|
3a1aa6c to
fd8f0c7
Compare
fd8f0c7 to
79e9a9a
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
.github/workflows/reusable-build-image.yml (1)
80-83: Correct environment variable for notifications branch
The script now correctly setsapp=notifications(instead ofnotifications=notifications), ensuring downstream steps relying onenv.appwill function as expected.
🧹 Nitpick comments (1)
apps/notifications/package.json (1)
73-73: Consider pinning@akashnetwork/releaserto a fixed version
Using"*"can lead to unpredictable builds. Pinning to a specific version or version range improves reproducibility and prevents unexpected breaking changes.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (9)
.github/workflows/create-pre-release-pr.yml(1 hunks).github/workflows/notifications-release.yml(1 hunks).github/workflows/reusable-build-image.yml(1 hunks).github/workflows/reusable-create-github-release.yml(1 hunks).github/workflows/reusable-deploy-k8s.yml(1 hunks)apps/notifications/.gitignore(0 hunks)apps/notifications/.release-it.js(1 hunks)apps/notifications/env/.env(1 hunks)apps/notifications/package.json(3 hunks)
💤 Files with no reviewable changes (1)
- apps/notifications/.gitignore
🚧 Files skipped from review as they are similar to previous changes (4)
- apps/notifications/env/.env
- apps/notifications/.release-it.js
- .github/workflows/reusable-create-github-release.yml
- .github/workflows/notifications-release.yml
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: validate-notifications
🔇 Additional comments (4)
apps/notifications/package.json (2)
3-3: Bump version to 1.0.0
Updating from0.0.1to1.0.0signals the first stable release of the notifications package.
15-17: Add production and release scripts
Introducing"prod"and"release"scripts enables streamlined database migrations and usesrelease-itfor automated changelogs and versioning..github/workflows/reusable-deploy-k8s.yml (1)
18-23: Include notifications in deployment choices
Adding"notifications"to theappinput options aligns this manual and reusable workflow with the newly supported notifications application..github/workflows/create-pre-release-pr.yml (1)
83-89: Add notifications to pre-release commands
Includingnpm run release -w apps/notifications -- --verbose --ciensures the notifications workspace is versioned and changeloged alongside other apps.
Summary by CodeRabbit
.release-it.jsfile.