Skip to content

Support EtsThrowStmt to dot label (#358) #128

Support EtsThrowStmt to dot label (#358)

Support EtsThrowStmt to dot label (#358) #128

Workflow file for this run

name: CI
on:
push:
branches:
- develop
- neo
pull_request:
branches:
- develop
- neo
workflow_dispatch:
jobs:
ci-core:
name: Run core tests on JDK ${{ matrix.jdk }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 19 ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.jdk }}
distribution: 'zulu'
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
# Only write to the cache for builds on the specific branches. (Default is 'main' only.)
# Builds on other branches will only read existing entries from the cache.
cache-read-only: ${{ github.ref != 'refs/heads/develop' && github.ref != 'ref/heads/neo' }}
- name: Build and run tests
run: ./gradlew --scan build -x :jacodb-ets:build
- name: Upload Gradle test results
if: (!cancelled())
uses: actions/upload-artifact@v4
with:
name: gradle-test-results-${{ matrix.jdk }}
path: "**/build/test-results/**/*.xml"
- name: Upload Gradle reports
if: (!cancelled())
uses: actions/upload-artifact@v4
with:
name: gradle-reports-jdk${{ matrix.jdk }}
path: '**/build/reports/'
ci-lifecycle:
name: Run lifecycle tests
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
java-version: 8
distribution: 'zulu'
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
# Only write to the cache for builds on the specific branches. (Default is 'main' only.)
# Builds on other branches will only read existing entries from the cache.
cache-read-only: ${{ github.ref != 'refs/heads/develop' && github.ref != 'refs/heads/neo' }}
- name: Build and run lifecycle tests
run: ./gradlew --scan lifecycleTest
- name: Upload Gradle test results
if: (!cancelled())
uses: actions/upload-artifact@v4
with:
name: gradle-test-results-lifecycle
path: "**/build/test-results/**/*.xml"
- name: Upload Gradle reports
if: (!cancelled())
uses: actions/upload-artifact@v4
with:
name: gradle-reports-lifecycle
path: '**/build/reports/'
ci-ets:
name: Run ETS tests
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'zulu'
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
# Only write to the cache for builds on the specific branches. (Default is 'main' only.)
# Builds on other branches will only read existing entries from the cache.
cache-read-only: ${{ github.ref != 'refs/heads/develop' && github.ref != 'ref/heads/neo' }}
- name: Set up ArkAnalyzer
run: |
REPO_URL="https://gitcode.com/Lipen/arkanalyzer"
DEST_DIR="arkanalyzer"
MAX_RETRIES=10
RETRY_DELAY=3 # Delay between retries in seconds
BRANCH="neo/2025-09-03"
for ((i=1; i<=MAX_RETRIES; i++)); do
git clone --depth=1 --branch $BRANCH $REPO_URL $DEST_DIR && break
echo "Clone failed, retrying in $RETRY_DELAY seconds..."
sleep "$RETRY_DELAY"
done
if [[ $i -gt $MAX_RETRIES ]]; then
echo "Failed to clone the repository after $MAX_RETRIES attempts."
exit 1
else
echo "Repository cloned successfully."
fi
echo "ARKANALYZER_DIR=$(realpath $DEST_DIR)" >> $GITHUB_ENV
cd $DEST_DIR
npm install
npm run build
- name: Run ETS tests
run: ./gradlew --scan :jacodb-ets:generateTestResources :jacodb-ets:test
- name: Upload Gradle test results
if: (!cancelled())
uses: actions/upload-artifact@v4
with:
name: gradle-test-results-ets
path: "**/build/test-results/**/*.xml"
- name: Upload Gradle reports
if: (!cancelled())
uses: actions/upload-artifact@v4
with:
name: gradle-reports-ets
path: '**/build/reports/'
publish-test-results:
name: "Publish test results"
needs: [ ci-core, ci-lifecycle, ci-ets ]
if: (!cancelled())
runs-on: ubuntu-latest
permissions:
checks: write
pull-requests: write
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: "artifacts/gradle-test-results-*/**/*.xml"