Skip to content

Pre-Release

Pre-Release #38

Workflow file for this run

name: Pre-Release
on:
workflow_dispatch:
push:
tags:
- 'v*'
jobs:
build_release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-22.04
name: linux
- os: ubuntu-22.04-arm
name: linux-arm64
- os: macos-14
name: macos
- os: windows-2022
name: windows
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 21
- name: Install Clang on Windows
if: matrix.os == 'windows-2022'
run: |
choco install llvm --version=19.1.0 --force
echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Append build settings to .bazelrc
shell: bash
run: |
TAG=${{ github.ref_name }}
echo "build --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }}" >> .bazelrc
echo "build --config=ci" >> .bazelrc
echo "build --//deploy:jazzer_version=${TAG#v}" >> .bazelrc
- name: Build
shell: bash
# Double forward slashes are converted to single ones by Git Bash on Windows, so we use working directory
# relative labels instead.
run: |
bazelisk build ${{env.BUILD_BUDDY_CONFIG}} deploy:jazzer :jazzer_release
cp -L $(bazel cquery --output=files deploy:jazzer) jazzer-${{ matrix.name }}.jar
cp -L $(bazel cquery --output=files :jazzer_release) jazzer-${{ matrix.name }}.tar.gz
- name: Upload jazzer.jar
uses: actions/upload-artifact@v4
with:
name: jazzer_tmp_${{ matrix.name }}
path: jazzer-${{ matrix.name }}.jar
if-no-files-found: error
- name: Upload release archive
uses: actions/upload-artifact@v4
with:
name: jazzer_releases_${{ matrix.name }}
path: jazzer-${{ matrix.name }}.tar.gz
if-no-files-found: error
merge_jars:
runs-on: ubuntu-22.04
needs: build_release
steps:
- uses: actions/checkout@v4
- name: Download individual jars
uses: actions/download-artifact@v4
with:
pattern: jazzer_tmp_*
merge-multiple: true
path: _tmp/
- name: Merge jars
run: |
bazel run @rules_jvm_external//private/tools/java/com/github/bazelbuild/rules_jvm_external/jar:MergeJars -- \
--output "$(pwd)"/_tmp/jazzer.jar \
$(find "$(pwd)/_tmp/" -name '*.jar' -printf "--sources %h/%f ")
- name: Upload merged jar
uses: actions/upload-artifact@v4
with:
name: jazzer
path: _tmp/jazzer.jar
if-no-files-found: error
# maven_predeploy:
# runs-on: ubuntu-22.04
# needs: merge_jars
#
# environment:
# name: Deploy
#
# steps:
# - uses: actions/checkout@v4
#
# - name: Set up JDK
# uses: actions/setup-java@v4
# with:
# distribution: zulu
# java-version: 8
#
# - name: Append build settings to .bazelrc
# shell: bash
# run: |
# TAG=${{ github.ref_name }}
# echo "build --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }}" >> .bazelrc
# echo "build --config=ci" >> .bazelrc
# echo "build --//deploy:jazzer_version=${TAG#v}" >> .bazelrc
#
# - name: Download merged jar
# uses: actions/download-artifact@v4
# with:
# name: jazzer
# path: _tmp/
#
# - 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
#
# permissions:
# contents: write # for creating releases
#
# steps:
# - name: checkout
# uses: actions/checkout@v4
#
# - name: Download individual tar.gzs
# uses: actions/download-artifact@v4
# with:
# pattern: jazzer_releases_*
# merge-multiple: true
# path: _releases/
#
# - name: create release
# uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9
# with:
# generate_release_notes: true
# draft: true
# files: |
# _releases/jazzer-linux.tar.gz
# _releases/jazzer-linux-arm64.tar.gz
# _releases/jazzer-macos.tar.gz
# _releases/jazzer-windows.tar.gz