chore: swap makefile to justfile (#39) #137
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: ~ | |
| workflow_dispatch: ~ | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| java_version: | |
| ['8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25'] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: extractions/setup-just@v3 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '25' # Always use the most recent LTS JDK for building | |
| cache: 'maven' | |
| - name: Load Maven dependencies cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: ~/.m2/repository | |
| key: ${{ runner.os }}-maven-build${{ matrix.javaversion }}-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-maven- | |
| - name: Install dependencies | |
| run: just install | |
| - name: Compile | |
| run: just build | |
| - name: Set up Java ${{ matrix.java_version }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: ${{ matrix.java_version }} | |
| cache: 'maven' | |
| - name: Run test with Java ${{ matrix.java_version }} | |
| run: just test | |
| coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: extractions/setup-just@v3 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '25' # Always use the most recent LTS JDK for building | |
| cache: 'maven' | |
| - name: Install dependencies | |
| run: just install | |
| - name: Test coverage | |
| run: just coverage | |
| - name: Load Rust cache | |
| if: github.ref == 'refs/heads/main' | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Install grcov | |
| if: github.ref == 'refs/heads/main' | |
| run: cargo install grcov | |
| - name: Convert coverage report | |
| if: github.ref == 'refs/heads/main' | |
| run: grcov target/site/jacoco/jacoco.xml --source-dir ./ --ignore "target/*" > coverage.lcov | |
| - name: Coveralls | |
| if: github.ref == 'refs/heads/main' | |
| uses: coverallsapp/github-action@master | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| path-to-lcov: './coverage.lcov' | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: extractions/setup-just@v3 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '25' # Always use the most recent LTS JDK for building | |
| cache: 'maven' | |
| - name: Install checkstyle and style guide | |
| run: just install-checkstyle | |
| - name: Lint | |
| run: just lint | |
| - name: Upload Test results | |
| uses: actions/upload-artifact@master | |
| with: | |
| name: DependencyCheck report | |
| path: ${{github.workspace}}/target/dependency-check-report.html |