diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 28c250862..242813307 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -23,7 +23,6 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - - name: Free up disk space if: ${{ inputs.build_multiarch }} shell: bash @@ -33,7 +32,7 @@ jobs: # ====== # MACROS # ====== - + # macro to print a line of equals # (silly but works) printSeparationLine() { @@ -48,21 +47,21 @@ jobs: done echo "${output}" } - + # macro to compute available space # REF: https://unix.stackexchange.com/a/42049/60849 # REF: https://stackoverflow.com/a/450821/408734 getAvailableSpace() { echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}'); } - + # macro to make Kb human readable (assume the input is Kb) # REF: https://unix.stackexchange.com/a/44087/60849 formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); } - + # macro to output saved space printSavedSpace() { saved=${1} title=${2:-} - + echo "" printSeparationLine '*' 80 if [ ! -z "${title}" ]; then @@ -73,11 +72,11 @@ jobs: printSeparationLine '*' 80 echo "" } - + # macro to print output of dh with caption printDH() { caption=${1:-} - + printSeparationLine '=' 80 echo "${caption}" echo "" @@ -96,15 +95,15 @@ jobs: # ====== # SCRIPT # ====== - + # Display initial disk space stats - + AVAILABLE_INITIAL=$(getAvailableSpace) AVAILABLE_ROOT_INITIAL=$(getAvailableSpace '/') - + printDH "BEFORE CLEAN-UP:" echo "" - + # Remove Android library BEFORE=$(getAvailableSpace) @@ -113,7 +112,7 @@ jobs: AFTER=$(getAvailableSpace) SAVED=$((AFTER-BEFORE)) printSavedSpace $SAVED "Android library" - + BEFORE=$(getAvailableSpace) # https://github.community/t/bigger-github-hosted-runners-disk-space/17267/11 @@ -122,7 +121,7 @@ jobs: AFTER=$(getAvailableSpace) SAVED=$((AFTER-BEFORE)) printSavedSpace $SAVED ".NET runtime" - + BEFORE=$(getAvailableSpace) sudo rm -rf /opt/ghc @@ -130,10 +129,10 @@ jobs: AFTER=$(getAvailableSpace) SAVED=$((AFTER-BEFORE)) printSavedSpace $SAVED "Haskell runtime" - + # Remove large packages # REF: https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh - + BEFORE=$(getAvailableSpace) sudo apt-get remove -y '^aspnetcore-.*' @@ -149,7 +148,7 @@ jobs: AFTER=$(getAvailableSpace) SAVED=$((AFTER-BEFORE)) printSavedSpace $SAVED "Large misc. packages" - + # Remove Docker images BEFORE=$(getAvailableSpace) @@ -169,18 +168,18 @@ jobs: AFTER=$(getAvailableSpace) SAVED=$((AFTER-BEFORE)) printSavedSpace $SAVED "Swap storage" - + # Output saved space statistic - + AVAILABLE_END=$(getAvailableSpace) AVAILABLE_ROOT_END=$(getAvailableSpace '/') - + echo "" printDH "AFTER CLEAN-UP:" - + echo "" echo "" - + echo "/dev/root:" printSavedSpace $((AVAILABLE_ROOT_END - AVAILABLE_ROOT_INITIAL)) echo "overall:" @@ -189,15 +188,6 @@ jobs: - name: Install GraphViz run: sudo apt-get install graphviz -y - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: 11 - distribution: temurin - - - name: Build Java server - run: make buildServer - - name: Set up QEMU if: ${{ inputs.build_multiarch }} uses: docker/setup-qemu-action@v2 @@ -243,4 +233,3 @@ jobs: run: | rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache - diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c20e43e70..31959b8b5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,15 +10,6 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - - name: Install GraphViz - run: sudo apt-get install graphviz -y - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: 11 - distribution: temurin - - name: Build Java server - run: make buildServer - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: Generate checksums run: | @@ -36,15 +27,6 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - - name: Install GraphViz - run: sudo apt-get install graphviz -y - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: 11 - distribution: temurin - - name: Build Java server - run: make buildServer - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx diff --git a/docker-bake.hcl b/docker-bake.hcl index 19f397baa..610194ac2 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -15,6 +15,7 @@ target "kroki" { wavedrom = "./wavedrom" bytefield = "./bytefield" tikz = "./tikz" + kroki-src = "." } dockerfile = "ops/docker/jdk11-jammy/Dockerfile" tags = ["yuzutech/kroki:${TAG}"] diff --git a/server/ops/docker/jdk11-jammy/Dockerfile b/server/ops/docker/jdk11-jammy/Dockerfile index 30a7138b3..97d02b3f7 100644 --- a/server/ops/docker/jdk11-jammy/Dockerfile +++ b/server/ops/docker/jdk11-jammy/Dockerfile @@ -1,5 +1,15 @@ # syntax=docker/dockerfile:1.4 +## Kroki server +FROM maven:3.9.3-eclipse-temurin-11 as kroki-builder-server +COPY --from=kroki-src . /kroki +WORKDIR /kroki +RUN apt-get update \ + && apt-get install graphviz -y \ + && apt-get clean \ + && apt-get autoremove +RUN mvn --no-transfer-progress clean package + ## TikZ FROM --platform=$BUILDPLATFORM ubuntu:jammy AS kroki-builder-dvisvgm @@ -332,7 +342,7 @@ ENV KROKI_SYMBOLATOR_BIN_PATH=/usr/bin/symbolator ENV KROKI_BLOCKDIAG_BIN_PATH=/usr/bin/blockdiag ENV JAVA_OPTS="-Dlogback.configurationFile=/etc/kroki/logback.xml -Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory" -COPY --chown=kroki:kroki target/kroki-server.jar /usr/local/kroki/kroki-server.jar +COPY --from=kroki-builder-server --chown=kroki:kroki /kroki/server/target/kroki-server.jar /usr/local/kroki/kroki-server.jar EXPOSE 8000 diff --git a/server/pom.xml b/server/pom.xml index 0c9c9212d..1d1c53f0c 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -188,6 +188,9 @@ pl.project13.maven git-commit-id-plugin + + false + 4.9.10