Skip to content

Use pre-installed Java 21 in workflow #3

Use pre-installed Java 21 in workflow

Use pre-installed Java 21 in workflow #3

Workflow file for this run

name: CI Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- "**"
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set Java 21 as default
run: |
export JAVA_HOME=${JAVA_HOME_21_X64}
export PATH=$JAVA_HOME/bin:$PATH
- name: Cache Gradle Packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Build Project
run: ./gradlew assemble
env:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
pmd:
name: PMD Analysis
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set Java 21 as default
run: |
export JAVA_HOME=${JAVA_HOME_21_X64}
export PATH=$JAVA_HOME/bin:$PATH
- name: Cache Gradle Packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Run PMD Analysis
run: ./gradlew pmdMain
checkstyle:
name: Checkstyle Analysis
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set Java 21 as default
run: |
export JAVA_HOME=${JAVA_HOME_21_X64}
export PATH=$JAVA_HOME/bin:$PATH
- name: Cache Gradle Packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Run Checkstyle
run: ./gradlew checkstyleMain
unit-test:
name: Unit Tests
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: "graalvm"
java-version: "21"
- name: Cache Gradle Packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Run Unit Tests
run: ./gradlew test
tests-terminated:
name: test end node
runs-on: ubuntu-latest
needs: [build, pmd, checkstyle, unit-test]
steps:
- run: echo "finished test stage" # this is a indirection to the previous test steps
docker-image-native:
name: Docker image native
if: github.event_name == 'push' && github.ref_name == 'main'
needs: [tests-terminated]
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Build and Push Image
uses: explorviz/deployment/.github/actions/build-and-deploy-quarkus-native@main
with:
platforms: "linux/amd64,linux/arm64/v8"
docker-username: ${{ secrets.DOCKER_USERNAME }}
docker-password: ${{ secrets.DOCKER_PASSWORD }}
image-name: ${{ vars.DOCKER_NATIVE_IMAGE_NAME }}
image-tag: "latest"
docker-image-jvm:
name: Docker image JVM
if: github.event_name == 'push' && github.ref_name == 'main'
needs: [tests-terminated]
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Build and Push Image
uses: explorviz/deployment/.github/actions/build-and-deploy-quarkus-jvm@main
with:
platforms: "linux/amd64,linux/arm64/v8"
docker-username: ${{ secrets.DOCKER_USERNAME }}
docker-password: ${{ secrets.DOCKER_PASSWORD }}
image-name: ${{ vars.DOCKER_JVM_IMAGE_NAME }}
image-tag: "latest"