@@ -7,102 +7,151 @@ pipeline {
77 agent {
88 docker {
99 label 'Jenkins-Agent-al2-x64-c54xlarge-Docker-Host'
10- image 'opensearchstaging/ci-runner:ci-runner-ubuntu2004-data-prepper-pipeline-v1 '
10+ image 'alpine:3 '
1111 alwaysPull true
12- args '-u root'
1312 }
1413 }
1514 parameters {
1615 string(name: 'VERSION', description: 'The version of Data Prepper', trim: true)
1716 string(name: 'DATA_PREPPER_BUILD_NUMBER', description: 'The build number of the Data Prepper build from GitHub to release.', trim: true)
1817 }
1918 stages {
20- stage('Download Archives') {
21- steps {
22- script {
23- archivePath = "${DATA_PREPPER_ARTIFACT_STAGING_SITE}/${VERSION}/${DATA_PREPPER_BUILD_NUMBER}/archive"
19+ stage('Promote Archives') {
20+ agent {
21+ docker {
22+ label 'Jenkins-Agent-al2-x64-c54xlarge-Docker-Host'
23+ image 'opensearchstaging/ci-runner:ci-runner-centos7-opensearch-build-v2'
24+ args '-e JAVA_HOME=/opt/java/openjdk-11'
25+ alwaysPull true
26+ }
27+ }
28+ stages {
29+ stage('Download Archives') {
30+ steps {
31+ script {
32+ archivePath = "${DATA_PREPPER_ARTIFACT_STAGING_SITE}/${VERSION}/${DATA_PREPPER_BUILD_NUMBER}/archive"
2433
25- dir('archive') {
26- sh "curl -sSL ${archivePath}/opensearch-data-prepper-${VERSION}-linux-x64.tar.gz -o opensearch-data-prepper-${VERSION}-linux-x64.tar.gz"
27- sh "curl -sSL ${archivePath}/opensearch-data-prepper-jdk-${VERSION}-linux-x64.tar.gz -o opensearch-data-prepper-jdk-${VERSION}-linux-x64.tar.gz"
34+ dir('archive') {
35+ sh "curl -sSL ${archivePath}/opensearch-data-prepper-${VERSION}-linux-x64.tar.gz -o opensearch-data-prepper-${VERSION}-linux-x64.tar.gz"
36+ sh "curl -sSL ${archivePath}/opensearch-data-prepper-jdk-${VERSION}-linux-x64.tar.gz -o opensearch-data-prepper-jdk-${VERSION}-linux-x64.tar.gz"
37+ }
38+ }
39+ }
40+ }
41+ stage('Sign Archives') {
42+ steps {
43+ script {
44+ signatureType = '.sig'
45+ signArtifacts(
46+ artifactPath: "${WORKSPACE}/archive",
47+ sigtype: signatureType,
48+ platform: 'linux'
49+ )
50+ }
51+ }
52+ }
53+ stage('Release Archives to Production Distribution Bucket') {
54+ steps {
55+ script {
56+ withAWS(role: "${ARTIFACT_PROMOTION_ROLE_NAME}", roleAccount: "${AWS_ACCOUNT_ARTIFACT}", duration: 900, roleSessionName: 'jenkins-session') {
57+ s3Upload(file: 'archive/', bucket: "${ARTIFACT_PRODUCTION_BUCKET_NAME}", path: "data-prepper/${VERSION}/")
58+ }
59+ }
2860 }
2961 }
3062 }
3163 }
32- stage('Download Maven Artifacts') {
33- steps {
34- script {
35- mavenPath = "${DATA_PREPPER_ARTIFACT_STAGING_SITE}/${VERSION}/${DATA_PREPPER_BUILD_NUMBER}/maven"
36- group = "org/opensearch/dataprepper"
37- artifacts = ["data-prepper-api"]
38- fileTypes = ["-javadoc.jar", ".jar", ".pom", "-sources.jar", ".module"]
39- checksums = ["", ".md5", ".sha1", ".sha256", ".sha512"]
4064
41- downloadArtifacts()
65+ stage('Promote Docker') {
66+ agent {
67+ docker {
68+ label 'Jenkins-Agent-al2-x64-c54xlarge-Docker-Host'
69+ image 'alpine:3'
70+ alwaysPull true
4271 }
4372 }
44- }
45- stage('Sign Archives') {
46- steps {
47- script {
48- signatureType = '.sig'
49- signArtifacts(
50- artifactPath: "${WORKSPACE}/archive",
51- sigtype: signatureType,
52- platform: 'linux'
53- )
73+ stages {
74+ stage('Copy Docker Image to DockerHub') {
75+ steps {
76+ script {
77+ dockerCopyHub: {
78+ build job: 'docker-copy',
79+ parameters: [
80+ string(name: 'SOURCE_IMAGE_REGISTRY', value: "${DATA_PREPPER_STAGING_CONTAINER_REPOSITORY}"),
81+ string(name: 'SOURCE_IMAGE', value: "data-prepper:${VERSION}-${DATA_PREPPER_BUILD_NUMBER}"),
82+ string(name: 'DESTINATION_IMAGE_REGISTRY', value: 'opensearchproject'),
83+ string(name: 'DESTINATION_IMAGE', value: "data-prepper:${VERSION}")
84+ ]
85+ }
86+ }
87+ }
88+ }
89+ stage('Copy Docker Image to ECR') {
90+ steps {
91+ script {
92+ dockerCopyECR: {
93+ build job: 'docker-copy',
94+ parameters: [
95+ string(name: 'SOURCE_IMAGE_REGISTRY', value: "${DATA_PREPPER_STAGING_CONTAINER_REPOSITORY}"),
96+ string(name: 'SOURCE_IMAGE', value: "data-prepper:${VERSION}-${DATA_PREPPER_BUILD_NUMBER}"),
97+ string(name: 'DESTINATION_IMAGE_REGISTRY', value: 'public.ecr.aws/opensearchproject'),
98+ string(name: 'DESTINATION_IMAGE', value: "data-prepper:${VERSION}")
99+ ]
100+ }
101+
102+ }
103+ }
54104 }
55105 }
56106 }
57- stage('Sign Maven Artifacts') {
58- steps {
59- script {
60- signArtifacts(
61- artifactPath: "${WORKSPACE}/maven",
62- type: 'maven',
63- platform: 'linux '
64- )
107+
108+ stage('Promote Maven') {
109+ agent {
110+ docker {
111+ label 'Jenkins-Agent-al2-x64-c54xlarge-Docker-Host'
112+ image 'opensearchstaging/ci-runner:ci-runner-centos7-opensearch-build-v2'
113+ args '-e JAVA_HOME=/opt/java/openjdk-11 '
114+ alwaysPull true
65115 }
66116 }
67- }
68- stage('Release Archives to Production Distribution Bucket') {
69- steps {
70- script {
71- withAWS(role: "${ARTIFACT_PROMOTION_ROLE_NAME}", roleAccount: "${AWS_ACCOUNT_ARTIFACT}", duration: 900, roleSessionName: 'jenkins-session') {
72- s3Upload(file: 'archive/', bucket: "${ARTIFACT_PRODUCTION_BUCKET_NAME}", path: "data-prepper/${VERSION}/")
117+ stages {
118+ stage('Download Maven Artifacts') {
119+ steps {
120+ script {
121+ mavenPath = "${DATA_PREPPER_ARTIFACT_STAGING_SITE}/${VERSION}/${DATA_PREPPER_BUILD_NUMBER}/maven"
122+ group = "org/opensearch/dataprepper"
123+ artifacts = ["data-prepper-api"]
124+ fileTypes = ["-javadoc.jar", ".jar", ".pom", "-sources.jar", ".module"]
125+ checksums = ["", ".md5", ".sha1", ".sha256", ".sha512"]
126+
127+ downloadArtifacts()
128+ }
73129 }
74130 }
75- }
76- }
77- stage('Release Docker Image to DockerHub') {
78- steps {
79- script {
80- copyContainer(
81- sourceImage: "data-prepper:${VERSION}-${DATA_PREPPER_BUILD_NUMBER}",
82- sourceRegistry: "${DATA_PREPPER_STAGING_CONTAINER_REPOSITORY}",
83- destinationImage: "data-prepper:${VERSION}",
84- destinationRegistry: 'opensearchproject',
85- )
86- copyContainer(
87- sourceImage: "data-prepper:${VERSION}-${DATA_PREPPER_BUILD_NUMBER}",
88- sourceRegistry: "${DATA_PREPPER_STAGING_CONTAINER_REPOSITORY}",
89- destinationImage: "data-prepper:latest",
90- destinationRegistry: 'opensearchproject',
91- )
131+ stage('Sign Maven Artifacts') {
132+ steps {
133+ script {
134+ signArtifacts(
135+ artifactPath: "${WORKSPACE}/maven",
136+ type: 'maven',
137+ platform: 'linux'
138+ )
139+ }
140+ }
92141 }
93- }
94- }
95- stage('Upload Artifacts to Sonatype') {
96- environment {
97- REPO_URL = "https://aws.oss.sonatype.org/ "
98- STAGING_PROFILE_ID = "${SONATYPE_STAGING_PROFILE_ID}"
99- BUILD_ID = "${BUILD_ID}"
100- }
101- steps {
102- script {
103- // stage artifacts for release with Sonatype
104- withCredentials([usernamePassword(credentialsId: 'Sonatype', usernameVariable: 'SONATYPE_USERNAME', passwordVariable: 'SONATYPE_PASSWORD')]) {
105- sh('$WORKSPACE/publish/stage-maven-release.sh $WORKSPACE/maven')
142+ stage('Upload Artifacts to Sonatype') {
143+ environment {
144+ REPO_URL = "https://aws.oss.sonatype.org/"
145+ STAGING_PROFILE_ID = "${SONATYPE_STAGING_PROFILE_ID}"
146+ BUILD_ID = "${BUILD_ID} "
147+ }
148+ steps {
149+ script {
150+ // stage artifacts for release with Sonatype
151+ withCredentials([usernamePassword(credentialsId: 'Sonatype', usernameVariable: 'SONATYPE_USERNAME', passwordVariable: 'SONATYPE_PASSWORD')]) {
152+ sh('$WORKSPACE/publish/stage-maven-release.sh $WORKSPACE/maven')
153+ }
154+ }
106155 }
107156 }
108157 }
0 commit comments