diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ead567f..6cf7404 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,8 +25,8 @@ jobs: name: Build on ${{ matrix.os }} on Java ${{ matrix.java }} steps: - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v3 - - name: Set up JDK ${{ matrix.java }} + - uses: gradle/actions/wrapper-validation@v3 + - name: Set up JDK uses: actions/setup-java@v4 with: distribution: temurin @@ -37,8 +37,10 @@ jobs: run: | ./gradlew --no-daemon -s build - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.3.1 + uses: codecov/codecov-action@v4.4.1 if: ${{ matrix.java == '21' && matrix.os == 'ubuntu-latest' }} + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - name: Test Summary uses: test-summary/action@v2 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2865ab8..f7061a8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK uses: actions/setup-java@v4 with: distribution: temurin @@ -51,7 +51,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} - name: Get the tag id: get_tag - run: echo ::set-output name=tag::$(echo ${{ github.ref }} | cut -d / -f 3) + run: echo tag=$(echo ${{ github.ref }} | cut -d / -f 3) >> $GITHUB_OUTPUT - name: Create Release id: create_release uses: actions/create-release@v1 @@ -64,7 +64,7 @@ jobs: prerelease: false - name: Get the ZIP id: get_zip - run: echo ::set-output name=filename::$(basename $(find build/distributions -name "*-boot-*.zip")) + run: echo filename=$(basename $(find build/distributions -name "*-boot-*.zip")) >> $GITHUB_OUTPUT - name: Upload Release ZIP id: upload-release-asset-zip uses: actions/upload-release-asset@v1 @@ -77,7 +77,7 @@ jobs: asset_content_type: application/zip - name: Get the DEB id: get_deb - run: echo ::set-output name=filename::$(basename $(find build/distributions -name "*.deb")) + run: echo filename=$(basename $(find build/distributions -name "*.deb")) >> $GITHUB_OUTPUT - name: Upload to Packagecloud run: | bundle exec package_cloud push yuzawa-san/googolplex-theater/raspbian/bullseye ./build/distributions/${{ steps.get_deb.outputs.filename }} diff --git a/README.md b/README.md index 76f2c95..f7b0eb8 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The `systemctl` and `journalctl` commands are useful for starting, stopping, che [Packagecloud](http://packagecloud.io/) generously provides hosting for [this project](https://packagecloud.io/yuzawa-san/googolplex-theater) and other open-source projects. This is one of the easiest ways to install the application and keep it up to date. -The following distros are currently supported: `raspbian/bullseye`, `raspbian/bookworm`, `ubuntu/focal`, `ubuntu/jammy`. +The following distros are currently supported: `raspbian/bullseye`, `raspbian/bookworm`, `ubuntu/focal`, `ubuntu/jammy`, `ubuntu/noble`. Add the packagecloud repository for this project using [their instructions](https://packagecloud.io/yuzawa-san/googolplex-theater/install#bash-deb): ``` @@ -134,11 +134,6 @@ This will generate the application ZIP archive in `./build/distributions/googolp Once you have the ZIP archive, expand it in the desired destination location and `cd` into directory. -To show all options: -``` -./bin/googolplex-theater --help -``` - To run the application with default settings: ``` ./bin/googolplex-theater @@ -149,7 +144,6 @@ To run the application with default settings: To provide resiliency, it is recommended to run the application as a daemon. See service descriptor files for upstart, systemd, and launchd in the `./service/` directory. They should work with minor modifications. Please refer to their respective installation guides to enable on your system. - ## Usage The configuration is defined in `./conf/config.yml` and `./conf/devices.yml`. diff --git a/build.gradle b/build.gradle index e74bebb..0d082b7 100644 --- a/build.gradle +++ b/build.gradle @@ -1,15 +1,16 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.2.4' - id 'io.spring.dependency-management' version '1.1.4' + id 'org.springframework.boot' version '3.3.0' + id 'io.spring.dependency-management' version '1.1.5' id "net.researchgate.release" version "3.0.2" id "com.google.protobuf" version "0.9.4" id "com.diffplug.spotless" version "6.25.0" - id "com.github.spotbugs" version "6.0.9" + id "com.github.spotbugs" version "6.0.15" + id "com.github.ben-manes.versions" version "0.51.0" id "com.github.jakemarsden.git-hooks" version "0.0.2" - id 'com.github.jk1.dependency-license-report' version '2.7' - id("com.netflix.nebula.ospackage") version "11.9.0" - id "io.freefair.lombok" version "8.4" + id 'com.github.jk1.dependency-license-report' version '2.8' + id("com.netflix.nebula.ospackage") version "11.9.1" + id "io.freefair.lombok" version "8.6" } apply plugin: "java" @@ -57,7 +58,7 @@ licenseReport { protobuf { protoc { - artifact = "com.google.protobuf:protoc:4.26.1" + artifact = "com.google.protobuf:protoc:4.27.0" } generateProtoTasks { ofSourceSet('main') @@ -92,16 +93,16 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'javax.annotation:javax.annotation-api:1.3.2' implementation 'org.bouncycastle:bcpkix-jdk15on:1.70' - implementation 'com.google.protobuf:protobuf-java:4.26.1' + implementation 'com.google.protobuf:protobuf-java:4.27.0' implementation 'org.jmdns:jmdns:3.5.9' - implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.3' + implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.17.1' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'io.projectreactor:reactor-test' - testImplementation 'org.mockito:mockito-core:5.11.0' + testImplementation 'org.mockito:mockito-core:5.12.0' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.2' testImplementation 'com.google.jimfs:jimfs:1.3.0' - testImplementation(platform('io.cucumber:cucumber-bom:7.17.0')) + testImplementation(platform('io.cucumber:cucumber-bom:7.18.0')) testImplementation 'io.cucumber:cucumber-java' testImplementation 'io.cucumber:cucumber-spring' testImplementation 'io.cucumber:cucumber-junit-platform-engine' diff --git a/gradle.properties b/gradle.properties index a3fa7c7..e8035b3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,3 @@ version=2.0.0-SNAPSHOT org.gradle.parallel=true org.gradle.caching=true -org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \ - --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \ - --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \ - --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \ - --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b82aa23..cee8b1b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-rc-2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a4..b740cf1 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/.