CI checks for builds; Deb and Web build Docker container #6

Merged
Azea_Avenbright merged 37 commits from dockerBuild into master 2025-03-06 19:07:39 -05:00
6 changed files with 156 additions and 0 deletions

View file

@ -0,0 +1,15 @@
when:
event: push
branch: [ dockerBuild, master ]
steps:
- name: build
image: gradle:8.10.2-jdk17
environment:
ANDROID_HOME: /sdk
commands:
- apt update && apt install -y sdkmanager openjdk-11-jdk
- sdkmanager "tools" && yes | sdkmanager --licenses
#More info
# https://developer.android.com/build/building-cmdline
- gradle assembleDebug

16
.woodpecker/deb-build.yml Normal file
View file

@ -0,0 +1,16 @@
when:
event: push
branch: [ dockerBuild, master ]
steps:
- name: build
image: gradle:8.10.2-jdk17
environment:
ANDROID_HOME: /sdk
commands:
- apt update && apt install -y sdkmanager openjdk-11-jdk
- sdkmanager "tools" && yes | sdkmanager --licenses
- gradle buildDeb
depends_on:
- android-build

View file

@ -0,0 +1,60 @@
when:
- event: tag
ref: ref/tags/0.0.*
steps:
- name: build-releases
image: gradle:8.10.2-jdk17
environment:
ANDROID_HOME: /sdk
KEYSTORE_FILE:
from_secret: keystore_file
TEST_ENV:
from_secret: test_secret
KEYSTORE_PASSWORD:
from_secret: keystore_password
KEY_ALIAS:
from_secret: key_alias
KEY_PASSWORD:
from_secret: key_password
commands:
- apt update && apt install -y sdkmanager openjdk-11-jdk
- sdkmanager "tools" && yes | sdkmanager --licenses
- gradle clean
- echo "$TEST_ENV"
- echo "$KEYSTORE_FILE" | base64 -d > keystore.jks
# Package Release Deb currently fails on local
- gradle buildDeb
- gradle assembleRelease -Pandroid.injected.signing.store.file=$(pwd)/keystore.jks -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD -Pandroid.injected.signing.key.alias=$KEY_ALIAS -Pandroid.injected.signing.key.password=$KEY_PASSWORD
- name: publish-packages
image: woodpeckerci/plugin-release
settings:
files:
- androidApp/build/outputs/apk/release/androidApp-release.apk
- desktopApp/build/compose/binaries/main/deb/bakers-menagerie_*.deb
checksum:
- androidApp/build/outputs/apk/release/androidApp-release.apk
- desktopApp/build/compose/binaries/main/deb/bakers-menagerie_*.deb
target: master
draft: true
overwrite: true
generate-release-notes: true
api_key:
from_secret: ci_access_token
- name: publish-container
image: woodpeckerci/plugin-kaniko
repo: git.blizzard.systems/Menagerie/Menagerie_Cookbook
username:
from_secret: ci_username
password:
from_secret: ci_access_token
registry: git.blizzard.systems
dockerfile: Dockerfile.web-serve
auto-tag: true
cache: true
depends_on:
- android-build
- deb-build
- web-build

View file

@ -0,0 +1,9 @@
when:
event: push
branch: [ dockerBuild, master ]
steps:
- name: build
image: gradle:8.10.2-jdk21
commands:
- gradle wasmJsBrowserDistribution

29
Dockerfile.dpkg-build Normal file
View file

@ -0,0 +1,29 @@
# Original build used JVM 21.0.3
# Gradle version 8.10.2
### For RPM Builds, need to implement Nebula RPM plugin; see https://plugins.gradle.org/plugin/com.netflix.nebula.rpm
FROM gradle:8.10.2-jdk21 AS cache
RUN apt update && apt install -y sdkmanager openjdk-11-jdk
RUN sdkmanager "tools"
RUN yes | sdkmanager --licenses
RUN mkdir -p /src
ENV GRADLE_USER_HOME=/home/gradle/cache_home
COPY gradle /src/gradle
COPY build.gradle.kts gradle.properties settings.gradle.kts /src/.
COPY androidApp/build.gradle.kts /src/androidApp/.
COPY automotiveApp/build.gradle.kts /src/automotiveApp/.
COPY desktopApp/build.gradle.kts /src/desktopApp/.
COPY shared/build.gradle.kts /src/shared/.
COPY tvApp/build.gradle.kts /src/tvApp/.
COPY webApp/build.gradle.kts /src/webApp/.
WORKDIR /src
RUN ls -lahR
RUN gradle -q javaToolchains
RUN gradle buildEnvironment --refresh-dependencies
FROM gradle:8.10.2-jdk21 AS build
WORKDIR /src
COPY --from=cache /home/gradle/cache_home /home/gradle/.
COPY --chown=gradle:gradle . /src/.
RUN gradle clean
RUN gradle packageReleaseDeb

27
Dockerfile.web-serve Normal file
View file

@ -0,0 +1,27 @@
# Original build used JVM 21.0.3
# Gradle version 8.10.2
FROM gradle:8.10.2-jdk21 AS cache
RUN apt update && apt install -y sdkmanager openjdk-11-jdk
RUN sdkmanager "tools"
RUN yes | sdkmanager --licenses
RUN mkdir -p /src
ENV GRADLE_USER_HOME=/home/gradle/cache_home
COPY gradle /src/gradle
COPY build.gradle.kts gradle.properties settings.gradle.kts /src/.
COPY androidApp/build.gradle.kts /src/androidApp/.
COPY automotiveApp/build.gradle.kts /src/automotiveApp/.
COPY desktopApp/build.gradle.kts /src/desktopApp/.
COPY shared/build.gradle.kts /src/shared/.
COPY tvApp/build.gradle.kts /src/tvApp/.
COPY webApp/build.gradle.kts /src/webApp/.
WORKDIR /src
RUN gradle buildEnvironment --refresh-dependencies
FROM gradle:8.10.2-jdk21 AS build
WORKDIR /src
COPY --from=cache /home/gradle/cache_home /home/gradle/.
COPY --chown=gradle:gradle . /src/.
RUN gradle clean && gradle wasmJsBrowserDistribution
FROM nginx:latest
COPY --from=build /src/webApp/build/dist/wasmJs/productionExecutable /usr/share/nginx/html