Adds CI CD with deb for external deps
This commit is contained in:
82 files changed
+3547
-3
No files matched your search
@@ -80,6 +80,117 @@ This generates:
|
||||
- `<package>-provenance.json`: SLSA v1.0 provenance
|
||||
- `<package>-licenses.txt`: License compliance report
|
||||
|
||||
## External Dependencies (Proprietary/Custom)
|
||||
|
||||
The following 8 external dependencies use a **DEB package-based deployment model** from the internal SCM repository:
|
||||
|
||||
### Dependencies List
|
||||
|
||||
| Dependency | Version | DEB Package | License Type |
|
||||
|------------|---------|-------------|--------------|
|
||||
| AVS | Custom | `libavs-dev` | Contract-based (lifetime) |
|
||||
| ArcGIS Runtime SDK | 300.0.0 | `libarcgis-maps-sdk-qt-dev` | Embedded ini-file licenses |
|
||||
| BuildingModels | Custom | `libbuildingmodels-dev` | Internal |
|
||||
| GeographicLib | Custom | `libgeographiclib-dev` | MIT |
|
||||
| Schusstafel | Custom | `libschusstafel-dev` | Internal |
|
||||
| dtEntity | Custom | `libdtentity-dev` | Open Source |
|
||||
| RTI Connext DDS | 7.7.0 | `librti-connext-dds-7.7.0-dev` | Commercial (license file) |
|
||||
| tmsif | Custom | `libtmsif-dev` | Contract-based (lifetime) |
|
||||
|
||||
### DEB Package Repository
|
||||
|
||||
All DEB packages are stored in the internal SCM repository:
|
||||
- **URL:** `https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general`
|
||||
- **APT Repository:** `http://remote-repo.sl.defence-elec.de:8081/repository/ubuntu`
|
||||
- **Signing Key:** `http://10.198.80.75/rme/deb_and_rpm_signage_key.pub`
|
||||
|
||||
### Dockerfile Pattern
|
||||
|
||||
All 8 Dockerfiles follow this pattern:
|
||||
|
||||
```dockerfile
|
||||
# Install <dependency> from internal SCM repository
|
||||
# DEB package: <deb-package-name>
|
||||
# Repository: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
|
||||
# License handling: <license-type>
|
||||
# <license-details>
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
<deb-package-name> \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
```
|
||||
|
||||
### License Handling
|
||||
|
||||
**RTI Connext DDS (7.7.0):**
|
||||
- License file: `rti_license.dat` (provided at build time)
|
||||
- Environment variable: `RTI_LICENSE_FILE=/opt/rti_connext_dds-7.7.0/rti_license.dat`
|
||||
- Commercial license with FlexLM
|
||||
|
||||
**ArcGIS Runtime SDK (300.0.0):**
|
||||
- Licenses embedded in 19 .ini files
|
||||
- Location: `Lts/Viewer/SituationMap/Map/*.ini`
|
||||
- Map-specific one-line license strings
|
||||
|
||||
**AVS & tmsif:**
|
||||
- Contract-based licensing (lifetime licenses)
|
||||
- No license files required
|
||||
- Customer has physical license contracts
|
||||
|
||||
**BuildingModels, GeographicLib, Schusstafel, dtEntity:**
|
||||
- Internal or open source
|
||||
- No license files required
|
||||
|
||||
### Jenkinsfile Pattern
|
||||
|
||||
All 8 Jenkinsfiles include:
|
||||
|
||||
```groovy
|
||||
stage('Prepare License Files') {
|
||||
steps {
|
||||
// License handling: <license-type>
|
||||
// <license-details>
|
||||
|
||||
// DEB package installed from internal SCM repository
|
||||
// Repository: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
// Package: <deb-package-name>
|
||||
sh '''
|
||||
apt-get update
|
||||
apt-get install -y <deb-package-name>
|
||||
'''
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### DEB Package Build Pipelines
|
||||
|
||||
Each dependency has a DEB package build directory:
|
||||
|
||||
```
|
||||
external-dependencies/deb-packages/
|
||||
├── avs/ # AVS DEB package build
|
||||
├── arcgis/ # ArcGIS DEB package build
|
||||
├── buildingmodels/ # BuildingModels DEB package build
|
||||
├── geographiclib/ # GeographicLib DEB package build
|
||||
├── schusstafel/ # Schusstafel DEB package build
|
||||
├── dtentity/ # dtEntity DEB package build
|
||||
├── rti-connext-dds/ # RTI Connext DDS DEB package build
|
||||
└── tmsif/ # tmsif DEB package build
|
||||
```
|
||||
|
||||
Each directory contains:
|
||||
- `debian/` directory with control files
|
||||
- Build scripts for package creation
|
||||
- README with packaging instructions
|
||||
|
||||
### Installation in Air-Gapped Environment
|
||||
|
||||
1. DEB packages are built and uploaded to internal SCM repository
|
||||
2. CI/CD pipelines configure APT to use internal repository
|
||||
3. Dockerfiles install packages via `apt-get install`
|
||||
4. SBOM generation tracks all installed packages
|
||||
|
||||
## Air-Gapped Environment Support
|
||||
|
||||
For air-gapped deployment, offline dependency packages are prepared and transferred via secure media:
|
||||
|
||||
Reference in new issue
Block a user