This repository provides the source for the main website of The Apache Software Foundation.
-
- md pages in GitHub Flavored Markdown (GFM), which can include HTML.
- ezmd pages in a combination of ezt and GFM.
- html files are treated as static files.
- Static assets of all types.
- .htaccess files for redirection and rewrite rules.
-
Branches. The
stagingbranch is served on https://buildstream.staged.apache.org/. Note that .asf.yaml is set up for autopreview. A branch namedpreview/mytestfor example is automatically staged at https://buildstream-mytest.staged.apache.org/.
Read the ASF-Pelican Getting started guide and the pages it links to.
The website is built with Pelican.
Continuous Integration / Continuous Deployment (CI/CD) is via the .asf.yaml file mechanism, which runs Buildbot.
- Pelican Configuration -- Pelican configuration.
- ASF Data Load -- ASF metadata to be used by ezt and Pelican. See asfdata.py.
- ASF YAML Pelican Build -- ASF infrastructure instructions.
If you wish to update and test the site locally, there is a Docker build script you can use. You will also need Git, and familiarity with working in a command-line shell.
The following instructions should work for Unix, Linux, and macOS, but will need adjustment for Windows.
- Install Docker.
- Change to a suitable directory.
- Get the Infra Pelican setup:
git clone https://github.com/apache/infrastructure-pelican. - Change to the checkout:
cd infrastructure-pelican. - Build the container:
docker build -t pelican-asf .. This will take a while the first time. - Change to a suitable directory.
- Get the ASF website source:
git clone https://github.com/apache/buildstream-site. - Change to the website checkout:
cd buildstream-site. - Start the continuous builder:
docker run -it -p8000:8000 -v $PWD:/site pelican-asf. This will generate a lot of output, but will eventually stop. [N.B. Pelican calls the data generation plugins 3 times before generating the pages.] - If you want to add some additional debug output, add the following line to
pelicanconf.yaml:debug: true - Browse to http://localhost:8000/ .
If you make changes to the local copy of buildstream-site, these will be automatically built, and should appear in the browser when you refresh the page.
Any branch in the buildstream-site repository that is named preview/* will auto-build and stage to buildstream-*.staged.apache.org.
If you need to test your changes, create a branch such as preview/your-asf-id
Commits to it will be staged at buildstream-your-asf-id.staged.apache.org
Note: the branch name must not include any "." characters, or browsers will refuse to display the site due to an invalid SSL certificate. The underscore character should not be used either, as it is disallowed in host names.