CI: Add --autoremove, ignore removal errors 20700/head
authorJeffery To <jeffery.to@gmail.com>
Tue, 21 Mar 2023 06:41:48 +0000 (14:41 +0800)
committerJeffery To <jeffery.to@gmail.com>
Wed, 22 Mar 2023 03:48:22 +0000 (11:48 +0800)
836b4e1c734f9705bfd8db0da0c04214c2647932 added
--force-removal-of-dependent-packages but it does not do what the commit
message says it does.

When package A depends on package B (package B is a dependency of
package A; package A is a dependent of package B), trying to remove
package B while package A is installed will result in an error. Adding
--force-removal-of-dependent-packages in this case will cause the
removal of package B and package A (package B's dependent).

But in the case of the CI testing step, it is package A that is being
installed and removed. Removing package A with
--force-removal-of-dependent-packages will not cause package B (package
A's dependency) to be removed.

This adds --autoremove to actually remove the package's dependencies.

This also ignores any errors returned by opkg remove as --autoremove can
sometimes falsely return an error[1].

[1]: https://github.com/openwrt/openwrt/issues/12241

Fixes: 836b4e1c734f ("github-ci: add --force-removal-of-dependent-packages")
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
.github/workflows/entrypoint.sh

index 6af84b8e7ee6d30dd1bb017fe9d8d9ccd5f960e9..8f00a84685729708dec46b36db41b68fc46aa940 100755 (executable)
@@ -39,5 +39,5 @@ for PKG in /ci/*.ipk; do
                echo "No test.sh script available"
        fi
 
-       opkg remove "$PKG_NAME" --force-removal-of-dependent-packages --force-remove
+       opkg remove "$PKG_NAME" --force-removal-of-dependent-packages --force-remove --autoremove || true
 done