From ca384128e897b037484648a17e1a6e6ccd00cb27 Mon Sep 17 00:00:00 2001 From: Rochmady Date: Wed, 27 May 2026 09:25:17 +0700 Subject: [PATCH] fix(ci): pulihkan release otomatis dengan Node yang didukung --- .github/workflows/release.yml | 52 +++++++++++++---------------------- 1 file changed, 19 insertions(+), 33 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ef96f2a..20ce1e2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,30 +1,11 @@ -# Workflow: Release Otomatis (Semantic Release) untuk Library PHP -# -# Deskripsi: -# Workflow ini berjalan setiap kali ada push ke branch `master` (bukan `main`). -# Ia akan menganalisis commit-commit baru, menentukan versi rilis -# berikutnya berdasarkan aturan Semantic Versioning (major.minor.patch), -# membuat Git tag, dan menerbitkan GitHub Release. -# -# Aturan penentuan versi: -# - Commit dengan `fix:` → bump patch (1.2.3 → 1.2.4) -# - Commit dengan `feat:` → bump minor (1.2.3 → 1.3.0) -# - Commit dengan `BREAKING CHANGE:` atau tanda `!` setelah tipe -# → bump major (1.2.3 → 2.0.0) -# -# Catatan: -# Pastikan Anda menggunakan format commit Conventional Commits. -# Token GITHUB_TOKEN sudah tersedia otomatis di Actions. - name: Release Otomatis (Semantic Release) -# Jalankan workflow ketika ada push ke branch master (default branch repositori) on: push: branches: + - main - master -# Izin yang diperlukan untuk membuat release dan tag permissions: contents: write issues: write @@ -35,34 +16,39 @@ jobs: runs-on: ubuntu-latest steps: - # 1. Checkout repository dengan riwayat penuh (agar semantic-release bisa - # melihat commit dan tag sebelumnya) - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - # 2. Setup Node.js (dibutuhkan oleh semantic-release yang berjalan di atas Node) - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: 'lts/*' + node-version: '22' - # 3. Install semantic-release dan plugin yang diperlukan - # (plugin tambahan bisa disesuaikan, yang di bawah sudah mencukupi) - name: Install semantic-release dan plugin run: | - npm init -y - npm install --save-dev \ + npm install --no-save \ semantic-release \ @semantic-release/commit-analyzer \ @semantic-release/release-notes-generator \ - @semantic-release/github \ - @semantic-release/git + @semantic-release/github + + - name: Generate release config (GitHub release only) + run: | + cat > .releaserc.json <