Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Nexus repository #139

Closed
michallaskowski opened this issue Aug 9, 2018 · 8 comments
Closed

Support Nexus repository #139

michallaskowski opened this issue Aug 9, 2018 · 8 comments

Comments

@michallaskowski
Copy link

michallaskowski commented Aug 9, 2018

Enhancement Suggestion

We are using Nexus with LDAP access for maven and other artifacts. It would be nice if we could use Nexus for Carthage artifacts. I did a bit of investigation and was able to upload a zipped artifact with a simple authenticated HTTP PUT, and download it with HTTP GET. Was testing with Nexus 2, it is possible Nexus 3 has a different API.

Steps which explain the enhancement or reproduce the bug

  1. ZIP a framework - not sure if this step is needed, but we need some format Nexus raw repository can store.
  2. HTTP PUT the framework to existing raw Nexus repository with correct path. Would need to specify if it is a static/dynamic framework, swift version, platform, and of course framework version. I was thinking about something like /iOS/swift4.2.1/dynamic/RxSwift/4.1.2/RxSwift.zip (or different order)
  3. HTTP GET the framework with the same path in fetch phase.

Why would the enhancement be useful to most users

Would be useful to all companies already using Nexus for their artifacts. No need to setup other tools.

I could probably create a PR, though I have not written in Haskell before. Here I would like to hear first if you are willing to accept this enhancement.

@tmspzz
Copy link
Owner

tmspzz commented Aug 9, 2018

Can you share a link to Nexus? There is already an open issue for Bintray which I was planning to support #120

I am willing to accept the enhancement as long as it does not change the cache structure.

https://github.com/blender/Rome#cache-structure

You can try rome with a local cache if the document doesn't answer all the questions about the structure and you will see how files are stored (dynamic/static support included).

The swift version is specified as a cache prefix and it's the user's duty to use this correctly.

@tmspzz
Copy link
Owner

tmspzz commented Aug 9, 2018

@michallaskowski If you plan to start coding please use this branch https://github.com/blender/Rome/tree/feature/romefile-yaml as it will be soon merged to master.

See #135 and #138 for explanation

@michallaskowski
Copy link
Author

I think that's ok, sorry I missed the cache structure format before.
Nexus 3 upload doc: https://support.sonatype.com/hc/en-us/articles/115006744008

Nexus 2: https://support.sonatype.com/hc/en-us/articles/213465818

Direct deploy is the interesting part. For Nexus 2 the path is
/nexus/content/repositories/<repository-with-prefix>/<cache_structure_path>

For Nexus 3 it is just:
/repository/<repository-with-prefix>/<cache_structure_path>

@tmspzz
Copy link
Owner

tmspzz commented Aug 9, 2018

I think what you want is:

/repository/<bucket-name>/(prefix)/<cache_structure_path>

in yaml, where bucket-name == carthage-cache:

-cache:
 nexus2: carthage-cache
 nexus3: carthage-cache

Note that multiple remote caches at once are not supported

@defkrie
Copy link

defkrie commented Sep 26, 2018

Hello @blender thank you for your work. What is the status of this issue? Can we already test it by providing the address of a nexus server with a user / password in Romefile ?
Thank you

@tmspzz
Copy link
Owner

tmspzz commented Sep 26, 2018

@defkrie

This will be supported via #148 . I work on it when I can. PR's welcome.

@tmspzz
Copy link
Owner

tmspzz commented May 18, 2019

@defkrie @michallaskowski Thanks to @BalestraPatrick you can now use whatever backend you want. #185

@tmspzz tmspzz closed this as completed May 18, 2019
@tmspzz
Copy link
Owner

tmspzz commented May 18, 2019

You can try the pre-release at: https://github.com/blender/Rome/releases/tag/v0.22.0.59

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants