All checks were successful
		
		
	
	Zabbix APK Builder / check-version (push) Successful in 11s
				
			Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s
				
			Zabbix APK Builder / update-version (push) Has been skipped
				
			Zabbix APK Builder / build-packages (push) Has been skipped
				
			Zabbix APK Builder / deploy-test (push) Has been skipped
				
			
		
			
				
	
	
		
			157 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Zabbix APK Builder
 | |
| run-name: ${{ gitea.actor }} is building Zabbix APK packages 🚀
 | |
| 
 | |
| on:
 | |
|   # Trigger on pushes to main/test branch
 | |
|   push:
 | |
|     branches: [ main, test ]
 | |
|     paths: [ 'zabbix-apk-builder/**' ]
 | |
| 
 | |
|   # Scheduled check for new versions (daily at 6 AM UTC)
 | |
|   schedule:
 | |
|     - cron: '0 6 * * *'
 | |
| 
 | |
| jobs:
 | |
|   check-version:
 | |
|     runs-on: ubuntu-latest
 | |
|     outputs:
 | |
|       should_build: ${{ steps.version-check.outputs.should_build }}
 | |
|       latest_version: ${{ steps.version-check.outputs.latest_version }}
 | |
|       current_version: ${{ steps.version-check.outputs.current_version }}
 | |
|     
 | |
|     steps:
 | |
|     - name: Checkout repository
 | |
|       uses: actions/checkout@v4
 | |
| 
 | |
|     - name: Check for new Zabbix version
 | |
|       id: version-check
 | |
|       run: |
 | |
|         # Install jq for JSON parsing
 | |
|         sudo apt-get update && sudo apt-get install -y jq
 | |
|         
 | |
|         # Get current version from APKBUILD
 | |
|         CURRENT_VERSION=$(grep '^pkgver=' zabbix-apk-builder/APKBUILD | cut -d'=' -f2)
 | |
|         echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
 | |
|         echo "Current version: $CURRENT_VERSION"
 | |
|         
 | |
|         # Get latest version from Zabbix API (stable releases only)
 | |
|         LATEST_VERSION=$(curl -s "https://git.zabbix.com/rest/api/1.0/projects/ZBX/repos/zabbix/tags?limit=100" | \
 | |
|           jq -r '.values[].displayId' | \
 | |
|           grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | \
 | |
|           grep -v 'rc\|beta\|alpha' | \
 | |
|           sort -V | \
 | |
|           tail -1)
 | |
|         
 | |
|         echo "latest_version=$LATEST_VERSION" >> $GITHUB_OUTPUT
 | |
|         echo "Latest version: $LATEST_VERSION"
 | |
|         
 | |
|         # Determine if we should build (remove workflow_dispatch reference)
 | |
|         if [ "$CURRENT_VERSION" != "$LATEST_VERSION" ]; then
 | |
|           echo "should_build=true" >> $GITHUB_OUTPUT
 | |
|           echo "Build required: Version changed"
 | |
|         else
 | |
|           echo "should_build=false" >> $GITHUB_OUTPUT
 | |
|           echo "No build required: Version unchanged"
 | |
|         fi
 | |
| 
 | |
|   update-version:
 | |
|     needs: check-version
 | |
|     if: needs.check-version.outputs.should_build == 'true' && needs.check-version.outputs.current_version != needs.check-version.outputs.latest_version
 | |
|     runs-on: ubuntu-latest
 | |
|     
 | |
|     steps:
 | |
|     - name: Checkout repository
 | |
|       uses: actions/checkout@v4
 | |
|       with:
 | |
|         token: ${{ secrets.GITEA_TOKEN }}
 | |
| 
 | |
|     - name: Update APKBUILD version
 | |
|       run: |
 | |
|         LATEST_VERSION="${{ needs.check-version.outputs.latest_version }}"
 | |
|         CURRENT_VERSION="${{ needs.check-version.outputs.current_version }}"
 | |
|         
 | |
|         echo "Updating APKBUILD from $CURRENT_VERSION to $LATEST_VERSION"
 | |
|         
 | |
|         # Update pkgver
 | |
|         sed -i "s/^pkgver=.*/pkgver=$LATEST_VERSION/" zabbix-apk-builder/APKBUILD
 | |
|         
 | |
|         # Reset pkgrel to 0 for new version
 | |
|         sed -i "s/^pkgrel=.*/pkgrel=0/" zabbix-apk-builder/APKBUILD
 | |
|         
 | |
|         # Clear checksums (will be regenerated during build)
 | |
|         sed -i 's/^sha512sums=.*/sha512sums="SKIP"/' zabbix-apk-builder/APKBUILD
 | |
|         
 | |
|         # Commit changes
 | |
|         git config --local user.email "action@gitea.com"
 | |
|         git config --local user.name "Gitea Action"
 | |
|         git add zabbix-apk-builder/APKBUILD
 | |
|         git commit -m "Update Zabbix to version $LATEST_VERSION" || exit 0
 | |
|         git push
 | |
| 
 | |
|   build-packages:
 | |
|     needs: [check-version]
 | |
|     if: needs.check-version.outputs.should_build == 'true'
 | |
|     runs-on: ubuntu-latest
 | |
|     
 | |
|     steps:
 | |
|     - name: Checkout repository
 | |
|       uses: actions/checkout@v4
 | |
|       with:
 | |
|         ref: ${{ gitea.ref }}
 | |
| 
 | |
|     - name: Set up Docker Buildx
 | |
|       uses: docker/setup-buildx-action@v3
 | |
| 
 | |
|     - name: Build Zabbix packages
 | |
|       run: |
 | |
|         cd zabbix-apk-builder
 | |
|         chmod +x build.sh
 | |
|         ./build.sh
 | |
| 
 | |
|     - name: List built packages
 | |
|       run: |
 | |
|         echo "Built packages:"
 | |
|         ls -la zabbix-apk-builder/packages/
 | |
|         
 | |
|         echo "Package sizes:"
 | |
|         du -h zabbix-apk-builder/packages/*.apk || echo "No packages found"
 | |
| 
 | |
|     - name: Upload packages as artifacts
 | |
|       uses: actions/upload-artifact@v4
 | |
|       with:
 | |
|         name: zabbix-apk-packages
 | |
|         path: zabbix-apk-builder/packages/*.apk
 | |
|         retention-days: 30
 | |
| 
 | |
|   deploy-test:
 | |
|     needs: [check-version, build-packages]
 | |
|     if: needs.check-version.outputs.should_build == 'true' && gitea.ref == 'refs/heads/test'
 | |
|     runs-on: ubuntu-latest
 | |
|     
 | |
|     steps:
 | |
|     - name: Download packages
 | |
|       uses: actions/download-artifact@v4
 | |
|       with:
 | |
|         name: zabbix-apk-packages
 | |
|         path: packages/
 | |
| 
 | |
|     - name: Test deployment in Alpine container
 | |
|       run: |
 | |
|         echo "Testing package installation..."
 | |
|         
 | |
|         # Test agent package
 | |
|         docker run --rm -v $PWD/packages:/packages alpine:latest sh -c "
 | |
|           apk add --allow-untrusted /packages/zabbix-agent-*.apk
 | |
|           which zabbix_agentd
 | |
|           zabbix_agentd --version
 | |
|         " || echo "Agent test failed"
 | |
|         
 | |
|         # Test proxy package  
 | |
|         docker run --rm -v $PWD/packages:/packages alpine:latest sh -c "
 | |
|           apk add --allow-untrusted /packages/zabbix-proxy-*.apk
 | |
|           which zabbix_proxy
 | |
|           zabbix_proxy --version
 | |
|         " || echo "Proxy test failed"
 | |
|         
 | |
|         echo "✅ Package deployment test completed"
 |