Repository navigation
CI tests #211
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 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 |