From 7bf0bc2cfd1789cbc5ee0bf590c9e1d4e9f3c088 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 15:48:36 +0300 Subject: [PATCH 01/21] update docker manifest action Signed-off-by: Oguz Ozturk --- .../combine-multi-arch-images/action.yaml | 83 ++++++++++++------- 1 file changed, 53 insertions(+), 30 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 8c446c5ff2c..1a5c095c97e 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -54,55 +54,78 @@ runs: - name: Get base tags id: get-base-tags run: | - amd64_tags=$(printf "%s\n" $ALL_TAGS | grep "\-amd64" | sed "s/-amd64$//g") - arm64_tags=$(printf "%s\n" $ALL_TAGS | grep "\-arm64" | sed "s/-arm64$//g") - base_tags=$(printf "%s\n" "$amd64_tags" "$arm64_tags" | sort | uniq) + echo "All tags: ${{ steps.get-all-tags.outputs.tags }}" + amd64_tags=() + arm64_tags=() + for tag in ${{ steps.get-all-tags.outputs.tags }}; do + echo "Processing tag: $tag" + if [[ $tag == *-amd64 ]]; then + amd64_tags+=("${tag%-amd64}") + echo "Added to amd64_tags: ${tag%-amd64}" + elif [[ $tag == *-arm64 ]]; then + arm64_tags+=("${tag%-arm64}") + echo "Added to arm64_tags: ${tag%-arm64}" + else + echo "Tag doesn't match expected pattern: $tag" + fi + done + base_tags=($(printf "%s\n" "${amd64_tags[@]}" "${arm64_tags[@]}" | sort -u)) - echo -e "\n[amd64_tags]\n$amd64_tags" - echo -e "\n[arm64_tags]\n$arm64_tags" - echo -e "\n[base_tags]\n$base_tags" + echo -e "\n[amd64_tags]\n${amd64_tags[*]}" + echo -e "\n[arm64_tags]\n${arm64_tags[*]}" + echo -e "\n[base_tags]\n${base_tags[*]}" - echo "tags=$(printf "%s " $base_tags | sed 's/\s*$//')" >> $GITHUB_OUTPUT - env: - ALL_TAGS: ${{ steps.get-all-tags.outputs.tags }} + echo "tags=${base_tags[*]}" >> $GITHUB_OUTPUT shell: bash - name: Create Docker manifest run: | - for base_tag in $BASE_TAGS; do - echo -e "\nbase_tag: $base_tag" + IFS=' ' read -ra BASE_TAGS <<< "${{ steps.get-base-tags.outputs.tags }}" + echo "Base tags: ${BASE_TAGS[*]}" + for base_tag in "${BASE_TAGS[@]}"; do + echo -e "\nProcessing base_tag: $base_tag" - amd64_tag=$(printf "%s\n" $ALL_TAGS | grep "^$base_tag\-amd64" || true) - arm64_tag=$(printf "%s\n" $ALL_TAGS | grep "^$base_tag\-arm64" || true) + amd64_tag=$(echo "${{ steps.get-all-tags.outputs.tags }}" | tr ' ' '\n' | grep "^${base_tag}-amd64$" || true) + arm64_tag=$(echo "${{ steps.get-all-tags.outputs.tags }}" | tr ' ' '\n' | grep "^${base_tag}-arm64$" || true) echo "amd64_tag: $amd64_tag" echo "arm64_tag: $arm64_tag" - if [ "$amd64_tag" != "" ]; then - amd64_image="${{ steps.set-image-name.outputs.image-name }}:$amd64_tag" + manifest_args=() + if [ -n "$amd64_tag" ]; then + manifest_args+=("${{ steps.set-image-name.outputs.image-name }}:$amd64_tag") + echo "Added to manifest_args: ${{ steps.set-image-name.outputs.image-name }}:$amd64_tag" else echo "No amd64 tag found for '$base_tag'." - amd64_image="" fi - if [ "$arm64_tag" != "" ]; then - arm64_image="${{ steps.set-image-name.outputs.image-name }}:$arm64_tag" + if [ -n "$arm64_tag" ]; then + manifest_args+=("${{ steps.set-image-name.outputs.image-name }}:$arm64_tag") + echo "Added to manifest_args: ${{ steps.set-image-name.outputs.image-name }}:$arm64_tag" else echo "No arm64 tag found for '$base_tag'." - arm64_image="" fi - echo "amd64_image: $amd64_image" - echo "arm64_image: $arm64_image" - - if docker manifest create ${{ steps.set-image-name.outputs.image-name }}:$base_tag \ - $amd64_image \ - $arm64_image; then - - docker manifest push ${{ steps.set-image-name.outputs.image-name }}:$base_tag + if [ ${#manifest_args[@]} -gt 0 ]; then + echo "Creating manifest for $base_tag with ${#manifest_args[@]} architectures" + echo "Manifest command: docker manifest create ${{ steps.set-image-name.outputs.image-name }}:$base_tag ${manifest_args[*]}" + if docker manifest create "${{ steps.set-image-name.outputs.image-name }}:$base_tag" "${manifest_args[@]}"; then + echo "Pushing manifest: docker manifest push ${{ steps.set-image-name.outputs.image-name }}:$base_tag" + if docker manifest push "${{ steps.set-image-name.outputs.image-name }}:$base_tag"; then + echo "Successfully pushed manifest for $base_tag" + else + echo "Failed to push manifest for $base_tag" + docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" + fi + else + echo "Failed to create manifest for $base_tag" + echo "Docker info:" + docker info + echo "Docker version:" + docker version + fi + else + echo "No valid tags found for '$base_tag'. Skipping manifest creation." fi done - env: - ALL_TAGS: ${{ steps.get-all-tags.outputs.tags }} - BASE_TAGS: ${{ steps.get-base-tags.outputs.tags }} shell: bash From ca233a9201572282f02e85cfa2fc474fb8924fef Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 16:08:59 +0300 Subject: [PATCH 02/21] update docker manifest actionwith tag removal to prevent confusion Signed-off-by: Oguz Ozturk --- .../combine-multi-arch-images/action.yaml | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 1a5c095c97e..8a100039a70 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -78,7 +78,7 @@ runs: echo "tags=${base_tags[*]}" >> $GITHUB_OUTPUT shell: bash - - name: Create Docker manifest + - name: Create Docker manifest and remove architecture-specific tags run: | IFS=' ' read -ra BASE_TAGS <<< "${{ steps.get-base-tags.outputs.tags }}" echo "Base tags: ${BASE_TAGS[*]}" @@ -91,28 +91,42 @@ runs: echo "amd64_tag: $amd64_tag" echo "arm64_tag: $arm64_tag" - manifest_args=() - if [ -n "$amd64_tag" ]; then - manifest_args+=("${{ steps.set-image-name.outputs.image-name }}:$amd64_tag") - echo "Added to manifest_args: ${{ steps.set-image-name.outputs.image-name }}:$amd64_tag" - else - echo "No amd64 tag found for '$base_tag'." - fi - - if [ -n "$arm64_tag" ]; then - manifest_args+=("${{ steps.set-image-name.outputs.image-name }}:$arm64_tag") - echo "Added to manifest_args: ${{ steps.set-image-name.outputs.image-name }}:$arm64_tag" - else - echo "No arm64 tag found for '$base_tag'." - fi + if [ -n "$amd64_tag" ] && [ -n "$arm64_tag" ]; then + echo "Both amd64 and arm64 tags found for '$base_tag'. Creating manifest." + manifest_args=( + "${{ steps.set-image-name.outputs.image-name }}:$amd64_tag" + "${{ steps.set-image-name.outputs.image-name }}:$arm64_tag" + ) + tags_to_remove=("$amd64_tag" "$arm64_tag") - if [ ${#manifest_args[@]} -gt 0 ]; then - echo "Creating manifest for $base_tag with ${#manifest_args[@]} architectures" + echo "Creating manifest for $base_tag with 2 architectures" echo "Manifest command: docker manifest create ${{ steps.set-image-name.outputs.image-name }}:$base_tag ${manifest_args[*]}" if docker manifest create "${{ steps.set-image-name.outputs.image-name }}:$base_tag" "${manifest_args[@]}"; then echo "Pushing manifest: docker manifest push ${{ steps.set-image-name.outputs.image-name }}:$base_tag" if docker manifest push "${{ steps.set-image-name.outputs.image-name }}:$base_tag"; then echo "Successfully pushed manifest for $base_tag" + + # Verify the manifest + echo "Verifying manifest:" + docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" + + # Check if both architectures are present in the manifest + if docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "arm64" && \ + docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "amd64"; then + echo "Manifest verification successful. Proceeding with tag removal." + + # Remove architecture-specific tags + for tag_to_remove in "${tags_to_remove[@]}"; do + echo "Removing tag: ${{ steps.set-image-name.outputs.image-name }}:$tag_to_remove" + if docker push --delete "${{ steps.set-image-name.outputs.image-name }}:$tag_to_remove"; then + echo "Successfully removed tag: $tag_to_remove" + else + echo "Failed to remove tag: $tag_to_remove" + fi + done + else + echo "Manifest verification failed. Skipping tag removal to prevent data loss." + fi else echo "Failed to push manifest for $base_tag" docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" @@ -125,7 +139,7 @@ runs: docker version fi else - echo "No valid tags found for '$base_tag'. Skipping manifest creation." + echo "Both amd64 and arm64 tags not found for '$base_tag'. Skipping manifest creation." fi done shell: bash From 777b99554a3e02461d688ecb07e7999e6b825829 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 16:49:56 +0300 Subject: [PATCH 03/21] fix tag removeal Signed-off-by: Oguz Ozturk --- .../combine-multi-arch-images/action.yaml | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 8a100039a70..1fa7c119494 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -78,10 +78,12 @@ runs: echo "tags=${base_tags[*]}" >> $GITHUB_OUTPUT shell: bash - - name: Create Docker manifest and remove architecture-specific tags + - name: Create Docker manifests + id: create-manifests run: | IFS=' ' read -ra BASE_TAGS <<< "${{ steps.get-base-tags.outputs.tags }}" echo "Base tags: ${BASE_TAGS[*]}" + tags_to_remove="" for base_tag in "${BASE_TAGS[@]}"; do echo -e "\nProcessing base_tag: $base_tag" @@ -97,7 +99,6 @@ runs: "${{ steps.set-image-name.outputs.image-name }}:$amd64_tag" "${{ steps.set-image-name.outputs.image-name }}:$arm64_tag" ) - tags_to_remove=("$amd64_tag" "$arm64_tag") echo "Creating manifest for $base_tag with 2 architectures" echo "Manifest command: docker manifest create ${{ steps.set-image-name.outputs.image-name }}:$base_tag ${manifest_args[*]}" @@ -113,17 +114,8 @@ runs: # Check if both architectures are present in the manifest if docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "arm64" && \ docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "amd64"; then - echo "Manifest verification successful. Proceeding with tag removal." - - # Remove architecture-specific tags - for tag_to_remove in "${tags_to_remove[@]}"; do - echo "Removing tag: ${{ steps.set-image-name.outputs.image-name }}:$tag_to_remove" - if docker push --delete "${{ steps.set-image-name.outputs.image-name }}:$tag_to_remove"; then - echo "Successfully removed tag: $tag_to_remove" - else - echo "Failed to remove tag: $tag_to_remove" - fi - done + echo "Manifest verification successful. Adding tags to removal list." + tags_to_remove+="$amd64_tag,$arm64_tag," else echo "Manifest verification failed. Skipping tag removal to prevent data loss." fi @@ -142,4 +134,15 @@ runs: echo "Both amd64 and arm64 tags not found for '$base_tag'. Skipping manifest creation." fi done + # Remove trailing comma and set output + tags_to_remove=${tags_to_remove%,} + echo "tags-to-remove=$tags_to_remove" >> $GITHUB_OUTPUT shell: bash + + - name: Remove architecture-specific tags + uses: dataaxiom/ghcr-cleanup-action@v1 + with: + delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} + token: ${{ github.token }} + package: ${{ inputs.package-name }} + dry-run: true From b85e8c28238c20b6d9524aa86ecdef9471ebe9e5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:58:52 +0000 Subject: [PATCH 04/21] style(pre-commit): autofix --- .github/actions/combine-multi-arch-images/action.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 1fa7c119494..a6a7251ea12 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -106,11 +106,11 @@ runs: echo "Pushing manifest: docker manifest push ${{ steps.set-image-name.outputs.image-name }}:$base_tag" if docker manifest push "${{ steps.set-image-name.outputs.image-name }}:$base_tag"; then echo "Successfully pushed manifest for $base_tag" - + # Verify the manifest echo "Verifying manifest:" docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" - + # Check if both architectures are present in the manifest if docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "arm64" && \ docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "amd64"; then From 6f285f768099630cfbd8d36e5a15ba2f8d0ab4ab Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 17:01:34 +0300 Subject: [PATCH 05/21] remove dry-run Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index a6a7251ea12..312173f9389 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -144,5 +144,4 @@ runs: with: delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} token: ${{ github.token }} - package: ${{ inputs.package-name }} - dry-run: true + package: ${{ inputs.package-name }} \ No newline at end of file From 50eb3b82a65f50078bdd7c39efa75ed0b768735e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 14:02:41 +0000 Subject: [PATCH 06/21] style(pre-commit): autofix --- .github/actions/combine-multi-arch-images/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 312173f9389..833ad8a2bc3 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -144,4 +144,4 @@ runs: with: delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} token: ${{ github.token }} - package: ${{ inputs.package-name }} \ No newline at end of file + package: ${{ inputs.package-name }} From ff7c503ff905429433b22d5a4ab718ffda020412 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 17:47:22 +0300 Subject: [PATCH 07/21] add permission to write to packages Signed-off-by: Oguz Ozturk --- .github/workflows/update-docker-manifest.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/update-docker-manifest.yaml b/.github/workflows/update-docker-manifest.yaml index af9324fb162..db1da50dfaa 100644 --- a/.github/workflows/update-docker-manifest.yaml +++ b/.github/workflows/update-docker-manifest.yaml @@ -7,6 +7,8 @@ on: jobs: update-docker-manifest: + permissions: + packages: write runs-on: ubuntu-latest steps: - name: Check out repository From ce22dc3c084da256d83223d9d7f1a38770fc781c Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 18:21:51 +0300 Subject: [PATCH 08/21] update delete action version Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 833ad8a2bc3..be7b250d6e5 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -140,7 +140,7 @@ runs: shell: bash - name: Remove architecture-specific tags - uses: dataaxiom/ghcr-cleanup-action@v1 + uses: dataaxiom/ghcr-cleanup-action@v1.0.13 with: delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} token: ${{ github.token }} From a5a1cf3d1dc5be13590c5540366221ea2b04b59c Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 18:43:19 +0300 Subject: [PATCH 09/21] . Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index be7b250d6e5..2a80c7bc0da 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -143,5 +143,6 @@ runs: uses: dataaxiom/ghcr-cleanup-action@v1.0.13 with: delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} - token: ${{ github.token }} - package: ${{ inputs.package-name }} + token: ${{ secrets.GITHUB_TOKEN }} + package: autoware + log-level: debug From a74a61f3b4095ce0a5544c99471977971bf8eac3 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 18:46:12 +0300 Subject: [PATCH 10/21] . Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 2a80c7bc0da..3e1abaccc65 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -143,6 +143,6 @@ runs: uses: dataaxiom/ghcr-cleanup-action@v1.0.13 with: delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ github.token }} package: autoware log-level: debug From bb6193e6a950d30919aed27017a8d937546429f4 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 19:20:55 +0300 Subject: [PATCH 11/21] . Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 3e1abaccc65..b237b3460af 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -144,5 +144,6 @@ runs: with: delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} token: ${{ github.token }} - package: autoware - log-level: debug + package: ${{ inputs.package-name }} + owner: ${{ github.repository_owner }} + repository: ${{ github.repository }} From a4f905fc6bd27c56d2de2b89ffcc283411060620 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 19:49:38 +0300 Subject: [PATCH 12/21] . Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index b237b3460af..4db586f2b79 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -147,3 +147,4 @@ runs: package: ${{ inputs.package-name }} owner: ${{ github.repository_owner }} repository: ${{ github.repository }} + dry-run: true From e97f1e59bc8a3b1964382d910779a2cf1f751789 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 30 Sep 2024 21:16:54 +0300 Subject: [PATCH 13/21] . Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 4db586f2b79..9f7375a412b 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -146,5 +146,4 @@ runs: token: ${{ github.token }} package: ${{ inputs.package-name }} owner: ${{ github.repository_owner }} - repository: ${{ github.repository }} dry-run: true From ede48d6daf86b75c16d13569de78df6560a64d8f Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 17:51:01 +0300 Subject: [PATCH 14/21] . Signed-off-by: Oguz Ozturk --- .../combine-multi-arch-images/action.yaml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 9f7375a412b..8878a15752f 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -115,7 +115,7 @@ runs: if docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "arm64" && \ docker manifest inspect "${{ steps.set-image-name.outputs.image-name }}:$base_tag" | grep -q "amd64"; then echo "Manifest verification successful. Adding tags to removal list." - tags_to_remove+="$amd64_tag,$arm64_tag," + tags_to_remove+="$amd64_tag $arm64_tag " else echo "Manifest verification failed. Skipping tag removal to prevent data loss." fi @@ -135,15 +135,16 @@ runs: fi done # Remove trailing comma and set output - tags_to_remove=${tags_to_remove%,} + tags_to_remove=${tags_to_remove% } echo "tags-to-remove=$tags_to_remove" >> $GITHUB_OUTPUT shell: bash - - name: Remove architecture-specific tags - uses: dataaxiom/ghcr-cleanup-action@v1.0.13 + - name: Remove old images + uses: snok/container-retention-policy@v3.0.0 with: - delete-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} - token: ${{ github.token }} - package: ${{ inputs.package-name }} - owner: ${{ github.repository_owner }} + account: autowarefoundation + token: ${{ secrets.GITHUB_TOKEN }} + image-names: "autoware" + image-tags: "${{ steps.create-manifests.outputs.tags-to-remove }}" + cut-off: 1h dry-run: true From af34cf87b2924804cd220e7c08abecb69457dc63 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 17:57:46 +0300 Subject: [PATCH 15/21] . Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 8878a15752f..b81bd916691 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -143,7 +143,7 @@ runs: uses: snok/container-retention-policy@v3.0.0 with: account: autowarefoundation - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ github.token }} image-names: "autoware" image-tags: "${{ steps.create-manifests.outputs.tags-to-remove }}" cut-off: 1h From 4fb2b6dcaf8d2076fa1db24c3f244360bbed25cf Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 18:29:08 +0300 Subject: [PATCH 16/21] select only tagged versions to remove Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index b81bd916691..440ef1dce81 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -148,3 +148,4 @@ runs: image-tags: "${{ steps.create-manifests.outputs.tags-to-remove }}" cut-off: 1h dry-run: true + tag-selection: tagged From 39c05b7bb54380cb6b078ca5692f5995018a024e Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 18:33:26 +0300 Subject: [PATCH 17/21] test Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 440ef1dce81..f3cb0a7a1c1 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -145,7 +145,7 @@ runs: account: autowarefoundation token: ${{ github.token }} image-names: "autoware" - image-tags: "${{ steps.create-manifests.outputs.tags-to-remove }}" + image-tags: universe-cuda-amd64 cut-off: 1h - dry-run: true + dry-run: false tag-selection: tagged From c8b4719cafcbac7dba0e08ca1b9bbe4e7219a7bf Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 18:38:02 +0300 Subject: [PATCH 18/21] . Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index f3cb0a7a1c1..058f3edb738 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -145,7 +145,8 @@ runs: account: autowarefoundation token: ${{ github.token }} image-names: "autoware" - image-tags: universe-cuda-amd64 + image-tags: universe-cuda-20241004-amd64 cut-off: 1h dry-run: false tag-selection: tagged + rust-log: container_retention_policy=debug From e7bb0520407298819136557976a380c2363f5798 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 18:42:08 +0300 Subject: [PATCH 19/21] enable Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 058f3edb738..0c23dcd6296 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -145,8 +145,7 @@ runs: account: autowarefoundation token: ${{ github.token }} image-names: "autoware" - image-tags: universe-cuda-20241004-amd64 + image-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} cut-off: 1h dry-run: false tag-selection: tagged - rust-log: container_retention_policy=debug From d3038ca5c3099c5712bf7f0c17933556f890c0ce Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 18:53:37 +0300 Subject: [PATCH 20/21] fix precommit checks Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 0c23dcd6296..5220ca049d3 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -144,7 +144,7 @@ runs: with: account: autowarefoundation token: ${{ github.token }} - image-names: "autoware" + image-names: autoware image-tags: ${{ steps.create-manifests.outputs.tags-to-remove }} cut-off: 1h dry-run: false From 546f0b7145e49b24fa566fcab2ad6dbb3935dc60 Mon Sep 17 00:00:00 2001 From: Oguz Ozturk Date: Mon, 7 Oct 2024 18:56:57 +0300 Subject: [PATCH 21/21] remove comment Signed-off-by: Oguz Ozturk --- .github/actions/combine-multi-arch-images/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/combine-multi-arch-images/action.yaml b/.github/actions/combine-multi-arch-images/action.yaml index 5220ca049d3..120ce696f2e 100644 --- a/.github/actions/combine-multi-arch-images/action.yaml +++ b/.github/actions/combine-multi-arch-images/action.yaml @@ -134,7 +134,7 @@ runs: echo "Both amd64 and arm64 tags not found for '$base_tag'. Skipping manifest creation." fi done - # Remove trailing comma and set output + tags_to_remove=${tags_to_remove% } echo "tags-to-remove=$tags_to_remove" >> $GITHUB_OUTPUT shell: bash