Skip to content

Commit

Permalink
dropme: release rename
Browse files Browse the repository at this point in the history
  • Loading branch information
zgtm committed Sep 12, 2023
1 parent 323fd06 commit 1d6ea3a
Showing 1 changed file with 132 additions and 7 deletions.
139 changes: 132 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,146 @@ name: Release

on:
workflow_dispatch:
release:
types: [released]

jobs:
docker_push:
build_release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-20.04
name: linux
- os: macos-11
name: macos
- os: windows-2019
name: windows

steps:
- uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 8

- name: Set Build Buddy config
shell: bash
run: .github/scripts/echoBuildBuddyConfig.sh ${{ secrets.BUILDBUDDY_API_KEY }} >> $GITHUB_ENV

- name: Append build settings to .bazelrc
shell: bash
run: |
echo "build --announce_rc" >> .bazelrc
echo "build:linux --config=toolchain" >> .bazelrc
echo "build:linux --extra_toolchains=@llvm_toolchain//:cc-toolchain-x86_64-linux" >> .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@v3
with:
name: jazzer_tmp
path: jazzer-${{ matrix.name }}.jar
if-no-files-found: error

- name: Upload release archive
uses: actions/upload-artifact@v3
with:
name: jazzer_releases
path: jazzer-${{ matrix.name }}.tar.gz
if-no-files-found: error

merge_jars:
runs-on: ubuntu-latest
needs: build_release

steps:
- uses: actions/checkout@v3

- name: Download individual jars
uses: actions/download-artifact@v3
with:
name: jazzer_tmp
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@v3
with:
name: jazzer
path: _tmp/jazzer.jar
if-no-files-found: error

maven_predeploy:
runs-on: ubuntu-latest
needs: merge_jars

environment:
# Run in 'Deploy' environment which will make this step require a manual start
name: Deploy

steps:
- uses: actions/checkout@v3

- name: Docker login
run: echo "${{ secrets.DOCKER_TOKEN }}" | docker login --username ${{ secrets.DOCKER_USER }} --password-stdin
- name: Download merged jar
uses: actions/download-artifact@v3
with:
name: jazzer
path: _tmp/

- name: Run Deployment
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

create_release:
needs: build_release
runs-on: ubuntu-latest

permissions:
contents: write # for creating releases (?TODO necessary)

steps:
- name: checkout
uses: actions/checkout@v3

- name: Download individual tar.gzs
uses: actions/download-artifact@v3
with:
name: jazzer_releases
path: _releases/

- name: read version
id: read-version
run: |
echo ::set-output name=version::\
$(sed -nr 's/JAZZER_VERSION = "(.*)"/\1/p' maven.bzl)
shell: bash

- name: Push docker containers
run: docker/push_all.sh
- name: create release
uses: softprops/action-gh-release@v1
with:
name: v${{ steps.read-version.outputs.version }}
tag_name: v${{ steps.read-version.outputs.version }}
generate_release_notes: true
draft: true
files: |
_releases/jazzer-linux.tar.gz
_releases/jazzer-macos.tar.gz
_releases/jazzer-windows.tar.gz

0 comments on commit 1d6ea3a

Please sign in to comment.