Apache OpenWhisk is a cloud-first distributed event-based programming service. It provides a programming model to upload event handlers to a cloud service, and register the handlers to respond to various events.
- Download and install Node.js (recommend v12 LTS): see https://nodejs.org/
- Download and install NPM (recommend v6.14 latest): see https://www.npmjs.com/package/npm
- Download and install Ruby (recommend v2.7.2 stable): see https://www.ruby-lang.org/en/documentation/installation/
Note Currently, the website's Jekyll version will not compile with Ruby version 3 or higher.
- If you need to manage multiple Ruby versions, you may use https://github.com/rbenv/rbenv. See Using rbenv below.
# Verify Node and Node Package Manager are installed
node -v
npm -v
# Verify Ruby is installed
ruby -v
# Install Jekyll, which is used to build the site
gem install jekyll bundler
# Clone the repository (and correct branch).
git clone https://github.com/apache/openwhisk-website.git
# Move into the cloned repo.
cd openwhisk-website
# Install gem dependencies
bundle install
# Start the development server default location http://127.0.0.1:4000
bin/develop
To make sure nothing is broken on the website we use html-proofer, it checks to see if any of the links 404s, if the HTML is valid, images have alt tags and more.
Run the following command to run html-proofer:
bin/test
If you need to generate static files, run the following:
# NOTE: Make sure you have already cloned the repository and moved into the directory.
# Build the site.
bundle exec jekyll build
This will build static files to a directory called _site/
in the project root. This can be used for manual deployment to a static server or with build tools like Jenkins.
Some browsers will continue to use cached copies of ".css" files even though the styles/content in the files has changed significantly. If you make any changes that affect layout, you SHOULD increment the (artificial) version number on the query parameter on the <link>
within default.html which will cause (force) some clients to pull down a new main.css
file (and all the cascading CSS imports as well):
<link rel="stylesheet" href="{{ site.github.url }}/css/main-v1.css?v=1.12">
for example, update "?v1.12" to "?v1.13".
<link rel="stylesheet" href="{{ site.github.url }}/css/main-v1.css?v=1.13">
If you need to maintain your existing system Ruby version, you can use the https://github.com/rbenv/rbenv utility to dynamically switch to the version this project requires.
The project already has a .ruby_version
file which indicates it requires Ruby 2.7.2. All you need do is assure once rbenv
is installed that you issue the following commands (one time) from the bash shell you wish to compile the project:
$ rbenv init
$ rbenv install 2.7.2
$ rbenv global 2.7.2
$ eval "$(rbenv init -)"
When opening subsequent bash terminals, you need only issue the following command (as rbenv init
has updated your system .bash_profile
):
eval "$(rbenv init -)"
You can verify the version changed by using:
$ rbenv global
$ ruby -v
If you get an error 'bundle: command not found' attempting to build the site, you may need to manually install the 'bundler' package:
gem install bundler
The OpenWhisk.org website is automatically built and published to Apache at: https://openwhisk.apache.org/
Current Jenkins build status can be checked here: https://builds.apache.org/job/OpenWhisk-website/
Report website bugs, ask questions and request features here on GitHub.
You can also join our slack domain and chat with developers. Please visit here to sign up: https://openwhisk.apache.org/slack.html
Licensed under the Apache License, Version 2.0 (the "License").
Unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "as is" basis, without warranties or conditions of any kind, either express or implied. See the license for the specific language governing permissions and limitations under the license.