mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-30 18:22:37 -04:00 
			
		
		
		
	chore(ci): Implement a cleanup of Docker images (#2302)
This adds a workflow to clean containers when the pull request closes and remove untagged images generated as tags are updated
This commit is contained in:
		
							parent
							
								
									7e965cb6d4
								
							
						
					
					
						commit
						2a88cc74bf
					
				
							
								
								
									
										77
									
								
								.github/workflows/docker-cleanup.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								.github/workflows/docker-cleanup.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | |||||||
|  | # This workflow runs on certain conditions to check for and potentially | ||||||
|  | # delete container images from the GHCR which no longer have an associated | ||||||
|  | # code branch. | ||||||
|  | # Requires a PAT with the correct scope set in the secrets. | ||||||
|  | # | ||||||
|  | # This workflow will not trigger runs on forked repos. | ||||||
|  | 
 | ||||||
|  | name: Cleanup Old Docker Images | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     types: | ||||||
|  |       - "closed" | ||||||
|  |   push: | ||||||
|  |     paths: | ||||||
|  |       - ".github/workflows/docker-cleanup.yml" | ||||||
|  | 
 | ||||||
|  | concurrency: | ||||||
|  |   group: registry-tags-cleanup | ||||||
|  |   cancel-in-progress: false | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   cleanup-images: | ||||||
|  |     name: Cleanup Stale Images Tags for ${{ matrix.primary-name }} | ||||||
|  |     runs-on: ubuntu-22.04 | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         include: | ||||||
|  |           - primary-name: "immich-server" | ||||||
|  |           - primary-name: "immich-machine-learning" | ||||||
|  |           - primary-name: "immich-web" | ||||||
|  |           - primary-name: "immich-proxy" | ||||||
|  |     env: | ||||||
|  |       # Requires a personal access token with the OAuth scope delete:packages | ||||||
|  |       TOKEN: ${{ secrets.PACKAGE_DELETE_TOKEN }} | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Clean temporary images | ||||||
|  |         if: "${{ env.TOKEN != '' }}" | ||||||
|  |         uses: stumpylog/image-cleaner-action/ephemeral@develop | ||||||
|  |         with: | ||||||
|  |           token: "${{ env.TOKEN }}" | ||||||
|  |           owner: "immich-app" | ||||||
|  |           is_org: "true" | ||||||
|  |           package_name: "${{ matrix.primary-name }}" | ||||||
|  |           scheme: "pull_request" | ||||||
|  |           repo_name: "immich" | ||||||
|  |           match_regex: '^pr-(\d+)$|^(\d+)$' | ||||||
|  | 
 | ||||||
|  |   cleanup-untagged-images: | ||||||
|  |     name: Cleanup Untagged Images Tags for ${{ matrix.primary-name }} | ||||||
|  |     runs-on: ubuntu-22.04 | ||||||
|  |     needs: | ||||||
|  |       - cleanup-images | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         include: | ||||||
|  |           - primary-name: "immich-server" | ||||||
|  |           - primary-name: "immich-machine-learning" | ||||||
|  |           - primary-name: "immich-web" | ||||||
|  |           - primary-name: "immich-proxy" | ||||||
|  |           - primary-name: "immich-build-cache" | ||||||
|  |     env: | ||||||
|  |       # Requires a personal access token with the OAuth scope delete:packages | ||||||
|  |       TOKEN: ${{ secrets.PACKAGE_DELETE_TOKEN }} | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Clean untagged images | ||||||
|  |         if: "${{ env.TOKEN != '' }}" | ||||||
|  |         uses: stumpylog/image-cleaner-action/untagged@develop | ||||||
|  |         with: | ||||||
|  |           token: "${{ env.TOKEN }}" | ||||||
|  |           owner: "immich-app" | ||||||
|  |           is_org: "true" | ||||||
|  |           package_name: "${{ matrix.primary-name }}" | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user