'Generic Commit'
This commit is contained in:
parent
5de0f19769
commit
a075d45ed3
@ -9,7 +9,12 @@ defaults:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
|
matrix:
|
||||||
|
platform:
|
||||||
|
- linux/amd64
|
||||||
|
- linux/arm64
|
||||||
|
runs-on: ${{ matrix.platform }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@ -19,7 +24,7 @@ jobs:
|
|||||||
registry: gitea.jde.nz
|
registry: gitea.jde.nz
|
||||||
username: DoesntMatter
|
username: DoesntMatter
|
||||||
password: ${{ secrets.DOCKER_PUSH_TOKEN }}
|
password: ${{ secrets.DOCKER_PUSH_TOKEN }}
|
||||||
- name: Build Base - Multiple Architectures
|
- name: Build Base
|
||||||
run: |
|
run: |
|
||||||
cd build-base && ./build.sh
|
cd build-base && ./build.sh
|
||||||
- name: Build Test Applications
|
- name: Build Test Applications
|
||||||
|
@ -6,18 +6,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|||||||
|
|
||||||
PROJECT="dropshell-build-base"
|
PROJECT="dropshell-build-base"
|
||||||
|
|
||||||
# Create buildx builder if it doesn't exist
|
ARCH=$(uname -m)
|
||||||
if ! docker buildx ls | grep -q "${PROJECT}-multiarch"; then
|
|
||||||
docker buildx create --name ${PROJECT}-multiarch --use \
|
|
||||||
--driver-opt env.BUILDKIT_MAX_PARALLELISM=4
|
|
||||||
else
|
|
||||||
docker buildx use ${PROJECT}-multiarch
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Build multi-platform image and push it
|
# Build multi-platform image and push it
|
||||||
docker buildx build \
|
docker build \
|
||||||
--platform linux/amd64,linux/arm64 \
|
|
||||||
--push \
|
|
||||||
-t "gitea.jde.nz/public/dropshell-build-base:test" \
|
-t "gitea.jde.nz/public/dropshell-build-base:test" \
|
||||||
-f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \
|
-f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \
|
||||||
${SCRIPT_DIR}
|
${SCRIPT_DIR}
|
||||||
|
@ -6,18 +6,15 @@ set -euo pipefail
|
|||||||
#[[ -n $SOS_WRITE_TOKEN ]] || die "SOS_WRITE_TOKEN not specified"
|
#[[ -n $SOS_WRITE_TOKEN ]] || die "SOS_WRITE_TOKEN not specified"
|
||||||
#[[ -n $DOCKER_PUSH_TOKEN ]] || die "DOCKER_PUSH_TOKEN not specified"
|
#[[ -n $DOCKER_PUSH_TOKEN ]] || die "DOCKER_PUSH_TOKEN not specified"
|
||||||
|
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
echo "Publishing dropshell-build-base:test as :latest..."
|
echo "Publishing dropshell-build-base:test as :latest-${ARCH}..."
|
||||||
|
|
||||||
# Pull the multiarch manifest from :test tag
|
# Pull the multiarch manifest from :test tag
|
||||||
docker buildx imagetools create \
|
docker buildx imagetools create \
|
||||||
--tag gitea.jde.nz/public/dropshell-build-base:latest \
|
--tag gitea.jde.nz/public/dropshell-build-base:latest-${ARCH} \
|
||||||
gitea.jde.nz/public/dropshell-build-base:test
|
gitea.jde.nz/public/dropshell-build-base:test
|
||||||
|
|
||||||
echo "Successfully tagged dropshell-build-base:test as :latest"
|
echo "Successfully tagged dropshell-build-base:test as :latest-${ARCH}"
|
||||||
|
|
||||||
# Show the manifest to confirm it's multiarch
|
|
||||||
echo ""
|
|
||||||
echo "Verifying multiarch manifest:"
|
|
||||||
docker buildx imagetools inspect gitea.jde.nz/public/dropshell-build-base:latest
|
|
||||||
|
|
||||||
|
0
changes.txt
Normal file
0
changes.txt
Normal file
@ -4,55 +4,35 @@ set -euo pipefail
|
|||||||
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
|
||||||
#make canonical
|
|
||||||
ROOT_DIR="$(cd "${SCRIPT_DIR}/../" &> /dev/null && pwd)"
|
|
||||||
|
|
||||||
|
|
||||||
export CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}"
|
export CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}"
|
||||||
|
|
||||||
|
output_dir="${SCRIPT_DIR}/output"
|
||||||
|
|
||||||
# Function to build a project
|
# Function to build a project
|
||||||
build_project() {
|
build_project() {
|
||||||
local project="$1"
|
local project="$1"
|
||||||
local platform="${2:-}"
|
local build_cmd=(docker build)
|
||||||
|
|
||||||
local build_cmd
|
|
||||||
local tag
|
|
||||||
local output_dir
|
|
||||||
|
|
||||||
|
|
||||||
if [ -n "${platform}" ]; then
|
local tag="${project}-build"
|
||||||
build_cmd=(docker buildx build "--platform" "${platform}")
|
|
||||||
local tag_suffix="${platform##*/}" # Extract arch from platform (e.g., linux/arm64 -> arm64)
|
|
||||||
tag="gitea.jde.nz/public/${project}-build-${tag_suffix}:test"
|
|
||||||
output_dir="${SCRIPT_DIR}/output/${tag_suffix}"
|
|
||||||
else
|
|
||||||
build_cmd=(docker build)
|
|
||||||
tag="gitea.jde.nz/public/${project}-build:test"
|
|
||||||
output_dir="${SCRIPT_DIR}/output/native"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "${output_dir}"
|
|
||||||
|
|
||||||
"${build_cmd[@]}" \
|
"${build_cmd[@]}" \
|
||||||
-t "${tag}" \
|
-t "${tag}" \
|
||||||
-f "${SCRIPT_DIR}/Dockerfile.test-build" \
|
-f "${SCRIPT_DIR}/Dockerfile.test-build" \
|
||||||
--build-arg PROJECT="${project}" \
|
--build-arg PROJECT="${project}" \
|
||||||
--build-arg CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
|
--build-arg CMAKE_BUILD_TYPE="${build_type}" \
|
||||||
--output "${output_dir}" \
|
--output "${output_dir}" \
|
||||||
"${SCRIPT_DIR}/${project}"
|
"${SCRIPT_DIR}/tests/${project}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Clean and prepare output directory
|
# Clean and prepare output directory
|
||||||
rm -rf "${SCRIPT_DIR}/output"
|
rm -rf "${output_dir}"
|
||||||
mkdir -p "${SCRIPT_DIR}/output"
|
mkdir -p "${output_dir}"
|
||||||
|
|
||||||
# Build all projects
|
# Build all projects
|
||||||
echo "Building ipdemo..."
|
echo "Building ipdemo..."
|
||||||
build_project "ipdemo"
|
build_project "ipdemo"
|
||||||
|
|
||||||
echo "Building ipdemo for aarch64..."
|
|
||||||
build_project "ipdemo" "linux/arm64"
|
|
||||||
|
|
||||||
echo "Building test_libs..."
|
echo "Building test_libs..."
|
||||||
build_project "test_libs"
|
build_project "test_libs"
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@ echo ""
|
|||||||
echo "testing test_libs..."
|
echo "testing test_libs..."
|
||||||
|
|
||||||
# Run test_libs
|
# Run test_libs
|
||||||
if [ -f "${SCRIPT_DIR}/output/native/test_libs" ]; then
|
if [ -f "${SCRIPT_DIR}/output/test_libs" ]; then
|
||||||
echo "Running test_libs..."
|
echo "Running test_libs..."
|
||||||
"${SCRIPT_DIR}/output/native/test_libs"
|
"${SCRIPT_DIR}/output/test_libs"
|
||||||
echo "test_libs completed successfully!"
|
echo "test_libs completed successfully!"
|
||||||
else
|
else
|
||||||
echo "test_libs binary not found"
|
echo "test_libs binary not found"
|
||||||
@ -21,21 +21,10 @@ echo ""
|
|||||||
echo "Testing ipdemo..."
|
echo "Testing ipdemo..."
|
||||||
|
|
||||||
# Check if ipdemo exists
|
# Check if ipdemo exists
|
||||||
if [ -f "${SCRIPT_DIR}/output/native/ipdemo" ]; then
|
if [ -f "${SCRIPT_DIR}/output/ipdemo" ]; then
|
||||||
echo "Running ipdemo..."
|
echo "Running ipdemo..."
|
||||||
"${SCRIPT_DIR}/output/native/ipdemo" || echo "ipdemo test completed!"
|
"${SCRIPT_DIR}/output/ipdemo" || echo "ipdemo test completed!"
|
||||||
else
|
else
|
||||||
echo "ipdemo binary not found - run ./build.sh first"
|
echo "ipdemo binary not found - run ./build.sh first"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Testing cross-architecture builds..."
|
|
||||||
|
|
||||||
# Verify the binary was built and check its architecture
|
|
||||||
if [ -f "${SCRIPT_DIR}/output/arm64/ipdemo" ]; then
|
|
||||||
echo "aarch64 ipdemo binary built successfully!"
|
|
||||||
echo "Architecture info:"
|
|
||||||
file "${SCRIPT_DIR}/output/arm64/ipdemo" || true
|
|
||||||
else
|
|
||||||
echo "aarch64 ipdemo binary not found"
|
|
||||||
fi
|
|
Loading…
x
Reference in New Issue
Block a user