Skip to content

Publish Deephaven Benchmarks #25

Publish Deephaven Benchmarks

Publish Deephaven Benchmarks #25

# Copyright (c) 2024-2024 Deephaven Data Labs and Patent Pending
# Run the Benchmark release process that results in publishing a
# deephaven-benchmark jar to maven central and a distro tar file to
# the Github release notes as an asset
name: Publish Deephaven Benchmarks
on:
workflow_dispatch:
inputs:
version:
description: 'Benchmark Release Version'
required: true
default: '0.36.0'
type: string
release-commit:
description: 'Benchmark Release Commit Hash'
required: true
default: '849d7e99a873ad6ff1ccd6c1a5099d33f8393f1a'
type: string
previous-version:
description: 'Benchmark Previous Version'
required: true
default: '0.35.0'
type: string
mark-latest:
description: 'Mark Release as Latest'
required: false
type: boolean
env:
VERSION: "${{inputs.version}}"
COMMIT: "${{inputs.release-commit}}"
PREV_VERSION: "${{inputs.previous-version}}"
LATEST_DIR: ${{github.workspace}}
RELEASE_DIR: ${{github.workspace}}/release
permissions:
actions: write
contents: write
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Checkout Latest
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Checkout Release
uses: actions/checkout@v4
with:
path: release
fetch-depth: 0
fetch-tags: true
- name: Checkout Distro Target
working-directory: ${{env.RELEASE_DIR}}
run: git checkout ${COMMIT}
- name: Pull and Start Docker Image
working-directory: ${{env.RELEASE_DIR}}
run: |
cp ${LATEST_DIR}/.github/resources/integration-docker-compose.yml docker-compose.yml
docker compose up -d
- name: Build and Install Release Artifacts Locally
working-directory: ${{env.RELEASE_DIR}}
run: |
sed -i "s;<version>1.0-SNAPSHOT</version>;<version>${VERSION}</version>;" pom.xml
mvn -B install --file pom.xml
docker compose down
- name: Build Release Distribution
working-directory: ${{env.RELEASE_DIR}}
run: ${LATEST_DIR}/.github/scripts/make-release-distro.sh ${VERSION} ${LATEST_DIR}/.github/distro
- name: Test Release Distro
working-directory: ${{env.RELEASE_DIR}}
run: |
${LATEST_DIR}/.github/scripts/test-release-distro.sh ${VERSION}
mv target/deephaven-benchmark-${VERSION}.tar ${LATEST_DIR}/
mv target/deephaven-benchmark-${VERSION}-results.tar ${LATEST_DIR}/
- name: Make Release Notes
run: .github/scripts/make-release-notes.sh ${VERSION} ${COMMIT} ${PREV_VERSION}
- name: Archive Results
uses: actions/upload-artifact@v4
with:
name: Deephaven Benchmark Release
path: |
deephaven-benchmark-${{env.VERSION}}.tar
deephaven-benchmark-${{env.VERSION}}-results.tar
release-notes.md
deephaven-benchmark-${{env.VERSION}}-sources.jar
deephaven-benchmark-${{env.VERSION}}-javadoc.jar
- name: Publish Github Release
if: ${{ github.ref_name == 'main' }}
uses: ncipollo/release-action@v1
with:
tag: "v${{env.VERSION}}"
commit: ${{env.COMMIT}}
makeLatest: ${{inputs.mark-latest}}
allowUpdates: true
artifacts: "deephaven-benchmark-${{env.VERSION}}.tar"
bodyFile: release-notes.md