Skip to content

finalize some performance-critical types (#2049) #4242

finalize some performance-critical types (#2049)

finalize some performance-critical types (#2049) #4242

name: Continuous integration
on:
merge_group:
pull_request:
push:
branches-ignore:
- 'dependabot/**'
- 'gh-readonly-queue/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build_gradle:
name: "JDK ${{ matrix.java }} on ${{ matrix.os }}"
strategy:
matrix:
include:
- os: macos-latest
java: 17
- os: windows-latest
java: 17
- os: ubuntu-latest
java: 17
- os: ubuntu-latest
java: 21
- os: ubuntu-latest
java: 25
- os: ubuntu-latest
java: 26
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Check out WALA sources
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- name: 'Set up JDKs'
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
with:
# Install all the JDK versions we use in the matrix. We do JDK 26 last to use that
# to run Gradle.
java-version: |
17
21
25
26
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0
with:
build-scan-publish: true
build-scan-terms-of-use-url: https://gradle.com/terms-of-service
build-scan-terms-of-use-agree: 'yes'
- name: Choose extra Linux-only Gradle tasks
run: echo OS_SPECIFIC_GRADLE_TASKS='publishAllPublicationsToFakeRemoteRepository shellcheck' >> $GITHUB_ENV
if: runner.os == 'Linux'
- name: Prepare to run under XVFB
run: echo XVFB_RUN=xvfb-run >> $GITHUB_ENV
if: runner.os == 'Linux'
- name: Build and test using Gradle
shell: sh
run: >-
${XVFB_RUN}
./gradlew
--scan
--console=colored "-Pcom.ibm.wala.jdk-version=${{ matrix.java }}"
aggregatedJavadocs javadoc build ${OS_SPECIFIC_GRADLE_TASKS} checkGitCleanliness
- name: Upload test results
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: Test results for JDK ${{ matrix.java }} on ${{ matrix.os }}
path: |
**/build/reports/tests/
**/build/test-results/
- name: Aggregate coverage
id: jacoco_report
run: ./gradlew testCodeCoverageReport "-Pcom.ibm.wala.jdk-version=${{ matrix.java }}"
if: github.repository == 'wala/WALA'
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
files: ./code-coverage-report/build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml
token: ${{ secrets.WALA_MAIN_CODECOV_TOKEN }}
if: steps.jacoco_report.outcome == 'success'
upload_event_file:
name: Upload event file
runs-on: ubuntu-latest
steps:
- name: Upload event file
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: Event file
path: ${{ github.event_path }}
generate_docs:
name: 'Generate latest docs'
needs: build_gradle
if: github.event_name == 'push' && github.repository == 'wala/WALA' && github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
env:
JDK_VERSION: 26
steps:
- name: 'Check out repository'
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- name: 'Set up JDK'
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
with:
java-version: ${{ env.JDK_VERSION }}
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0
- name: 'Generate latest docs'
env:
GITHUB_TOKEN: ${{ secrets.WALA_BOT_GH_TOKEN }}
run: ./generate-latest-docs.sh ${{ env.JDK_VERSION }}