Commit Graph

153 Commits

Author SHA1 Message Date
Henrik Grimler e7be93609b
CI: extract deb archive only once
No need to extract it again during grimler.se upload.
2022-03-13 13:15:16 +01:00
Henrik Grimler ccf1b2d111
CI: packages.yml: upload to grimler.se as well 2022-03-13 11:12:42 +01:00
Henrik Grimler e7f3a436ae
CI: packages.yml: refactor, move aptly api functions to scripts/ 2022-03-13 11:12:39 +01:00
Tee KOBAYASHI 8a5fe78e76 github actions: Properly build custom Docker image
when `setup-android-sdk.sh` is modified.
2022-03-13 08:30:29 +09:00
Henrik Grimler a429f53d6f
CI: use cloudflare url for uploading packages
Since the fosshost proxy does not work at the moment.
2022-03-07 11:15:48 +01:00
Henrik Grimler ca5438c1ef
CI: fix occasional dependency upload issue
Previously we were outputting built debs into ./debs instead of
standard folder ./output.  We were also sorting built_packages.txt so
that $(cat ./built_packages.txt) returned an alphabetically sorted
list.

This caused issues for pushes that updated both a package and one or
more of its dependencies, if the dependencies start with a letter that
is later in the alphabet.

Latest example was libforestdb and libsnappy.  Libforestdb depends on
libsnappy, but the buildorder as given to build-package.sh was
"libforestdb libsnappy".  During the libforestdb build libsnappy was
built first, but the deb put into the standard ./output folder (that's
how our build system currently handles built dependency debs).  When
build-package.sh then later tries building libsnappy it skips it
since it has already been built.  We then end up with only libforestdb
in the ./debs folder.

Fix this issue by putting all debs in ./output/, and then moving the
once mentioned in built_packages.txt to ./debs/.

Fixes https://github.com/termux/termux-packages/issues/8773.
2022-01-30 17:06:27 +01:00
Leonid Pliushch 88b2e3efd4
github actions: set --max-time option for curl calls where it can hang for long time 2022-01-15 13:12:39 +02:00
Leonid Pliushch 750a529467
github actions: filter http codes in other places, not only when publishing changes 2021-12-26 22:41:08 +02:00
Leonid Pliushch d332ec887e
github actions: change regexp for packages
Allow dot in package name.
2021-12-20 17:21:55 +02:00
Leonid Pliushch 7aa03f39d8
github actions: filter http codes when publishing changes, handle 504
Aptly may process request for long time enough to make CloudFlare or
server drop connection. Treat this as false failure and don't stop
GitHub Actions with error status.
2021-12-05 12:03:00 +02:00
Yaksh Bariya 99468e7fa8
Fix typo in packages.yml 2021-11-04 19:59:01 +05:30
Yaksh Bariya f3eae9f980
CI: Also package debs for subpackages when workflow_dispatch 2021-11-04 19:38:17 +05:30
Leonid Pliushch 3194a85278
github actions: introduce workflow_dispatch trigger for rebuilding packages 2021-10-26 20:19:10 +03:00
Lucinda May Phipps 80a69bf5e0
packages.yml: allow packages with + in name 2021-10-23 13:40:37 +01:00
Leonid Pliushch 8bde94f6a3
github actions: don't use --retry-all-errors curl option as unavailable in this version 2021-10-09 00:24:54 +03:00
Leonid Pliushch 23ba08388b
github actions: get rid of retry loops 2021-10-08 23:48:58 +03:00
Leonid Pliushch 160e810be8
github actions: use cloudflare endpoint in all problematic places
Should finally resolve issues with uploads.
2021-10-08 23:36:57 +03:00
Leonid Pliushch b8b89471f5
github actions: upload delays 30s, retries 3
Do less retries but with higher delay. Previous config didn't work.
2021-10-08 23:24:30 +03:00
Leonid Pliushch 5272d228e5
github actions: specify own user agent for all curl commands 2021-10-08 14:05:25 +03:00
Leonid Pliushch df3a651aa8
github actions: package upload delays 10s and 10 retry attempts
Also noticed that planned initial delay of 3s hasn't been implemented at
all.
2021-10-08 14:01:17 +03:00
Leonid Pliushch 938f0e4da6
github actions: don't exit with failure status on publishing
Revert to old behavior: if connection has been dropped, do not exit
with failure status.
2021-10-07 16:43:29 +03:00
Leonid Pliushch 8c7b2298f5
github actions: retry problematic steps up to 5 times 2021-10-07 16:41:21 +03:00
Leonid Pliushch 49e2fe69cd
github actions: fix curl command for publishing step 2021-10-07 15:52:53 +03:00
Leonid Pliushch 9fc7764e09
github actions: mask curl exit code 2021-10-07 15:36:30 +03:00
Leonid Pliushch c4ac6712bc
github actions: manually handle curl exit code 52 2021-10-07 15:08:36 +03:00
Leonid Pliushch 19acaed7cd
github actions: add time tracking to upload logs 2021-10-07 15:02:11 +03:00
Leonid Pliushch 150479d560
github actions: retry up to 3 times when connection has been dropped 2021-10-07 14:49:01 +03:00
Leonid Pliushch c8a0cfc528
github actions: fix undefined variable in error message 2021-10-07 13:56:23 +03:00
Henrik Grimler 863ba02411
CI: loop over every tar in termux-packages subfolder 2021-09-21 08:46:23 +02:00
Oskar a30b9e1565
github actions: split artifacts per architecture (#7549) 2021-09-20 18:59:32 +03:00
Leonid Pliushch 6a54b19a37
github actions: explicitly set output directory
Maintain compatibility after changing default output dir to ./output
2021-09-10 19:55:32 +03:00
Leonid Pliushch 47ffead055
github actions: ignore errors when adding deb files to aptly pool
This should be safe. But if there real error occur, CI may finish with
false "success" status and we will not know about the happened issue.
2021-09-10 19:05:22 +03:00
Leonid Pliushch fea2a2730f
github actions: add newline after curl output 2021-07-30 18:20:26 +03:00
Leonid Pliushch f7045ad7c5
github actions: ignore timeout when publishing repo changes 2021-07-30 18:07:10 +03:00
Butta 2890f0748f github actions: don't free disk space on CI unless needed for large builds 2021-06-28 08:30:49 +03:00
Yaksh Bariya 4c77ed98d9 CI: Do not stop all tests on failure of one
This can be helpful while building large packages which often fail to
compile on some archs but compile well on other
2021-06-24 10:38:57 +03:00
Leonid Pliushch c1971731f8
github actions: only upload packages specified in debs/built_packages.txt 2021-06-04 17:08:17 +03:00
Leonid Pliushch b1c0480ea7
github actions: run ./build-package.sh with -I again 2021-06-04 00:34:22 +03:00
Leonid Pliushch 5923e26410
github actions: uploader message fix 2021-06-03 19:36:19 +03:00
Leonid Pliushch 62e458e507
github actions: fix repository publishing step 2021-06-03 18:35:51 +03:00
Leonid Pliushch 90a703a7f2
github actions: more complete error handling for uploads 2021-06-03 17:38:57 +03:00
Leonid Pliushch 101ae1396a
github actions: delete temporary directory from server if package upload failed 2021-06-03 16:56:10 +03:00
Leonid Pliushch 3ff64f973d
github actions: finally remove uploads to grimler.se
Shouldn't be needed anymore.
2021-06-03 15:52:57 +03:00
Leonid Pliushch 9104125493
github actions: provide gpg passphrase via secrets
No need to keep gpg-agent running on server side anymore.
2021-06-03 01:37:30 +03:00
Leonid Pliushch b5bdfe3522
Revert "github actions: disable uploads to grimler.se"
This reverts commit bc0642e5d7.
2021-06-03 01:10:50 +03:00
Leonid Pliushch bc0642e5d7
github actions: disable uploads to grimler.se
don't fill grimler.se with test packages
2021-06-03 01:00:02 +03:00
Leonid Pliushch 3155996cec
github actions: debugging package upload 2021-06-03 00:59:29 +03:00
Leonid Pliushch 2f63574e2b
github actions: initial support of uploading to packages.termux.org 2021-06-03 00:16:03 +03:00
Leonid Pliushch 719957fa2a
Revert "fix" for curl in Github Actions
It doesn't work.
2021-05-26 16:45:50 +03:00
Krishna Kanhaiya ea9e0dde42
Github actions: Enable -I options again. 2021-05-26 09:09:22 +05:30
Jia Yuan Lo 391c5a2876 Fix for curl timeout in GitHub Actions 2021-05-26 09:07:25 +05:30
Leonid Pliushch 0287e528ff
github actions: do not use option '-I' for build-package.sh again
Maybe really switch Cirrus CI if Github Actions can't provide normal networking?

This reverts commit c17ea7ff1b.
2021-05-19 16:51:37 +03:00
Leonid Pliushch c17ea7ff1b
Revert "github actions: do not use option '-I' for build-package.sh"
This reverts commit 96b4e572d6.
2021-05-18 22:46:49 +03:00
Henrik Grimler e62c896722 workflows: re-structure upload job
To try to fix job error.
2021-05-15 22:54:45 +02:00
Henrik Grimler 692bc9429e workflows: fix forgotten parameter in packages.yml 2021-05-15 22:33:15 +02:00
Henrik Grimler 9f44c4f496 workflows: do not error on upload step if there are no debs
As is the case when using ci:no-build for example.
2021-05-15 22:25:17 +02:00
Leonid Pliushch 96b4e572d6
github actions: do not use option '-I' for build-package.sh
Connections to apt repositories often stuck, cause builds to time out.
As there no issues on repository side and connection problem is reproducible
only on Github Actions instances, I can only assume that there is either a
some bug in CI virtual machines setup or Github applies undocumented(?)
limits on networking usage.

Removing '-I' option will disable downloading of prebuilt dependencies
and thus networking usage at cost of increased build times.
2021-05-06 19:31:27 +03:00
Leonid Pliushch 245d0a32d8
CI: free even more space
Now we should have >60 GB free on rootfs.
2021-03-28 23:09:49 +03:00
Leonid Pliushch e214ccdee4
CI: free more space 2021-03-28 23:00:11 +03:00
Leonid Pliushch 2b07eeaaed
github actions: termux-packages uses ./scripts/run-docker.sh instead of ./start-builder.sh 2021-03-02 15:18:53 +02:00
Henrik Grimler f36b4a5ac2
github actions: print subpackages to built_packages.txt as well (#6469)
But only (try to) build the main packages. For each modified package
we check if there are subpackages and in that case save them in
built_packages.txt as well, so that the repository server does not
have to parse the git repo to find out if there are subpackages.
2021-03-01 08:52:25 +01:00
Leonid Pliushch 8487bd8018
bintray repository is now in archive mode
Even though JFrog continued Bintray normal operation until 31 Mar 2021, I'm
disabling Github Actions uploads now. Termux Bintray repository continues to
be available in read-only mode until the final shutdown by JFrog.
2021-02-28 18:15:46 +02:00
Leonid Pliushch fa47b40bb7
github actions: append commit hash to artifacts archive name (#6450) 2021-02-25 13:05:07 +01:00
Leonid Pliushch 95153d0052
github actions: shouldn't be necessary to re-download artifacts
This is already done at the beginning of upload task.
2021-02-24 23:53:40 +02:00
Leonid Pliushch 47a95b59f6
github actions: append git commit hash to artifacts archive name 2021-02-24 23:52:17 +02:00
Henrik Grimler de2729bc3f packages.yml: append random suffix to archive
To not override previous archives that might not have been parsed yet.
2021-02-23 22:18:38 +01:00
Henrik Grimler 3ede21be70 CI: upload debs to grimler.se as well
Will turn off the bintray mirroring for grimler.se once I confirm (as
well as I can) that this works as intended. Will upload a wiki page
with some information about how this is set up on the server in case
someone wants to make a similar setup.

Also use v2 for upload- and download-artifact.
2021-02-14 16:34:26 +01:00
Leonid Pliushch 9113607bac
github actions: disable whatprovides database update
Bintray returns "405 Not Allowed" and is deprecated anyway.
2021-02-09 15:18:07 +02:00
Leonid Pliushch 980500a2f7
CI: update-whatprovides-db: exit if ./debs directory is empty 2021-01-07 14:29:30 +02:00
buttaface 4e6ca12500
CI: free more disk space in the VM 2020-12-21 17:40:07 +02:00
Leonid Pliushch fa4fe9b8d8 CI: add task for updating Whatprovides database with new deb files 2020-11-21 21:12:00 +02:00
Leonid Pliushch 4101b7ff55 CI: disable cacheing - unreliable
Warning: Cache service responded with 429 during upload chunk.
/home/runner/work/_actions/actions/cache/v2/dist/save/index.js:3305
                        throw new Error(`Cache upload failed because file read failed with ${error.message}`);
                        ^

Error: Cache upload failed because file read failed with EBADF: bad file descriptor, read
    at ReadStream.<anonymous> (/home/runner/work/_actions/actions/cache/v2/dist/save/index.js:3305:31)
    at ReadStream.emit (events.js:210:5)
    at internal/fs/streams.js:167:12
    at FSReqCallback.wrapper [as oncomplete] (fs.js:470:5)
2020-11-09 00:25:43 +02:00
Leonid Pliushch aac8319561 CI: attempt caching with "restore-keys"
According to docs, option "restore-keys" support partial cache key
matching which should allow to download prebuilt debs saved in previous
build.
2020-08-04 00:22:44 +03:00
Leonid Pliushch 026350a838 Revert "CI: cache downloaded dependency debfiles"
Github Actions do not allow to overwrite already stored cache for
specific key. This caching approach is suitable for projects, where
dependencies are being tracked within lock files or their alternatives,
for exapmle NPM, Ruby or Python. Termux-packages is not such repository
where we can easily retrieve cache by using old key and generate a new
one after building was finished.
2020-08-04 00:02:53 +03:00
Leonid Pliushch 5a323bb93a CI: cache downloaded dependency debfiles
https://github.com/termux/termux-packages/issues/5620
2020-07-31 16:08:53 +03:00
Leonid Pliushch 5cf235d936 CI: revert latest changes, attempt to fix step 'Free additional disk space on host' 2020-07-01 20:29:38 +03:00
Leonid Pliushch 41c529fd8c Revert "CI: switch to Ubuntu 20.04 and don't use Docker image as build environment"
This reverts commit eaeb2e609e.
2020-07-01 20:27:59 +03:00
Leonid Pliushch 39c66b1ea7 Revert "CI: don't use run-docker.sh"
This reverts commit 7aeb7a9a3a.
2020-07-01 20:27:50 +03:00
Leonid Pliushch 1bb3746c24 Revert "CI: do not hardcode paths to NDK/SDK"
This reverts commit fbf070084b.
2020-07-01 20:27:41 +03:00
Leonid Pliushch a7fa64f3d7 Revert "CI: setup NDK/SDK"
This reverts commit 968e85067c.
2020-07-01 20:27:34 +03:00
Leonid Pliushch 104255b4fe CI: setup NDK/SDK 2020-07-01 20:00:14 +03:00
Leonid Pliushch 97a8171aa9 CI: do not hardcode paths to NDK/SDK 2020-07-01 17:38:20 +03:00
Leonid Pliushch f352387fe2 CI: don't use run-docker.sh 2020-07-01 14:55:45 +03:00
Leonid Pliushch 3d3868cf60 CI: switch to Ubuntu 20.04 and don't use Docker image as build environment
Note that ubuntu-20.04 is preview currently, as stated in https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners.
2020-07-01 14:48:24 +03:00
Leonid Pliushch 5bdcbbd714 CI: fix creation of empty artifacts archive when %ci:no-build is set 2020-06-02 20:42:02 +03:00
Leonid Pliushch 1d43d0981e CI: an attempt to prevent failure of upload job when %ci:no-build tag is specified
%ci:no-build causes packages not being built, however it doesn't prevent
artifacts from being uploaded/downloaded. Due to unavailable *.deb files,
upload job fails during download of the artifacts archive.

Placeholder file should make a valid artifact archive to be available so
job will not fail anymore.
2020-06-02 20:25:36 +03:00
Leonid Pliushch bdc7322307 CI: show checksums for built debs 2020-03-12 19:02:27 +02:00
Leonid Pliushch 4c1caf17e6 Revert "CI: do not uninstall java from VM"
This reverts commit 37abc307c5.
2020-03-08 21:26:57 +02:00
Leonid Pliushch 6804040afa CI: do not uninstall java from VM
Should fix https://github.com/termux/termux-packages/pull/4845/checks?check_run_id=490861673 ?
2020-03-06 21:07:13 +02:00
its-pointless eada913048 rust-1.41.1 (#5009)
* Update rust to 1.41.1
* CI: free additional space in VM, otherwise Rust v1.41.1 build will fail
2020-03-06 13:20:17 +02:00
Leonid Pliushch d26c673109 CI: update packages.yml
Properly handle cases where we have both updated & deleted packages.
2020-02-23 13:51:30 +02:00
Leonid Pliushch f426dbe994 CI: ensure that directories ./debs and ./artifacts are always available
Even if '%ci:no-build' tag was applied.
2020-02-17 13:33:59 +02:00
Leonid Pliushch a5699b620a CI: handle commit tag '%ci:no-build'
This tag will force current workflow to exit with status 'passed'.
2020-02-17 13:13:32 +02:00
Leonid Pliushch bb8d3acd48 CI: update workflows/packages.yml 2020-01-25 16:39:24 +02:00
Leonid Pliushch 2fc2cc5675 CI: fix incorrect *.deb file transfer between jobs
Should fix the issue where updating is done only for
deb files from the last finished build job.
2020-01-23 23:25:15 +02:00
Leonid Pliushch 9e97a520e4 CI: allow to use customized Docker image
Necessary to handle cases where setup scripts were changed
during push or pull request.
2020-01-23 22:36:04 +02:00
Leonid Pliushch b6c59df765 CI: use termux/package-builder Docker image as build environment 2020-01-23 21:54:42 +02:00
Leonid Pliushch c4d673ee07 CI: set path to where extract downloaded artifacts 2020-01-23 00:05:16 +02:00
Leonid Pliushch 0d2a5f69bc CI: workaround for possible artifact upload failure
Certain symbols in file name may cause problems, so directory ./debs
will be archived in tar before uploading.
2020-01-22 23:56:05 +02:00
Leonid Pliushch b447efc27e CI: try to avoid failure when package lists are not found 2020-01-22 22:55:19 +02:00