package_uploader.sh should not exit on error when package processing is not finished
by allowing to do as much as possible.
But we need some mechanizm to notify maintainers when errors occurred on CI/CD
on package operations.
Prevents messages like this one:
which: no msgfmt in (/home/xeffyr/bin:/run/wrappers/bin:/home/xeffyr/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/etc/profiles/per-user/xeffyr/bin)
* A bit of refactoring.
* Cleanup mode - remove old package versions and keep only latest one on the remote.
* Metadata regeneration mode. Allows to regenerate metadata without package uploading.
* No script failure when package errored. Just show message and continue.
* Do not leave repository in inconsistent state when terminating uploader with ctrl-c.
* Prevent processing of the duplicated package names in arguments. Argument list will be also sorted.
* Compact informational messages.
It seems that metadata generation take about 40 seconds.
If we submit a new version of package with deleting previous one, users
will observe 404 errors until new metadata will be published.
Addition for cada4be0d87bc4bf8559f08304d6051624d43737.
Release file may not exist too when metadata generation is in progress,
so we may need to do several tries to download file.
If previous build create metadata generation job, the repository will be left in
unsigned state for up to 5-20 seconds. We cannot do anything with this as how
Bintray works. When this case happens, signature checks will fail causing build
failure.
See https://gitlab.com/termux-mirror/termux-packages/-/jobs/175356747.
For now, gpg checks are permanently disabled. When a better solution will be
found, feel free to revert this commit.
As clang++ in the NDK defaults to libc++ since r17, we no longer
need to fake a libstdc++.so at build time (and omit it from the
libc++ package we ship).
Keep bare minimum of scripts & configuration files for CI.
Set Travis target language to generic, remove 'Gemfile' and
'Rakefile' since we building *.deb packages and not ruby ones.
Code that determining changes in git repository is reimplemented
in bash.
Disabled packages are excluded from CI tracking as they frequently
cause errors.