Skip to content

Improvements to the HTTP Sink (#163) #34

Improvements to the HTTP Sink (#163)

Improvements to the HTTP Sink (#163) #34

Workflow file for this run

name: Publish New Java Release
on:
push:
tags:
- "*"
workflow_dispatch:
jobs:
validate-tag:
runs-on: ubuntu-latest
outputs:
draft_release: ${{ steps.get_tag.outputs.draft_release }}
tag: ${{ steps.get_tag.outputs.tag }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get tag, release mode
shell: bash
id: get_tag
run: |
if [[ ${GITHUB_REF##*/} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]];
then
draft_release=false
elif [[ ${GITHUB_REF##*/} =~ ^[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)(\.[0-9]+)?)?(\+[A-Za-z0-9.]+)?$ ]];
then
draft_release=true
else
echo "Exiting, github ref needs to be a tag with format x.y.z or x.y.z-(alpha|beta|rc)"
exit 1
fi
echo "draft_release=$draft_release" >> $GITHUB_OUTPUT
echo "tag=${GITHUB_REF##*/}" >> $GITHUB_OUTPUT
build:
needs:
- validate-tag
uses: ./.github/workflows/java-build.yml
with:
version: ${{ needs.validate-tag.outputs.tag }}
secrets: inherit
create-release:
runs-on: ubuntu-latest
needs:
- validate-tag
- build
strategy:
# Avoid parallel uploads
max-parallel: 1
# GitHub will NOT cancel all in-progress and queued jobs in the matrix if any job in the matrix fails, which could create inconsistencies.
# If any matrix job fails, the job will be marked as failure
fail-fast: false
matrix:
module: ${{fromJSON(needs.build.outputs.java_modules)}}
env:
DRAFT_RELEASE: '${{ needs.validate-tag.outputs.draft_release }}'
TAG: ${{ needs.validate-tag.outputs.tag }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: Uncache assembly
uses: actions/cache/restore@v4
with:
path: |
./java-connectors/release/${{ matrix.module }}*.jar
key: assembly-java-${{ github.run_id }}
fail-on-cache-miss: true
- name: Package Connector
shell: bash
run: |
JAVA_RELEASE_FOLDER=java-connectors/release
FOLDER=${{ matrix.module }}-${{ env.TAG }}
mkdir -p $FOLDER
cp $JAVA_RELEASE_FOLDER/${{ matrix.module }}*.jar LICENSE $FOLDER/
zip -r "$FOLDER.zip" $FOLDER/
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
file: ${{ matrix.module }}-${{ env.TAG }}.zip
asset_name: "${{ matrix.module }}-${{ env.TAG }}.zip"
release_name: 'Stream Reactor ${{ env.TAG }}'
prerelease: ${{ env.DRAFT_RELEASE }}