dropshell release 2025.0526.2221
Some checks failed
Dropshell Test / Build_and_Test (push) Has been cancelled
Some checks failed
Dropshell Test / Build_and_Test (push) Has been cancelled
This commit is contained in:
parent
4035538ba5
commit
3dc82c682c
@ -8,9 +8,9 @@ set -e
|
|||||||
|
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
if [[ "$ARCH" == "x86_64" ]]; then
|
if [[ "$ARCH" == "x86_64" ]]; then
|
||||||
BIN=dropshell.amd64
|
BIN=dropshell.x86_64
|
||||||
elif [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then
|
elif [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then
|
||||||
BIN=dropshell.arm64
|
BIN=dropshell.aarch64
|
||||||
else
|
else
|
||||||
echo "Unsupported architecture: $ARCH" >&2
|
echo "Unsupported architecture: $ARCH" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -17,6 +17,14 @@ RUN apk add --no-cache \
|
|||||||
ninja \
|
ninja \
|
||||||
linux-headers
|
linux-headers
|
||||||
|
|
||||||
|
# Install cross-compilation tools for ARM64
|
||||||
|
RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
||||||
|
apk add --no-cache \
|
||||||
|
crossbuild-essential-arm64 \
|
||||||
|
gcc-aarch64-linux-gnu \
|
||||||
|
g++-aarch64-linux-gnu; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Set working directory
|
# Set working directory
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
|
||||||
@ -26,13 +34,29 @@ COPY . .
|
|||||||
# Configure and build
|
# Configure and build
|
||||||
RUN mkdir -p build_static
|
RUN mkdir -p build_static
|
||||||
|
|
||||||
|
# Set up cross-compilation environment for ARM64
|
||||||
|
RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
||||||
|
export CC=aarch64-linux-gnu-gcc \
|
||||||
|
export CXX=aarch64-linux-gnu-g++ \
|
||||||
|
export CMAKE_TOOLCHAIN_FILE=/build/toolchain.cmake; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create toolchain file for ARM64
|
||||||
|
RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
||||||
|
echo "set(CMAKE_SYSTEM_NAME Linux)" > toolchain.cmake && \
|
||||||
|
echo "set(CMAKE_SYSTEM_PROCESSOR aarch64)" >> toolchain.cmake && \
|
||||||
|
echo "set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)" >> toolchain.cmake && \
|
||||||
|
echo "set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)" >> toolchain.cmake && \
|
||||||
|
echo "set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> toolchain.cmake && \
|
||||||
|
echo "set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> toolchain.cmake && \
|
||||||
|
echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> toolchain.cmake; \
|
||||||
|
fi
|
||||||
|
|
||||||
RUN cmake -G Ninja -B build_static -DCMAKE_BUILD_TYPE=Release \
|
RUN cmake -G Ninja -B build_static -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_C_COMPILER=gcc \
|
|
||||||
-DCMAKE_CXX_COMPILER=g++ \
|
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="-static" \
|
-DCMAKE_EXE_LINKER_FLAGS="-static" \
|
||||||
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
|
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
|
||||||
-DBUILD_SHARED_LIBS=OFF \
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
-DCMAKE_SYSTEM_PROCESSOR=${TARGETPLATFORM#linux/}
|
${CMAKE_TOOLCHAIN_FILE:+-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE}
|
||||||
|
|
||||||
RUN cmake --build build_static
|
RUN cmake --build build_static
|
||||||
|
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Create output directory
|
|
||||||
mkdir -p output
|
|
||||||
|
|
||||||
# Create and use a new builder instance
|
|
||||||
docker buildx create --name multiarch-builder --use || true
|
|
||||||
|
|
||||||
# Build for amd64
|
|
||||||
docker buildx build --platform linux/amd64 \
|
|
||||||
--build-arg TARGETPLATFORM=linux/amd64 \
|
|
||||||
--build-arg BUILDPLATFORM=linux/amd64 \
|
|
||||||
--tag dropshell-static-builder \
|
|
||||||
--output type=local,dest=./output/amd64 \
|
|
||||||
--target dropshell \
|
|
||||||
.
|
|
||||||
|
|
||||||
# Build for arm64
|
|
||||||
docker buildx build --platform linux/arm64 \
|
|
||||||
--build-arg TARGETPLATFORM=linux/arm64 \
|
|
||||||
--build-arg BUILDPLATFORM=linux/amd64 \
|
|
||||||
--tag dropshell-static-builder \
|
|
||||||
--output type=local,dest=./output/arm64 \
|
|
||||||
--target dropshell \
|
|
||||||
.
|
|
||||||
|
|
||||||
# Move the binaries to the output directory with architecture-specific names
|
|
||||||
cp output/amd64/dropshell output/dropshell.amd64
|
|
||||||
cp output/arm64/dropshell output/dropshell.arm64
|
|
||||||
|
|
||||||
# Clean up intermediate directories
|
|
||||||
rm -rf output/amd64 output/arm64
|
|
||||||
|
|
||||||
echo "Static binaries have been created:"
|
|
||||||
ls -la output
|
|
@ -41,7 +41,7 @@ print_status "Detected OS: $OS $VER"
|
|||||||
case $OS in
|
case $OS in
|
||||||
"Ubuntu"|"Debian GNU/Linux")
|
"Ubuntu"|"Debian GNU/Linux")
|
||||||
# Common packages for both Ubuntu and Debian
|
# Common packages for both Ubuntu and Debian
|
||||||
PACKAGES="cmake make g++ devscripts debhelper"
|
PACKAGES="cmake make g++ devscripts debhelper build-essential upx"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
print_error "Unsupported distribution: $OS"
|
print_error "Unsupported distribution: $OS"
|
||||||
|
33
source/multibuild.sh
Executable file
33
source/multibuild.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Create output directory
|
||||||
|
mkdir -p output
|
||||||
|
|
||||||
|
|
||||||
|
function build_arch() {
|
||||||
|
local arch=$1
|
||||||
|
|
||||||
|
if [ ! -f "${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-c++" ]; then
|
||||||
|
echo "Musl cross compiler for ${arch} not found. Please run install_build_prerequisites.sh first."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CMAKE_BUILD_TYPE=Release
|
||||||
|
CC="${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-gcc"
|
||||||
|
CXX="${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-g++"
|
||||||
|
|
||||||
|
BUILDDIR=build/${arch}
|
||||||
|
mkdir -p ${BUILDDIR}
|
||||||
|
|
||||||
|
cmake -B ${BUILDDIR} -G Ninja -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX}
|
||||||
|
cmake --build ${BUILDDIR}
|
||||||
|
|
||||||
|
upx ${BUILDDIR}/dropshell
|
||||||
|
cp ${BUILDDIR}/dropshell output/dropshell.${arch}
|
||||||
|
}
|
||||||
|
|
||||||
|
build_arch x86_64
|
||||||
|
build_arch aarch64
|
||||||
|
|
||||||
|
echo "Static binaries have been created:"
|
||||||
|
ls -la output
|
@ -8,10 +8,12 @@ echo "Script directory: $SCRIPT_DIR"
|
|||||||
# Check for GITEA_TOKEN_DEPLOY or GITEA_TOKEN
|
# Check for GITEA_TOKEN_DEPLOY or GITEA_TOKEN
|
||||||
if [ -n "$GITEA_TOKEN_DEPLOY" ]; then
|
if [ -n "$GITEA_TOKEN_DEPLOY" ]; then
|
||||||
TOKEN="$GITEA_TOKEN_DEPLOY"
|
TOKEN="$GITEA_TOKEN_DEPLOY"
|
||||||
|
echo "Using GITEA_TOKEN_DEPLOY"
|
||||||
elif [ -n "$GITEA_TOKEN" ]; then
|
elif [ -n "$GITEA_TOKEN" ]; then
|
||||||
TOKEN="$GITEA_TOKEN"
|
TOKEN="$GITEA_TOKEN"
|
||||||
|
echo "Using GITEA_TOKEN"
|
||||||
else
|
else
|
||||||
echo "GITEA_TOKEN_DEPLOY or GITEA_TOKEN environment variable not set!" >&2
|
echo "Neither GITEA_TOKEN_DEPLOY nor GITEA_TOKEN environment variable set!" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -22,20 +24,20 @@ OLD_PWD=$PWD
|
|||||||
cd $SCRIPT_DIR
|
cd $SCRIPT_DIR
|
||||||
|
|
||||||
|
|
||||||
if [ ! -f "output/dropshell.amd64" ]; then
|
if [ ! -f "output/dropshell.x86_64" ]; then
|
||||||
echo "output/dropshell.amd64 not found!" >&2
|
echo "output/dropshell.x86_64 not found!" >&2
|
||||||
echo "Please run multibuild.sh first." >&2
|
echo "Please run multibuild.sh first." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "output/dropshell.arm64" ]; then
|
if [ ! -f "output/dropshell.aarch64" ]; then
|
||||||
echo "output/dropshell.arm64 not found!" >&2
|
echo "output/dropshell.aarch64 not found!" >&2
|
||||||
echo "Please run multibuild.sh first." >&2
|
echo "Please run multibuild.sh first." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TAG=$("$SCRIPT_DIR/output/dropshell.amd64" --version)
|
TAG=$("$SCRIPT_DIR/output/dropshell.x86_64" --version)
|
||||||
[ -z "$TAG" ] && echo "Failed to get version from dropshell.amd64" >&2 && exit 1
|
[ -z "$TAG" ] && echo "Failed to get version from dropshell.x86_64" >&2 && exit 1
|
||||||
|
|
||||||
echo "Publishing dropshell version $TAG"
|
echo "Publishing dropshell version $TAG"
|
||||||
|
|
||||||
@ -81,7 +83,7 @@ if [ -z "$RELEASE_ID" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Upload binaries and install.sh
|
# Upload binaries and install.sh
|
||||||
for FILE in dropshell.amd64 dropshell.arm64 install.sh server_autosetup.sh; do
|
for FILE in dropshell.x86_64 dropshell.aarch64 install.sh server_autosetup.sh; do
|
||||||
if [ -f "output/$FILE" ]; then
|
if [ -f "output/$FILE" ]; then
|
||||||
filetoupload="output/$FILE"
|
filetoupload="output/$FILE"
|
||||||
elif [ -f "../$FILE" ]; then
|
elif [ -f "../$FILE" ]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user