This repository contains the build infrastructure used to create lab content for F5 Networks Agility Labs hosted at http://clouddocs.f5.com
It is recommended that you use the Sphinx lab template here:
https://github.com/f5devcentral/f5-agility-labs-template
This repository leverages a CI/CD toolchain with full build, test and publish to production environment.
git clone https://github.com/f5devcentral/f5-agility-labs.git
cd f5-agility-labs
git submodule update --init --recursive
script/build
At this time only F5 Networks employees can request addition of a lab
To add your lab to this repository please email:
- *AgilityLabsRTD
Be sure to include your lab repository URL.
All labs are included as git submodules in the labs
directory. The submodule
tracks the master
branch on the remote repository. It should be assumed that
all commits to master
will be published to a production environment.
The scripts in the script
directory automatically build HTML and PDF content
and output to the _build/<lab_name>/[html|pdf]/
directory.
During build an index page is generated using the Sphinx project in docs
. The
generated index is then copied to the _build
directory.
master
: Protected branch; HEAD publishes to production; No push accessdevelop
: Protected branch; Pull Requests are tested through Github Actions
All modifications to this repo should be via a Pull Request to the develop
branch. PR's will be tested before merge. Repo admins will then merge
develop
to master
as required to publish to production.
First be sure to do a git pull
To pull
the latest commits for ALL submodules:
git submodule update --recursive --remote
To pull
the latest commits for a specific submodule:
git submodule update --remote labs/<name>
Push new commit hashes for submodules:
git commit -a -m "commit msg"
git push
git submodule add <repo_url> labs/<name>
git commit -a -m "commit msg"
git push
git submodule deinit -f labs/<name>
rm -rf .git/modules/labs/<name>
git rm -f labs/<name>
The following environment variables can be used to modify what is built:
-
SKIP_BUILDLABS
: Presence of the variable will cause lab content build to be skipped. Landing page will still be built- Example:
export SKIP_BUILDLABS=1
- Example:
-
BUILD_LIST
: A space delimted list of lab submodules to build. By default the contents of the labs/ submodule directory are populated in this variable. Setting allows you to build only specific labs- Example:
export BUILD_LIST="adc ddos programmability"
- Example:
-
BUILD_ALL
: Force a build of all submodules inBUILD_LIST
- Example:
export BUILD_ALL=1
- Example: