Refactor code after PR#19 #143
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
# This workflow will build a Java project with Maven | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven | |
name: Java CI with Maven | |
on: [ push, pull_request ] | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
env: | |
HAVE_DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN != '' }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Checkout omero-test-infra | |
uses: actions/checkout@v4 | |
with: | |
repository: openmicroscopy/omero-test-infra | |
submodules: true | |
path: .omero | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml | |
settings-path: ${{ github.workspace }} # location for the settings.xml file | |
- name: Cache SonarCloud packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.sonar/cache | |
key: ${{ runner.os }}-sonar | |
restore-keys: ${{ runner.os }}-sonar | |
- name: Cache Maven packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Login to Docker Hub | |
if: ${{ env.HAVE_DOCKERHUB_TOKEN == 'true' }} | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Append 'SNAPSHOT' to version if 'push' happened on 'main' | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | |
run: | | |
mvn help:evaluate -N -Dexpression=project.version|grep -v '\[' | |
VERSION=$(mvn help:evaluate -N -Dexpression=project.version|grep -v '\[') | |
mvn versions:set -DnewVersion=$VERSION-SNAPSHOT | |
- name: Append branch name to version if 'push' did not happen on 'main' or a tag | |
if: ${{ github.event_name == 'push' && github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/')}} | |
run: | | |
mvn versions:set -DremoveSnapshot | |
mvn help:evaluate -N -Dexpression=project.version|grep -v '\[' | |
VERSION=$(mvn help:evaluate -N -Dexpression=project.version|grep -v '\[') | |
mvn versions:set -DnewVersion=$VERSION-${GITHUB_REF##*/} | |
- name: Test with Maven and omero-test-infra through Docker | |
run: $GITHUB_WORKSPACE/.omero/lib-docker | |
env: | |
DOCKER_ARGS: -v ${{ env.HOME }}/.m2:/root/.m2 -v ${{ github.workspace }}/target:/src/target -t | |
- name: Set folders ownership back to current user | |
run: sudo chown -R $(id -u):$(id -g) $GITHUB_WORKSPACE && sudo chown -R $(id -u):$(id -g) $HOME | |
- name: Upload to codecov after successful tests | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: jars | |
path: | | |
target/*.jar | |
!target/*-with-dependencies.jar | |
deploy: | |
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) }} | |
needs: [ test ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml | |
gpg-private-key: ${{ secrets.GPG_KEY }} # Value of the GPG private key to import | |
gpg-passphrase: GPG_PASSPHRASE # env variable for GPG private key passphrase | |
- name: Cache Maven packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2-${{ secrets.CACHE_VERSION }} | |
- name: Make sure to append 'SNAPSHOT' to version if 'push' happened on 'main' | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | |
run: | | |
mvn versions:set -DremoveSnapshot | |
mvn help:evaluate -N -Dexpression=project.version|grep -v '\[' | |
VERSION=$(mvn help:evaluate -N -Dexpression=project.version|grep -v '\[') | |
mvn versions:set -DnewVersion=$VERSION-SNAPSHOT | |
- name: Publish to GitHub Packages Apache Maven | |
run: mvn deploy -DskipTests | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} |