mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-28 20:47:49 +01:00
matrix library build
This commit is contained in:
92
.github/workflows/server.yml
vendored
92
.github/workflows/server.yml
vendored
@@ -89,6 +89,81 @@ jobs:
|
|||||||
name: Webui
|
name: Webui
|
||||||
path: webui/dist
|
path: webui/dist
|
||||||
|
|
||||||
|
build-native-libs:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- macos-latest
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up JDK 21
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
java-version: "21"
|
||||||
|
distribution: "zulu"
|
||||||
|
cache: maven
|
||||||
|
|
||||||
|
- name: Cmake build
|
||||||
|
run: |
|
||||||
|
cmake -B"build" -S"libdhfs_support" -DDHFS_LIB_INSTALL="result"
|
||||||
|
cmake --build build --target install
|
||||||
|
|
||||||
|
- name: Upload build
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: NativeLib-${{ matrix.os }}
|
||||||
|
path: result
|
||||||
|
|
||||||
|
build-native-libs-docker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
run: |
|
||||||
|
CROSS_PLATFORM="linux/arm64" libdhfs_support/builder/cross-build.sh both build result
|
||||||
|
|
||||||
|
- name: Upload build
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: NativeLib-${{ matrix.os }}
|
||||||
|
path: result
|
||||||
|
|
||||||
|
merge-native-libs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [build-native-libs, build-native-libs-docker]
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
path: downloaded-libs
|
||||||
|
|
||||||
|
- name: Merge
|
||||||
|
run: rsync -av downloaded-libs/NativeLib*/* result/
|
||||||
|
|
||||||
|
- name: Check paths
|
||||||
|
run: |
|
||||||
|
test -f "result/Linux-x86_64/libdhfs_support.so" || exit 1
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: NativeLibs
|
||||||
|
path: result
|
||||||
|
|
||||||
publish-docker:
|
publish-docker:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
@@ -98,7 +173,7 @@ jobs:
|
|||||||
# with sigstore/fulcio when running outside of PRs.
|
# with sigstore/fulcio when running outside of PRs.
|
||||||
id-token: write
|
id-token: write
|
||||||
|
|
||||||
needs: [build-webui, build-dhfs]
|
needs: [build-webui, merge-native-libs, build-dhfs]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -114,6 +189,11 @@ jobs:
|
|||||||
name: Webui
|
name: Webui
|
||||||
path: webui-dist-downloaded
|
path: webui-dist-downloaded
|
||||||
|
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: NativeLibs
|
||||||
|
path: dhfs-native-downloaded
|
||||||
|
|
||||||
- name: Show all the files
|
- name: Show all the files
|
||||||
run: find .
|
run: find .
|
||||||
|
|
||||||
@@ -189,7 +269,7 @@ jobs:
|
|||||||
# with sigstore/fulcio when running outside of PRs.
|
# with sigstore/fulcio when running outside of PRs.
|
||||||
id-token: write
|
id-token: write
|
||||||
|
|
||||||
needs: [build-webui, build-dhfs]
|
needs: [build-webui, merge-native-libs, build-dhfs]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -205,6 +285,11 @@ jobs:
|
|||||||
name: Webui
|
name: Webui
|
||||||
path: webui-dist-downloaded
|
path: webui-dist-downloaded
|
||||||
|
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: NativeLibs
|
||||||
|
path: dhfs-native-downloaded
|
||||||
|
|
||||||
- name: Show all the files
|
- name: Show all the files
|
||||||
run: find .
|
run: find .
|
||||||
|
|
||||||
@@ -217,6 +302,9 @@ jobs:
|
|||||||
- name: Copy Webui
|
- name: Copy Webui
|
||||||
run: cp -r ./webui-dist-downloaded "run-wrapper-out/dhfs/app/Webui"
|
run: cp -r ./webui-dist-downloaded "run-wrapper-out/dhfs/app/Webui"
|
||||||
|
|
||||||
|
- name: Copy Webui
|
||||||
|
run: cp -r ./dhfs-native-downloaded "run-wrapper-out/dhfs/app/NativeLibs"
|
||||||
|
|
||||||
- name: Copy run wrapper
|
- name: Copy run wrapper
|
||||||
run: cp -r ./run-wrapper/* "run-wrapper-out/dhfs/app/"
|
run: cp -r ./run-wrapper/* "run-wrapper-out/dhfs/app/"
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ COPY ./server/mvnw ./server/pom.xml ./
|
|||||||
RUN ./mvnw quarkus:go-offline
|
RUN ./mvnw quarkus:go-offline
|
||||||
# The previous thing still doesn't download 100% everything
|
# The previous thing still doesn't download 100% everything
|
||||||
RUN ./mvnw -Dmaven.test.skip=true -Dskip.unit=true package --fail-never
|
RUN ./mvnw -Dmaven.test.skip=true -Dskip.unit=true package --fail-never
|
||||||
COPY ./server/. .
|
COPY ./server/. .
|
||||||
RUN ./mvnw -Dmaven.test.skip=true -Dskip.unit=true clean package
|
RUN ./mvnw -Dmaven.test.skip=true -Dskip.unit=true clean package
|
||||||
|
|
||||||
FROM azul/zulu-openjdk-alpine:21-jre-headless
|
FROM azul/zulu-openjdk-alpine:21-jre-headless
|
||||||
|
|||||||
@@ -4,11 +4,14 @@ RUN apk update && apk add fuse && rm -rf /var/cache/apk/*
|
|||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY ./dhfs-package-downloaded/. .
|
COPY ./dhfs-package-downloaded/. .
|
||||||
RUN mkdir -p webui
|
WORKDIR /usr/src/app/native-libs
|
||||||
COPY ./webui-dist-downloaded/. ./webui
|
COPY ./dhfs-native-downloaded/. .
|
||||||
|
WORKDIR /usr/src/app/webui
|
||||||
|
COPY ./webui-dist-downloaded/. .
|
||||||
|
|
||||||
ENV dhfs_webui_root=/usr/src/app/webui
|
ENV dhfs_webui_root=/usr/src/app/webui
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
COPY ./dockerentry.sh .
|
COPY ./dockerentry.sh .
|
||||||
|
|
||||||
RUN ["chmod", "+x", "./dockerentry.sh"]
|
RUN ["chmod", "+x", "./dockerentry.sh"]
|
||||||
|
|||||||
@@ -4,20 +4,20 @@ export SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd
|
|||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
|
|
||||||
if [[ -z "${INSIDE_DOCKER_ALREADY}" ]]; then
|
if [[ -z "${INSIDE_DOCKER_ALREADY}" ]]; then
|
||||||
if [[ "$(uname)" == "Linux" ]]
|
if [[ "$(uname)" == "Linux" ]]; then
|
||||||
then
|
if [[ -z "${CROSS_PLATFORM}" ]]; then
|
||||||
echo "Already on linux"
|
echo "Already on linux"
|
||||||
exit 0
|
exit 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
exec "$SCRIPT_DIR"/docker-launch.sh "$@"
|
exec "$SCRIPT_DIR"/docker-launch.sh "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
|
|
||||||
if [ $# -lt 3 ]
|
if [ $# -lt 3 ]; then
|
||||||
then
|
echo "Not enough arguments supplied: (build/configure) (build dir) (output dir)"
|
||||||
echo "Not enough arguments supplied: (build/configure) (build dir) (output dir)"
|
exit 1
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PROJECT_DIR="$SCRIPT_DIR/.."
|
PROJECT_DIR="$SCRIPT_DIR/.."
|
||||||
@@ -37,14 +37,18 @@ mkdir -p "$2"
|
|||||||
mkdir -p "$3"
|
mkdir -p "$3"
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"configure")
|
"configure")
|
||||||
configure
|
configure
|
||||||
;;
|
;;
|
||||||
"build")
|
"build")
|
||||||
build
|
build
|
||||||
;;
|
;;
|
||||||
*)
|
"both")
|
||||||
echo "Unknown command"
|
configure
|
||||||
exit 1
|
build
|
||||||
;;
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown command"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
PLATFORM_ARG=""
|
||||||
|
if [[ ! -z "${CROSS_PLATFORM}" ]]; then
|
||||||
|
PLATFORM_ARG="--platform $CROSS_PLATFORM"
|
||||||
|
fi
|
||||||
|
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
export SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
export SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
@@ -9,5 +14,5 @@ docker build --iidfile "$DOCKER_IMG_FILE" .
|
|||||||
|
|
||||||
ROOT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
|
ROOT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
|
||||||
|
|
||||||
docker run --rm -v "$ROOT_DIR:$ROOT_DIR" -e INSIDE_DOCKER_ALREADY=TRUE "$(cat "$DOCKER_IMG_FILE")" \
|
docker run --rm -v "$ROOT_DIR:$ROOT_DIR" -e INSIDE_DOCKER_ALREADY=TRUE "$(cat "$DOCKER_IMG_FILE")" \
|
||||||
"$SCRIPT_DIR/cross-build.sh" "$@"
|
"$SCRIPT_DIR/cross-build.sh" "$@"
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ java \
|
|||||||
-Dquarkus.http.host=0.0.0.0 \
|
-Dquarkus.http.host=0.0.0.0 \
|
||||||
-Ddhfs.objects.ref_verification=false \
|
-Ddhfs.objects.ref_verification=false \
|
||||||
-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=INFO \
|
-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=INFO \
|
||||||
|
-Dcom.usatiuk.dhfs.supportlib.native-path="$SCRIPT_DIR"/NativeLibs \
|
||||||
-Ddhfs.webui.root="$SCRIPT_DIR"/Webui $EXTRAOPTS_PARSED \
|
-Ddhfs.webui.root="$SCRIPT_DIR"/Webui $EXTRAOPTS_PARSED \
|
||||||
-jar "$SCRIPT_DIR"/"DHFS Package"/quarkus-run.jar >quarkus.log 2>&1 &
|
-jar "$SCRIPT_DIR"/"DHFS Package"/quarkus-run.jar >quarkus.log 2>&1 &
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user