diff --git a/.woodpecker/android-build.yml b/.woodpecker/android-build.yml new file mode 100644 index 0000000..de612cc --- /dev/null +++ b/.woodpecker/android-build.yml @@ -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 diff --git a/.woodpecker/deb-build.yml b/.woodpecker/deb-build.yml new file mode 100644 index 0000000..becce93 --- /dev/null +++ b/.woodpecker/deb-build.yml @@ -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 diff --git a/.woodpecker/release-packaging.yml b/.woodpecker/release-packaging.yml new file mode 100644 index 0000000..d4142f7 --- /dev/null +++ b/.woodpecker/release-packaging.yml @@ -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 + diff --git a/.woodpecker/web-build.yml b/.woodpecker/web-build.yml new file mode 100644 index 0000000..86334a2 --- /dev/null +++ b/.woodpecker/web-build.yml @@ -0,0 +1,9 @@ +when: + event: push + branch: [ dockerBuild, master ] + +steps: + - name: build + image: gradle:8.10.2-jdk21 + commands: + - gradle wasmJsBrowserDistribution diff --git a/Dockerfile.dpkg-build b/Dockerfile.dpkg-build new file mode 100644 index 0000000..ea04bdb --- /dev/null +++ b/Dockerfile.dpkg-build @@ -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 diff --git a/Dockerfile.web-serve b/Dockerfile.web-serve new file mode 100644 index 0000000..b48e48a --- /dev/null +++ b/Dockerfile.web-serve @@ -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