Do package cleanup as part of build workflow
This commit is contained in:
		
							parent
							
								
									ffa7c41e0f
								
							
						
					
					
						commit
						1b3fd62fbf
					
				
					 2 changed files with 42 additions and 27 deletions
				
			
		
							
								
								
									
										46
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -22,6 +22,7 @@ on:
 | 
			
		|||
 | 
			
		||||
env:
 | 
			
		||||
  DOCKER_BUILDKIT: 1
 | 
			
		||||
  HAVE_CLEANUP_PAT: ${{ secrets.CLEANUP_PAT != '' }}
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build_base:
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +44,10 @@ jobs:
 | 
			
		|||
          password: ${{ github.token }}
 | 
			
		||||
      - name: Image Name
 | 
			
		||||
        id: imagename
 | 
			
		||||
        run: echo "name=ghcr.io/${GITHUB_REPOSITORY,,}/base" >> $GITHUB_OUTPUT
 | 
			
		||||
        run: |
 | 
			
		||||
          IMG="${GITHUB_REPOSITORY,,}/base"
 | 
			
		||||
          echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT
 | 
			
		||||
          echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT
 | 
			
		||||
      - name: Stop Commands
 | 
			
		||||
        run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
 | 
			
		||||
      - name: Build target base image
 | 
			
		||||
| 
						 | 
				
			
			@ -55,6 +59,16 @@ jobs:
 | 
			
		|||
          tags: ${{ steps.imagename.outputs.name }}:latest
 | 
			
		||||
          cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
 | 
			
		||||
          cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache
 | 
			
		||||
      - name: Cleanup
 | 
			
		||||
        if: ${{ env.HAVE_CLEANUP_PAT == 'true' }}
 | 
			
		||||
        uses: BtbN/delete-untagged-ghcr-action@main
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ secrets.CLEANUP_PAT }}
 | 
			
		||||
          package_name: ${{ steps.imagename.outputs.rawname }}
 | 
			
		||||
          repository_owner: ${{ github.repository_owner }}
 | 
			
		||||
          repository: ${{ github.repository }}
 | 
			
		||||
          owner_type: user
 | 
			
		||||
          untagged_only: true
 | 
			
		||||
  build_target_bases:
 | 
			
		||||
    name: Build target base image
 | 
			
		||||
    if: ${{ github.event.inputs.buildOnly != 'true' }}
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +93,10 @@ jobs:
 | 
			
		|||
          password: ${{ github.token }}
 | 
			
		||||
      - name: Image Name
 | 
			
		||||
        id: imagename
 | 
			
		||||
        run: echo "name=ghcr.io/${GITHUB_REPOSITORY,,}/base-${{ matrix.target }}" >> $GITHUB_OUTPUT
 | 
			
		||||
        run: |
 | 
			
		||||
          IMG="${GITHUB_REPOSITORY,,}/base-${{ matrix.target }}"
 | 
			
		||||
          echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT
 | 
			
		||||
          echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT
 | 
			
		||||
      - name: Stop Commands
 | 
			
		||||
        run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
 | 
			
		||||
      - name: Build target base image
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +108,16 @@ jobs:
 | 
			
		|||
          tags: ${{ steps.imagename.outputs.name }}:latest
 | 
			
		||||
          cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
 | 
			
		||||
          cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache
 | 
			
		||||
      - name: Cleanup
 | 
			
		||||
        if: ${{ env.HAVE_CLEANUP_PAT == 'true' }}
 | 
			
		||||
        uses: BtbN/delete-untagged-ghcr-action@main
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ secrets.CLEANUP_PAT }}
 | 
			
		||||
          package_name: ${{ steps.imagename.outputs.rawname }}
 | 
			
		||||
          repository_owner: ${{ github.repository_owner }}
 | 
			
		||||
          repository: ${{ github.repository }}
 | 
			
		||||
          owner_type: user
 | 
			
		||||
          untagged_only: true
 | 
			
		||||
  build_targets:
 | 
			
		||||
    name: Build target-variant image
 | 
			
		||||
    if: ${{ github.event.inputs.buildOnly != 'true' }}
 | 
			
		||||
| 
						 | 
				
			
			@ -119,8 +146,9 @@ jobs:
 | 
			
		|||
      - name: Image Name
 | 
			
		||||
        id: imagename
 | 
			
		||||
        run: |
 | 
			
		||||
          IMG="ghcr.io/${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
 | 
			
		||||
          echo "name=${IMG/ /-}" >> $GITHUB_OUTPUT
 | 
			
		||||
          IMG="${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
 | 
			
		||||
          echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT
 | 
			
		||||
          echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT
 | 
			
		||||
          echo "gh_repo=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT
 | 
			
		||||
      - name: Stop Commands
 | 
			
		||||
        run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
 | 
			
		||||
| 
						 | 
				
			
			@ -135,6 +163,16 @@ jobs:
 | 
			
		|||
          cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache
 | 
			
		||||
          build-args: |
 | 
			
		||||
            GH_REPO=ghcr.io/${{ steps.imagename.outputs.gh_repo }}
 | 
			
		||||
      - name: Cleanup
 | 
			
		||||
        if: ${{ env.HAVE_CLEANUP_PAT == 'true' }}
 | 
			
		||||
        uses: BtbN/delete-untagged-ghcr-action@main
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ secrets.CLEANUP_PAT }}
 | 
			
		||||
          package_name: ${{ steps.imagename.outputs.rawname }}
 | 
			
		||||
          repository_owner: ${{ github.repository_owner }}
 | 
			
		||||
          repository: ${{ github.repository }}
 | 
			
		||||
          owner_type: user
 | 
			
		||||
          untagged_only: true
 | 
			
		||||
  build_ffmpeg:
 | 
			
		||||
    name: Build ffmpeg
 | 
			
		||||
    if: ${{ ( github.event.inputs.buildOnly == 'true' && !cancelled() ) || success() }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										23
									
								
								.github/workflows/clean.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								.github/workflows/clean.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,23 +0,0 @@
 | 
			
		|||
name: Cleanup
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  workflow_dispatch: ~
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '0 20 * * *'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  cleanup:
 | 
			
		||||
    name: Cleanup
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    env:
 | 
			
		||||
      HAVE_PAT: ${{ secrets.CLEANUP_PAT != '' }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Cleanup
 | 
			
		||||
        if: ${{ env.HAVE_PAT == 'true' }}
 | 
			
		||||
        uses: Chizkiyahu/delete-untagged-ghcr-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ secrets.CLEANUP_PAT }}
 | 
			
		||||
          repository_owner: ${{ github.repository_owner }}
 | 
			
		||||
          repository: ${{ github.repository }}
 | 
			
		||||
          owner_type: user
 | 
			
		||||
          untagged_only: true
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue