mirror of
https://github.com/danieldemus/openhab-core.git
synced 2026-07-29 12:34:22 +02:00
The GitHub Actions build workflow includes external Actions from 3rd party repositories. The functionality of tj-actions/verify-changed-files was used to detect modifications of files during the build process. The external action is removed and replaced by custom code. This is less flexible, but does not require an external action in the build toolchain. Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
110 lines
3.3 KiB
YAML
110 lines
3.3 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
paths-ignore:
|
|
- '.github/**/*.md'
|
|
pull_request:
|
|
branches:
|
|
- 'main'
|
|
paths-ignore:
|
|
- '.github/**/*.md'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
java: [ '21' ]
|
|
maven: [ '3.9.9' ]
|
|
os: [ 'ubuntu-24.04' ]
|
|
name: Build (Java ${{ matrix.java }}, ${{ matrix.os }})
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout
|
|
if: github.head_ref == ''
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Checkout merge
|
|
if: github.head_ref != ''
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: refs/pull/${{github.event.pull_request.number}}/merge
|
|
|
|
- name: Set up Cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.m2/repository
|
|
!~/.m2/repository/org/openhab
|
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-maven-
|
|
|
|
- name: Set up Java ${{ matrix.java }}
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'temurin'
|
|
java-version: ${{ matrix.java }}
|
|
|
|
- name: Set up Maven ${{ matrix.maven }}
|
|
uses: stCarolas/setup-maven@v5
|
|
with:
|
|
maven-version: ${{ matrix.maven }}
|
|
|
|
- name: Register Problem Matchers
|
|
if: ${{ matrix.java == '17' }}
|
|
id: problem_matchers
|
|
run: |
|
|
echo "::add-matcher::.github/openhab-compile-problems.json"
|
|
|
|
- name: Build
|
|
id: build
|
|
run: './.github/scripts/maven-build'
|
|
env:
|
|
MAVEN_OPTS: >-
|
|
-Xmx2g
|
|
-Dmaven.wagon.http.retryHandler.count=5
|
|
-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
|
|
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
|
|
|
- name: Upload Build Log
|
|
if: ${{ always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure')) }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: build-log-java-${{ matrix.java }}-${{ matrix.os }}
|
|
path: build.log
|
|
|
|
- name: Upload SAT Summary Report
|
|
if: ${{ always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure')) }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: sat-summary-report
|
|
path: target/summary_report.html
|
|
|
|
- name: Report SAT Errors as Annotations
|
|
if: ${{ matrix.java == '21' && always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure')) }}
|
|
uses: ghys/checkstyle-github-action@main
|
|
with:
|
|
title: CheckStyle Violations
|
|
path: '**/checkstyle-result.xml'
|
|
mode: inline
|
|
|
|
- name: Verify Changed Files
|
|
id: verify-changed-files
|
|
run: |
|
|
set -o pipefail
|
|
changed_files=$(echo -n "$(git diff --name-only HEAD && git ls-files --others --exclude-standard)"|tr '\n' ' ')
|
|
echo "changed_files=$changed_files" >> $GITHUB_OUTPUT
|
|
|
|
- name: Fail on Changed Files
|
|
if: steps.verify-changed-files.outputs.changed_files != ''
|
|
env:
|
|
CHANGED_FILES: ${{ steps.verify-changed-files.outputs.changed_files }}
|
|
run: |
|
|
echo "::error::Files have changed: $CHANGED_FILES"
|
|
exit 1
|