diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7d5bffa --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: Java CI with Maven + +on: + push: + branches: [ "main", "master" ] + pull_request: + branches: [ "main", "master" ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: maven # Optional: Caches Maven dependencies + + - name: Build with Maven + run: mvn -B package --file pom.xml + + - name: Upload JAR artifact + uses: actions/upload-artifact@v4 + with: + name: stardust-jar + path: target/stardust-0.0.1.jar + if-no-files-found: error diff --git a/README.md b/README.md index c500713..bb9d2e5 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,40 @@ STARDUST is a framework for spectrum-based fault localization (SBFL). The framework was used to conduct experiments with SBFL during my bachelor thesis. +## Requirements + +This project requires Java 17 or newer to build and run. + + ## Installation STARDUST uses [maven](https://maven.apache.org/) as its build tool. The `pom.xml` file contains all dependencies you need in order to run the framework. +### Using the Published Artifact + +Successful builds on the `main` or `master` branch publish a JAR artifact named `stardust-jar`. You can download this artifact by following these steps: + +1. Navigate to the **Actions** tab of the GitHub repository. +2. Select the **Java CI with Maven** workflow from the list of workflows. +3. Choose a successful run (usually marked with a green checkmark). +4. Scroll down to the **Artifacts** section at the bottom of the run page. +5. Download the `stardust-jar` artifact. This will typically be a ZIP file containing `stardust-0.0.1.jar`. + +Once downloaded and unzipped, you can run specific functionalities using a command similar to this: + +```bash +java -cp stardust-0.0.1.jar fk.stardust.evaluation.sbfl.CreateRankings [args] +``` +(Replace `[args]` with any arguments required by the chosen main class.) + + +## Build Status + +![Build Status](https://github.com/FaKeller/stardust/actions/workflows/ci.yml/badge.svg) + +This project uses GitHub Actions to automatically run tests and build the project upon commits and pull requests, ensuring code quality and integration. + ## Theoretical Background diff --git a/pom.xml b/pom.xml index 36ef923..959c81b 100644 --- a/pom.xml +++ b/pom.xml @@ -40,36 +40,30 @@ - jdom - jdom - 1.1 + org.jdom + jdom2 + 2.0.6.1 nz.ac.waikato.cms.weka - weka-dev - 3.7.10 + weka-stable + 3.8.6 compile - nz.ac.waikato.cms.weka - LibSVM - 1.0.5 + tw.edu.ntu.csie + libsvm + 3.30 compile - - - nz.ac.waikato.cms.weka - weka-dev - - org.testng testng - 6.8.5 + 7.7.1 test