修改6
Some checks failed
Build and Release / build-and-test (amd64, alpine) (push) Failing after 1m52s
Build and Release / build-and-test (amd64, ubuntu) (push) Failing after 2m16s
Build and Release / build-and-test (arm64, alpine) (push) Failing after 8m9s
Build and Release / build-and-test (arm64, ubuntu) (push) Failing after 8m18s
Build and Release / docker-images (push) Has been cancelled
Build and Release / release (push) Has been cancelled

This commit is contained in:
2025-12-02 13:48:06 +08:00
parent 680ce4268a
commit 2363b9b0d9

View File

@@ -14,65 +14,65 @@ env:
jobs:
build-and-test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.arch == 'amd64' && 'ubuntu-latest-amd64' || 'ubuntu-latest-arm64' }}
strategy:
matrix:
arch: [amd64, arm64]
distro: [ubuntu, alpine]
steps:
- uses: actions/checkout@v4
- name: Setup Docker Buildx
run: |
# 尝试设置 QEMU但忽略错误宿主机可能已配置
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 2>/dev/null || true
# 验证 binfmt 是否可用
if [ -d /proc/sys/fs/binfmt_misc ]; then
echo "✅ binfmt_misc 可用"
ls /proc/sys/fs/binfmt_misc/ | grep -E "qemu-(aarch64|arm)" || echo "⚠️ 部分架构可能未注册"
fi
# 创建 buildx builder增加资源限制和优化参数
docker buildx create --use --name multiarch-builder \
# 创建 buildx builder原生构建不需要 QEMU
docker buildx create --use --name native-builder \
--driver docker-container \
--driver-opt network=host \
--driver-opt env.BUILDKIT_STEP_LOG_MAX_SIZE=50000000 \
--driver-opt env.BUILDKIT_STEP_LOG_MAX_SPEED=10000000 \
--buildkitd-flags '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host' \
|| true
docker buildx inspect --bootstrap
- name: Build binaries
run: |
XMRIGCC_VERSION=${PACKAGE_VERSION%-*}
PLATFORM="linux/${{ matrix.arch }}"
echo "🏗️ Building ${PLATFORM} on native ${{ matrix.arch }} runner"
echo "📦 Distribution: ${{ matrix.distro }}"
# 设置 BuildKit 优化参数
export BUILDKIT_PROGRESS=plain
docker buildx build --pull \
--platform linux/amd64,linux/arm64 \
--platform ${PLATFORM} \
--build-arg XMRIGCC_VERSION=${XMRIGCC_VERSION} \
--output type=local,dest=./output \
-f docker/Dockerfile.${{ matrix.distro }} .
- name: Package and test
run: |
for arch in amd64 arm64; do
DIR="./output/linux_${arch}"
[ ! -d "$DIR" ] && continue
TARGZ="${PRODUCT_NAME}-${arch}-${{ matrix.distro }}-${PACKAGE_VERSION}.tar.gz"
tar -czf "${TARGZ}" -C "$DIR" .
# 快速验证
mkdir -p test && tar -xzf "${TARGZ}" -C test
test/xxxigDaemon --version 2>/dev/null || echo "⚠️ 跳过版本检查"
rm -rf test
done
DIR="./output/linux_${{ matrix.arch }}"
if [ ! -d "$DIR" ]; then
echo "❌ 构建输出目录不存在: $DIR"
exit 1
fi
TARGZ="${PRODUCT_NAME}-${{ matrix.arch }}-${{ matrix.distro }}-${PACKAGE_VERSION}.tar.gz"
tar -czf "${TARGZ}" -C "$DIR" .
echo "📦 Created package: ${TARGZ}"
ls -lh "${TARGZ}"
# 快速验证
mkdir -p test && tar -xzf "${TARGZ}" -C test
test/xxxigDaemon --version 2>/dev/null || echo "⚠️ 跳过版本检查"
rm -rf test
- uses: actions/upload-artifact@v4
with:
name: binaries-${{ matrix.distro }}
name: binaries-${{ matrix.arch }}-${{ matrix.distro }}
path: "*.tar.gz"
retention-days: 1