78 lines
2.1 KiB
YAML
78 lines
2.1 KiB
YAML
name: bld-ci
|
|
|
|
on: [push, pull_request, workflow_dispatch]
|
|
|
|
jobs:
|
|
build-bld-project:
|
|
env:
|
|
COVERAGE_JDK: "17"
|
|
|
|
strategy:
|
|
matrix:
|
|
java-version: [17, 21, 24]
|
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout source repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up JDK ${{ matrix.java-version }}
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: "zulu"
|
|
java-version: ${{ matrix.java-version }}
|
|
|
|
- name: Download dependencies [bld example]
|
|
working-directory: examples/java/bld
|
|
run: ./bld download
|
|
|
|
- name: Compile and run [bld example]
|
|
working-directory: examples/java/bld
|
|
run: |
|
|
./bld compile
|
|
./bld run
|
|
./bld run-example
|
|
|
|
- name: Run example [gradle java examples]
|
|
working-directory: examples/java/gradle
|
|
if: matrix.java-version != '24'
|
|
run: |
|
|
./gradlew run
|
|
./gradlew runExample
|
|
|
|
- name: Run example [gradle kotlin examples]
|
|
working-directory: examples/kotlin
|
|
if: matrix.java-version != '24'
|
|
run: |
|
|
./gradlew run
|
|
./gradlew runExample
|
|
|
|
- name: Download dependencies
|
|
run: ./bld download
|
|
|
|
- name: Compile source
|
|
run: ./bld compile
|
|
|
|
- name: Run tests
|
|
run: ./bld jacoco
|
|
|
|
- name: Remove pom.xml
|
|
if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.os == 'ubuntu-latest'
|
|
run: rm -rf pom.xml
|
|
|
|
- name: SonarCloud Scan
|
|
uses: sonarsource/sonarcloud-github-action@master
|
|
if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.os == 'ubuntu-latest'
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v3
|
|
if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.os == 'ubuntu-latest'
|
|
env:
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|