:-'Generic Commit'
Some checks failed
dropshell-build / build (push) Failing after 4s

This commit is contained in:
Your Name 2025-05-31 10:20:39 +12:00
parent c33ca6f4b4
commit 1e09c5c995
10 changed files with 126 additions and 16 deletions

View File

@ -0,0 +1,26 @@
name: dropshell-build
run-name: Build test and publish dropshell-build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Gitea
uses: docker/login-action@v3
with:
registry: gitea.jde.nz
username: DoesntMatter
password: ${{ secrets.DOCKER_PUSH_TOKEN }}
- name: Build
run: |
./build.sh
- name: Test
run: |
./test.sh
- name: Publish
run: |
./publish.sh

View File

@ -0,0 +1,21 @@
FROM debian:latest
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
git \
nlohmann-json3-dev wget curl cmake ninja-build mold build-essential nodejs npm jq \
&& rm -rf /var/lib/apt/lists/*
#RUN curl -fsSL https://get.docker.com | sh
COPY --chmod=0755 ./src/install_dropshell_build_requirements.sh /usr/local/bin/
COPY --chmod=0755 ./src/dropshell-build.sh /usr/local/bin/
RUN install_dropshell_build_requirements.sh
WORKDIR /app
ENTRYPOINT ["dropshell-build.sh","/app"]

6
dropshell-build/build.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
set -euo pipefail
docker build -t gitea.jde.nz/public/dropshell-build:latest .

11
dropshell-build/publish.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
"${SCRIPT_DIR}/build.sh"
"${SCRIPT_DIR}/sos/sos" upload "getbin.xyz" "dropshell-tool-install.sh" "${SCRIPT_DIR}/dropshell-tool-install.sh"
docker push gitea.jde.nz/public/dropshell-build:latest

View File

@ -32,7 +32,7 @@ function help() {
} }
function version() { function version() {
echo "magicbuild 0.1" echo "2025.0531.0942"
} }
# ---------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------
@ -162,13 +162,6 @@ function build_arch() {
} }
function build() { function build() {
if [ -z "$1" ]; then
help
echo " "
echo "Error: DIR is required"
exit 1
fi
echo "Building project in directory $1" echo "Building project in directory $1"
if [ ! -d "$1" ]; then if [ ! -d "$1" ]; then
echo "Directory $1 does not exist" echo "Directory $1 does not exist"
@ -202,13 +195,39 @@ function build() {
fi fi
} }
function buildspawn() {
local BUILD_DIR="$1"
if [ -z "$BUILD_DIR" ] || [ ! -d "$BUILD_DIR" ]; then
echo "Error: builddir doesn't exist: $BUILD_DIR"
exit 1
fi
# make canonical
BUILD_DIR=$(realpath "$BUILD_DIR")
BUILD_VERSION_FILE="$HOME/.config/dropshell-build/version"
if [ ! -f "$BUILD_VERSION_FILE" ]; then
# check if docker is installed
if ! command -v docker &> /dev/null; then
echo "Neither dropshell-build nor docker appears to be available. Please install one of them."
exit 1
fi
echo "Using Docker Buildchain."
docker run --rm \
-u "$(id -u)":"$(id -g)" \
-v "$BUILD_DIR":/app \
gitea.jde.nz/public/dropshell-build:latest
else
echo "Using local native buildchain"
build "$BUILD_DIR"
fi
}
# ---------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------
# MAIN # MAIN
# ---------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------
function main() { function main() {
while getopts "rm" opt; do while getopts "rm" opt; do
case $opt in case $opt in
r) r)
@ -227,6 +246,13 @@ function main() {
# Shift the processed options out of the argument list # Shift the processed options out of the argument list
shift $((OPTIND-1)) shift $((OPTIND-1))
# check we have at least one argument
if [ $# -eq 0 ]; then
help
exit 1
fi
# get command argument, now that the flags are set # get command argument, now that the flags are set
CMD="$1" CMD="$1"
@ -241,7 +267,7 @@ function main() {
version version
;; ;;
*) *)
build "$1" buildspawn "$1"
;; ;;
esac esac
} }

View File

@ -1,10 +1,12 @@
#!/bin/bash #!/bin/bash
set -euo pipefail set -euo pipefail
set -x
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
VERSION=$(date +%Y.%m%d.%H%M)
VERSION_FILE="$HOME/.config/dropshell-build/version"
# If the user is not root, use sudo # If the user is not root, use sudo
SUDOCMD="" SUDOCMD=""
[ "$EUID" -eq 0 ] || SUDOCMD="sudo" [ "$EUID" -eq 0 ] || SUDOCMD="sudo"
@ -281,7 +283,7 @@ function install_musl_cross() {
fi fi
} }
function installmusl() { function install_musl() {
echo "Installing musl toolchain" echo "Installing musl toolchain"
# Set install directory # Set install directory
@ -316,10 +318,11 @@ function main() {
install_headers install_headers
installmusl install_musl
install_openssl_musl install_openssl_musl
echo "$VERSION" > "$VERSION_FILE"
} }
main main

17
dropshell-build/test.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
echo "Testing dropshell-build"
"${SCRIPT_DIR}/build.sh"
"${SCRIPT_DIR}/src/dropshell-build.sh" ./test
"${SCRIPT_DIR}/test/output/ipdemo.x86_64"

View File

@ -2,10 +2,10 @@
set -euo pipefail set -euo pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
echo "wheeeee!"

View File

@ -6,7 +6,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
# run sos to upload dropshell-tool-install.sh # run sos to upload dropshell-tool-install.sh
"${SCRIPT_DIR}/sos/sos" upload "${SCRIPT_DIR}/dropshell-tool-install.sh" "dropshell-tool-install.sh" "${SCRIPT_DIR}/sos/sos" upload "getbin.xyz" "dropshell-tool-install.sh" "${SCRIPT_DIR}/dropshell-tool-install.sh"
# build and publish all dropshell tools # build and publish all dropshell tools

View File

@ -72,7 +72,7 @@ function upload() {
METADATA_JSON=$(cat <<EOF METADATA_JSON=$(cat <<EOF
{ {
"labeltags": "$LABELTAGS_JSON", "labeltags": $LABELTAGS_JSON,
"description": "Uploaded by sos", "description": "Uploaded by sos",
"version": "$DATETIME" "version": "$DATETIME"
} }