Moving our website generating system to docker from Vagrant. (#1) asf-staging
authorRenan I. Del Valle <renan@apache.org>
Thu, 2 Jan 2020 20:40:02 +0000 (12:40 -0800)
committerGitHub <noreply@github.com>
Thu, 2 Jan 2020 20:40:02 +0000 (12:40 -0800)
* Moving our tooling from using Vagrant to generate site using Middleman to using Docker.
* Using new dockerhub repo to store image which can be used to generate site. Image currently exists at apache/aurora-website with the tag dev

Dockerfile [new file with mode: 0644]
README.md
Vagrantfile [deleted file]
provision.sh [deleted file]

diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..2e4f4dd
--- /dev/null
@@ -0,0 +1,21 @@
+FROM ubuntu:bionic
+
+# Port on which Middleman shows live preview
+EXPOSE 4567
+
+# Add RVM ppa
+RUN apt-get update && apt-get -y install software-properties-common && apt-add-repository -y ppa:rael-gc/rvm
+RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install curl git rvm unzip tzdata
+
+# Change shell to be able to use RVM
+SHELL ["/bin/bash", "--login", "-c"]
+
+# Install Ruby 2.0.0 as this version is compatible with the middelman version we use
+RUN rvm install 2.0.0 && rvm use 2.0.0 --default
+
+# Install Middleman through bundle
+COPY Gemfile Gemfile.lock /middleman/
+RUN pushd /middleman && gem install bundler -v 1.7.3 && bundle install && popd
+
+WORKDIR /website
+ENTRYPOINT /bin/bash --login
\ No newline at end of file
index 88faa97e4cb56196859e1d5aee4343f93fb47d5a..ea2b4b75ee7c051b8558e4ad26dc3c2796ff5680 100644 (file)
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ on the Aurora IRC channel, #aurora on Freenode.net.
 The Aurora website is powered by [Middleman](http://middlemanapp.com/), a static website generator
 written in ruby. If you'd like to learn more about Middleman and how it works, their official
 websites have helpful documentation.
 The Aurora website is powered by [Middleman](http://middlemanapp.com/), a static website generator
 written in ruby. If you'd like to learn more about Middleman and how it works, their official
 websites have helpful documentation.
+
 ## Setup
 For most website-related changes, knowledge of Middleman or Ruby are unnecessary; Middleman is
 used to convert markdown files to HTML and handle dynamic templates.
 ## Setup
 For most website-related changes, knowledge of Middleman or Ruby are unnecessary; Middleman is
 used to convert markdown files to HTML and handle dynamic templates.
@@ -21,7 +21,7 @@ The website has three sub-directories:
 
  * `source/`, which includes site templates and markdown files. This is the directory you will
    revise documents in 99% of the time.
 
  * `source/`, which includes site templates and markdown files. This is the directory you will
    revise documents in 99% of the time.
- * `publish/`, where static-generated HTML files app live. Files in this directory are generated
+ * `content/`, where static-generated HTML files app live. Files in this directory are generated
    when the `rake2.0 build` command is run, and these files are served via HTTP on the Aurora
    website.
  * `tmp/`, a directory used when cloning the remote project repository before processing
    when the `rake2.0 build` command is run, and these files are served via HTTP on the Aurora
    website.
  * `tmp/`, a directory used when cloning the remote project repository before processing
@@ -31,16 +31,13 @@ The main directory includes a Rakefile, which will be used to run commands relat
 testing the website during development. More info below.
 
 ## Running and Developing the Website
 testing the website during development. More info below.
 
 ## Running and Developing the Website
-### Setting up Local Dev Environment
-The build environment for the website is managed by Vagrant.  To initialize the environment run:
 
 
-    vagrant up
+### Setting up Local Dev Environment using Docker
+From the root of the repository run the following:
 
 
-This will prepare the environment and generate the site.  Your local repository
-(the directory containing this README) will be mounted at `/vagrant` in the
-virtual machine.
+$ docker run -it -v $(pwd):/website -p 4567:4567 apache/aurora-website:dev
 
 
-**Note:** all rake commands must be run from `/vagrant`.
+Execute the remainder of the commands inside of this docker container.
 
 ### Generating the site
 To generate the site one only needs to run `rake2.0` after performing the setup
 
 ### Generating the site
 To generate the site one only needs to run `rake2.0` after performing the setup
@@ -63,12 +60,6 @@ The majority of our documentation currently lives in git as markdown.  The `gene
 task automates the process of fetching the markdown, performing some translations, and
 storing it in a version-specific directory under `source/documentation`.
 
 task automates the process of fetching the markdown, performing some translations, and
 storing it in a version-specific directory under `source/documentation`.
 
-First, prepare the vagrant environment and move into the `/vagrant` directory:
-
-    $ vagrant up
-    $ vagrant ssh
-    vagrant@vagrant-ubuntu-trusty-64:~$ cd /vagrant
-
 You will use the `generate_docs` rake task to fetch the docs you wish to place on the website.
 This task takes two arguments - `title` and `git_tag`.  The title is the name to give this branch
 of documentation.
 You will use the `generate_docs` rake task to fetch the docs you wish to place on the website.
 This task takes two arguments - `title` and `git_tag`.  The title is the name to give this branch
 of documentation.
@@ -89,8 +80,10 @@ misleading documentation for unreleased featuresl
 After completing an official Aurora release, you should add the new version of documentation and
 advertise the release on the website.
 
 After completing an official Aurora release, you should add the new version of documentation and
 advertise the release on the website.
 
+$RELEASE in this case is the number version of the release (i.e. 0.22.0).
+
 First, add the new release to the top of `data/downloads.yml`.
 First, add the new release to the top of `data/downloads.yml`.
+
     # Add documentation for the new release
     rake2.0 generate_docs[$RELEASE,$RELEASE]
 
     # Add documentation for the new release
     rake2.0 generate_docs[$RELEASE,$RELEASE]
 
@@ -100,30 +93,42 @@ First, add the new release to the top of `data/downloads.yml`.
     # Render the docs.
     rake2.0
 
     # Render the docs.
     rake2.0
 
-### Development 
-To live edit the site run `rake2.0 dev` and then open a browser window to 
-`http://192.168.33.10:4567`. Any change you make to the sources dir will 
-be shown on the local dev site immediately. Errors will be shown in the 
+### Development
+To live edit the site run `rake2.0 dev` and then open a browser window to
+`http://localhost:4567`. Any change you make to the sources dir will
+be shown on the local dev site immediately. Errors will be shown in the
 console you launched `rake2.0 dev` within.
 
 ## Contributing Website Changes
 Have you made local changes that you would like to contribute to the website?
 console you launched `rake2.0 dev` within.
 
 ## Contributing Website Changes
 Have you made local changes that you would like to contribute to the website?
-While we use Apache [ReviewBoard](http://reviews.apache.org) for changes to the primary Aurora
-codebase, website changes are currently reviewed by attaching diffs to Apache JIRA tickets.
+Make a PR to our website repository through Github.
 
 ## Publishing Changes to the Website
 All project committers have access to commit to the Aurora website; we encourage those without
 commit access to contribute changes by following the steps above.
 
 
 ## Publishing Changes to the Website
 All project committers have access to commit to the Aurora website; we encourage those without
 commit access to contribute changes by following the steps above.
 
-The website uses svnpubsub to sync changes in this SVN repository with the live site. The publish
-folder contains the websites content and when committed to the svn repository it will be
-automatically deployed. Note: there is sometimes a slight delay between committing to SVN and
-appearing online.
+The website uses Apache Infra tooling to sync this Git repository with the live site.
+
+The content folder contains the websites content and when changes are committed to the asf-staging
+or asf-site branches, changes will be automatically deployed.
+
+Before committing ensure that changes from source/ have been properly built in the `content/`
+directory.
+
+`$ git add content source`
+`$ git commit -m "Message describing the website changes you've made."`
+
+Updates to the current website should first be submitted as a Pull Request to the asf-staging branch.
+
+Once the PR has been merged in the asf-staging branch, a live preview will be available at:
+https://aurora.staged.apache.org/
 
 
-Before commiting, ensure that changes from source/ have been properly built in the `publish/`
-directory. Changes will be published to the website by running:
+If the site looks good and functions correctly, a PR should be made to the asf-site branch
+from the asf-staging branch, squashing all commits into a single commit detailing
+the change (usually a release).
 
 
-    svn commit -m "Message describing the website changes you've made."
+Note: there is sometimes a slight delay between merging PRs and
+changes appearing online.
 
 ### Apache License
 Except as otherwise noted this software is licensed under the
 
 ### Apache License
 Except as otherwise noted this software is licensed under the
diff --git a/Vagrantfile b/Vagrantfile
deleted file mode 100644 (file)
index 848cf6d..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-#
-# Licensed 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.
-#
-
-# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
-VAGRANTFILE_API_VERSION = "2"
-
-Vagrant.require_version ">= 1.5.0"
-
-Vagrant.configure(2) do |config|
-  config.vm.box = "ubuntu/trusty64"
-
-  config.vm.network :private_network, ip: "192.168.33.10"
-  config.vm.provider :virtualbox do |vb|
-    vb.customize ["modifyvm", :id, "--memory", "4096"]
-    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
-  end
-  config.vm.provision "shell", path: "provision.sh"
-end
diff --git a/provision.sh b/provision.sh
deleted file mode 100644 (file)
index f03a022..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-apt-get update
-
-apt-get install -y \
-    build-essential \
-    git \
-    ruby2.0 \
-    ruby2.0-dev \
-    subversion \
-    zlib1g-dev \
-    unzip
-
-gem2.0 install bundler
-cd /vagrant
-bundle install
-rake2.0