diff options
Diffstat (limited to 'deploy/deploy.sh')
-rwxr-xr-x | deploy/deploy.sh | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/deploy/deploy.sh b/deploy/deploy.sh new file mode 100755 index 00000000..edf8b407 --- /dev/null +++ b/deploy/deploy.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env sh +# Copyright 2022 Code Intelligence GmbH +# +# 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. + +set -eu + +fail() { + echo "$1" + exit 1 +} + +cd "$BUILD_WORKSPACE_DIRECTORY" || fail "BUILD_WORKSPACE_DIRECTORY not found" + +JAZZER_COORDINATES=$1 + +[ -z "${MAVEN_USER+x}" ] && \ + fail "Set MAVEN_USER to the Sonatype OSSRH user" +[ -z "${MAVEN_PASSWORD+x}" ] && \ + fail "Set MAVEN_PASSWORD to the Sonatype OSSRH password" +[ -z "${JAZZER_JAR_PATH+x}" ] && \ + fail "Set JAZZER_JAR_PATH to the absolute path of jazzer.jar obtained from the release GitHub Actions workflow" +[ ! -f "${JAZZER_JAR_PATH}" ] && \ + fail "JAZZER_JAR_PATH does not exist at '$JAZZER_JAR_PATH'" + +MAVEN_REPO=https://oss.sonatype.org/service/local/staging/deploy/maven2 + +# The Jazzer jar itself bundles native libraries for multiple architectures and thus can't be built +# on the local machine. It is obtained from CI and passed in via JAZZER_JAR_PATH. +bazel build //deploy:jazzer-docs //deploy:jazzer-sources //deploy:jazzer-pom + +JAZZER_DOCS_PATH=$PWD/$(bazel cquery --output=files //deploy:jazzer-docs) +JAZZER_SOURCES_PATH=$PWD/$(bazel cquery --output=files //deploy:jazzer-sources) +JAZZER_POM_PATH=$PWD/$(bazel cquery --output=files //deploy:jazzer-pom) + +bazel run --define "maven_repo=${MAVEN_REPO}" --define "maven_user=${MAVEN_USER}" \ + --define "maven_password=${MAVEN_PASSWORD}" --define gpg_sign=true \ + //deploy:jazzer-api.publish +bazel run @rules_jvm_external//private/tools/java/com/github/bazelbuild/rules_jvm_external/maven:MavenPublisher -- \ + "$MAVEN_REPO" true "$MAVEN_USER" "$MAVEN_PASSWORD" "$JAZZER_COORDINATES" \ + "$JAZZER_POM_PATH" "$JAZZER_JAR_PATH" "$JAZZER_SOURCES_PATH" "$JAZZER_DOCS_PATH" +bazel run --define "maven_repo=${MAVEN_REPO}" --define "maven_user=${MAVEN_USER}" \ + --define "maven_password=${MAVEN_PASSWORD}" --define gpg_sign=true \ + //deploy:jazzer-junit.publish |