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:
|
env:
|
||||||
DOCKER_BUILDKIT: 1
|
DOCKER_BUILDKIT: 1
|
||||||
|
HAVE_CLEANUP_PAT: ${{ secrets.CLEANUP_PAT != '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build_base:
|
build_base:
|
||||||
|
@ -43,7 +44,10 @@ jobs:
|
||||||
password: ${{ github.token }}
|
password: ${{ github.token }}
|
||||||
- name: Image Name
|
- name: Image Name
|
||||||
id: imagename
|
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
|
- name: Stop Commands
|
||||||
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
|
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
|
||||||
- name: Build target base image
|
- name: Build target base image
|
||||||
|
@ -55,6 +59,16 @@ jobs:
|
||||||
tags: ${{ steps.imagename.outputs.name }}:latest
|
tags: ${{ steps.imagename.outputs.name }}:latest
|
||||||
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
|
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
|
||||||
cache-from: type=registry,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:
|
build_target_bases:
|
||||||
name: Build target base image
|
name: Build target base image
|
||||||
if: ${{ github.event.inputs.buildOnly != 'true' }}
|
if: ${{ github.event.inputs.buildOnly != 'true' }}
|
||||||
|
@ -79,7 +93,10 @@ jobs:
|
||||||
password: ${{ github.token }}
|
password: ${{ github.token }}
|
||||||
- name: Image Name
|
- name: Image Name
|
||||||
id: imagename
|
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
|
- name: Stop Commands
|
||||||
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
|
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
|
||||||
- name: Build target base image
|
- name: Build target base image
|
||||||
|
@ -91,6 +108,16 @@ jobs:
|
||||||
tags: ${{ steps.imagename.outputs.name }}:latest
|
tags: ${{ steps.imagename.outputs.name }}:latest
|
||||||
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
|
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
|
||||||
cache-from: type=registry,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:
|
build_targets:
|
||||||
name: Build target-variant image
|
name: Build target-variant image
|
||||||
if: ${{ github.event.inputs.buildOnly != 'true' }}
|
if: ${{ github.event.inputs.buildOnly != 'true' }}
|
||||||
|
@ -119,8 +146,9 @@ jobs:
|
||||||
- name: Image Name
|
- name: Image Name
|
||||||
id: imagename
|
id: imagename
|
||||||
run: |
|
run: |
|
||||||
IMG="ghcr.io/${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
|
IMG="${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
|
||||||
echo "name=${IMG/ /-}" >> $GITHUB_OUTPUT
|
echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT
|
||||||
|
echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT
|
||||||
echo "gh_repo=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT
|
echo "gh_repo=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT
|
||||||
- name: Stop Commands
|
- name: Stop Commands
|
||||||
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
|
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
|
cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache
|
||||||
build-args: |
|
build-args: |
|
||||||
GH_REPO=ghcr.io/${{ steps.imagename.outputs.gh_repo }}
|
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:
|
build_ffmpeg:
|
||||||
name: Build ffmpeg
|
name: Build ffmpeg
|
||||||
if: ${{ ( github.event.inputs.buildOnly == 'true' && !cancelled() ) || success() }}
|
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…
Reference in a new issue