Skip to content

Merge pull request #417 from ascopes/dependabot/maven/main/org.apache… #1268

Merge pull request #417 from ascopes/dependabot/maven/main/org.apache…

Merge pull request #417 from ascopes/dependabot/maven/main/org.apache… #1268

Workflow file for this run

name: Build
on:
pull_request:
branches: [main]
push:
branches: [main]
workflow_dispatch: {}
jobs:
shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Shellcheck
uses: ludeeus/action-shellcheck@master
with:
check_together: 'yes'
scandir: './scripts'
validate-codecov:
name: Validate codecov.yml
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Validate codecov.yml
shell: bash
run: curl -vvv --fail --data-binary @- https://codecov.io/validate < codecov.yml
validate-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:
name: JDK ${{ matrix.java-version }} on ${{ matrix.os-name }} (${{ matrix.maven}} Maven)
runs-on: ${{ matrix.os-name }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os-name: [ubuntu-latest]
java-version: [11, 23]
maven: [default]
include:
# Cross-OS tests
- os-name: macos-latest
java-version: 11
maven: default
- os-name: windows-latest
java-version: 11
maven: default
# TODO: uncomment once a Java 24 compatible version of Groovy is available.
# Test on Java 24 early access to verify future compatibility.
#- os-name: ubuntu-latest
# java-version: 24-ea
# maven: default
# Prereq Maven version, to test backwards compatibility.
- os-name: ubuntu-latest
java-version: 11
maven: 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
pages:
name: 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