Skip to content

harness-community/drone-nexus-publish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drone-nexus-publish

Drone plugin to publish artifacts to Nexus Repository Manager.

Docker

Build the Docker image with the following commands:

docker buildx build -t DOCKER_ORG/drone-nexus-publish --platform linux/amd64 .

Please note incorrectly building the image for the correct x64 linux and with CGO disabled will result in an error when running the Docker image:

docker: Error response from daemon: Container command
'/bin/drone-nexus-publish' not found or does not exist..

Usage for Single file Upload

docker run --rm \
  -e PLUGIN_USERNAME=${username} \
  -e PLUGIN_PASSWORD=${password} \
  -e PLUGIN_SERVER_URL=http://nexus-publish.server \
  -e PLUGIN_FILENAME=./target/example.jar \
  -e PLUGIN_FORMAT=maven2 \
  -e PLUGIN_REPOSITORY=maven-releases \
  -e PLUGIN_ATTRIBUTES="-CgroupId=org.testing -CartifactId=example -Cversion=1.0 -Aextension=jar -Aclassifier=bin" \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  harnesscommunity/drone-nexus-publish

In Harness CI, YAML for single file Upload

              - step:
                  type: Plugin
                  name: Plugin_1
                  identifier: Plugin_1
                  spec:
                    connectorRef: harnessnew
                    image: harnesscommunity/publish-nexus-repository:1.1.1
                    settings:
                      username: deploy-user
                      password: testing-nexus
                      server_url: http://nexus-publish.server
                      filename: ./target/example.jar
                      format: maven2
                      repository: maven-releases
                      attributes: "-CgroupId=org.testing -CartifactId=example -Cversion=1.0 -Aextension=jar -Aclassifier=bin"

Usage for Multi file Upload

docker run --rm --network host \
    -e PLUGIN_NEXUS_VERSION='nexus3' \
    -e PLUGIN_SERVER_URL='43.204.190.241:8081' \
    -e PLUGIN_USERNAME='nexususer01' \
    -e PLUGIN_PASSWORD='some!secret@abc' \
    -e PLUGIN_FORMAT='maven2' \
    -e PLUGIN_GROUP_ID='test01' \
    -e PLUGIN_PROTOCOL='http' \
    -e PLUGIN_ARTIFACTS='[{"file": "file1.yaml", "classifier": "bin", "groupId": "test", "artifactId": "config-yaml-1", "type": "yaml", "version": "1"}, {"file": "file2.yaml", "classifier": "src", "groupId": "test", "artifactId": "all-config-yaml-2", "type": "yaml", "version": "2"}]' \
    -e PLUGIN_REPOSITORY='stage-dev-repo' \
      -v $(pwd):$(pwd) \
      -w $(pwd) \
    plugins/nexus-publish:latest

In Harnes CI, YAML for multi file Upload

- step:
    type: Plugin
    name: Plugin_1
    identifier: Plugin_1
    spec:
      connectorRef: Docker_Hub_Anonymous
      image: plugins/nexus-publish:latest
      settings:
        nexus_version: nexus3
        server_url: 43.204.190.241:8081
        username: <+secrets.getValue("nexus_plugin_username")>
        password: <+secrets.getValue("nexus_plugin_password")>
        format: maven2
        repository: stage-dev-repo
        group_id: test01
        protocol: http
        artifacts:
          - file: file1.yaml
            classifier: bin
            groupId: test
            artifactId: config-yaml-1
            type: yaml
            version: "1"
          - file: file2.yaml
            classifier: src
            groupId: test
            artifactId: all-config-yaml-2
            type: yaml
            version: "2"