blob: abff7d9f4b472a29ee16bada1b106887b4130b66 [file] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
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.
-->
# Apache Jena website
This is the source code for the website of [Apache Jena](https://jena.apache.org/), hosted at:
https://jena.apache.org/
## Repository structure
This repository uses 3 branches for building the published website.
- The `main` branch, which contains all the sources for the website.
- The `asf-site` branch, which contains the generated website being used for the actual website.
- The `javadoc` branch, which has the javadoc to be published as part of the main website under `documentation/javadoc/`
When contributing patches, please create pull requests for the `main` branch.
Additionally the repository also has a `asf-staging` branch that can be used to preview website changes
prior to publishing them to the main website. Any branch other than `main` that has a `Jenkinsfile`
present in it will automatically be staged at https://jena.staged.apache.org, the Javadoc from the
`javadoc` branch is also automatically staged into this staging site.
## Content Management System
The website uses Hugo as static website generator.
See [Hugo](https://gohugo.io/) for more info and for details how to install Hugo.
## Generate the website
To generate the static website, execute `hugo` to generate and serve the website on `localhost:1313`.
During development, it may be useful to run an incremental build. For this to
work, execute `hugo server -D` to continuously generate and serve the website on
`localhost:1313`.
## Building and publishing the website
The ASF Jenkins [Jena_Site job](https://ci-builds.apache.org/job/Jena_Site/) is
used for generating the website and committing the generated site to the
`asf-site` branch.
Separately, javadoc for a release is committed into the `javadoc` branch during
the release process.
[gitpubsub](https://www.apache.org/dev/gitpubsub.html) is used to publish the
site, using the content from the `asf-site` and `javadoc` branches.
## ASF Jenkins job
The `Jenkinsfile` was contributed in https://github.com/apache/jena-site/pull/17
(July 2020).
Steps to set up the Jenkins job:
* Create a new multibranch pipeline (e.g. 'Jena_Site').
* Branch source -> git
* Set the gitbox url -> `https://gitbox.apache.org/repos/asf/jena-site.git` and use
the jenkins (pub key) credentials.
* In the 'Scan Multibranch Pipeline Triggers' check the 'Periodically if not
otherwise run' checkbox and enter a sane value (e.g. 15 minutes). This is needed
because webhooks are not delivered to ci-builds (yet - 2020-07-28).
* Save the job and click the 'Scan Multibranch Pipeline Now' button to trigger an
initial scan. A first run may also happen as the SCM polls.
It is at this point that it gets the label `git-websites` so the first job may
have run on the wrong node.