Difference between revisions of "User:Vladimir Panteleev/Website staging"

From D Wiki
Jump to: navigation, search
(wiki syntax)
Line 1: Line 1:
I think we need a staging area of sorts - a controlled environment which pulls strictly the website from git, performs a clean build, allows previewing, and only then uploads it to dlang.org.
+
The dlang.org staging area provides a controlled environment for building the latest version of dlang.org from GitHub, previewing the website, and uploading it to the live website.
  
This would solve a few issues:
+
== Rationale ==
  
 
* Removes requirement to install software to fully build dlang.org (e.g. kindlegen)
 
* Removes requirement to install software to fully build dlang.org (e.g. kindlegen)
 
* Removes requirement to use a Posix OS (completely building the website is currently impossible on Windows)
 
* Removes requirement to use a Posix OS (completely building the website is currently impossible on Windows)
 
* Removes issues due to environment (wrong/incompatible software versions, e.g. rsync)
 
* Removes issues due to environment (wrong/incompatible software versions, e.g. rsync)
* Removes bottlenecks on Jan to resolve permission issues
+
* Removes bottlenecks on Jan (dlang.org system administrator) to add users or resolve permission issues
 
* Removes upload bandwidth bottleneck for slow connections
 
* Removes upload bandwidth bottleneck for slow connections
 
* Fixes users having to upload the entire site because timestamps don't match between users' local copies
 
* Fixes users having to upload the entire site because timestamps don't match between users' local copies
  
I have something like this on dlang.k3.1azy.net (same server which hosts forum.dlang.org). Andrei has access already. The workflow is:
+
== Usage ==
  
# If there have been some significant changes in the build infrastructure which might cause a dirty build, run: <tt>ssh dlang@k3.1azy.net run/clean</tt>. This will delete all intermediary files and force clean all repositories (incl. dub stuff).
+
# If there have been some significant changes in the build infrastructure which might cause a dirty build, run:<br><tt>ssh dlang@k3.1azy.net run/clean</tt><br>This will delete all intermediary files and force clean all repositories (incl. dub stuff).
 
# Run <tt>ssh dlang@k3.1azy.net run/update</tt>
 
# Run <tt>ssh dlang@k3.1azy.net run/update</tt>
 
# Browse to http://dlang.k3.1azy.net/ and make sure there are no glaring problems.
 
# Browse to http://dlang.k3.1azy.net/ and make sure there are no glaring problems.
 
# Run <tt>ssh dlang@k3.1azy.net run/upload</tt>
 
# Run <tt>ssh dlang@k3.1azy.net run/upload</tt>
 +
 +
If you already have access to dlang.org, send your public SSH key to [[User:Vladimir Panteleev]] to get access.

Revision as of 15:26, 12 May 2015

The dlang.org staging area provides a controlled environment for building the latest version of dlang.org from GitHub, previewing the website, and uploading it to the live website.

Rationale

  • Removes requirement to install software to fully build dlang.org (e.g. kindlegen)
  • Removes requirement to use a Posix OS (completely building the website is currently impossible on Windows)
  • Removes issues due to environment (wrong/incompatible software versions, e.g. rsync)
  • Removes bottlenecks on Jan (dlang.org system administrator) to add users or resolve permission issues
  • Removes upload bandwidth bottleneck for slow connections
  • Fixes users having to upload the entire site because timestamps don't match between users' local copies

Usage

  1. If there have been some significant changes in the build infrastructure which might cause a dirty build, run:
    ssh dlang@k3.1azy.net run/clean
    This will delete all intermediary files and force clean all repositories (incl. dub stuff).
  2. Run ssh dlang@k3.1azy.net run/update
  3. Browse to http://dlang.k3.1azy.net/ and make sure there are no glaring problems.
  4. Run ssh dlang@k3.1azy.net run/upload

If you already have access to dlang.org, send your public SSH key to User:Vladimir Panteleev to get access.