Skip to content

[CLNP-8355] [ci]: add automated release workflow and update CI to Node 24#1414

Open
sf-tyler-jeong wants to merge 19 commits intomainfrom
feature/CLNP-8355
Open

[CLNP-8355] [ci]: add automated release workflow and update CI to Node 24#1414
sf-tyler-jeong wants to merge 19 commits intomainfrom
feature/CLNP-8355

Conversation

@sf-tyler-jeong
Copy link
Copy Markdown

@sf-tyler-jeong sf-tyler-jeong commented Apr 2, 2026

Add Jira-integrated automated release workflow and modernize CI infrastructure.

Release Automation (release-workflow.yml - new)

  • Automated release pipeline triggered via Jira ticket approval
  • Steps: build → test → npm publish (OIDC provenance) → merge to main → git tag → GitHub Release → Slack notification → Jira transition
  • On failure: automatic Jira ticket rollback to CONDITIONAL_RELEASE_APPROVED
  • Uses CHANGELOG_DRAFT.md for GitHub Release body to avoid duplicate titles

CI Updates

  • Update actions/checkout v4 → v6, actions/setup-node v4 → v6 across all workflows
  • Update build-and-test.yml Node version from 16.19.1 → 24 (LTS Krypton)
  • Migrate NPM auth from token-based to OIDC trusted publishing in release workflow
  • Normalize secret name npm_tokenNPM_TOKEN in package-publish.yml

New Files

  • CHANGELOG_DRAFT.md: template for per-release changelog (used by release workflow and Jira ticket)

Fixes CLNP-8355

Changelogs

  • Added automated release workflow with Jira integration
  • Added test step in release workflow before npm publish
  • Updated all CI workflows to Node 24 and latest GitHub Actions
  • Migrated npm publish to OIDC trusted publishing with provenance
  • Added CHANGELOG_DRAFT.md template for release notes

Checklist

  • All tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • Public components / utils / props are appropriately exported
  • I have added necessary documentation (if appropriate)

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 2, 2026

Deploy Preview for sendbird-uikit-react ready!

Name Link
🔨 Latest commit dbf4b11
🔍 Latest deploy log https://app.netlify.com/projects/sendbird-uikit-react/deploys/69e0810cf6c40b0008bdc7da
😎 Deploy Preview https://deploy-preview-1414--sendbird-uikit-react.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment thread .github/workflows/package-publish.yml
Comment thread .github/workflows/package-publish.yml
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0fd80e71ef

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .github/workflows/release-workflow.yml
sf-tyler-jeong and others added 11 commits April 2, 2026 12:18
…flow shell commands

Prevent potential shell injection by using env variables for github.ref_name
and github.event.repository.name. Improve rollback step to check existence
before reinstalling dependencies instead of silently swallowing errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…n release workflow

Use python3 import check instead of command -v for requests package detection.
Change contents permission from read to write for git tag push.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@danney-chun
Copy link
Copy Markdown
Contributor

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bfdf72b909

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +62 to +69
git fetch origin main
git switch main
git pull origin main

- name: Publish to npm
run: |
cd ./dist
npm publish --access=public --provenance
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Rebuild dist after pulling main before npm publish

The workflow builds dist before merging/pulling main and then publishes without rebuilding, so the published tarball can come from the pre-merge release-branch contents rather than the commit that gets tagged/released on main. This mismatch is possible whenever main has moved or merge resolution changes files, and it can ship artifacts that do not match the Git tag/source of record.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merge 후 yarn install --immutable && yarn build로 rebuild 스텝을 추가했습니다. 이제 publish되는 tarball이 main merge 후 코드와 일치합니다. (dbf4b11e)

Comment thread jest.config.js
Comment on lines +107 to +110
['jest-junit', {
outputDirectory: './test-results',
outputName: 'junit-report.xml',
}],
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Configure jest-junit to emit file paths for retry logic

scripts/failed-test-retry.js only retries failures when each failed <testsuite> includes a file attribute, but the new reporter config does not enable that output. As a result, on failed test runs the retry step often finds zero failed files and exits, so the flaky-test retry path never actually works even though CI now depends on this report.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

addFileAttribute: 'true' 추가하여 JUnit 리포트에 file 속성이 출력되도록 수정했습니다. 이제 failed-test-retry.js가 실패 테스트 파일을 정상적으로 파싱합니다. (dbf4b11e)

Rebuild dist after merging to main so the published tarball matches the
tagged commit. Add addFileAttribute to jest-junit config so the retry
script can locate failed test files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants