Skip to content

S3 Coursier Plugin for use with Pants

License

Notifications You must be signed in to change notification settings

ActionIQ/coursier-s3

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

S3 Coursier Plugin

Coursier plugin adding support for S3 dependency resolution. The main purpose of this fork is to enable S3 resolution in Pants 1.27.0+. Also, the original 0.1.0 doesn't work with Coursier 1.1.0-M14 (used by Pants 1.27.0).

This fork uses standard s3:// scheme unlike the original (which uses s3c://), so it's probably not compatible with fm-sbt-s3-resolver.

Credentials

  • AWS

If you have an AWS profile called "artifacts", credentials will be read from there. Otherwise they will be read from the default AWS chain.

Region will be read from the default AWS chain.

  • File

File named .s3credentials can be placed in one of the following locations: current directory, $HOME, $HOME/.sbt, $HOME/.coursier

# Credentials
accessKey = myKey
secretKey = myVeryS3cret

# Region
region = eu-east-1

Usage

You'll need any version of coursier, which can then bootstrap and produce a new coursier jar.

$ coursier bootstrap coursier:1.1.0-M14 rtfpessoa:coursier-s3_2.12:0.2.0-SNAPSHOT --assembly -o coursier-1.1.0-M14-s3.sh
$ tail -c +458 coursier-1.1.0-M14-s3.sh > coursier-1.1.0-M14-s3.jar

Now you can tell Pants to use your custom Coursier version instead of the official one:

[coursier]
repos = """
+[
    's3://s3.amazonaws.com/your-bucket/some/path',
  ]
"""
bootstrap_jar_urls = ['file:///path/to/coursier-1.1.0-M14-s3.jar']

You may need to rm "$HOME/.cache/pants/bin/coursier/1.1.0.cf365ea27a710d5f09db1f0a6feee129aa1fc417/coursier if Pants has already downloaded the official JAR.

Development

To build use: sbt +compile
Note the + means to cross build all scala versions

To publish locally for testing in another project: sbt +publishLocal

To publish to Maven Central (via Sonatype) use:

sbt +publishSigned
sbt sonatypeBundleRelease

Note the + is important so you publish cross scala versions
You can look at the Nexus UI for more info

For more info on publishing see plugin readme

See here for published artifacts

About

S3 Coursier Plugin for use with Pants

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 100.0%