This is built using middleman.
$ gem install middleman $ bundle install
All sources are located in the /source
directory. The build process requires JavaScript engine to be installed. For Ubuntu Linux use:
sudo apt-get update sudo apt install nodejs
For more details look at: https://github.com/sstephenson/execjs/issues/71
Build the site with:
$ middleman build
To serve it locally:
$ middleman server
A few sections have been updated to be (more) dynamic. The ‘events’ listed on the website are pulled from the CSV file in ./data/acs-events.csv . The CSV that the website uses is the current raw file which is held in the Github main branch. Updates to this file are immediately ‘visible’ on the website. There is no need to ‘build’ the website for the changes to become live. The format of the CSV is self explanatory, there is a heading row, please do not delete it, the processing on the web page assumes that it is there. The ‘latest announcements’ section is pulled from the last 3 CloudStack blogs from the Apache Web site.
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 main
will not publish the changes to the live website, the following steps are required to make the live site reflect the status of the main
branch.
IMPORTANT: In order to publish changes to the live site, you must commit into the asf-site
branch. It is very important that the main
branch stays synchronized with the the asf-site
branch.
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 main
and 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 https://github.com/apache/cloudstack-www
and click fork
in the top right corner of the page.git clone git@github.com:<your_github_user>/cloudstack-www.git
origin
remote.cd cloudstack-www
upstream
remote: git remote add upstream git@github.com:apache/cloudstack-www.git
Sync Local with Upstream
git checkout main
git fetch upstream
git pull upstream main
Make Changes
# make source changes, then ./build.sh middleman server [-p <portnumber>] # view at: http://localhost:[portnumber] # rinse and repeat
Commit Locally
git add . git commit -am "your commit message" git push origin main
Create a PR
main
on the https://github.com/apache/cloudstack-www
repository.COMMITTER: Validate a PR Locally
Note: The following instructions assume the <contributor>
made their changes on their main
branch.
# validate contributor changes cd /tmp git clone https://github.com/<contributor>/cloudstack-www.git cd cloudstack-www git checkout main ./build.sh middleman server [-p <portnumber>] # visually validate changes at: http://localhost:[portnumber]
COMMITTER: Merge & Deploy
Merge the PR into main
using the Github UI.
Once the PR has been merged into main
, do the following to publish the content.
git fetch upstream git checkout main git pull upstream main ./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 main # if no untracked files or if you merged them into main git checkout asf-site git merge main # run `middleman server [-p <portnumber>]` again and # validate the site updated at your `http://localhost:<portnumber>` git push upstream asf-site # validate the site updated at: https://cloudstack.apache.org