122 lines
No EOL
3.3 KiB
Markdown
122 lines
No EOL
3.3 KiB
Markdown
# APT Cache Server Integration
|
|
|
|
This document describes the integration of your APT cache server (`http://192.168.1.79:3142`) with the Deb-Mock CI/CD workflows.
|
|
|
|
## Overview
|
|
|
|
The CI/CD workflows now use your APT cache server to speed up package installations and reduce bandwidth usage during builds.
|
|
|
|
## Configuration
|
|
|
|
### APT Cache Server Setup
|
|
|
|
Your APT cache server is configured at:
|
|
- **URL**: `http://192.168.1.79:3142`
|
|
- **Type**: apt-cacher-ng (based on the `/acng-report.html` endpoint)
|
|
- **Status**: Available and accessible
|
|
|
|
### CI/CD Integration
|
|
|
|
The APT cache is configured in all CI/CD workflows:
|
|
|
|
```yaml
|
|
- name: Install build dependencies
|
|
run: |
|
|
# Configure APT to use your cache server
|
|
echo 'Acquire::http::Proxy "http://192.168.1.79:3142";' | sudo tee /etc/apt/apt.conf.d/99proxy
|
|
echo 'Acquire::https::Proxy "http://192.168.1.79:3142";' | sudo tee -a /etc/apt/apt.conf.d/99proxy
|
|
|
|
sudo apt update
|
|
sudo apt install -y build-essential devscripts debhelper dh-python python3-all python3-setuptools
|
|
sudo apt install -y sbuild schroot debootstrap
|
|
```
|
|
|
|
### Workflows Using APT Cache
|
|
|
|
1. **build-deb.yml**: Package building workflow
|
|
2. **test.yml**: Testing workflow
|
|
3. **build.yml**: Basic build workflow
|
|
|
|
## Benefits
|
|
|
|
### 1. **Speed Improvements**
|
|
- Faster package downloads during CI/CD runs
|
|
- Reduced build times for subsequent runs
|
|
- Cached packages don't need to be downloaded again
|
|
|
|
### 2. **Bandwidth Savings**
|
|
- Reduces external bandwidth usage
|
|
- Local caching of frequently used packages
|
|
- Efficient for multiple builds
|
|
|
|
### 3. **Reliability**
|
|
- Reduces dependency on external package mirrors
|
|
- Faster recovery from network issues
|
|
- Consistent package availability
|
|
|
|
## Monitoring
|
|
|
|
### Cache Server Status
|
|
|
|
You can monitor your cache server at:
|
|
- **Status Page**: http://192.168.1.79:3142/acng-report.html
|
|
- **Statistics**: Cache hit rates and bandwidth usage
|
|
- **Configuration**: Server settings and policies
|
|
|
|
### CI/CD Logs
|
|
|
|
The CI/CD logs will show:
|
|
- APT cache configuration messages
|
|
- Package download speeds
|
|
- Cache hit/miss statistics (if available)
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **Cache Server Unavailable**
|
|
- CI/CD will fall back to direct downloads
|
|
- Builds will still succeed but may be slower
|
|
|
|
2. **Cache Misses**
|
|
- New packages will be downloaded and cached
|
|
- Subsequent builds will benefit from caching
|
|
|
|
3. **Configuration Errors**
|
|
- APT will ignore invalid proxy settings
|
|
- Builds will continue with direct downloads
|
|
|
|
### Debug Commands
|
|
|
|
```bash
|
|
# Test cache server connectivity
|
|
curl -I http://192.168.1.79:3142/acng-report.html
|
|
|
|
# Check APT proxy configuration
|
|
cat /etc/apt/apt.conf.d/99proxy
|
|
|
|
# Test package download through cache
|
|
sudo apt update
|
|
```
|
|
|
|
## Future Enhancements
|
|
|
|
### Potential Improvements
|
|
|
|
1. **Cache Statistics Integration**
|
|
- Display cache hit rates in CI/CD logs
|
|
- Monitor cache effectiveness
|
|
|
|
2. **Fallback Configuration**
|
|
- Automatic fallback to direct downloads
|
|
- Health checks for cache server
|
|
|
|
3. **Cache Warming**
|
|
- Pre-download common packages
|
|
- Optimize cache for Deb-Mock builds
|
|
|
|
## References
|
|
|
|
- [apt-cacher-ng Documentation](https://www.unix-ag.uni-kl.de/~bloch/acng/)
|
|
- [APT Proxy Configuration](https://wiki.debian.org/AptProxy)
|
|
- [Forgejo CI/CD Documentation](https://forgejo.org/docs/latest/user/actions/) |