From 78ea55e6f5e1f18916a352e82106fb3cbe8c69f5 Mon Sep 17 00:00:00 2001 From: sai80082 Date: Wed, 4 Mar 2026 13:15:34 +0530 Subject: [PATCH] refactor: Migrate release process to tag-based --- .github/workflows/release.yml | 57 +++++++++++++++-------------------- .releaserc | 49 ------------------------------ package.json | 6 ---- 3 files changed, 24 insertions(+), 88 deletions(-) delete mode 100644 .releaserc diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 91604fb..e1ea781 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,42 +1,24 @@ -name: ci +name: Release on: push: - branches: - - main + tags: + - "v*.*.*" jobs: - release: - # Only run on the original repository, not forks - if: ${{ github.repository_owner == 'varun-raj' }} - runs-on: ubuntu-latest - permissions: - contents: write - outputs: - new-release-published: ${{ steps.release.outputs.new-release-published }} - new-release-version: ${{ steps.release.outputs.new-release-version }} - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 22 - - name: Run semantic-release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - id: release - run: | - npm install - npx semantic-release - build: runs-on: ubuntu-latest permissions: - contents: read + contents: write packages: write - needs: release - if: always() && !failure() + steps: - uses: actions/checkout@v3 + + - name: Extract version from tag + id: version + run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT + - uses: docker/metadata-action@v5 name: Docker meta id: meta @@ -44,17 +26,19 @@ jobs: images: | ghcr.io/${{ github.repository }} tags: | - type=raw,value=latest,enable=${{ github.repository_owner != 'varun-raj' || needs.release.outputs.new-release-published == 'true' }} - type=semver,pattern={{major}}.{{minor}}.{{patch}},enable=${{ github.repository_owner == 'varun-raj' && needs.release.outputs.new-release-published == 'true' }} - type=raw,value=${{ needs.release.outputs.new-release-version }},enable=${{ needs.release.outputs.new-release-version != '' }} + type=raw,value=latest + type=semver,pattern={{major}}.{{minor}}.{{patch}} + type=raw,value=${{ github.ref_name }} + - uses: docker/setup-buildx-action@v3 + - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push - id: docker-build uses: docker/build-push-action@v6 with: context: . @@ -65,4 +49,11 @@ jobs: cache-from: type=gha cache-to: type=gha,mode=max build-args: | - VERSION=${{ needs.release.outputs.new-release-version || 'dev' }} \ No newline at end of file + VERSION=${{ steps.version.outputs.VERSION }} + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.releaserc b/.releaserc deleted file mode 100644 index a9f94dd..0000000 --- a/.releaserc +++ /dev/null @@ -1,49 +0,0 @@ -{ - "branches": ["main"], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": [ - { "type": "docs", "release": false }, - { "type": "refactor", "release": false}, - { "type": "feat", "release": "minor" }, - { "type": "fix", "release": "patch" }, - { "type": "perf", "release": "patch" }, - { "type": "chore", "release": false } - ] - } - ], - [ - "@semantic-release/release-notes-generator", - { - "preset": "angular", - "writerOpts":{ - "headerPartial":"## {{#if isPatch~}} {{~/if~}} 🚀 **Immich Power Tools** {{version}}{{~#if isPatch~}} {{~/if}}" - } - } - ], - [ - "@semantic-release/npm", - { - "npmPublish": false - } - ], - [ - "@semantic-release/github", - { - "assets": [] - } - ], - [ - "@semantic-release/git", - { - "assets": ["package.json"], - "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" - } - ], - ["semantic-release-export-data"] - - ] -} diff --git a/package.json b/package.json index e8d1fdb..75dd287 100644 --- a/package.json +++ b/package.json @@ -82,11 +82,6 @@ "zod": "^4.3.6" }, "devDependencies": { - "@semantic-release/commit-analyzer": "^13.0.0", - "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^10.1.7", - "@semantic-release/npm": "^12.0.1", - "@semantic-release/release-notes-generator": "^14.0.1", "@tanstack/eslint-plugin-query": "^5.68.0", "@types/jsonwebtoken": "^9.0.6", "@types/leaflet": "^1.9.15", @@ -101,7 +96,6 @@ "eslint": "^8", "eslint-config-next": "14.2.5", "postcss": "^8.4.41", - "semantic-release-export-data": "^1.1.0", "tailwindcss": "^3.4.10", "typescript": "^5" }