TEST: Full Claude reword
This commit is contained in:
@@ -158,26 +158,56 @@ jobs:
|
|||||||
chmod +x build.sh
|
chmod +x build.sh
|
||||||
./build.sh
|
./build.sh
|
||||||
|
|
||||||
- name: List built packages
|
- name: Verify and list built packages
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
echo "=== Built packages ==="
|
echo "=== Verifying package build ==="
|
||||||
if [[ -d "zabbix-apk-builder/packages" ]]; then
|
cd zabbix-apk-builder
|
||||||
ls -la zabbix-apk-builder/packages/
|
|
||||||
echo "=== Package sizes ==="
|
if [[ ! -d "packages" ]]; then
|
||||||
find zabbix-apk-builder/packages/ -name "*.apk" -exec du -h {} \;
|
echo "❌ ERROR: packages directory does not exist"
|
||||||
else
|
echo "Current directory contents:"
|
||||||
echo "ERROR: No packages directory found"
|
ls -la .
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check for packages in the standard Alpine directory structure
|
||||||
|
PACKAGE_DIRS=(
|
||||||
|
"packages/*.apk"
|
||||||
|
"packages/builder/x86_64/*.apk"
|
||||||
|
"packages/x86_64/*.apk"
|
||||||
|
)
|
||||||
|
|
||||||
|
FOUND_PACKAGES=false
|
||||||
|
for pattern in "${PACKAGE_DIRS[@]}"; do
|
||||||
|
if ls $pattern >/dev/null 2>&1; then
|
||||||
|
FOUND_PACKAGES=true
|
||||||
|
echo "✅ Packages found in: $(dirname $pattern)"
|
||||||
|
ls -la $pattern
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$FOUND_PACKAGES" == "false" ]]; then
|
||||||
|
echo "❌ ERROR: No packages found in any expected location"
|
||||||
|
echo "Directory structure:"
|
||||||
|
find packages -type f -name "*.apk" 2>/dev/null || echo "No .apk files found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "=== Package details ==="
|
||||||
|
find packages -name "*.apk" -exec bash -c 'echo "Package: $(basename "$1")"; echo "Size: $(du -h "$1" | cut -f1)"; echo "---"' _ {} \;
|
||||||
|
|
||||||
- name: Upload packages as artifacts
|
- name: Upload packages as artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: zabbix-apk-packages
|
name: zabbix-apk-packages-${{ gitea.run_number }}
|
||||||
path: zabbix-apk-builder/packages/*.apk
|
path: |
|
||||||
|
zabbix-apk-builder/packages/**/*.apk
|
||||||
|
!zabbix-apk-builder/packages/**/APKINDEX.tar.gz
|
||||||
retention-days: 30
|
retention-days: 30
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
deploy-test:
|
deploy-test:
|
||||||
needs: [check-version, build-packages]
|
needs: [check-version, build-packages]
|
||||||
|
|||||||
@@ -36,34 +36,32 @@ COPY --chown=builder:builder . /home/builder/zabbix/
|
|||||||
|
|
||||||
WORKDIR /home/builder/zabbix
|
WORKDIR /home/builder/zabbix
|
||||||
|
|
||||||
# Create build script
|
# Create build script that just builds packages
|
||||||
USER root
|
USER root
|
||||||
RUN cat > /usr/local/bin/build-and-copy.sh << 'EOF'
|
RUN cat > /usr/local/bin/build-packages.sh << 'EOF'
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
echo "Building packages as builder user..."
|
echo "Building packages as builder user..."
|
||||||
sudo -u builder sh -c "
|
sudo -u builder sh -c "
|
||||||
cd /home/builder/zabbix
|
cd /home/builder/zabbix
|
||||||
|
echo 'Generating checksums...'
|
||||||
abuild checksum
|
abuild checksum
|
||||||
|
echo 'Building packages...'
|
||||||
abuild -r
|
abuild -r
|
||||||
"
|
"
|
||||||
|
|
||||||
echo "Copying packages to output..."
|
echo "Build complete! Packages built in /home/builder/packages:"
|
||||||
find /home/builder/packages -name '*.apk' -exec cp {} /output/ \;
|
find /home/builder/packages -name "*.apk" -exec ls -la {} \;
|
||||||
|
|
||||||
# Make files readable and writable by everyone (fixes permission issues)
|
echo "Setting proper permissions on packages..."
|
||||||
chmod 666 /output/*.apk 2>/dev/null || true
|
chmod 644 /home/builder/packages/*.apk 2>/dev/null || true
|
||||||
|
|
||||||
# Also try changing ownership to a generic user ID that should work
|
echo "Final package list (excluding APKINDEX):"
|
||||||
# Use UID 1000 which is common for CI runners
|
find /home/builder/packages -name "*.apk" -exec ls -la {} \;
|
||||||
chown 1000:1000 /output/*.apk 2>/dev/null || true
|
|
||||||
|
|
||||||
echo "Build complete! Packages:"
|
|
||||||
ls -la /output/
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN chmod +x /usr/local/bin/build-and-copy.sh
|
RUN chmod +x /usr/local/bin/build-packages.sh
|
||||||
|
|
||||||
# Set build command
|
# Set build command
|
||||||
CMD ["/usr/local/bin/build-and-copy.sh"]
|
CMD ["/usr/local/bin/build-packages.sh"]
|
||||||
@@ -12,29 +12,46 @@ echo "=== Zabbix APK Builder ==="
|
|||||||
echo "Project directory: $PROJECT_DIR"
|
echo "Project directory: $PROJECT_DIR"
|
||||||
echo "Output directory: $OUTPUT_DIR"
|
echo "Output directory: $OUTPUT_DIR"
|
||||||
|
|
||||||
# Clean up any existing containers
|
# Clean up function
|
||||||
cleanup() {
|
cleanup() {
|
||||||
echo "Cleaning up..."
|
echo "Cleaning up container..."
|
||||||
docker rm -f "$CONTAINER_NAME" 2>/dev/null || true
|
docker rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
|
||||||
}
|
}
|
||||||
|
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
# Create output directory
|
# Clean and create output directory
|
||||||
|
rm -rf "$OUTPUT_DIR"
|
||||||
mkdir -p "$OUTPUT_DIR"
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
# Build Docker image
|
# Build Docker image
|
||||||
echo "Building Docker image..."
|
echo "Building Docker image..."
|
||||||
docker build -t "$IMAGE_NAME" "$PROJECT_DIR"
|
docker build -t "$IMAGE_NAME" "$PROJECT_DIR"
|
||||||
|
|
||||||
# Run the build in container
|
# Run the build in the container
|
||||||
echo "Running package build..."
|
echo "Running package build in container..."
|
||||||
docker run --rm \
|
docker run --name "$CONTAINER_NAME" "$IMAGE_NAME"
|
||||||
--name "$CONTAINER_NAME" \
|
|
||||||
-v "$OUTPUT_DIR:/output" \
|
# Copy packages from container to host
|
||||||
"$IMAGE_NAME"
|
echo "Copying packages from container..."
|
||||||
|
if docker cp "$CONTAINER_NAME:/home/builder/packages/." "$OUTPUT_DIR/"; then
|
||||||
|
echo "✅ Packages copied successfully"
|
||||||
|
|
||||||
|
# Remove APKINDEX files (we only want the .apk packages)
|
||||||
|
echo "Removing repository index files..."
|
||||||
|
find "$OUTPUT_DIR" -name "APKINDEX.tar.gz" -delete 2>/dev/null || true
|
||||||
|
|
||||||
|
# Fix permissions on copied files
|
||||||
|
echo "Fixing file permissions..."
|
||||||
|
find "$OUTPUT_DIR" -name "*.apk" -exec chmod 644 {} \; 2>/dev/null || true
|
||||||
|
|
||||||
echo "Build completed successfully!"
|
echo "Build completed successfully!"
|
||||||
echo "To install packages:"
|
echo "Packages are in $OUTPUT_DIR:"
|
||||||
echo " apk add --allow-untrusted $OUTPUT_DIR/zabbix-agent-*.apk"
|
find "$OUTPUT_DIR" -name "*.apk" -exec ls -la {} \;
|
||||||
echo " apk add --allow-untrusted $OUTPUT_DIR/zabbix-proxy-*.apk"
|
else
|
||||||
|
echo "❌ Failed to copy packages"
|
||||||
|
echo "Checking what's in the container..."
|
||||||
|
docker exec "$CONTAINER_NAME" find /home/builder -name "*.apk" -exec ls -la {} \; 2>/dev/null || true
|
||||||
|
docker exec "$CONTAINER_NAME" ls -la /home/builder/packages/ 2>/dev/null || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user