Skip to content

Distribution

Distribution #12

Workflow file for this run

name: "Distribution"
on:
push:
tags: [ '*' ]
jobs:
version:
name: Version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get-version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Nothing left TODO
run: .github/nothing_left_todo.sh
- name: Get version from gradle.properties
id: get-version
run: |
VERSION=$(grep "version=" gradle.properties | sed -n -e 's/^.*version=//p')
if [ -z "$VERSION" ]; then
echo "Version number not found!"
exit 1
fi
echo "Version is $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "::set-output name=version::$VERSION"
- name: Version number must match tag name
run: |
TAG_NAME=${{ github.ref_name }}
VERSION=${{ steps.get-version.outputs.version }}
if [ "$TAG_NAME" != "v$VERSION" ]; then
echo "gradle.properties version number '$VERSION' implies tag name 'v$VERSION' but instead found '$TAG_NAME'!"
exit 1
fi
distribute_gui_jar:
needs: version
name: JAR [${{ matrix.os }}-JDK${{ matrix.java }}]
env:
GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions: write-all
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macOS-latest, windows-latest ]
java: [ '17' ]
fail-fast: false
steps:
- name: Git checkout
uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Echo JAVA_HOME
run: echo $JAVA_HOME
- name: Verify Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Execute spring boot distribution .jar
run: ./gradlew --info --stacktrace :bootJarZip
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/dist/javacv-example-${{ needs.version.outputs.version }}.zip
asset_name: javacv-example-v${{ needs.version.outputs.version }}-${{ matrix.os }}-jdk${{ matrix.java }}-amd64.jar.zip
tag: ${{ github.ref }}
overwrite: true
distribute_gui_installer:
needs: version
name: Installer [${{ matrix.os }}-JDK${{ matrix.java }}]
permissions: write-all
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macOS-latest, windows-latest ]
java: [ '17' ]
fail-fast: false
steps:
- name: Git checkout
uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Echo JAVA_HOME
run: echo $JAVA_HOME
- name: Verify Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Execute build
run: ./gradlew --info --stacktrace :build
- name: Execute jlink
run: ./gradlew --info --stacktrace :jlink
- name: Execute jpackage
run: ./gradlew --info --stacktrace :jpackage
# - name: Upload DMG to release
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: build/jpackage/javacv-example-v${{ needs.version.outputs.version }}.dmg
# asset_name: javacv-example-v${{ needs.version.outputs.version }}-${{ matrix.os }}-jdk${{ matrix.java }}-installer-dmg
# tag: ${{ github.ref }}
# overwrite: true
# body: "JavaCV Example installer v${{ needs.version.outputs.version }} for ${{ matrix.os }}-jdk${{ matrix.java }}-amd64 (dmg)"
#
# - name: Upload EXE to release
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: build/jpackage/javacv-example-v${{ needs.version.outputs.version }}.exe
# asset_name: javacv-example-v${{ needs.version.outputs.version }}-${{ matrix.os }}-jdk${{ matrix.java }}-installer-exe
# tag: ${{ github.ref }}
# overwrite: true
# body: "JavaCV Example installer v${{ needs.version.outputs.version }} for ${{ matrix.os }}-jdk${{ matrix.java }}-amd64 (exe)"
#
# - name: Upload MSI to release
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: build/jpackage/javacv-example-v${{ needs.version.outputs.version }}.msi
# asset_name: javacv-example-v${{ needs.version.outputs.version }}-${{ matrix.os }}-jdk${{ matrix.java }}-installer-msi
# tag: ${{ github.ref }}
# overwrite: true
# body: "JavaCV Example installer v${{ needs.version.outputs.version }} for ${{ matrix.os }}-jdk${{ matrix.java }}-amd64 (msi)"
#
# - name: Upload DEB to release
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: build/jpackage/javacv-example-v${{ needs.version.outputs.version }}.deb
# asset_name: javacv-example-v${{ needs.version.outputs.version }}-${{ matrix.os }}-jdk${{ matrix.java }}-installer-deb
# tag: ${{ github.ref }}
# overwrite: true
# body: "JavaCV Example installer v${{ needs.version.outputs.version }} for ${{ matrix.os }}-jdk${{ matrix.java }}-amd64 (deb)"
#
# - name: Upload RPM to release
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: build/jpackage/javacv-example-v${{ needs.version.outputs.version }}.rpm
# asset_name: javacv-example-v${{ needs.version.outputs.version }}-${{ matrix.os }}-jdk${{ matrix.java }}-installer-rpm
# tag: ${{ github.ref }}
# overwrite: true
# body: "JavaCV Example installer v${{ needs.version.outputs.version }} for ${{ matrix.os }}-jdk${{ matrix.java }}-amd64 (rpm)"
#