Merge pull request #42 from lensesio-dev/fix/gcp-add-headers #6
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |