ํ๋ฌ๊ทธ์ธ์ ์๋์ผ๋ก ๋ฆด๋ฆฌ์คํ๋ ๊ฒ์ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. ์ด ๊ฐ์ด๋์์๋ GitHub Actions๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๊ทธ๋ฅผ ์์ฑํ ๋ ์๋์ผ๋ก ๋ฆด๋ฆฌ์ค๋ฅผ ์์ฑํ๋๋ก ํ๋ฌ๊ทธ์ธ์ ์ค์ ํฉ๋๋ค.
-
ํ๋ฌ๊ทธ์ธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์์
.github/workflows
์๋์release.yml
์ด๋ผ๋ ํ์ผ์ ๋ง๋ค๊ณ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค:name: Release Obsidian plugin on: push: tags: - "*" jobs: build: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v3 - name: Use Node.js uses: actions/setup-node@v3 with: node-version: "18.x" - name: Build plugin run: | npm install npm run build - name: Create release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | tag="${GITHUB_REF#refs/tags/}" gh release create "$tag" \ --title="$tag" \ --draft \ main.js manifest.json styles.css
-
ํฐ๋ฏธ๋์์ ์ํฌํ๋ก์ฐ๋ฅผ ์ปค๋ฐํฉ๋๋ค.
git add .github/workflows/release.yml git commit -m "Add release workflow" git push origin main
-
GitHub์์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ด๋ํ์ฌ Settings ํญ์ ์ ํํฉ๋๋ค. ์ผ์ชฝ ์ฌ์ด๋๋ฐ์์ Actions ๋ฉ๋ด๋ฅผ ํ์ฅํ๊ณ General ๋ฉ๋ด๋ก ์ด๋ํ ๋ค์ Workflow permissions ์น์ ์ผ๋ก ์คํฌ๋กคํ์ฌ Read and write permissions ์ต์ ์ ์ ํํ๊ณ ์ ์ฅํฉ๋๋ค.
-
manifest.json
ํ์ผ์ ๋ฒ์ ๊ณผ ์ผ์นํ๋ ํ๊ทธ๋ฅผ ์์ฑํฉ๋๋ค.git tag -a 1.0.1 -m "1.0.1" git push origin 1.0.1
-a
๋ ์ฃผ์ ํ๊ทธ(annotated tag)๋ฅผ ์์ฑํฉ๋๋ค.-m
์ ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. Obsidian ํ๋ฌ๊ทธ์ธ์ ๊ฒฝ์ฐ ๋ฒ์ ๊ณผ ๋์ผํด์ผ ํฉ๋๋ค.
-
GitHub์์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ด๋ํ์ฌ Actions ํญ์ ์ ํํฉ๋๋ค. ์ํฌํ๋ก์ฐ๊ฐ ์์ง ์คํ ์ค์ด๊ฑฐ๋ ์ด๋ฏธ ์๋ฃ๋์์ ์ ์์ต๋๋ค.
-
์ํฌํ๋ก์ฐ๊ฐ ์๋ฃ๋๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ธฐ๋ณธ ํ์ด์ง๋ก ๋์๊ฐ ์ค๋ฅธ์ชฝ ์ฌ์ด๋๋ฐ์์ Releases๋ฅผ ์ ํํฉ๋๋ค. ์ํฌํ๋ก์ฐ๋ ์ด์ GitHub ๋ฆด๋ฆฌ์ค๋ฅผ ์์ฑํ๊ณ ํ์ํ ์์ฐ์ ๋ฐ์ด๋๋ฆฌ ์ฒจ๋ถ ํ์ผ๋ก ์ ๋ก๋ํ์ต๋๋ค.
-
๋ฆด๋ฆฌ์ค ์ด๋ฆ ์ค๋ฅธ์ชฝ์ ์๋ Edit(์ฐํ ์์ด์ฝ)๋ฅผ ์ ํํฉ๋๋ค.
-
์ด ๋ฆด๋ฆฌ์ค์์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ฌ์ฉ์์๊ฒ ์๋ฆฌ๊ธฐ ์ํด ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ์ถ๊ฐํ ๋ค์ Publish release๋ฅผ ์ ํํฉ๋๋ค.
์ด์ ์ ํ๊ทธ๋ฅผ ์์ฑํ ๋๋ง๋ค ์๋์ผ๋ก GitHub ๋ฆด๋ฆฌ์ค๋ฅผ ์์ฑํ๋๋ก ํ๋ฌ๊ทธ์ธ์ ์ฑ๊ณต์ ์ผ๋ก ์ค์ ํ์ต๋๋ค.
- ์ด ํ๋ฌ๊ทธ์ธ์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค์ธ ๊ฒฝ์ฐ, ์ด์ ํ๋ฌ๊ทธ์ธ์ ์ ์ถํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
- ์ด๋ฏธ ๊ฒ์๋ ํ๋ฌ๊ทธ์ธ์ ์ ๋ฐ์ดํธ์ธ ๊ฒฝ์ฐ, ์ฌ์ฉ์๋ ์ด์ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.