Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gradle fix and publish #176

Merged
merged 11 commits into from
Dec 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 118 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Gradle build and publish on tag
---
name: Build

on:
push:
pull_request:
schedule:
- cron: '0 0 * * 0'

jobs:
build:
strategy:
matrix:
java: [1.8, 11]
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
gradle_version: 5.2.1 # set to empty to build with most recent version of gradle
gradle_commands: build # default is build
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Wrap with specified version
run: gradle wrapper --gradle-version=${{ env.gradle_version }}
if: ${{ env.gradle_version != '' }}
- name: Wrap without version
run: gradle wrapper
if: ${{ env.gradle_version == '' }}
- name: Run commands
run: ./gradlew ${{ env.gradle_commands }}
- name: Prepare PATH
if: startsWith(matrix.os, 'windows')
shell: bash
run: echo "$WIX\\bin" >> $GITHUB_PATH
- name: Build Executable
if: startsWith(matrix.os, 'windows') && startsWith(github.ref, 'refs/tags') && matrix.java == '1.8'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is build time the primary reason for making this condition to tags? Or the SNAPSHOT vs non-SNAPSHOT?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will increase the build time, that's why I have opted to make it on tag only

run: |
choco uninstall innosetup
choco install innosetup --version=5.6.1
./gradlew packageApplicationExe
./gradlew packageImporterApplicationExe
./gradlew packageApplicationMsi
./gradlew packageImporterApplicationMsi
- name: Check MSI
if: startsWith(matrix.os, 'windows') && startsWith(github.ref, 'refs/tags') && matrix.java == '1.8'
run: |
msi=(`find build/packaged/installImporterDist/bundles -maxdepth 1 -name "*.msi"`)
if [ ${#msi[@]} == 0 ]; then
exit 1
fi
msi=(`find build/packaged/main/bundles -maxdepth 1 -name "*.msi"`)
if [ ${#msi[@]} == 0 ]; then
exit 1
fi
shell: bash
- name: Build Dmg
if: startsWith(matrix.os, 'macos') && startsWith(github.ref, 'refs/tags') && matrix.java == '1.8'
run: |
brew cask install zulu8
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arguably all these steps could be combined into a standalone script e.g. package_macos.sh that gets executed by GitHub workflow but could be tested and modified in isolation.
Mostly a question, not a requirement for this PR

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be refactored now that we have the build in place.
This could be done in a follow-up PR

export JAVA_HOME='/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home'
export PATH=$JAVA_HOME/bin:$PATH
./gradlew packageApplicationDmg
./gradlew packageImporterApplicationDmg
- name: Upload zip and jar
if: startsWith(matrix.os, 'ubuntu') && startsWith(github.ref, 'refs/tags') && matrix.java == '1.8'
uses: actions/upload-artifact@v2
with:
name: artifacts
path: build/distributions/OMERO*
if-no-files-found: error
- name: Upload jar
if: startsWith(matrix.os, 'ubuntu') && startsWith(github.ref, 'refs/tags') && matrix.java == '1.8'
uses: actions/upload-artifact@v2
with:
name: artifacts
path: build/libs/omero_*
if-no-files-found: error
- name: Upload insight artifacts
if: startsWith(matrix.os, 'ubuntu') != true && startsWith(github.ref, 'refs/tags') && matrix.java == '1.8'
uses: actions/upload-artifact@v2
with:
name: artifacts
path: build/packaged/main/bundles/*
if-no-files-found: error
- name: Upload importer artifacts
if: startsWith(matrix.os, 'ubuntu') != true && startsWith(github.ref, 'refs/tags') && matrix.java == '1.8'
uses: actions/upload-artifact@v2
with:
name: artifacts
path: build/packaged/installImporterDist/bundles/*

release:
if: startsWith(github.ref, 'refs/tags')
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts from build
uses: actions/download-artifact@v2
- name: List artifacts
run: ls -R
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: artifacts/*
tag: ${{ github.ref }}
overwrite: true
file_glob: true
26 changes: 0 additions & 26 deletions .github/workflows/main.yml

This file was deleted.

91 changes: 0 additions & 91 deletions .travis.yml

This file was deleted.

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
OMERO.insight Project
---------------------

[![Actions Status](https://github.com/ome/omero-insight/workflows/Build/badge.svg)](https://github.com/ome/omero-insight/actions)

The OMERO.insight Project is a sub-project of the Open Microscopy Environment
Project, [OME](https://www.openmicroscopy.org/) that focuses on delivering a
client for the visualization and manipulation of both image data and metadata
Expand Down