From 69b19464849126cab2bdd4d7959b70bda25287ee Mon Sep 17 00:00:00 2001 From: bo0tzz Date: Mon, 1 Jun 2026 17:11:45 +0200 Subject: [PATCH] feat: handle prereleases in publish workflows (#28701) --- .github/workflows/cli.yml | 6 ++++-- .github/workflows/docker.yml | 4 ++-- .github/workflows/docs-deploy.yml | 12 ++++++++++-- .github/workflows/sdk.yml | 4 +++- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index 42adf5c72a..df70e8d151 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -49,7 +49,9 @@ jobs: - name: Publish if: ${{ github.event_name == 'release' }} - run: mise run ci-publish + env: + NPM_TAG: ${{ github.event.release.prerelease && 'rc' || 'latest' }} + run: mise run ci-publish -- --tag "$NPM_TAG" docker: name: Docker @@ -102,7 +104,7 @@ jobs: name=ghcr.io/${{ github.repository_owner }}/immich-cli tags: | type=raw,value=${{ steps.package-version.outputs.version }},enable=${{ github.event_name == 'release' }} - type=raw,value=latest,enable=${{ github.event_name == 'release' }} + type=raw,value=latest,enable=${{ github.event_name == 'release' && !github.event.release.prerelease }} - name: Build and push image uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 8e16894b49..1add8b64d3 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -147,7 +147,7 @@ jobs: platforms: ${{ matrix.platforms }} runner-mapping: ${{ matrix.runner-mapping }} suffixes: ${{ matrix.suffixes }} - dockerhub-push: ${{ github.event_name == 'release' }} + dockerhub-push: ${{ github.event_name == 'release' && !github.event.release.prerelease }} build-args: | DEVICE=${{ matrix.device }} @@ -167,7 +167,7 @@ jobs: image: immich-server context: . dockerfile: server/Dockerfile - dockerhub-push: ${{ github.event_name == 'release' }} + dockerhub-push: ${{ github.event_name == 'release' && !github.event.release.prerelease }} build-args: | DEVICE=cpu diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 3b789e810d..5438242b50 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -98,9 +98,16 @@ jobs: shouldDeploy: true }; } else if (eventType == "release") { + const tag = context.payload.workflow_run.head_branch; + const { data: release } = await github.rest.repos.getReleaseByTag({ + owner: context.repo.owner, + repo: context.repo.repo, + tag, + }); parameters = { event: "release", - name: context.payload.workflow_run.head_branch, + name: tag, + prerelease: release.prerelease, shouldDeploy: !isFork }; } @@ -146,6 +153,7 @@ jobs: const parameters = JSON.parse(process.env.PARAM_JSON); core.setOutput("event", parameters.event); core.setOutput("name", parameters.name); + core.setOutput("prerelease", parameters.prerelease); core.setOutput("shouldDeploy", parameters.shouldDeploy); - name: Download artifact @@ -203,7 +211,7 @@ jobs: run: mise run //docs:deploy - name: Deploy Docs Release Domain - if: ${{ steps.parameters.outputs.event == 'release' }} + if: ${{ steps.parameters.outputs.event == 'release' && steps.parameters.outputs.prerelease != 'true' }} env: TF_VAR_prefix_name: ${{ steps.parameters.outputs.name}} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index ce632fafb7..bb3b65646c 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -39,4 +39,6 @@ jobs: run: pnpm --filter @immich/sdk build - name: Publish - run: pnpm --filter @immich/sdk publish --provenance --no-git-checks + env: + NPM_TAG: ${{ github.event.release.prerelease && 'rc' || 'latest' }} + run: pnpm --filter @immich/sdk publish --provenance --no-git-checks --tag "$NPM_TAG"