quickstep-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zu...@apache.org
Subject [36/38] incubator-quickstep git commit: Added dockerfile for release testing
Date Mon, 06 Mar 2017 20:18:33 GMT
Added dockerfile for release testing


Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/7f5e6d45
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/7f5e6d45
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/7f5e6d45

Branch: refs/heads/reorder-partitioned-hash-join
Commit: 7f5e6d45e558bdf91ea116b09bab1bdf2a1d55c7
Parents: 33f0c8c
Author: cramja <marc.spehlmann@gmail.com>
Authored: Sun Mar 5 12:28:49 2017 -0600
Committer: cramja <marc.spehlmann@gmail.com>
Committed: Sun Mar 5 15:24:46 2017 -0600

----------------------------------------------------------------------
 release/Dockerfile | 66 +++++++++++++++++++++++++++++++++++++++++++++++++
 release/README.md  | 44 +++++++++++++++++++++++++++------
 2 files changed, 102 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/7f5e6d45/release/Dockerfile
----------------------------------------------------------------------
diff --git a/release/Dockerfile b/release/Dockerfile
new file mode 100644
index 0000000..3d3e12f
--- /dev/null
+++ b/release/Dockerfile
@@ -0,0 +1,66 @@
+FROM ubuntu:16.04
+MAINTAINER Marc <spehlmann@wisc.edu>
+
+ENV LLVM_VERSION=3.8
+ENV CONTAINER_USER="cxxdev"
+
+RUN locale-gen en_GB.UTF-8
+ENV LANG=en_GB.UTF-8 \
+    LANGUAGE=en_GB:en \
+    LC_ALL=en_GB.UTF-8
+
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN apt-get update && apt-get -y upgrade && apt-get -y install sudo wget
apt-utils
+RUN wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
+RUN echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-${LLVM_VERSION} main" >>
/etc/apt/sources.list.d/llvm.list
+RUN apt-get update && apt-get -y upgrade
+
+RUN apt-get -y install \
+  aptitude \
+  bash-completion \
+  bison \
+  build-essential \
+  clang++-${LLVM_VERSION} \
+  clang-${LLVM_VERSION} \
+  cmake \
+  coreutils \
+  curl \
+  flex \
+  g++ \
+  gcc \
+  gdb \
+  git-core \
+  htop \
+  iwyu \
+  libprotobuf-dev \
+  lldb-${LLVM_VERSION} \
+  ninja-build \
+  protobuf-compiler \
+  python \
+  python-dev \
+  python-pip \
+  python-software-properties \
+  software-properties-common \
+  subversion \
+  tmux \
+  tree \
+  unzip \
+  vim
+
+# creates gpg directories
+RUN gpg --version
+
+RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 100
+RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION}
100
+RUN update-alternatives --install /usr/bin/lldb lldb /usr/bin/lldb-${LLVM_VERSION} 100
+
+# Add non-root user for container but give it sudo access.
+# Password is the same as the username
+RUN useradd -m ${CONTAINER_USER} && \
+    echo ${CONTAINER_USER}:${CONTAINER_USER} | chpasswd && \
+    cp /etc/sudoers /etc/sudoers.bak && \
+    echo "${CONTAINER_USER}  ALL=(root) ALL" >> /etc/sudoers
+# Make bash the default shell (useful for when using tmux in the container)
+RUN chsh --shell /bin/bash ${CONTAINER_USER}
+USER ${CONTAINER_USER}

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/7f5e6d45/release/README.md
----------------------------------------------------------------------
diff --git a/release/README.md b/release/README.md
index 5776e09..31c3a90 100644
--- a/release/README.md
+++ b/release/README.md
@@ -1,10 +1,14 @@
-## Scripts to help release Quickstep
+## Release Helper Scripts
 
-### Preqs
+A full guide to releases can be found on [confluence][cwiki-howto]. In addition, you'll need
to understand key signing and publish a PGP key using your apache email. PGP key generation
is discussed [here][pgp-keys].
+
+Non managers can use the script to run a test of the release artifacts.
+
+### Preq's For Script Usage
 
 You must fill out `release_manager.profile` first.
 
-You'll need:
+You'll need these tools:
   * md5sum
   * shasum
   * svn
@@ -14,21 +18,45 @@ You'll need:
 
 This is of course in addition to the regular build tools.
 
-### Usage Overview
+### Script Overview
 
-```
+**For non-release managers**
+
+```bash
 # Test a candidate
+# You will run this if you are a non-release manager testing a release.
 ./release_cmds.sh test
+```
+
+**For release managers**
 
+```bash
 # Create candidate artifacts
+# (did you set the .profile file?)
 ./release_cmds.sh create
 
-# Publish candidate artifacts (after you've created them)
+# Publish candidate artifacts
+# (did you first create and test the release artifacts?)
 ./release_cmds.sh publish
 ```
 
-* A full guide to releases can be found on [confluence][cwiki-howto].
-* PGP key generation is discussed [here][pgp-keys]
+### Dockerfile
+
+We've included a Dockerfile which can be used as a platform standard for testing. That is,
many of us develop on Mac, so it's convenient to be able to test on Ubuntu without leaving
your machine. This is for purely for convenience. You can test on any supported platform.
+
+Basic docker usage is shown below.
+```bash
+# cd to release directory
+
+# build the image from the Dockerfile
+docker build -t quickstep-dev .
+
+# enter a fresh docker container
+docker run -ti quickstep-dev bash
+
+# now you are in the container. Here you can clone quickstep and run the release scripts
for testing
+
+```
 
 [cwiki-howto]: https://cwiki.apache.org/confluence/display/QUICKSTEP/How+To+Release
 [pgp-keys]: http://quickstep.apache.org/release-signing/
\ No newline at end of file


Mime
View raw message