Skip to content

Re-use built artifacts (compiled classes) to save some build job runtime #52

Re-use built artifacts (compiled classes) to save some build job runtime

Re-use built artifacts (compiled classes) to save some build job runtime #52

Workflow file for this run

# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Java CI with Maven
on:
push:
branches-ignore:
- master
- main
pull_request:
branches:
- develop
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
os: # see https://docs.github.com/en/actions/reference/runners/github-hosted-runners
- ubuntu-latest
- macos-26-intel
- macos-latest # ARM
- windows-latest
runs-on: ${{ matrix.os }}
timeout-minutes: 20
steps:
- name: Check out
uses: actions/checkout@v6
- name: Set up JDK 21
uses: actions/setup-java@v5 # see https://github.com/actions/setup-java
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn -B clean verify --file pom.xml
- name: Upload compiled classes
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: build-classes
path: '**/target/classes'
retention-days: 1
# Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
#- name: Update dependency graph
# uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
deploy:
runs-on: ubuntu-latest
needs: build
if: github.ref_name == 'develop'
permissions:
contents: read
packages: write
steps:
- name: Check out
uses: actions/checkout@v6
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Download compiled classes
uses: actions/download-artifact@v4
with:
name: build-classes
- name: Deploy to GitHub Maven Packages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn -B -Pdeploy-github -Dmaven.compiler.skip=true -Dmaven.test.skip=true deploy