-
Notifications
You must be signed in to change notification settings - Fork 187
/
config.docif
executable file
·127 lines (104 loc) · 5.19 KB
/
config.docif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/bash
#
# A sample config file for DoCIF
# This is just a shell file that is sourced by DoCIF scripts.
# @REQUIRED
# A docker baseimage repostiory. Create one on the docker hub
BASEIMAGE_REPO="robojackets/robocup-baseimage"
# If true, ${BASEIMAGE_REPO}:master is pushed when on master.
# Defaults to false.
PUSH_BASEIMAGE="true"
# @REQUIRED
# The github repository location, for sendings status updates to
# This is CASE SENSITIVE!!
GITHUB_REPO='RoboJackets/robocup-software'
# The url to point to when a status check is pending.
# Will point to https://github.com/jgkamat/DoCIF if unset.
PENDING_URL="https://github.com/jgkamat/DoCIF"
# A custom dockerfile, for advanced setup
# DO NOT SET THIS IF YOU ARE A FIRST TIME USER.
# See ./commands/Dockerfile for the default dockerfile
# This file is in relation to you'r project's root.
CUSTOM_DOCKERFILE="./util/docker/baseimage/Dockerfile"
############################## Variable Names ##################################
# These are the variables that will hold secrets and such.
# In this example, DOCKER_PASS needs to be set to the docker hub password
# This can be done through the CircleCi GUI or Travis CI secrets
DOCKER_PASSWORD_VAR="DOCKER_PASS"
DOCKER_EMAIL_VAR="DOCKER_EMAIL"
DOCKER_USER_VAR="DOCKER_USER"
# This would be insecure, but you can do it below. You should add these vars to
# circle protected environment variables if you are concerned about security
# DOCKER_EMAIL="[email protected]"
# Status token is used for updating status
GH_STATUS_TOKEN_VAR="GH_STATUS_TOKEN"
# Variable holing the username of the Status Token
GH_USER_VAR="GIT_USERNAME"
# Variable holing the email of the Status Token
GH_EMAIL_VAR="GIT_EMAIL"
# The project root INSIDE THE DOCKER CONTAINER
# Recommended to leave as default (not set)
# This will act as the 'current directory' within the project
# This will need to be changed in the dockerfile as well to take effect. (use a custom one!)
DOCKER_PROJECT_ROOT="/home/developer/project"
# The home dir of the user running the docker commands (used for caching when using ~)
DOCKER_PROJECT_HOME="/home/developer"
# The git clone root INSIDE THE DOCKER CONTAINER
GIT_CLONE_ROOT="${DOCKER_PROJECT_ROOT}"
################################################################################
# Cache directories, not required.
# Directories to link to the docker container for each build and persist between builds. Add to circle.yml as well.
# for caching on their servers
# YOU MUST USE ~ IN YOUR PATH (NO $HOME), SO WE KNOW WHERE TO LINK TO INSIDE THE CONTAINER.
# This directory MUST BE ADDED TO circle.yml AS WELL IN ORDER FOR ACTUAL CACHING TO TAKE PLACE
CACHE_DIRECTORIES=()
CACHE_DIRECTORIES+=('~/.ccache')
CACHE_DIRECTORIES+=('~/.ssh')
CACHE_DIRECTORIES+=("${CIRCLE_ARTIFACTS}")
################################# COMMANDS #####################################
# The script to set up the environment, by default ubuntu.
# YOU WILL NEED TO USE SUDO TO GET ROOT PRIVLEGES HERE
# We want the GOPATH variable to persist into this script, so we pass it in.
SETUP_COMMAND='sudo GOPATH=$GOPATH ./util/ubuntu-setup --yes && sudo ccache -M 1G'
# SETUP_COMMAND="./ubuntu-setup-script"
# DOCIF can cache baseimages, if you give it files that will force a rebuild if changed.
# Include the setup script itself, as well as any dependency files
# Leaving this blank will turn off caching
SETUP_SHA_FILES=()
# This file should be included unless you leave this variable completely blank, forcing a rebuild when DoCIF is updated
SETUP_SHA_FILES+=("./.gitmodules")
SETUP_SHA_FILES+=("./circle.yml")
SETUP_SHA_FILES+=("./config.docif")
SETUP_SHA_FILES+=("./util/ubuntu-setup")
SETUP_SHA_FILES+=("./util/requirements2.txt")
SETUP_SHA_FILES+=("./util/requirements3.txt")
SETUP_SHA_FILES+=("./util/ubuntu-packages.txt")
SETUP_SHA_FILES+=("./util/docker/baseimage/Dockerfile")
# @REQUIRED
# Commands to run when testing. Each index will have it's own status token
# Commands are in this format
# COMMAND; SHORT_NAME; DESCRIPTION
TEST_COMMANDS=()
TEST_COMMANDS+=( 'make;compile;Compile/sanity check.' )
TEST_COMMANDS+=( 'make test-soccer;test-soccer;A check to see if soccer tests pass' )
TEST_COMMANDS+=( 'git fetch origin && STYLIZE_DIFFBASE=origin/master make checkstyle;style;Style checks.' )
TEST_COMMANDS+=( 'make test-python;test-python;Python tests.' )
TEST_COMMANDS+=( 'make pylint;python-pylint;Python static code analysis.' )
TEST_COMMANDS+=( 'make mypy;python-mypy;Python static type analysis.' )
TEST_COMMANDS+=( 'make coverage;coverage;Coverage build task.' )
# @RECOMMENDED
# Clean command. Cleans the build files so there is no way the previous build can interfere. Add if you run
# into issues
CLEAN_COMMAND="make clean || true"
# Other options are `gradle clean`, `mvn clean`, or `rm -rf build`
# Environmental variables to make available to the build environment
ENV_VARS=()
ENV_VARS+=("GH_TOKEN") # To be used by autoupdating script
ENV_VARS+=("COVERALLS_REPO_TOKEN")
ENV_VARS+=("CIRCLE_BUILD_NUM")
ENV_VARS+=("CIRCLE_BRANCH")
ENV_VARS+=("CIRCLE_SHA1")
# Command to run when deploying. Leave blank for no deploy.
# Make sure any secrets these commands need are added to ENV_VARS
DEPLOY_COMMAND="./autoupdate-docs.sh"
################################################################################