Drone plugin to publish artifacts to Nexus Repository Manager.
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..
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"
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"