Prechádzať zdrojové kódy

Pass GitHub token to Dockerfile. (#88)

Michael Grupp 7 rokov pred
rodič
commit
f26a7246f0
4 zmenil súbory, kde vykonal 35 pridanie a 5 odobranie
  1. 5 3
      .travis.yml
  2. 4 1
      Dockerfile.indigo
  3. 4 1
      Dockerfile.kinetic
  4. 22 0
      scripts/check_access_token.sh

+ 5 - 3
.travis.yml

@@ -25,12 +25,14 @@ env:
   - ROS_RELEASE=indigo DOCKER_CACHE_FILE=/home/travis/docker/indigo-cache.tar.gz
   - ROS_RELEASE=indigo DOCKER_CACHE_FILE=/home/travis/docker/indigo-cache.tar.gz
   - ROS_RELEASE=kinetic DOCKER_CACHE_FILE=/home/travis/docker/kinetic-cache.tar.gz
   - ROS_RELEASE=kinetic DOCKER_CACHE_FILE=/home/travis/docker/kinetic-cache.tar.gz
 
 
-before_install: scripts/load_docker_cache.sh
+before_install:
+  - scripts/check_access_token.sh $GITHUB_TOKEN
+  - scripts/load_docker_cache.sh
 
 
 install: true
 install: true
 script:
 script:
   - git clone https://github.com/googlecartographer/cartographer_ros.git
   - git clone https://github.com/googlecartographer/cartographer_ros.git
-  - docker build cartographer_ros -t cartographer_ros:${ROS_RELEASE} -f cartographer_ros/Dockerfile.${ROS_RELEASE}
+  - docker build cartographer_ros -t cartographer_ros:${ROS_RELEASE} -f cartographer_ros/Dockerfile.${ROS_RELEASE} --build-arg github_token=${GITHUB_TOKEN}
   - rm -rf cartographer_ros
   - rm -rf cartographer_ros
-  - docker build ${TRAVIS_BUILD_DIR} -t cartographer_turtlebot:${ROS_RELEASE} -f Dockerfile.${ROS_RELEASE}
+  - docker build ${TRAVIS_BUILD_DIR} -t cartographer_turtlebot:${ROS_RELEASE} -f Dockerfile.${ROS_RELEASE} --build-arg github_token=${GITHUB_TOKEN}
   - scripts/save_docker_cache.sh
   - scripts/save_docker_cache.sh

+ 4 - 1
Dockerfile.indigo

@@ -14,10 +14,13 @@
 
 
 FROM cartographer_ros:indigo
 FROM cartographer_ros:indigo
 
 
+# We require a GitHub access token to be passed.
+ARG github_token
+
 # First, we invalidate the entire cache if googlecartographer/cartographer_ros has
 # First, we invalidate the entire cache if googlecartographer/cartographer_ros has
 # changed. This file's content changes whenever master changes. See:
 # changed. This file's content changes whenever master changes. See:
 # http://stackoverflow.com/questions/36996046/how-to-prevent-dockerfile-caching-git-clone
 # http://stackoverflow.com/questions/36996046/how-to-prevent-dockerfile-caching-git-clone
-ADD https://api.github.com/repos/googlecartographer/cartographer_ros/git/refs/heads/master \
+ADD https://api.github.com/repos/googlecartographer/cartographer_ros/git/refs/heads/master?access_token=$github_token \
     cartographer_turtlebot/cartographer_ros_version.json
     cartographer_turtlebot/cartographer_ros_version.json
 
 
 COPY . cartographer_turtlebot
 COPY . cartographer_turtlebot

+ 4 - 1
Dockerfile.kinetic

@@ -14,10 +14,13 @@
 
 
 FROM cartographer_ros:kinetic
 FROM cartographer_ros:kinetic
 
 
+# We require a GitHub access token to be passed.
+ARG github_token
+
 # First, we invalidate the entire cache if googlecartographer/cartographer_ros has
 # First, we invalidate the entire cache if googlecartographer/cartographer_ros has
 # changed. This file's content changes whenever master changes. See:
 # changed. This file's content changes whenever master changes. See:
 # http://stackoverflow.com/questions/36996046/how-to-prevent-dockerfile-caching-git-clone
 # http://stackoverflow.com/questions/36996046/how-to-prevent-dockerfile-caching-git-clone
-ADD https://api.github.com/repos/googlecartographer/cartographer_ros/git/refs/heads/master \
+ADD https://api.github.com/repos/googlecartographer/cartographer_ros/git/refs/heads/master?access_token=$github_token \
     cartographer_turtlebot/cartographer_ros_version.json
     cartographer_turtlebot/cartographer_ros_version.json
 
 
 COPY . cartographer_turtlebot
 COPY . cartographer_turtlebot

+ 22 - 0
scripts/check_access_token.sh

@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# Usage: ./check_access_token.sh ACCESS_TOKEN
+# Returns non-zero exit code if ACCESS_TOKEN is invalid.
+
+if [ "$#" -ne 1 ]; then
+  echo "Please provide an access token to $0" 1>&2
+  exit 1
+fi
+token=$1
+
+set -e
+function on_error {
+  echo "Failed to validate GitHub access token!" 1>&2
+  exit 1
+}
+trap on_error ERR
+
+test_response=$(curl -s https://api.github.com/?access_token=${token})
+
+echo $test_response | grep -ivq "bad credentials"
+echo $"GitHub access token is valid."