Skip to content

Reorganise build steps #1247

Reorganise build steps

Reorganise build steps #1247

Workflow file for this run

name: Build
on:
pull_request:
branches: [main]
push:
branches: [main]
workflow_dispatch: {}
jobs:
build:
name: ${{ matrix.java-version }}/${{ matrix.os-name }}/${{ matrix.maven}}-maven
runs-on: ${{ matrix.os-name }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os-name: [ubuntu-latest, macos-latest, windows-latest]
java-version: [11, 23]
maven: [default, prerequisite]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'temurin'
cache: maven
- name: Change Maven version to the prerequisite version
if: ${{ matrix.maven == 'prerequisite' }}
shell: bash
run: |-
version=$(./mvnw -B -T1 -q -pl protobuf-maven-plugin help:evaluate -DforceStdout -Dexpression='project.prerequisites.maven')
./mvnw -B -T1 -q wrapper:wrapper "-Dmaven=${version}"
- name: Install protoc to $PATH
shell: bash
run: scripts/install-protoc-to-github-runner.sh
- name: Build and test
shell: bash
run: ./mvnw -B -Dcheckstyle.skip -Dlicense.skip verify
- name: Publish code coverage
uses: codecov/codecov-action@v4
continue-on-error: true
if: always()
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload build logs as artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: jdk-${{ matrix.java-version }}-${{ matrix.os-name }}-${{ matrix.maven }}
path: |-
**/build.log
**/maven-status/**
**/surefire-reports/**.txt
compression-level: 9
retention-days: 7
include-hidden-files: true
if-no-files-found: warn
checkstyle-and-license-headers:
name: Checkstyle and license headers
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 23
distribution: 'temurin'
cache: maven
- name: Validate
shell: bash
run: ./mvnw -B validate
build-pages:
name: Generate pages
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 23
distribution: 'temurin'
cache: maven
- name: Build Pages
shell: bash
run: >-
./mvnw -B site
-DskipTests
-Dinvoker.skip
-Dcheckstyle.skip
-Dlicense.skip