Skip to content

Make manifest retrieval for multi-platform images not fast-failing (#43) #170

Make manifest retrieval for multi-platform images not fast-failing (#43)

Make manifest retrieval for multi-platform images not fast-failing (#43) #170

Workflow file for this run

name: tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
concurrency: testing
permissions:
contents: read
packages: write
jobs:
reset:
name: reset to a clean state
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./
with:
token: ${{ secrets.PAT_TOKEN }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
untagged_only: false
owner_type: user
add_temp_pkgs1:
name: Add temporary packages for testing
runs-on: ubuntu-latest
needs: reset
strategy:
matrix:
i: [1, 2]
type: ['p1', 'p2', 'p3']
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: lower case repository_owner
id: lower_case_repository_owner
uses: ASzc/change-string-case-action@v6
with:
string: ${{ github.repository_owner }}
- name: Build and push
uses: docker/build-push-action@v5
with:
file: ./CICD/Dockerfile_temp
tags: ghcr.io/${{ steps.lower_case_repository_owner.outputs.lowercase }}/${{ matrix.type }}:${{ matrix.i }}
build-args: |
I=${{ matrix.i }}
push: true
add_temp_pkgs2:
name: Add temporary packages for testing make the first untagged
runs-on: ubuntu-latest
needs: add_temp_pkgs1
strategy:
matrix:
i: [1, 2]
type: ['p1', 'p2', 'p3']
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: lower case repository_owner
id: lower_case_repository_owner
uses: ASzc/change-string-case-action@v6
with:
string: ${{ github.repository_owner }}
- name: Build and push
uses: docker/build-push-action@v5
with:
file: ./CICD/Dockerfile_temp
tags: ghcr.io/${{ steps.lower_case_repository_owner.outputs.lowercase }}/${{ matrix.type }}:${{ matrix.i }}
build-args: |
I=${{ matrix.i }}
push: true
platforms: linux/amd64,linux/arm64
clean_untagged_pkgs1:
name: clean untagged packages
runs-on: ubuntu-latest
needs: add_temp_pkgs2
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: ./
id: deleted-action
with:
token: ${{ secrets.PAT_TOKEN }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
untagged_only: true
owner_type: user
except_untagged_multiplatform: true
- shell: bash
run: |
if [[ "${{ steps.deleted-action.outputs.num_deleted }}" != 18 ]]; then
exit 1
fi
clean_untagged_pkgs2:
name: clean untagged packages
runs-on: ubuntu-latest
needs: clean_untagged_pkgs1
steps:
- uses: actions/checkout@v4
- uses: ./
id: deleted-action
with:
token: ${{ secrets.PAT_TOKEN }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
untagged_only: true
owner_type: user
except_untagged_multiplatform: false
- shell: bash
run: |
if [[ "${{ steps.deleted-action.outputs.num_deleted }}" != 24 ]]; then
exit 1
fi
delete_package:
name: delete package
runs-on: ubuntu-latest
needs: clean_untagged_pkgs2
steps:
- uses: actions/checkout@v4
- uses: ./
id: deleted-action
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
package_name: p1
untagged_only: false
owner_type: user
- shell: bash
run: |
if [[ "${{ steps.deleted-action.outputs.num_deleted }}" != 1 ]]; then
exit 1
fi
delete_multiple_packages:
name: delete multiple package
runs-on: ubuntu-latest
needs: clean_untagged_pkgs2
steps:
- uses: actions/checkout@v4
- uses: ./
id: deleted-action
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
package_name: p2, p3
untagged_only: false
owner_type: user
- shell: bash
run: |
if [[ "${{ steps.deleted-action.outputs.num_deleted }}" != 2 ]]; then
exit 1
fi
clean_repo:
name: delete all package in repo
runs-on: ubuntu-latest
needs:
- delete_package
- delete_multiple_packages
steps:
- uses: actions/checkout@v4
- uses: ./
id: deleted-action
with:
token: ${{ secrets.PAT_TOKEN }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
untagged_only: false
owner_type: user
- shell: bash
run: |
if [[ "${{ steps.deleted-action.outputs.num_deleted }}" != 0 ]]; then
exit 1
fi