A bit of Git, a bit of Ruby and you will get your local tools.jboss.org served..
The simplest way to use this is to use our automatically built docker image. See https://hub.docker.com/r/jbosstools/jbosstools-website/.
$ docker pull jbosstools/jbosstools-website
$ git clone https://github.com/jbosstools/jbosstools-website
$ cd jbosstools-website
$ docker run -it --rm -p 4242:4242 -v `pwd`:/jbosstools-website jbosstools/jbosstools-website /bin/bash
Warning
|
On Linux (SELinux, Fedora), you may experience permission issues inside the container on the jbosstools-website folder. Add a trailing :Z to the volume. The command will now be: |
$ docker run -it --rm -p 4242:4242 -v `pwd`:/jbosstools-website:Z jbosstools/jbosstools-website /bin/bash
Then, in the Docker container, do:
# cd /jbosstools-website
# yum install ruby -y # ONLY if required!
# gem install bundler && bundle --version && bundle install # ONLY if required!
# rake clean preview
and you can browse the result at http://$DOCKER_HOST:4242.
Everything else below is if you want to run awestruct "natively".
-
Get Git
-
Get Ruby 2.4+ (part of the RVM install if you follow that path - see below)
-
Get RubyGems 1.3.6 or above
-
Get GNU Wget 1.14
-
If on Linux, you might need to install stuff for nokogiri (
sudo yum install libxml libxml-devel libxslt libxslt-devel
) -
If on Linux, you need to install node.js for execjs ('sudo yum install nodejs')
-
If on Mac OS, get XCode (needed for native gems)
Install Git to your system. GitHub’s help page is a good starting point. If you are looking for some tips and tricks, checkout Emmanuel’s blog.
Ruby like many other platforms has its dependency hell. We do recommend you use RVM to isolate your ruby runtimes as well as dependencies (gems). The RVM steps are optional though. If you are not going to use RVM have a look at the different installations options you have.
-
Install RVM
Note: This installation varies per OS, see details on rvm.io.
For Linux/Fedora: \curl -sSL https://get.rvm.io | bash
is the simplest and no root required).
Note that for 'rvm' to be activated you need to run as a login shell. When running rvm
it should tell you if
you are running in a proper terminal/login.
-
Set up the isolated environment for the site
# Do *not* run these as root.
# The purpose of using rvm is to have non-root, user isolated and reproducible gem/ruby environment
# During the rvm install it might ask to install system level packages, for these your user need to have sudo permissions
# or you have to run those installs as root seperately and then run rvm install again as a normal user
rvm install 2.4.1
rvm use 2.4.1
rvm gemset create jbosstools-website
Note: the project has a .ruby-gemset
file which will be used by rvm when you
enter the jbosstools-website
directory. This file will assume you have
the above installed.
Next, let’s retrieve the website.
git clone https://github.com/jbosstools/jbosstools-website
cd jbosstools-website
If you see a message like this:
Gemset 'jbosstools-website' does not exist, 'rvm gemset create jbosstools-website' first, or
append '--create'.
Then it is because you have rvm installed and forgot to run the rvm setup above.
This next step might take some time - it is installing all the required dependencies.
# do *not* run these as root
gem install bundler
bundle install
Note that if someone updates Awestruct or any dependent gem via the Gemfile
dependency
management, you need to rerun bundle install
.
-
Run
rake preview
-
If you see a message like
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes
this means nodejs is not installed. -
Wait for a message like
[2014-01-06 11:48:01] INFO WEBrick::HTTPServer#start: pid=24294 port=4242
to appear in the console (can take a few tens of seconds) -
Open your browser to http://localhost:4242
Any change will be automatically picked up except for changes to _partials
files and changes in front-matters.
Note
|
You might see warnings at startup as follows:
That’s ok, it’s not your fault ;) It’s related to some Awestruct limitations. |
Using you local site, you can have a look at our survival guide to editing this website to get you started.
If you are viewing this page while rendered locally this would be survivalguide.html instead.
To add a new and noteworthy add a dir+file to the whatsnew folder, using one of the existing entries as a template.
Take care to ensure you have listed all the proper component and project versions and the site generation will automatically aggregate the news for the full release.
Sometimes a N&N in earlier versions are not appropriate in the Final release.
To avoid having to manually create a full NN you can use a asciidoctor macro
to skip content based on the finalnn
property being defined.
Example:
ifndef::finalnn[]
== Really cool feature
This awesome feature is very dangerous and might be removed, but
for now it is in there.
endif::finalnn[]
If that is in version 1.0.0.Beta1 NN then it will still be listed in 1.0.0.Beta1 but for the 1.0.0.Final version it will not.
On Linux, serving the file may be atrociously slow (something to do with WEBRick).
Use the following alternative:
-
Go in your
~/jbosstools-website
directory. -
Run
awestruct --auto -P development
-
In parallel, go to the
~/jbosstools-website/_site
directory -
Run
python -m SimpleHTTPServer 4242
You should be back to millisecond serving :)
Publishing of the site is done automatically via this github action when you publish to the 'main' or 'production' branch.
If build successfully it will automatically publish the result to the proper site.
-
staging (using Surge Preview Action) uses 'main'
-
production (https://tools.jboss.org) uses 'production' branch.
Sample code available on this website is released under EPL.
By submitting a "pull request" or otherwise contributing to this repository, you agree to license your contribution under the respective licenses mentioned above.
This website uses JBoss Community Bootstrap. This README.adoc was based on hibernate.org README.adoc