diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml
index eb382f4..2f4ccf4 100644
--- a/.github/workflows/build-and-deploy.yml
+++ b/.github/workflows/build-and-deploy.yml
@@ -1,4 +1,4 @@
-# Copyright © 2022 Cask Data, Inc.
+# Copyright © 2025 Cask Data, Inc.
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
@@ -25,15 +25,6 @@ jobs:
branch: [ develop ]
steps:
- - name: Get Secrets from GCP Secret Manager
- id: 'secrets'
- uses: 'google-github-actions/get-secretmanager-secrets@v0'
- with:
- secrets: |-
- CDAP_OSSRH_USERNAME:cdapio-github-builds/CDAP_OSSRH_USERNAME
- CDAP_OSSRH_PASSWORD:cdapio-github-builds/CDAP_OSSRH_PASSWORD
- CDAP_GPG_PASSPHRASE:cdapio-github-builds/CDAP_GPG_PASSPHRASE
- CDAP_GPG_PRIVATE_KEY:cdapio-github-builds/CDAP_GPG_PRIVATE_KEY
- name: Recursively Checkout Repository
uses: actions/checkout@v3
@@ -50,22 +41,14 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-${{ github.workflow }}
- - name: Set up GPG conf
+ - name: 'Submit Build to Google Cloud Build'
+ id: gcb
+ working-directory: netty-http
run: |
- echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
- echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
-
- - name: Import GPG key
+ - name: Submit Build to GCB
+ id: gcb
+ working-directory: cdap-e2e-tests
run: |
- echo "$GPG_PRIVATE_KEY" > private.key
- gpg --import --batch private.key
- env:
- GPG_PRIVATE_KEY: ${{ steps.secrets.outputs.CDAP_GPG_PRIVATE_KEY }}
-
- - name: Deploy Maven
- working-directory: netty
- run: mvn -U clean deploy -P release -Dgpg.passphrase=$CDAP_GPG_PASSPHRASE
- env:
- CDAP_OSSRH_USERNAME: ${{ steps.secrets.outputs.CDAP_OSSRH_USERNAME }}
- CDAP_OSSRH_PASSWORD: ${{ steps.secrets.outputs.CDAP_OSSRH_PASSWORD }}
- CDAP_GPG_PASSPHRASE: ${{ steps.secrets.outputs.CDAP_GPG_PASSPHRASE }}
+ gcloud builds submit . \
+ --config=cloudbuild.yaml \
+ --project='cdapio-github-builds'
diff --git a/cloudbuild.yaml b/cloudbuild.yaml
new file mode 100644
index 0000000..a19d498
--- /dev/null
+++ b/cloudbuild.yaml
@@ -0,0 +1,66 @@
+# Copyright © 2025 Cask Data, Inc.
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+steps:
+ - name: 'gcr.io/cloud-builders/mvn:3.8-jdk-8'
+ id: maven-package
+ entrypoint: 'mvn'
+ args:
+ - -B
+ - -U
+ - clean
+ - package
+ - -DskipTests
+
+ - name: 'gcr.io/cloud-builders/mvn:3.8-jdk-8'
+ id: deploy-to-artifact-registry
+ entrypoint: 'mvn'
+ args:
+ - 'deploy'
+ - '-Dmaven.wagon.http.google.EffectiveVersion=1.0.1'
+ waitFor: ['maven-package']
+
+ - name: 'bash'
+ id: create-exit-gate-manifest
+ entrypoint: 'bash'
+ args:
+ - '-c'
+ - |
+ set -e
+ MANIFEST_FILE="/workspace/exit_gate_manifest.textproto"
+ echo '# -*- protobuffer -*-' > "$${MANIFEST_FILE}"
+ echo '# proto-file: security/opensource/exit_gate_v1/onboarded/proto/publishing_manifest.proto' >> "$${MANIFEST_FILE}"
+ echo '# proto-message: PublishingManifest' >> "$${MANIFEST_FILE}"
+ echo '' >> "$${MANIFEST_FILE}"
+ echo 'publish_all: true' >> "$${MANIFEST_FILE}"
+ echo "Created manifest file: $${MANIFEST_FILE}"
+ waitFor: ['deploy-to-artifact-registry']
+
+ - name: 'gcr.io/cloud-builders/gsutil'
+ id: upload-exit-gate-manifest
+ entrypoint: 'bash'
+ args:
+ - '-c'
+ - |
+ set -e
+ GCS_MANIFEST_DIR="gs://oss-exit-gate-prod-projects-bucket/cloud-data-fusion/mavencentral/manifests/"
+ MANIFEST_FILE="/workspace/exit_gate_manifest.textproto"
+ # Use a timestamp to create a unique manifest filename for each release
+ MANIFEST_FILENAME="release_$(date -u +%Y%m%d%H%M%S).textproto"
+
+ echo "Uploading manifest to $${GCS_MANIFEST_DIR}$${MANIFEST_FILENAME}"
+ gsutil cp "$${MANIFEST_FILE}" "$${GCS_MANIFEST_DIR}$${MANIFEST_FILENAME}"
+ echo "Manifest uploaded successfully. OSS Exit Gate process should now be triggered."
+ waitFor: ['create-exit-gate-manifest']
+
+options:
+ requestedVerifyOption: VERIFIED
+ machineType: 'E2_HIGHCPU_32'
diff --git a/pom.xml b/pom.xml
index b78bb95..2cbdfd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,6 +62,30 @@
2.2.4
+
+
+ artifact-registry
+ artifactregistry://us-maven.pkg.dev/oss-exit-gate-prod/cloud-data-fusion--mavencentral
+
+
+ artifact-registry
+ artifactregistry://us-maven.pkg.dev/oss-exit-gate-prod/cloud-data-fusion--mavencentral
+
+
+
+
+
+ artifact-registry
+ artifactregistry:us-maven.pkg.dev/oss-exit-gate-prod/cloud-data-fusion--mavencentral
+
+ true
+
+
+ true
+
+
+
+
javax.ws.rs
@@ -128,6 +152,13 @@
+
+
+ com.google.cloud.artifactregistry
+ artifactregistry-maven-wagon
+ 2.2.5
+
+
@@ -342,38 +373,6 @@
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- 1.5
-
- ${gpg.passphrase}
- ${gpg.useagent}
-
-
-
-
- sign
-
-
-
-
-
-
-
- org.sonatype.central
- central-publishing-maven-plugin
- 0.8.0
- true
-
- sonatype.release
- false
- true
-
-
-
@@ -393,10 +392,6 @@
maven-gpg-plugin
1.5
-
- org.sonatype.central
- central-publishing-maven-plugin
-