1 changed files with 55 additions and 0 deletions
@ -0,0 +1,55 @@ |
|||||||
|
name: Cleanup Container Images |
||||||
|
|
||||||
|
on: |
||||||
|
pull_request: |
||||||
|
types: [closed] |
||||||
|
delete: |
||||||
|
|
||||||
|
concurrency: |
||||||
|
group: ${{ github.workflow }}-${{ github.event.ref || github.event.pull_request.head.ref }} |
||||||
|
cancel-in-progress: false |
||||||
|
|
||||||
|
jobs: |
||||||
|
cleanup-images: |
||||||
|
name: Delete branch container images |
||||||
|
runs-on: ubuntu-24.04 |
||||||
|
permissions: |
||||||
|
packages: write |
||||||
|
steps: |
||||||
|
- name: Generate image tag to delete |
||||||
|
id: tag |
||||||
|
run: | |
||||||
|
if [[ "${{ github.event_name }}" == "pull_request" ]]; then |
||||||
|
IMAGE_TAG="pr-${{ github.event.pull_request.number }}" |
||||||
|
else |
||||||
|
# For deleted branches |
||||||
|
BRANCH_NAME="${{ github.event.ref }}" |
||||||
|
IMAGE_TAG=$(echo "$BRANCH_NAME" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9._-]+/-/g; s/-+/-/g; s/^-+|-+$//g' | cut -c1-128 | sed -E 's/[.-]$//') |
||||||
|
fi |
||||||
|
echo "tag=$IMAGE_TAG" >> $GITHUB_OUTPUT |
||||||
|
|
||||||
|
- name: Delete container image version |
||||||
|
continue-on-error: true |
||||||
|
env: |
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||||
|
IMAGE_TAG: ${{ steps.tag.outputs.tag }} |
||||||
|
run: | |
||||||
|
# Get the version ID for this specific tag |
||||||
|
VERSION_ID=$(gh api \ |
||||||
|
-H "Accept: application/vnd.github+json" \ |
||||||
|
-H "X-GitHub-Api-Version: 2022-11-28" \ |
||||||
|
"/orgs/bitwarden/packages/container/key-connector/versions" \ |
||||||
|
--jq ".[] | select(.metadata.container.tags[] | contains(\"$IMAGE_TAG\")) | .id" \ |
||||||
|
| head -1) |
||||||
|
|
||||||
|
if [[ -n "$VERSION_ID" ]]; then |
||||||
|
echo "Deleting image with tag: $IMAGE_TAG (version ID: $VERSION_ID)" |
||||||
|
gh api \ |
||||||
|
--method DELETE \ |
||||||
|
-H "Accept: application/vnd.github+json" \ |
||||||
|
-H "X-GitHub-Api-Version: 2022-11-28" \ |
||||||
|
"/orgs/bitwarden/packages/container/key-connector/versions/$VERSION_ID" |
||||||
|
echo "Successfully deleted image" |
||||||
|
else |
||||||
|
echo "No image found with tag: $IMAGE_TAG" |
||||||
|
fi |
||||||
Loading…
Reference in new issue