結論だけ読みたい人はこっち
はじめに
一応、前回それなりにコピペで済むようにはしたものの、冗長であると言わざるを得ない。
そこでプラグインにした。
プラグインの設定
plugins {
id "io.github.tac-yacht.codeartifact-repository" version "0.1"
}
ほかのプラグインも使ってるときは真ん中の行だけ追加
※settings.gradle
でpluginManagement.repositories
を設定してる時はgradlePluginPortal()
の追加を忘れずに
ポータルで各種プラグインごとに例示されてるのと同じではある
レポジトリの設定
3種類から選べる。
style A
aws codeartifact get-repository-endpoint
に渡すオプションと同じスタイル
repositories {
maven(CodeArtifact) {
domainName = "domain-name"
repository = "repo"
//now required. change optionally coming soon.
domainOwner = "domain-owner"
region = "region"
}
}
style B
ARNを渡す
repositories {
maven(CodeArtifact) {
arn = "arn:aws:codeartifact:us-west-2:111122223333:repository/test-domain/test-repo"
}
}
style C
aws codeartifact get-repository-endpoint
で取れるURL
repositories {
maven(CodeArtifact) {
url = "https://test-domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/test-repo/"
}
}
認証の設定
作った順なので非推奨から始まります。今の所、実質style 3 一択です。
⚠注意:credentials(AwsCredentials)
は使えません
style 1
AWSリファレンスと同じ設定方法 あらかじめ取得しといた認証を環境変数にセットした上で以下の設定
※これが面倒くさいからプラグイン作ってるので非推奨
repositories {
maven(CodeArtifact) {
credentials {
username = 'aws'
password = System.env.CODEARTIFACT_AUTH_TOKEN
}
}
}
style 2
CodeArtifactのアクセスに使う鍵をべた書きする
※ソースコード共有してたりするとうっかりプッシュとかしかねないので非推奨
repositories {
maven(CodeArtifact) {
credentials(AwsToPasswordCredentials) {
accessKey = "myAccessKey"
secretKey = "mySecret"
}
}
}
style 3
~にある.awsに設定済みのプロファイルを参照します。
repositories {
maven(CodeArtifact) {
credentials(AwsToPasswordCredentials) {
profile = "myProfile"
}
}
}
利用例
レポジトリと認証の設定を組み合わせた利用例
plugins {
id "io.github.tac-yacht.codeartifact-repository" version "0.1"
}
repositories {
maven(CodeArtifact) {
arn = "arn:aws:codeartifact:us-west-2:111122223333:repository/test-domain/test-repo"
credentials(AwsToPasswordCredentials) {
profile = "myProfile"
}
}
}