Skip to content

Commit

Permalink
Merge pull request #65 from Ultraviolet-Ninja/dev
Browse files Browse the repository at this point in the history
Update Cycle
  • Loading branch information
Ultraviolet-Ninja authored Oct 14, 2023
2 parents 637e6b3 + 3954ae2 commit 6405179
Show file tree
Hide file tree
Showing 63 changed files with 782 additions and 481 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
jacoco:
docker:
# specify the version you desire here
- image: cimg/openjdk:17.0.2
- image: openjdk:21

# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
Expand Down Expand Up @@ -37,7 +37,7 @@ jobs:
path: ./build/reports
pitest:
docker:
- image: cimg/openjdk:17.0.2
- image: openjdk:21
parallelism: 6
resource_class: large

Expand Down
17 changes: 9 additions & 8 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,23 @@ updates:
interval: "weekly"
target-branch: "dev"
allow:
- dependency-name: "org.beryx.jlink"
- dependency-name: "org.testng:testng"
- dependency-name: "com.opencsv:opencsv"
- dependency-name: "org.javatuples:javatuples"
- dependency-name: "info.solidsoft.pitest"
- dependency-name: "org.jgrapht:jgrapht-ext"
- dependency-name: "org.jetbrains:annotations"
- dependency-name: "org.testng:testng"
- dependency-name: "org.slf4j:slf4j-api"
- dependency-name: "org.slf4j:slf4j-simple"
- dependency-name: "nl.jqno.equalsverifier:equalsverifier"
- dependency-name: "org.openjfx.javafxplugin"
- dependency-name: "org.beryx.jlink"
- dependency-name: "org.javatuples:javatuples"
- dependency-name: "org.jetbrains:annotations"
- dependency-name: "ch.qos.logback:logback-classic"
- dependency-name: "org.javamodularity.moduleplugin"
- dependency-name: "org.pitest:pitest-testng-plugin"
- dependency-name: "com.github.breadmoirai.github-release"
- dependency-name: "nl.jqno.equalsverifier:equalsverifier"

ignore:
- dependency-name: "com.jfoenix:jfoenix" # Must stay at 9.0.4
- dependency-name: "io.github.palexdev:materialfx" # Must stay at 11.12.0
- dependency-name: "info.solidsoft.pitest" # Must stay at 1.7.4


- package-ecosystem: "github-actions"
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand All @@ -41,12 +41,10 @@ jobs:
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

- name: Set up JDK 17
uses: actions/setup-java@v3
- name: Set up JDK 21
uses: oracle-actions/setup-java@v1
with:
java-version: 17
distribution: 'adopt'
check-latest: true
release: 21

- name: Grant execute permission for gradlew
run: chmod +x gradlew
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle

name: Publishing Executable files using Gradle
name: Publishing Executable files

on:
push:
Expand All @@ -14,14 +14,12 @@ jobs:
runs-on: windows-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v3
- name: Set up JDK 21
uses: oracle-actions/setup-java@v1
with:
java-version: 17
distribution: 'adopt'
check-latest: true
release: 21

- name: Grant execute permission for gradlew
run: chmod +x gradlew
Expand Down Expand Up @@ -56,20 +54,18 @@ jobs:
needs: windows-pipeline

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v3
- name: Set up JDK 21
uses: oracle-actions/setup-java@v1
with:
java-version: 17
distribution: 'adopt'
check-latest: true
release: 21

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew build
run: ./gradlew jar

# - name: Linking Dependencies with Gradle
# run: ./gradlew jlink
Expand All @@ -86,20 +82,18 @@ jobs:
needs: linux-pipeline

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v3
- name: Set up JDK 21
uses: oracle-actions/setup-java@v1
with:
java-version: 17
distribution: 'adopt'
check-latest: true
release: 21

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew build
run: ./gradlew jar

# - name: Linking Dependencies with Gradle
# run: ./gradlew jlink
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/test-build-executables.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle

name: JPackage Simulation

on:
push:
branches:
- dev

jobs:
windows-pipeline:
runs-on: windows-latest

steps:
- uses: actions/checkout@v4

- name: Set up JDK 21
uses: oracle-actions/setup-java@v1
with:
release: 21

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew build

- name: Creating the Executable
run: ./gradlew jpackageImage

- name: Creating the Tarball
run: ./gradlew tarExecutableFiles

- name: Creating the Zip File
run: ./gradlew zipExecutableFiles
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,6 @@ hs_err_pid*
Dockafile - Copy
/.project
/.settings/org.eclipse.buildship.core.prefs
/index.html
/script.js
/styles.css
8 changes: 8 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,11 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Notice Regarding Images:
All pictures used in this project are sourced from the game and are not owned
by the author of this software. The images are utilized for illustrative and
educational purposes only, and all rights, credits, and acknowledgments for
the images belong to their respective owners or copyright holders.
If any copyright owner wishes to have their images removed, please contact
the author, and appropriate actions will be taken.
8 changes: 4 additions & 4 deletions Learned.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
## Project Tech/Design Choices
When my friend was working on the project, he helped me decide to move to a RadioButton design for switching between puzzles. This helped me get away from my previous design of nested TabPanes in a TabPane, which probably isn't the most visually appealing.

Another thing we talked about while he was on the project was moving back to Java 8 since it was easier to work with JavaFX. This decision was later reversed after some time experimenting in Gradle. Since I have dependencies that needed to be taken into account, Java 15 was the one I landed on.
Another thing we talked about while he was on the project was moving back to Java 8 since it was easier to work with JavaFX. This decision was later reversed after some time experimenting in Gradle.
## Gradle/Continuous Integration
- Using the build.gradle file to organize dependencies and plugins, facilitate testing, set up distributions in zip and tar files, and releases for GitHub.
- Making custom tasks and using parameters for CI pipelines to test certain parts of the code.
- Making custom tasks and using parameters for CI pipelines to partition my test suite.
- Automating tests with CircleCI using this [video](https://www.youtube.com/watch?v=9PgZCJNzY9M) as a guide.
- Coming across ~~LGTM~~ (_when it was still around_) Codacy and taking advantage of its code quality checking for flaws in my Java code.
## Graphs and their Algorithms
Expand All @@ -23,12 +23,12 @@ Another thing we talked about while he was on the project was moving back to Jav
### School
#### Tools & Practices
- Understanding how to use Git and GitHub to host my project.
- Having an introduction to Gradle from one of my teammates trying to bring it into the project. (Wasn't successful, but still)
- Having an introduction to Gradle from one of my teammates trying to bring it into another project. (_Wasn't successful, but still_)
#### Verification
- Understanding the perks of TestNG vs. my previous experience with J-Unit.
- Discovering Pitest, Exploratory Testing, Mockito, and Jacoco as different ways to test code and thinking about which concepts I should implement into the project.
#### Design Patterns
- Using Factories, Facade, and Observers to facilitate repeating code and updating related modules.
- Using Adapters, Factories, Facades, and Observers to facilitate repeating code and updating related modules.
- Being introduced to code coupling and cohesion, which was later applied when I had a CodeMR free trial.
### Udemy
- Understanding how to write Groovy code. [Link](https://www.udemy.com/course/gradle-for-java-developers/)
Expand Down
19 changes: 9 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,27 @@

[![CircleCI](https://circleci.com/gh/Ultraviolet-Ninja/GradleCenturion/tree/main.svg?style=shield)](https://circleci.com/gh/Ultraviolet-Ninja/GradleCenturion/tree/main)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/b4b8571475d543a2afc720f5f96ae2cf)](https://www.codacy.com/gh/Ultraviolet-Ninja/GradleCenturion/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Ultraviolet-Ninja/GradleCenturion&utm_campaign=Badge_Grade)
![Project Version](https://img.shields.io/badge/version-0.23.0-blueviolet)
![Project Version](https://img.shields.io/badge/version-0.23.1-blueviolet)

## Intro
This project is designed to solve all puzzles found on the Centurion Bomb from Keep Talking and Nobody Explodes, which is a combination of many community-made puzzles and some from the base game set in different languages.<br>

This is a huge project for one man to tackle, but I've [learned a lot](Learned.md) from the challenges I've faced.

## Technologies
- Java 17
- Gradle 7.4
- Java 21
- Gradle 8.4
### Plugins
- JavaFX
- Palantir Docker
- Breadmoirai GitHub Release
### Dependencies
- MaterialFX ver. 11.12.0
- JFoenix ver. 9.0.4
- JavaTuple ver. 1.2
- JGraphT ver. 1.5.1
- OpenCSV ver. 5.7.1
- MaterialFX ver. `11.12.0`
- JFoenix ver. `9.0.4`
- JavaTuple ver. `1.2`
- JGraphT ver. `1.5.2`
- OpenCSV ver. `5.8`
### Other Technologies
- Circle CI
- Circle CI with TestNG and Pitest
- CodeMR Free Trial

## Status - In progress
Expand Down
Loading

0 comments on commit 6405179

Please sign in to comment.