Add methods to retrieve image paths (original and on server) #574
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_SONAR_TOKEN: ${{ secrets.SONAR_TOKEN != '' }} | |
HAVE_SONAR_DETAILS: ${{ vars.SONAR_PROJECTKEY != '' && vars.SONAR_ORGANIZATION != '' }} | |
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-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2-${{ secrets.CACHE_VERSION }} | |
- 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 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: Sonar analysis | |
if: ${{ env.HAVE_SONAR_TOKEN == 'true' && env.HAVE_SONAR_DETAILS == 'true' }} | |
run: mvn sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.projectKey=$SONAR_PROJECTKEY -Dsonar.organization=$SONAR_ORGANIZATION | |
env: | |
SONAR_PROJECTKEY: ${{ vars.SONAR_PROJECTKEY }} | |
SONAR_ORGANIZATION: ${{ vars.SONAR_ORGANIZATION }} | |
SONAR_URL: ${{ vars.SONAR_URL }} | |
GITHUB_TOKEN: ${{ github.token }} # Needed to get PR information, if any | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
- 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 }} |