mirror of
https://github.com/drone-plugins/drone-npm.git
synced 2026-06-04 18:23:52 +08:00
Add flag to fail publishing if version conflict in NPM
This commit is contained in:
@@ -54,6 +54,11 @@ func main() {
|
||||
Usage: "skip SSL verification",
|
||||
EnvVar: "PLUGIN_SKIP_VERIFY",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "fail_if_conflict",
|
||||
Usage: "fail NPM publish if version already exists",
|
||||
EnvVar: "PLUGIN_FAIL_IF_CONFLICT",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "env-file",
|
||||
Usage: "source env file",
|
||||
@@ -82,15 +87,16 @@ func run(c *cli.Context) error {
|
||||
|
||||
plugin := Plugin{
|
||||
Config: Config{
|
||||
Username: c.String("username"),
|
||||
Password: c.String("password"),
|
||||
Token: c.String("token"),
|
||||
Email: c.String("email"),
|
||||
Registry: c.String("registry"),
|
||||
Folder: c.String("folder"),
|
||||
SkipVerify: c.Bool("skip_verify"),
|
||||
Tag: c.String("tag"),
|
||||
Access: c.String("access"),
|
||||
Username: c.String("username"),
|
||||
Password: c.String("password"),
|
||||
Token: c.String("token"),
|
||||
Email: c.String("email"),
|
||||
Registry: c.String("registry"),
|
||||
Folder: c.String("folder"),
|
||||
SkipVerify: c.Bool("skip_verify"),
|
||||
FailIfConflict: c.Bool("fail_if_conflict"),
|
||||
Tag: c.String("tag"),
|
||||
Access: c.String("access"),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -19,15 +19,16 @@ import (
|
||||
type (
|
||||
// Config for the plugin.
|
||||
Config struct {
|
||||
Username string
|
||||
Password string
|
||||
Token string
|
||||
Email string
|
||||
Registry string
|
||||
Folder string
|
||||
SkipVerify bool
|
||||
Tag string
|
||||
Access string
|
||||
Username string
|
||||
Password string
|
||||
Token string
|
||||
Email string
|
||||
Registry string
|
||||
Folder string
|
||||
SkipVerify bool
|
||||
FailIfConflict bool
|
||||
Tag string
|
||||
Access string
|
||||
}
|
||||
|
||||
npmPackage struct {
|
||||
@@ -252,6 +253,9 @@ func shouldPublishPackage(config Config, npm *npmPackage) (bool, error) {
|
||||
|
||||
if strings.Compare(npm.Version, value) == 0 {
|
||||
log.Info("Version found in the registry")
|
||||
if config.FailIfConflict {
|
||||
return false, errors.New("Cannot publish package due to version conflict")
|
||||
}
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user