feat: handle prereleases in publish workflows (#28701)

pull/28749/head
bo0tzz 2026-06-01 17:11:45 +02:00 committed by GitHub
parent 61cd69a286
commit 69b1946484
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 19 additions and 7 deletions

View File

@ -49,7 +49,9 @@ jobs:
- name: Publish - name: Publish
if: ${{ github.event_name == 'release' }} 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: docker:
name: Docker name: Docker
@ -102,7 +104,7 @@ jobs:
name=ghcr.io/${{ github.repository_owner }}/immich-cli name=ghcr.io/${{ github.repository_owner }}/immich-cli
tags: | tags: |
type=raw,value=${{ steps.package-version.outputs.version }},enable=${{ github.event_name == 'release' }} 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 - name: Build and push image
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0

View File

@ -147,7 +147,7 @@ jobs:
platforms: ${{ matrix.platforms }} platforms: ${{ matrix.platforms }}
runner-mapping: ${{ matrix.runner-mapping }} runner-mapping: ${{ matrix.runner-mapping }}
suffixes: ${{ matrix.suffixes }} suffixes: ${{ matrix.suffixes }}
dockerhub-push: ${{ github.event_name == 'release' }} dockerhub-push: ${{ github.event_name == 'release' && !github.event.release.prerelease }}
build-args: | build-args: |
DEVICE=${{ matrix.device }} DEVICE=${{ matrix.device }}
@ -167,7 +167,7 @@ jobs:
image: immich-server image: immich-server
context: . context: .
dockerfile: server/Dockerfile dockerfile: server/Dockerfile
dockerhub-push: ${{ github.event_name == 'release' }} dockerhub-push: ${{ github.event_name == 'release' && !github.event.release.prerelease }}
build-args: | build-args: |
DEVICE=cpu DEVICE=cpu

View File

@ -98,9 +98,16 @@ jobs:
shouldDeploy: true shouldDeploy: true
}; };
} else if (eventType == "release") { } 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 = { parameters = {
event: "release", event: "release",
name: context.payload.workflow_run.head_branch, name: tag,
prerelease: release.prerelease,
shouldDeploy: !isFork shouldDeploy: !isFork
}; };
} }
@ -146,6 +153,7 @@ jobs:
const parameters = JSON.parse(process.env.PARAM_JSON); const parameters = JSON.parse(process.env.PARAM_JSON);
core.setOutput("event", parameters.event); core.setOutput("event", parameters.event);
core.setOutput("name", parameters.name); core.setOutput("name", parameters.name);
core.setOutput("prerelease", parameters.prerelease);
core.setOutput("shouldDeploy", parameters.shouldDeploy); core.setOutput("shouldDeploy", parameters.shouldDeploy);
- name: Download artifact - name: Download artifact
@ -203,7 +211,7 @@ jobs:
run: mise run //docs:deploy run: mise run //docs:deploy
- name: Deploy Docs Release Domain - name: Deploy Docs Release Domain
if: ${{ steps.parameters.outputs.event == 'release' }} if: ${{ steps.parameters.outputs.event == 'release' && steps.parameters.outputs.prerelease != 'true' }}
env: env:
TF_VAR_prefix_name: ${{ steps.parameters.outputs.name}} TF_VAR_prefix_name: ${{ steps.parameters.outputs.name}}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}

View File

@ -39,4 +39,6 @@ jobs:
run: pnpm --filter @immich/sdk build run: pnpm --filter @immich/sdk build
- name: Publish - 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"