Skip to content

CI tests

CI tests #211

Workflow file for this run

name: CI tests
on:
schedule:
- cron: '0 7 * * *' # Runs daily at 2:00 AM EST
pull_request:
push:
branches: [ "master" ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ !contains(github.ref, 'heads/master') }}
jobs:
build_jdk:
name: Build the JDK
runs-on: ubuntu-latest
permissions:
contents: read
env:
JAVA_VERSION: 17
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install gcc-10 g++-10 libcups2-dev libasound2-dev libfontconfig1-dev \
libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
- name: Install jtreg
run: |
wget https://builds.shipilev.net/jtreg/jtreg-7.5%2B1.zip -O /tmp/jtreg.zip
unzip /tmp/jtreg.zip -d /tmp/
- name: Configure the JDK
run: bash ./configure --with-jtreg=/tmp/jtreg --disable-warnings-as-errors
- name: Build the JDK
run: make jdk
CF:
name: ${{ matrix.script }} on JDK ${{ matrix.java_version }}
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
script: ['cftests-junit', 'cftests-nonjunit']
java_version: ['8', '11', '17', '21', '24', '25-ea']
continue-on-error: true
env:
JAVA_VERSION: ${{ matrix.java_version }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21 for Gradle to run on
uses: actions/setup-java@v4
with:
# Install JDK 21 first, to make it available to Gradle using `gradle.properties` below.
java-version: '21'
distribution: 'temurin'
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java_version }}
distribution: 'temurin'
- name: Inject JAVA_HOME_21_64 into `gradle.properties` to always use JDK 21 for Gradle
run: mkdir ~/.gradle && echo "org.gradle.java.home=$JAVA_HOME_21_X64" >> ~/.gradle/gradle.properties
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4.3.1
- name: Setup Bazel
uses: bazel-contrib/setup-bazel@0.9.0
if: ${{ matrix.script == 'cftests-nonjunit' }}
with:
bazelisk-cache: true
disk-cache: ${{ github.workflow }}
repository-cache: true
- name: Clone plume-scripts
run: mkdir -p /tmp/$USER && git -C /tmp/$USER clone --depth 1 -q https://github.com/eisop-plume-lib/plume-scripts.git
- name: Clone git-scripts
run: mkdir -p /tmp/$USER && git -C /tmp/$USER clone --depth 1 -q https://github.com/eisop-plume-lib/git-scripts.git
- name: Clone checker-framework
run: /tmp/$USER/git-scripts/git-clone-related eisop checker-framework
- name: Run test script checker/bin-devel/test-${{ matrix.script }}.sh
run: ./checker/bin-devel/test-${{ matrix.script }}.sh
working-directory: ../checker-framework
env:
ORG_GRADLE_PROJECT_useJdkVersion: ${{ matrix.java_version }}
extra:
name: ${{ matrix.script }} on JDK ${{ matrix.java_version }}
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
script: ['plume-lib', 'daikon']
java_version: ['21']
env:
JAVA_VERSION: ${{ matrix.java_version }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java_version }}
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4.1.0
- name: Clone plume-scripts
run: mkdir -p /tmp/$USER && git -C /tmp/$USER clone --depth 1 -q https://github.com/eisop-plume-lib/plume-scripts.git
- name: Clone git-scripts
run: mkdir -p /tmp/$USER && git -C /tmp/$USER clone --depth 1 -q https://github.com/eisop-plume-lib/git-scripts.git
- name: Clone checker-framework
run: /tmp/$USER/git-scripts/git-clone-related eisop checker-framework
- name: Run test script checker/bin-devel/test-${{ matrix.script }}.sh
run: ./checker/bin-devel/test-${{ matrix.script }}.sh
working-directory: ../checker-framework
Consistency:
name: JDK consistency on JDK ${{ matrix.java_version }}
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
java_version: ['21']
env:
JAVA_VERSION: ${{ matrix.java_version }}
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java_version }}
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4.1.0
- name: Clone plume-scripts
run: mkdir -p /tmp/$USER && git -C /tmp/$USER clone --depth 1 -q https://github.com/eisop-plume-lib/plume-scripts.git
- name: Clone git-scripts
run: mkdir -p /tmp/$USER && git -C /tmp/$USER clone --depth 1 -q https://github.com/eisop-plume-lib/git-scripts.git
- name: Clone checker-framework
run: /tmp/$USER/git-scripts/git-clone-related eisop checker-framework
- name: Run test script checker/bin-devel/check-jdk-consistency.sh
run: ./checker/bin-devel/check-jdk-consistency.sh
working-directory: ../checker-framework