fix: freeze on navigating back album description #62306
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Docker | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| release: | |
| types: [published] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: {} | |
| env: | |
| GHCR_NAMESPACE: ghcr.io/${{ github.repository_owner }} | |
| DOCKERHUB_NAMESPACE: docker.io/altran1502 | |
| jobs: | |
| pre-job: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| outputs: | |
| should_run: ${{ steps.check.outputs.should_run }} | |
| steps: | |
| - id: token | |
| uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0 | |
| with: | |
| client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }} | |
| private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }} | |
| permission-contents: read | |
| - name: Check what should run | |
| id: check | |
| uses: immich-app/devtools/actions/pre-job@03514eceb4a27cd714976a866b350df5ce175720 # pre-job-action-v2.1.0 | |
| with: | |
| github-token: ${{ steps.token.outputs.token }} | |
| filters: | | |
| server: | |
| - 'server/**' | |
| - 'openapi/**' | |
| - 'web/**' | |
| - 'i18n/**' | |
| machine-learning: | |
| - 'machine-learning/**' | |
| force-filters: | | |
| - '.github/workflows/docker.yml' | |
| force-events: 'workflow_dispatch,release' | |
| retag_ml: | |
| name: Re-Tag ML | |
| needs: pre-job | |
| permissions: | |
| contents: read | |
| packages: write | |
| if: ${{ fromJSON(needs.pre-job.outputs.should_run).machine-learning == false && !github.event.pull_request.head.repo.fork }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: &ml-variants | |
| - image: immich-machine-learning | |
| device: cpu | |
| - image: immich-machine-learning | |
| device: cuda | |
| suffixes: '-cuda' | |
| platforms: linux/amd64 | |
| - image: immich-machine-learning | |
| device: openvino | |
| suffixes: '-openvino' | |
| platforms: linux/amd64 | |
| - image: immich-machine-learning | |
| device: armnn | |
| suffixes: '-armnn' | |
| platforms: linux/arm64 | |
| - image: immich-machine-learning | |
| device: rknn | |
| suffixes: '-rknn' | |
| platforms: linux/arm64 | |
| - image: immich-machine-learning | |
| device: rocm | |
| suffixes: '-rocm' | |
| platforms: linux/amd64 | |
| runner-mapping: '{"linux/amd64": "pokedex-large"}' | |
| steps: | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Re-tag image | |
| env: | |
| REGISTRY_NAME: 'ghcr.io' | |
| REPOSITORY: ${{ github.repository_owner }}/${{ matrix.image }} | |
| TAG_OLD: main${{ matrix.suffixes }} | |
| TAG_PR: ${{ github.event.number == 0 && github.ref_name || format('pr-{0}', github.event.number) }}${{ matrix.suffixes }} | |
| TAG_COMMIT: commit-${{ github.event_name != 'pull_request' && github.sha || github.event.pull_request.head.sha }}${{ matrix.suffixes }} | |
| run: | | |
| docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_PR}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}" | |
| docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_COMMIT}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}" | |
| retag_server: | |
| name: Re-Tag Server | |
| needs: pre-job | |
| permissions: | |
| contents: read | |
| packages: write | |
| if: ${{ fromJSON(needs.pre-job.outputs.should_run).server == false && !github.event.pull_request.head.repo.fork }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Re-tag image | |
| env: | |
| REGISTRY_NAME: 'ghcr.io' | |
| REPOSITORY: ${{ github.repository_owner }}/immich-server | |
| TAG_OLD: main | |
| TAG_PR: ${{ github.event.number == 0 && github.ref_name || format('pr-{0}', github.event.number) }} | |
| TAG_COMMIT: commit-${{ github.event_name != 'pull_request' && github.sha || github.event.pull_request.head.sha }} | |
| run: | | |
| docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_PR}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}" | |
| docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_COMMIT}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}" | |
| machine-learning: | |
| name: Build and Push ML | |
| needs: pre-job | |
| if: ${{ fromJSON(needs.pre-job.outputs.should_run).machine-learning == true }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: *ml-variants | |
| uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@4d420cf8e5ea499f99b2c2849ff9a219d5f7b178 # multi-runner-build-workflow-v4.0.0 | |
| permissions: | |
| contents: read | |
| actions: read | |
| packages: write | |
| with: | |
| image: ${{ matrix.image }} | |
| context: machine-learning | |
| dockerfile: machine-learning/Dockerfile | |
| platforms: ${{ matrix.platforms }} | |
| runner-mapping: ${{ matrix.runner-mapping }} | |
| suffixes: ${{ matrix.suffixes }} | |
| tags: &tag-rules | | |
| type=ref,event=branch | |
| type=ref,event=pr | |
| type=sha,format=long,prefix=commit- | |
| type=semver,pattern={{version}},prefix=v | |
| type=semver,pattern={{major}},prefix=v | |
| type=match,pattern=v(\d+),group=1,prefix=v,suffix=-rc,enable=${{ github.event.release.prerelease == true }} | |
| type=raw,value=release,enable=${{ github.event_name == 'release' && github.event.release.prerelease == false }} | |
| build-args: | | |
| DEVICE=${{ matrix.device }} | |
| server: | |
| name: Build and Push Server | |
| needs: pre-job | |
| if: ${{ fromJSON(needs.pre-job.outputs.should_run).server == true }} | |
| uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@4d420cf8e5ea499f99b2c2849ff9a219d5f7b178 # multi-runner-build-workflow-v4.0.0 | |
| permissions: | |
| contents: read | |
| actions: read | |
| packages: write | |
| with: | |
| image: immich-server | |
| context: . | |
| dockerfile: server/Dockerfile | |
| tags: *tag-rules | |
| build-args: | | |
| DEVICE=cpu | |
| mirror: | |
| name: Mirror to Docker Hub | |
| needs: [machine-learning, server] | |
| if: ${{ github.event_name == 'release' && github.event.release.prerelease == false }} | |
| permissions: | |
| packages: read | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Slightly hacky; we reuse the ml matrix but tack on immich-server too | |
| image: [immich-server] | |
| include: *ml-variants | |
| env: | |
| IMAGE: ${{ matrix.image }} | |
| SUFFIX: ${{ matrix.suffixes }} | |
| steps: | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Generate docker image tags | |
| id: meta | |
| uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6.2.0 | |
| with: | |
| flavor: | | |
| latest=false | |
| images: ${{ env.GHCR_NAMESPACE }}/${{ env.IMAGE }} | |
| tags: *tag-rules | |
| - name: Mirror tags to Docker Hub | |
| env: | |
| TAGS: ${{ steps.meta.outputs.tags }} | |
| run: | | |
| for tag in ${TAGS}; do | |
| version="${tag##*:}" | |
| docker buildx imagetools create \ | |
| -t "${DOCKERHUB_NAMESPACE}/${IMAGE}:${version}${SUFFIX}" \ | |
| "${GHCR_NAMESPACE}/${IMAGE}:${version}${SUFFIX}" | |
| done | |
| success-check-server: | |
| name: Docker Build & Push Server Success | |
| needs: [server, retag_server, mirror] | |
| permissions: {} | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - uses: immich-app/devtools/actions/success-check@81113db03f6d743efee81e0058c0b43f6cd6f36d # success-check-action-v0.0.6 | |
| with: | |
| needs: ${{ toJSON(needs) }} | |
| success-check-ml: | |
| name: Docker Build & Push ML Success | |
| needs: [machine-learning, retag_ml, mirror] | |
| permissions: {} | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - uses: immich-app/devtools/actions/success-check@81113db03f6d743efee81e0058c0b43f6cd6f36d # success-check-action-v0.0.6 | |
| with: | |
| needs: ${{ toJSON(needs) }} |