f5devcentral / BigStats

Push BIG-IP stats to remote destinations: http(s), statsd, etc
MIT License
14 stars 9 forks source link

Create RPM SPEC file for local builds to accelerate testing #74

Open npearce opened 6 years ago

npearce commented 6 years ago

Accelerate testing through local rpmbuild and deploy execution.

Current process:

1) Upload code to BIG-IP: 2) execute: curl -u admin:default -X POST http://localhost:8100/mgmt/shared/iapp/build-package -d '{ "appName": "BigStats", "packageVersion":"0.4.0", "packageRelease":"0002" }' 3) Download RPM from BIG-IP 4) scp RPM to test BIG-IP versions... 5) execute install: curl -u admin:default -X POST http://localhost:8100/mgmt/shared/iapp/package-management-tasks -d '{ "operation":"INSTALL","packageFilePath": "/var/config/rest/downloads/n8-BigStats-0.4.0-0004.noarch.rpm"}'

Desired process:

1) Execute local script for: a) rpmbuild b) copy to test BIG-IPs c) install via shared/iapp/package-management-tasks

Requires RPM SPEC file.

aknot242 commented 6 years ago

Really good idea. So, the supplied way to build is using Perl, correct? https://devcentral.f5.com/wiki/iControlLX.HowToSamples_deploy_icontrol_extension.ashx

If we want to include it with our node-based test/build scripts, perhaps we could look at an NPM package to do it for us (note, most of these have executable dependencies on their own): https://www.npmjs.com/search?q=build%20rpm

Would be really cool to be able to call npm build to kick this off :)

aknot242 commented 5 years ago

Actually, this is probably a better method for RPM building (at least known good given we have the same target platform :) ) : https://github.com/F5Networks/f5-declarative-onboarding/blob/master/build/buildRpm.sh

It looks like they are using an Alpine container in their GItLab CI environment., I'm sure we can do something similar with Travis CI.