Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

63
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ๅ€‹ไบบ้–‹็™บใงใ‚ฌใƒณใƒˆใƒใƒฃใƒผใƒˆใƒฉใ‚คใƒ–ใƒฉใƒชใ‚’ไฝœใฃใฆใฟใŸ

Posted at

react-gantt-flow

ๅ€‹ไบบ้–‹็™บใงใ‚ฌใƒณใƒˆใƒใƒฃใƒผใƒˆใƒฉใ‚คใƒ–ใƒฉใƒชใ‚’ไฝœๆˆใ—ใฆใŠใ‚Šใ€ๅ…ˆๆ—ฅใƒ™ใƒผใ‚ฟ็‰ˆใ‚’ใƒชใƒชใƒผใ‚นใ—ใพใ—ใŸ๐ŸŽ‰
่‰ฏใใ‚ฟใ‚คใƒŸใƒณใ‚ฐใงใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆใ—ใŸใ„ใชใ€œใจๆ€ใฃใฆใ„ใŸใฎใงใ€ใ„ใใคใ‹่จ˜ไบ‹ใ‚’ๅˆ†ใ‘ใฆใพใจใ‚ใฆใ„ใ‘ใ‚Œใฐใจๆ€ใ„ใพใ™

ใฉใ‚“ใชๆฉŸ่ƒฝใŒใ‚ใ‚‹ใฎ๏ผŸ

็พ็Šถใพใ ใพใ ๆฉŸ่ƒฝไธ่ถณใงใ™ใŒใ€ๆœ€ไฝŽ้™ใฎๆฉŸ่ƒฝใฏ็”จๆ„ใงใใพใ—ใŸ๐Ÿ‘
่ฉณ็ดฐใฏๅ‰่ฟฐใฎ Storybook ใ‚’ๅ‚็…งใใ ใ•ใ„๐Ÿ™‡

ๆฉŸ่ƒฝ ใฒใจใ“ใจใง
ใƒ‰ใƒฉใƒƒใ‚ฐ & ใƒชใ‚ตใ‚คใ‚บ ใ‚ฟใ‚นใ‚ฏใฎ้–‹ๅง‹ใƒป็ต‚ไบ†ๆ—ฅใ‚’ใƒžใ‚ฆใ‚นๆ“ไฝœใงๆ›ดๆ–ฐ
้€ฒๆ—ใƒใƒผ๏ผˆใ‚นใƒฉใ‚คใƒ€ใƒผ๏ผ‰ 0 ~ 100 % ใ‚’ใƒชใ‚ขใƒซใ‚ฟใ‚คใƒ ็ทจ้›†
ไพๅญ˜็Ÿขๅฐ ใ‚ฟใ‚นใ‚ฏ้–“ใ‚’่‡ชๅ‹•ใง S ๅญ—ๆ›ฒ็ทšใงๆŽฅ็ถš
Today ใƒฉใ‚คใƒณ / ่จˆ็”ปโ†”ๅฎŸ็ธพๅทฎๅˆ† boolean ใงใ‚ชใƒณใƒปใ‚ชใƒ•ๅˆ‡ใ‚Šๆ›ฟใˆ
Type-safe API ๅ…จใƒ—ใƒญใƒƒใƒ—ใซๅŽณๅฏ†ใช TS ๅž‹ใ‚’ไป˜ไธŽ

ใชใ‚“ใงใ‚ฌใƒณใƒˆใƒใƒฃใƒผใƒˆ๏ผŸ

ไปŠๅ›žใ‚ฌใƒณใƒˆใƒใƒฃใƒผใƒˆใ‚’ไฝœๆˆใ—ใŸ็†็”ฑใฏใ€"ไปŠๅพŒไฝœใ‚ŠใŸใ„ใ‚ทใ‚นใƒ†ใƒ ใฎ 1 ๆฉŸ่ƒฝใจใ—ใฆใ‚ฌใƒณใƒˆใƒใƒฃใƒผใƒˆใฎๆฉŸ่ƒฝใŒๆฌฒใ—ใ‹ใฃใŸใ‹ใ‚‰" ใจใ„ใ†ใ‚ทใƒณใƒ—ใƒซใช็†็”ฑใงใ™

ๆ—ขๅญ˜ใฎ OSS (Frappe Gantt ใชใฉ) ใงใ‚‚ๆญฃ็›ดใ‚ˆใ‹ใฃใŸใฎใงใ™ใŒใ€็งใŒ่ชฟในใŸ้™ใ‚Šใ€ใ‚นใ‚ฑใ‚ธใƒฅใƒผใƒซใจ็พๅœจ้€ฒๆ—ใจใฎไน–้›ขใŒไธ€็›ฎใงใ‚ใ‹ใ‚‹ๆฉŸ่ƒฝ๏ผˆใ„ใ‚ใ‚†ใ‚‹็จฒๅฆป็ทš่กจ็คบๆฉŸ่ƒฝ๏ผ‰ใ‚’ๆŒใฃใŸใƒฉใ‚คใƒ–ใƒฉใƒชใŒ็„กใ‹ใฃใŸ็‚บใ€ใ€Œใ˜ใ‚ƒใ‚ไฝœใฃใฆใฟใ‚ˆใ†ใ€ใจไฝœๆˆใ‚’ๅง‹ใ‚ใพใ—ใŸ๐Ÿƒโ€โ™€๏ธ

ๆŠ€่ก“้ธๅฎš

ๆŠ€่ก“้ธๅฎšใ‚’ไปฅไธ‹ใซใพใจใ‚ใพใ™
่‡ณใฃใฆใ‚ทใƒณใƒ—ใƒซใชๆง‹ๆˆใงใ™

้ …็›ฎ ้ธๅฎšๅ†…ๅฎน
UI React 19 + TypeScript
ใƒใƒฃใƒผใƒˆๆ็”ป SVG
ๆ—ฅไป˜่จˆ็ฎ— date-fns
ใƒ“ใƒซใƒ‰ Vite
ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใƒžใƒใƒผใ‚ธใƒฃใƒผ pnpm
ๅ“่ณช Vitest / React Testing Library / Chromatic(VRT)
้™็š„่งฃๆžใƒปใƒ•ใ‚ฉใƒผใƒžใƒƒใ‚ฟใƒผ Biome
ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒ†ใƒผใ‚ทใƒงใƒณ Storybook
CI/CD GitHub Actions

ๅฎŸ่ฃ…ๆ–น้‡

react-gantt-flow ใฏใƒใƒฃใƒผใƒˆ้ƒจๅˆ†ใฎๆ็”ปใฏๅ…จใฆ svg ใงไฝœๆˆใ—ใฆใ„ใพใ™

ใชใœๅ…จใฆ svg ใชใฎใ‹

ไปฅไธ‹ใฎใƒใ‚คใƒณใƒˆใจๆฏ”่ผƒ่กจใฎๅ†…ๅฎนใซๅŸบใฅใ svg ใงใฎๅฎŸ่ฃ…ใ‚’้ธใณใพใ—ใŸ
ใ‚ใจใ€่‡ชๅˆ†ใง svg ใ‚’ใ‚ใใซๆ›ธใ„ใŸใ“ใจใŒใชใ‹ใฃใŸใฎใงใ€ใ“ใฎ้š›ใซๅญฆใณใŸใ„ใชใจใ„ใ†ๅ€‹ไบบ็š„ใชๆฐ—ๆŒใกใ‚‚ใ‚ใ‚Šใพใ—ใŸ๐Ÿ‘€

ใƒใ‚คใƒณใƒˆ ใฉใ†ๅŠนใใ‹
่งฃๅƒๅบฆใƒ•ใƒชใƒผ/ใ‚บใƒผใƒ ใซๅผทใ„ ใƒปใ‚ฌใƒณใƒˆใฏๆ™‚้–“่ปธใ‚’ๆ‹กๅคง็ธฎๅฐใ™ใ‚‹ UI
ใƒปSVG ใฏใƒ™ใ‚ฏใ‚ฟใชใฎใง 1 px ๅ˜ไฝใฎใ‚นใƒŠใƒƒใƒ—ใ‚„ Hi-DPI ใงใ‚‚็ทšใŒใซใ˜ใพใชใ„
ใƒปCanvas ใ ใจๅ†ๆ็”ปใŒๅฟ…้ ˆใ€DOMโ€div ใ ใจใ‚ตใƒ–ใƒ”ใ‚ฏใ‚ปใƒซ่ชคๅทฎใŒๆฎ‹ใ‚‹
DOM ใƒŽใƒผใƒ‰ใ‚’ๆฅตๅฐๅŒ–ใงใใ‚‹ ใƒป<svg> ๅ†…ใซใƒใƒผใƒปใ‚ฐใƒชใƒƒใƒ‰ใƒป็Ÿขๅฐใ‚’ใ™ในใฆ <g> ใงใพใจใ‚ใ‚Œใฐ โ€œ1 ่กŒ โ‰’ ๆ•ฐใƒŽใƒผใƒ‰โ€
ใƒปHTML ใง <div> ใ‚’่กŒๅˆ—้…็ฝฎใ™ใ‚‹ใจๅƒ๏ฝžไธ‡ๅ˜ไฝใฎใƒŽใƒผใƒ‰ใŒๅข—ใˆใƒฌใ‚คใ‚ขใ‚ฆใƒˆ๏ผใ‚นใ‚ฟใ‚คใƒซ่จˆ็ฎ—ใŒๆฟ€้‡
1 ใƒฌใ‚คใƒคๆ็”ปใง GPU ๅˆๆˆใŒๅŠนใ ใƒปใพใจใพใฃใŸ SVG ใฏใƒ–ใƒฉใ‚ฆใ‚ถใง ๅ˜ไธ€ใฎใ‚ณใƒณใƒใ‚ธใƒƒใƒˆใƒฌใ‚คใƒค ใซใชใ‚‹ใ€‚
ใƒปๆฐดๅนณๆ–นๅ‘ใฎใ‚นใ‚ฏใƒญใƒผใƒซใ‚„ transform ใฏใƒฌใ‚คใƒคใ‚’ๅ‹•ใ‹ใ™ใ ใ‘ใงๅ†ใƒšใ‚คใƒณใƒˆไธ่ฆใฎ็‚บใ€60 fps ใ‚’็ถญๆŒใ—ใ‚„ใ™ใ„
ใƒ™ใ‚ธใ‚งๆ›ฒ็ทšใƒปใƒ‘ใ‚นใŒ ๆจ™ๆบ–่ฃ…ๅ‚™ ใƒปไพๅญ˜็Ÿขๅฐใฎ S ๅญ—ใ‚„ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ็ทšใชใฉใ€Path API ใฒใจใคใง่กจ็พๅฏ่ƒฝ
ใƒปCanvas ใ‚‚ๆใ‘ใ‚‹ใŒๆฏŽใƒ•ใƒฌใƒผใƒ ๅบงๆจ™่จˆ็ฎ—ใจๅ†ๆ็”ปใŒๅฟ…่ฆใ€HTML ใ ใจไธๅฏ่ƒฝ

svg / Canvas / Html + CSS ๆฏ”่ผƒ่กจ

็‰นๆ€ง SVG Canvas HTML + CSS
่งฃๅƒๅบฆไพๅญ˜ ใชใ— ใ‚ใ‚Š ใชใ— (ใ ใŒใ‚ตใƒ–ใƒ”ใ‚ฏใ‚ปใƒซ่ชคๅทฎ)
ใƒŽใƒผใƒ‰ๆ•ฐ ๅฐ 1 ๆžš ๅคง
ใ‚คใƒณใ‚ฟใƒฉใ‚ฏใ‚ทใƒงใƒณ DOM ใ‚คใƒ™ใƒณใƒˆ ๆ‰‹ๅ‹•ใƒ’ใƒƒใƒˆใƒ†ใ‚นใƒˆ DOM ใ‚คใƒ™ใƒณใƒˆ
ๆ็”ปใ‚ณใ‚นใƒˆ ๅˆๅ›žใฎใฟ ้€ๆฌก ใƒฌใ‚คใ‚ขใ‚ฆใƒˆ๏ผ‹ใƒšใ‚คใƒณใƒˆ

่›‡่ถณ

SVG ใฎใƒใƒฅใƒผใƒˆใƒชใ‚ขใƒซใƒšใƒผใ‚ธใงใ™
ใ“ใ“ใฎๅ†…ๅฎนใ‚’ไธ€้€šใ‚Šๅญฆ็ฟ’ใ™ใ‚‹ใ ใ‘ใงใ‚‚ใ€ใ‹ใชใ‚Šๅ‹‰ๅผทใซใชใ‚Šใพใ—ใŸ๐Ÿ“

ใƒ–ใƒฉใƒณใƒๆˆฆ็•ฅ

ไฝœๆˆใ—ใŸใƒฉใ‚คใƒ–ใƒฉใƒชใ‚’ๅ…ฌ้–‹ใ™ใ‚‹ใซใ‚ใŸใ‚Šใ€ไปฅไธ‹ใฎใƒ–ใƒฉใƒณใƒๆˆฆ็•ฅใ‚’ๆŽก็”จใ—ใพใ—ใŸ
ไปŠๅ›žๅˆใ‚ใฆใƒฉใ‚คใƒ–ใƒฉใƒช้–‹็™บใ‚’ใ—ใฆใฟใฆใ€้€šๅธธใฎใ‚ทใ‚นใƒ†ใƒ ้–‹็™บใจใƒ–ใƒฉใƒณใƒๆˆฆ็•ฅใŒ็•ฐใชใ‚‹้ƒจๅˆ†ใซ้›ฃใ—ใ•ใ‚’ๆ„Ÿใ˜ใฆใพใ™๐Ÿ˜–

ใ“ใกใ‚‰ใฎใƒขใƒ‡ใƒซใงใฏไปฅไธ‹ใฎ 3 ใคใฎ็‰นๅพดใ‚’ๆ„่ญ˜ใ—ใฆใ„ใพใ™

  • main ใงใƒกใ‚ธใƒฃใƒผใƒใƒผใ‚ธใƒงใƒณๅ‘ใ‘ใซ้ซ˜้€Ÿ้–‹็™บ
  • ่ค‡ๆ•ฐใฎๅฎ‰ๅฎšใƒ–ใƒฉใƒณใƒใ‚’้•ทๆœŸไฟๅฎˆ
  • ็ทŠๆ€ฅไฟฎๆญฃใ‚’ใ‚ฟใ‚คใƒ ใƒชใƒผใซๆจชๅฑ•้–‹

ใ‚นใ‚ฏใƒชใƒผใƒณใ‚ทใƒงใƒƒใƒˆ 2025-06-14 22.01.11.png

ใƒกใƒชใƒƒใƒˆใƒ‡ใƒกใƒชใƒƒใƒˆใซใคใ„ใฆใฏไปฅไธ‹ใฎ็‚นใŒๆŒ™ใ’ใ‚‰ใ‚Œใ‚‹ใจๆ€ใฃใฆใ„ใพใ™
ๆญฃ็›ดใƒ‡ใƒกใƒชใƒƒใƒˆใฎใคใ‚‰ใฟใ‹ใ‚‰ๆŠœใ‘ๅ‡บใ›ใชใ„ใฎใงใ€ๆฌกๅ›žใฏใ‚‚ใฃใจใ‚ทใƒณใƒ—ใƒซๆง‹ๆˆใซๆ”นๅ–„ใ—ใŸใ„ใงใ™
ใŸใ ใ€่€ƒๆ…ฎใ™ในใ่ฆณ็‚นใฏไธ€้€šใ‚ŠๆŠŠๆกใงใใŸใฎใงใ€ใจใฆใ‚‚่‰ฏใ„ๆฉŸไผšใงใ—ใŸ๐ŸŽ‰

ใƒกใƒชใƒƒใƒˆโ˜บ๏ธ

่ฆณ็‚น ๅŠนๆžœ
LTS ใจๆœ€ๆ–ฐใ‚’ไธก็ซ‹ release/1.x ใ‚’ๆฎ‹ใ™ใ“ใจใงใ€Œ็พๅ ดใฏใพใ  v1 ใ ใ‘ใฉใƒใ‚ฐใฏ็›ดใ—ใŸใ„ใ€ใ‚’ๅฎŸ็พใ€‚
้ซ˜้€Ÿใชใƒ›ใƒƒใƒˆใƒ•ใ‚ฃใƒƒใ‚ฏใ‚น ไฟฎๆญฃใฏๆœ€็Ÿญ่ท้›ขใงๅฝฑ้Ÿฟ็‰ˆใซๅฑŠใ‘ใ€ใ‚ใจใ‹ใ‚‰ cherry-pick ใงไป–็ณป็ตฑใธๅฑ•้–‹ใงใใ€ใƒ€ใ‚ฆใƒณใ‚ฟใ‚คใƒ ใ‚’ๆœ€ๅฐๅŒ–
ๆ˜Ž็ขบใช่ฒฌๅ‹™ๅˆ†ๅ‰ฒ - main = ๆœชๆฅ
- release/x = ๅฎ‰ๅฎš
- feature/* = ๆ–ฐๆฉŸ่ƒฝ
- fix/* = ็ทŠๆ€ฅไฟฎๆญฃ
ใ‚ฟใ‚ฐ้‹็”จใ—ใ‚„ใ™ใ„ ใƒชใƒชใƒผใ‚น็‰ฉใฏๅฟ…ใš release/* ใงใ‚ฟใ‚ฐไป˜ใ‘
CI/CD ใง โ€œใใฎใ‚ฟใ‚ฐใ ใ‘ npm publishโ€ ใจใ„ใฃใŸๅˆถๅพกใŒๅฎนๆ˜“

ใƒ‡ใƒกใƒชใƒƒใƒˆ๐Ÿ˜ญ

่ชฒ้กŒ ๅ…ทไฝ“็š„ใช็—›็‚น
Cherry-pick ๅœฐ็„ ๆ‰‹ๅ‹•ๆผใ‚Œใƒปใ‚ณใƒณใƒ•ใƒชใ‚ฏใƒˆๅฏพๅฟœใ‚ณใ‚นใƒˆใŒ้ซ˜ใ„ใ€‚
โ†’ GitHub Actions ใง โ€œfix ใƒžใƒผใ‚ธๆ™‚ใซ่‡ชๅ‹• PR ไฝœๆˆโ€ ใ‚’ไป•่พผใ‚€ใจ่ฒ ่ทใ‚’ไธ‹ใ’ใ‚‰ใ‚Œใ‚‹
CI ใ‚ณใ‚นใƒˆๅข— ใƒ–ใƒฉใƒณใƒใŒๅข—ใˆใ‚‹ใปใฉใƒ“ใƒซใƒ‰ใƒžใƒˆใƒชใ‚ฏใ‚นใŒ่†จใ‚‰ใฟใ€ใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใ‚’ๆœ€้ฉๅŒ–ใ—ใชใ„ใจใƒฉใƒณใƒŠใƒผ่ชฒ้‡‘ใŒ่ทณใญใ‚‹ๅฏ่ƒฝๆ€งใ‚ใ‚Š
ๅญฆ็ฟ’ใ‚ณใ‚นใƒˆใ€€ โ€œใ„ใคใ€ใฉใฎใƒ–ใƒฉใƒณใƒใ‚’ๅˆ‡ใ‚‹ใ‹โ€ ใŒ้›ฃ่งฃ

CI/CD

็ถšใ„ใฆ CI/CD ใฎใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใจ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใซใคใ„ใฆใ€ๆŠœ็ฒ‹ใ—ใฆใ”็ดนไป‹ใ—ใพใ™
ใƒฉใ‚คใƒ–ใƒฉใƒชๅ…ฌ้–‹ใซใŠใ„ใฆใฏไปฅไธ‹ใฎ 3 ็จฎใ‚’ๆดป็”จใ—ใฆใ„ใพใ™

pr-auto-labeler

PR ใ‚’ไฝœๆˆใ—ใŸ้š›ใซใ€ใƒ–ใƒฉใƒณใƒใฎ prefix ใซๅฟœใ˜ใฆใ€่‡ชๅ‹•็š„ใซใƒฉใƒ™ใƒซใ‚’ไป˜ไธŽใ—ใฆใใ‚Œใ‚‹ workflow ใงใ™
ๅพŒ่ฟฐใ™ใ‚‹ release note ใซๅฟ…่ฆใฎ็‚บใ€็”จๆ„ใ—ใฆใ„ใพใ™

pr-auto-labeler.yml


name: PR auto Labeler

on:
  pull_request:
    types: [opened]

jobs:
  pr-labeler:
    runs-on: ubuntu-latest
    steps:
      - uses: TimonVS/pr-labeler-action@v3
        with:
          configuration-path: .github/pr-labeler-settings.yml
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
pr-labeler-settings.yml


chore: ["chore/*", "renovate/*"]
docs: "docs/*"
feature: ["feature/*", "feat/*", "topic/*", "experiment/*"]
fix: ["fix/*", "hotfix/*", "backport/*"]
refactor: "refactor/*"

release note

release note ใฎ่‡ชๅ‹•ไฝœๆˆใฏ package-publish ๅ†…ใงๅฎŸๆ–ฝใ™ใ‚‹ใฎใงใ™ใŒใ€ไฝ“่ฃใ‚’ๆ•ดใˆใ‚‹็‚บใ€ไปฅไธ‹ใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใ‚’็”จๆ„ใ—ใฆใ„ใพใ™

release.yml


changelog:
  categories:
    - title: New Features ๐ŸŽ‰
      labels:
        - feature
    - title: Bug Fixes ๐Ÿ›
      labels:
        - fix
    - title: Maintenance & Chores ๐Ÿ”ง
      labels:
        - chore
    - title: Code Refactoring โœจ
      labels:
        - refactor
    - title: Other Changes
      labels:
        - "*"

package-publish

publish ็”จใฎ workflow ใงใฏ็‰นๆฎŠใชใ“ใจใฏใ—ใฆใ„ใชใ„ใงใ™
dispatch ใ‹ใ‚‰ Semantic Versioning ใงใƒชใƒชใƒผใ‚นใงใใ‚‹ใ‚ˆใ†่จญๅฎšใ‚’่ฟฝๅŠ ใ—ใฆใพใ™

Create GitHub Release (Automatic Notes) ใฎ step ใงใ€release.yml ้€šใ‚Šใฎไฝ“่ฃใง PR ใŒ่‡ชๅ‹•็š„ใซๅˆ†้กžใ•ใ‚Œใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใŒไฝœๆˆใ•ใ‚Œใพใ™๐ŸŽ‰

public-package.yml


name: Publish Packages

on:
  workflow_dispatch:
    inputs:
      release_type:
        description: "Select release type"
        required: true
        type: choice
        default: "patch"
        options:
          - major
          - minor
          - patch
          - premajor
          - prerelease
      prerelease_id:
        description: "Select prerelease id (used only if release_type is prerelease)"
        required: false
        type: choice
        default: "alpha"
        options:
          - alpha
          - beta
          - rc

jobs:
  publish:
    runs-on: ubuntu-latest

    #...็œ็•ฅ

    steps:
      # ใƒ–ใƒฉใƒณใƒใŒ release/ ใงๅง‹ใพใ‚‹ใ“ใจใ‚’็ขบ่ชใ—ใ€release/ ไปฅๅค–ใฎๅ ดๅˆใฏใ‚จใƒฉใƒผใ‚’ๅ‡บใ™
      - name: Verify release branch
        if: ${{ !startsWith(github.ref, 'refs/heads/release/') }}
        run: |
          echo "This workflow can only be run on release branches."
          exit 1

      # ~~ ใƒใ‚งใƒƒใ‚ฏใ‚ขใ‚ฆใƒˆ ใ‚„ใ‚‰ ใƒ“ใƒซใƒ‰ ใ‚„ใ‚‰ ~~

      # release branch ็”จใซใƒใƒผใ‚ธใƒงใƒณใ‚’ๆ›ดๆ–ฐ
      - name: Bump version for release branch
        id: bump_version
        run: |
          if [ "${{ inputs.release_type }}" = "premajor" ] || [ "${{ inputs.release_type }}" = "prerelease" ]; then
            NEW_VERSION=$(npm version ${{ inputs.release_type }} --preid "${{ inputs.prerelease_id }}" -m "chore: Bump version to %s")
          else
            NEW_VERSION=$(npm version ${{ inputs.release_type }} -m "chore: Bump version to %s")
          fi

          echo "NEW_VERSION=${NEW_VERSION}" >> "$GITHUB_OUTPUT"

      # ใ‚ณใƒŸใƒƒใƒˆใจใ‚ฟใ‚ฐใ‚’ใƒ—ใƒƒใ‚ทใƒฅ
      - name: Push commit and tags
        run: git push --follow-tags

      # ๅ…ฌ้–‹
      - name: Publish ๐ŸŽ
        run: pnpm publish --provenance --access public --publish-branch "${GITHUB_REF#refs/heads/}" --no-git-checks
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      # ~~ main ใธใฎใƒใƒผใ‚ธใƒงใƒณๅŒๆœŸ ~~

      # release note ใฎไฝœๆˆ
      # release note ใฎ่จญๅฎšใฏ release.yml ใ‚’ๅ‚็…ง
      - name: Create GitHub Release (Automatic Notes)
        uses: actions/github-script@v7
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const tagName = process.env.NEW_VERSION;

            const response = await github.rest.repos.createRelease({
              owner: context.repo.owner,
              repo: context.repo.repo,
              tag_name: tagName,
              name: tagName,
              generate_release_notes: true,
              draft: false,
              prerelease: (tagName.includes('-')),
            });

            core.info(`Created release: ${response.data.html_url}`);
            core.setOutput("release_id", response.data.id);
            core.setOutput("release_url", response.data.html_url);
        env:
          NEW_VERSION: ${{ steps.bump_version.outputs.NEW_VERSION }}

ใƒญใƒผใƒ‰ใƒžใƒƒใƒ—

ไปŠๅพŒใฏไปฅไธ‹ใฎๆฉŸ่ƒฝ่ฟฝๅŠ ใจๆ”นๅ–„ใซๅ–ใ‚Š็ต„ใ‚€ๆƒณๅฎšใงใ™

ๅ„ชๅ…ˆๅบฆ ไบˆๅฎš
High ใ‚ขใ‚ฏใ‚ปใ‚ทใƒ“ใƒชใƒ†ใ‚ฃๅฏพๅฟœ (ใ‚ญใƒผใƒœใƒผใƒ‰ๆ“ไฝœ / ARIA)
High ่ฆชๅญใ‚ฟใ‚นใ‚ฏ่กจ็คบ (ใ‚ฐใƒซใƒผใƒ”ใƒณใ‚ฐ)
Mid TaskBar API: onClick / onContextMenu ใชใฉ
Mid ใƒ†ใƒผใƒžใ‚ซใ‚นใ‚ฟใƒžใ‚คใ‚บ & ใƒ€ใƒผใ‚ฏใƒขใƒผใƒ‰
Low UI ใฎๅพฎ่ชฟๆ•ด

ใพใจใ‚

react-gantt-flow ใฏใ€Œ่ปฝ้‡ ร— ็จฒๅฆป็ทš ร— ๅž‹ๅฎ‰ๅ…จใ€ใŒๅฃฒใ‚Šใฎ OSS ใ‚ฌใƒณใƒˆใƒใƒฃใƒผใƒˆใงใ™
ไปŠๅพŒใฏ A11y & ใ‚ฐใƒซใƒผใƒ”ใƒณใ‚ฐใ‚’ๅผทๅŒ–ไบˆๅฎšใจใชใ‚Šใพใ™๐Ÿ˜‰

ใƒฉใ‚คใƒ–ใƒฉใƒช้–‹็™บใฏใ‚ทใ‚นใƒ†ใƒ ้–‹็™บใจใฏ้•ใฃใŸ้ข็™ฝใ•ใŒใ‚ใ‚Šใจใฆใ‚‚้ญ…ๅŠ›็š„ใงใ™

ๆฌกๅ›ž่จ˜ไบ‹ใงใฏไธ€็•ช่‹ฆๆˆฆใ—ใŸ dependenciesArrow ใฎๅฎŸ่ฃ…ใซใคใ„ใฆๆทฑๆŽ˜ใ‚Š or ใƒฉใ‚คใƒ–ใƒฉใƒชไฝœๆˆใฎ็‚บใฎ Vite ่จญๅฎš ใฎใฉใกใ‚‰ใ‹ใงใ™๏ผใŠๆฅฝใ—ใฟใซ๏ผ ๐Ÿ™Œ

63
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

@moppiiiii's pickup articles

moppiiiii

@moppiiiii(ใจใ‚‚)

ใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰ใ‚จใƒณใ‚ธใƒ‹ใ‚ข | ใ‚ฏใ‚ฝ้›‘้ญšใƒŠใƒกใ‚ฏใ‚ธใ‚จใƒณใ‚ธใƒ‹ใ‚ข

Today's trending articles

q-1-p

ใ€ๅ€‹ไบบ้–‹็™บใ€‘ๅฅ‘็ด„ไธญใฎใ‚ตใƒ–ใ‚นใ‚ฏใƒชใƒ—ใ‚ทใƒงใƒณใ‚’็ฎก็†ใงใใ‚‹ใ‚ตใƒผใƒ“ใ‚นใ‚’ใƒชใƒชใƒผใ‚นใ—ใพใ—ใŸใ€Next.jsร—Neonร—Clerkร—Netlifyใ€‘

tomada

ใ€AI้ง†ๅ‹•้–‹็™บใ€‘Cursorใ‚’ไฝฟใ„ใ“ใชใ—ใฆ1ใƒถๆœˆใงใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐๅญฆ็ฟ’ใ‚ตใ‚คใƒˆใ‚’ไฝœใฃใŸใฎใงใƒŽใ‚ฆใƒใ‚ฆใ‚’ไผใˆใŸใ„

Linked from these articles

Comments

No comments

Let's comment your feelings that are more than good

Being held Article posting campaign

63
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address