This is built using middleman
$ gem install middleman $ bundle install
All sources are in the
Build the site with:
$ middleman build
To serve it locally:
$ middleman server
To build the HTML files, you just need to execute the
build.sh. The script will automatically generate the HTML files and then copy them to the
content folder in preparation for being published via the
asf-site branch. Keep reading for detailed instructions.
Use Github PRs to make changes to the live site. No one should commit directly to the repositories without opening a PR and waiting for the proper review.
Once the review process has been completed and the appropriate changes have been made to the PR, it is time to commit the changes. Merging the PR into
master will not publish the changes to the live website, the following steps are required to make the live site reflect the status of the
IMPORTANT: In order to publish changes to the live site, you must commit into the
asf-site branch. It is very important that the
master branch stays synchronized with the the
The ASF maintains an integration which automatically publishes the content of the
asf-site branch to a web server that serves the Apache CloudStack web pages. It is important that both the
asf-site branches track both the source and the resulting compiled content in order to simplify the management process.
NOTE: The content of the
build directory needs to be copied to the
content in the
asf-site branch for the site to be served properly; If you use the
build.sh script, this step is already taken care of.
<your_github_user>. To do that, navigate to
forkin the top right corner of the page.
git clone email@example.com:<your_github_user>/cloudstack-www.git
git remote add upstream firstname.lastname@example.org:apache/cloudstack-www.git
Sync Local with Upstream
git checkout master git fetch upstream git pull upstream master
# make source changes, then ./build.sh middleman server [-p <portnumber>] # view at: http://localhost:[portnumber] # rinse and repeat
git add . git commit -am "your commit message" git push origin master
Create a PR
COMMITTER: Validate a PR Locally
Note: The following instructions assume the
<contributor> made their changes on their
# validate contributor changes cd /tmp git clone https://github.com/<contributor>/cloudstack-www.git cd cloudstack-www git checkout master ./build.sh middleman server [-p <portnumber>] # visually validate changes at: http://localhost:[portnumber]
COMMITTER: Merge & Deploy
Merge the PR into
master using the Github UI.
Once the PR has been merged into
master, do the following to publish the content.
git fetch upstream git checkout master git pull upstream master ./build.sh # updates the content directory middleman server [-p <portnumber>] # visually validate changes at: http://localhost:[portnumber] git status # check if `./build.sh` added files # if there are untracked changes git add . git commit -am "updated PR#### to include compiled content" git push upstream master # if no untracked files or if you merged them into master git checkout asf-site git merge master git push upstream asf-site # validate the site updated at: https://cloudstack.apache.org