summaryrefslogtreecommitdiffstats
path: root/testing/docker/upload-symbols
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/docker/upload-symbols
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/docker/upload-symbols')
-rw-r--r--testing/docker/upload-symbols/Dockerfile21
-rw-r--r--testing/docker/upload-symbols/README.md28
-rwxr-xr-xtesting/docker/upload-symbols/bin/checkout-script.sh16
-rwxr-xr-xtesting/docker/upload-symbols/bin/upload.sh21
-rwxr-xr-xtesting/docker/upload-symbols/test_exports.sh6
5 files changed, 92 insertions, 0 deletions
diff --git a/testing/docker/upload-symbols/Dockerfile b/testing/docker/upload-symbols/Dockerfile
new file mode 100644
index 000000000..281995271
--- /dev/null
+++ b/testing/docker/upload-symbols/Dockerfile
@@ -0,0 +1,21 @@
+FROM ubuntu:14.04
+MAINTAINER Anthony Miyaguchi <amiyaguchi@mozilla.com>
+
+WORKDIR /tmp
+
+# Add the upload script
+ADD bin /tmp/bin
+RUN chmod +x /tmp/bin/*
+
+# Define the environmental variables for the scripts
+COPY socorro_token /tmp/
+ENV SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE /tmp/socorro_token
+ENV SCRIPT_PATH toolkit/crashreporter/tools/upload_symbols.py
+
+# Install dependencies for the script
+RUN apt-get update
+RUN apt-get install -y python python-pip wget
+RUN pip install redo requests
+
+# Default command
+CMD ["/bin/bash", "--login"]
diff --git a/testing/docker/upload-symbols/README.md b/testing/docker/upload-symbols/README.md
new file mode 100644
index 000000000..20e29fb3f
--- /dev/null
+++ b/testing/docker/upload-symbols/README.md
@@ -0,0 +1,28 @@
+# Upload Symbols
+Docker worker to upload crashreporter symbols as a separate taskcluster task.
+
+## Building
+`$ docker build -t upload_symbols .`
+
+`$ docker run -i -t upload_symbols`
+
+Then from inside the container, run:
+
+`$ ./bin/upload.sh`
+
+In order to run the `upload_symbols.py` script properly, the Dockerfile expects a text file `socorro_token` embedded with the api token at the root directory before.
+
+The following environmental variables must be set for a sucessful run.
+- `ARTIFACT_TASKID` : TaskId of the parent build task
+- `GECKO_HEAD_REPOSITORY` : The head repository to download the checkout script
+- `GECKO_HEAD_REV` : Revision of the head repository to look for
+
+## Example
+The container can be run similar to its production environment with the following command:
+```
+docker run -ti \
+-e ARTIFACT_TASKID=Hh5vLCaTRRO8Ql9X6XBdxg \
+-e GECKO_HEAD_REV=beed30cce69bc9783d417d3d29ce2c44989961ed \
+-e GECKO_HEAD_REPOSITORY=https://hg.mozilla.org/try/ \
+upload_symbols /bin/bash bin/upload.sh
+```
diff --git a/testing/docker/upload-symbols/bin/checkout-script.sh b/testing/docker/upload-symbols/bin/checkout-script.sh
new file mode 100755
index 000000000..c39778937
--- /dev/null
+++ b/testing/docker/upload-symbols/bin/checkout-script.sh
@@ -0,0 +1,16 @@
+#! /bin/bash -vex
+
+set -x -e
+
+# Inputs, with defaults
+
+: GECKO_HEAD_REPOSITORY ${GECKO_HEAD_REPOSITORY:=https://hg.mozilla.org/mozilla-central}
+: GECKO_HEAD_REV ${GECKO_HEAD_REV:=default}
+
+: SCRIPT_DOWNLOAD_PATH ${SCRIPT_DOWNLOAD_PATH:=$PWD}
+: SCRIPT_PATH ${SCRIPT_PATH:?"script path must be set"}
+set -v
+
+# download script from the gecko repository
+url=${GECKO_HEAD_REPOSITORY}/raw-file/${GECKO_HEAD_REV}/${SCRIPT_PATH}
+wget --directory-prefix=${SCRIPT_DOWNLOAD_PATH} $url
diff --git a/testing/docker/upload-symbols/bin/upload.sh b/testing/docker/upload-symbols/bin/upload.sh
new file mode 100755
index 000000000..a0cc15c5b
--- /dev/null
+++ b/testing/docker/upload-symbols/bin/upload.sh
@@ -0,0 +1,21 @@
+#! /bin/bash
+
+set -e
+
+# checkout the script
+source $(dirname $0)/checkout-script.sh
+
+# Check that we have a taskid to checkout
+if [ -z ${ARTIFACT_TASKID} ]; then
+ echo "Please set ARTIFACT_TASKID. Exiting"
+ exit 0
+fi
+
+# grab the symbols from an arbitrary task
+symbol_url=https://queue.taskcluster.net/v1/task/${ARTIFACT_TASKID}/artifacts/public/build/target.crashreporter-symbols-full.zip
+wget ${symbol_url}
+
+# run
+symbol_zip=$(basename ${symbol_url})
+script_name=$(basename ${SCRIPT_PATH})
+python -u ${script_name} ${symbol_zip}
diff --git a/testing/docker/upload-symbols/test_exports.sh b/testing/docker/upload-symbols/test_exports.sh
new file mode 100755
index 000000000..acc0eb536
--- /dev/null
+++ b/testing/docker/upload-symbols/test_exports.sh
@@ -0,0 +1,6 @@
+#! /bin/bash
+export SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE=./socorro_token
+export ARTIFACT_TASKID=Hh5vLCaTRRO8Ql9X6XBdxg
+export GECKO_HEAD_REV=beed30cce69bc9783d417d3d29ce2c44989961ed
+export GECKO_HEAD_REPOSITORY=https://hg.mozilla.org/try/
+export SCRIPT_PATH=toolkit/crashreporter/tools/upload_symbols.py