Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/prerelease.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -122,14 +122,21 @@ jobs:
name: jazzer
path: _tmp/

- name: Run Deployment
- name: Generate Jazzer Bundle for Upload to Maven Central
env:
RELEASE_SIGNING_KEY_ID: ${{ secrets.RELEASE_SIGNING_KEY_ID }}
RELEASE_SIGNING_KEY_PRIVATE: ${{ secrets.RELEASE_SIGNING_KEY_PRIVATE }}
MAVEN_USER: ${{ secrets.MAVEN_USER }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
run: JAZZER_JAR_PATH="$(pwd)/_tmp/jazzer.jar" bazel run deploy

- name: Upload Jazzer Bundle to Github Artifacts
uses: actions/upload-artifact@v4
with:
name: jazzer-maven-central-bundle
path: _tmp/release
if-no-files-found: error

create_release:
needs: build_release
runs-on: ubuntu-22.04
Expand Down
11 changes: 7 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,10 @@ Run `./format.sh` to format all source files in the way enforced by the "Check f
## Releasing (CI employees only)

1. Push a tag of the form `v1.2.3` to trigger the "Prerelease" GitHub Actions workflow.
2. Wait for the workflow to finish (about 10 minutes)
3. When successful and happy with the results, log into https://oss.sonatype.org, select all staging repositories (usually one, can be more) under "Staging Repositories" and "Close" them.
Wait and refresh, then select them again and "Release" them.
4. Release the draft Github release. This will automatically create a tag, push the docker images and deploy the docs (can take about a few minutes to appear at [jazzer-docs]( https://codeintelligencetesting.github.io/jazzer-docs)).
2. Wait for the workflow to finish (about 10 minutes).
3. Download the artifact called "jazzer-maven-central-bundle" from the prerelease workflow run.
4. Log into https://central.sonatype.com/publishing and click on "Publish Component".
5. In the dialog that follows, under "Upload Your File", select the downloaded artifact. The "Deployment Name" doesn't matter. Click "Publish Component".
6. Refresh the page, and you should see "Deployment Info" with status "VALIDATED".
7. Click "Publish" to publish the component to Maven Central and wait for the status to change to "PUBLISHED" (a refresh or two may be necessary).
8. Release the draft Github release. This will automatically create a tag, push the docker images and deploy the docs (can take about a few minutes to appear at [jazzer-docs]( https://codeintelligencetesting.github.io/jazzer-docs)).
5 changes: 3 additions & 2 deletions deploy/deploy.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
# Copyright 2024 Code Intelligence GmbH
# Copyright 2025 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.
Expand Down Expand Up @@ -57,7 +57,8 @@ java=$(rlocation "$java_rlocationpath")
"$java" -jar "${JAZZER_JAR_PATH}" --version 2>&1 | grep '^Jazzer v' || \
fail "JAZZER_JAR_PATH is not a valid jazzer.jar"

MAVEN_REPO=https://oss.sonatype.org/service/local/staging/deploy/maven2
# Local release for manual upload to central.sonatype.com
MAVEN_REPO=file://`pwd`/_tmp/release

# 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.
Expand Down
Loading