[tahoe-lafs-trac-stream] [Tahoe-LAFS] #4098: CircleCI is Broken
Tahoe-LAFS
trac at tahoe-lafs.org
Tue Nov 12 14:40:58 UTC 2024
#4098: CircleCI is Broken
-------------------------+-----------------------
Reporter: meejah | Owner:
Type: task | Status: new
Priority: normal | Milestone: undecided
Component: unknown | Version: n/a
Resolution: | Keywords:
Launchpad Bug: |
-------------------------+-----------------------
Comment (by btlogy):
I've recently spent some time on this issue because it has hit us at
PrivateStorage in other related repositories.
E.g.: https://github.com/PrivateStorageio/ZKAPAuthorizer/issues/462
The problem describe in this Track ticket seems very similar and seems to
be still present in the last merge commit (15 checks failed : all
CircleCI):
https://github.com/tahoe-lafs/tahoe-
lafs/commit/6cf67471f1ccb00bf72cd6574fdd1deb9259df9e
While the most of those checks have all passed for the related PR:
https://github.com/tahoe-lafs/tahoe-lafs/pull/1383
Our findings in short:
* CircleCI does not checkout the same way the code from a fork repo and a
local branch!
* If the org. on CircleCI has been created using GitHub OAuth, one need to
be GitHub/Tahoe-LAFS admin/owner to be a CircleCI/Tahoe-LAFS admin for the
project/org.
* There is an alternative way to create an org. on CircleCI using mostly
email and password, but it involved a lot of manual steps and does not
cover (easily) all the usual workflows (e.g.: PR from fork)
* CircleCI should checkout the code of a project using HTTPS, unless there
is a private SSH key available in the CircleCI settings.
* There is at least 3 different way CircleCI can have that key setup:
1. a CircleCI/Tahoe-LAFS admin user manually add an authorized private
key (preferably a deploy key unique to the project/repo)
2. a CircleCI/Tahoe-LAFS admin gives (way too many) permissions to
CircleCI/OAuth to automatically create and authorize a new key.
* However, we've found a few projects where there is currently no SSH key,
maybe automatically removed by someone leaving the project (unlikely
IMHO), and regardless, CircleCI tries and fails to checkout via SSH (`Load
key "/tmp/nobody/.ssh/id_rsa": error in libcrypto`).
* As we are suspecting for other project, adding a new SSH key and
removing it directly after seems to cleanup the dirt in the pipe and
forces CircleCI to using HTTPS to checkout (WiP).
* Alternatively, it is "only" possible to avoid SSH and force HTTPS by
implementing a custom checkout step as done once here in ZKAPAuthorizer:
https://github.com/PrivateStorageio/ZKAPAuthorizer/blob/999c7c05f6131dfedcef360234fc4556e76ba755/.circleci/config.yml#L27-L45)
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4098#comment:17>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list