CI: Add --autoremove, ignore removal errors
authorJeffery To <jeffery.to@gmail.com>
Tue, 21 Mar 2023 06:41:48 +0000 (14:41 +0800)
committerNick Hainke <vincent@systemli.org>
Mon, 26 Jun 2023 09:29:59 +0000 (11:29 +0200)
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 b88a6c10cf97469667a21be09e1c74d732f6344e..28b1934b1aef2d5fdca04b8ba89b64e413ade7a2 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