Skip to content

Commit be41129

Browse files
committed
Name CircleCI steps
1 parent 6cfac9c commit be41129

1 file changed

Lines changed: 71 additions & 62 deletions

File tree

.circleci/config.yml

Lines changed: 71 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -52,71 +52,80 @@ jobs:
5252
- attach_workspace:
5353
at: workspace
5454
- gcp-cli/install
55-
- run: sudo docker-php-ext-install pdo_mysql
56-
- run: |
57-
cd workspace
58-
# record version
59-
echo "CircleCI build number:${CIRCLE_BUILD_NUM}
60-
Git hash: ${CIRCLE_SHA1}
61-
${CIRCLE_TAG+Release: ${CIRCLE_TAG}}" > assets/version.txt
62-
# generate config file
63-
echo "<?php
64-
\$settings['version'] = '${CIRCLE_BUILD_NUM}';
65-
${CIRCLE_TAG+\$settings['release'] = '${CIRCLE_TAG}';}
66-
\$settings['db_socket'] = '/cloudsql/${BOXWISE_PRIMARYDB_SOCKET}';
67-
\$settings['db_database'] = '${<< parameters.envVariablePrefix >>DBNAME}';
68-
\$settings['db_user'] = '${<< parameters.envVariablePrefix >>DBNAME}';
69-
\$settings['db_pass'] = '${<< parameters.envVariablePrefix >>DBPASS}';
70-
\$settings['sentry_key'] = '${BOXWISE_SENTRY}';
71-
\$settings['test_pwd'] = '${CYPRESS_TEST_PWD}';
72-
\$settings['upload_dir'] = '${UPLOAD_DIR}/<< parameters.serviceName >>';
73-
\$settings['auth0_domain'] = '${<< parameters.envVariablePrefix >>AUTH0_DOMAIN}';
74-
\$settings['auth0_api_id'] = '${<< parameters.envVariablePrefix >>AUTH0_API_ID}';
75-
\$settings['auth0_api_domain'] = '${<< parameters.envVariablePrefix >>AUTH0_API_DOMAIN}';
76-
\$settings['auth0_api_audience'] = '${<< parameters.envVariablePrefix >>AUTH0_API_AUDIENCE}';
77-
\$settings['auth0_client_id'] = '${<< parameters.envVariablePrefix >>AUTH0_CLIENT_ID}';
78-
\$settings['auth0_db_connection_id'] = '${<< parameters.envVariablePrefix >>AUTH0_DB_CONNECTION_ID}';
79-
\$settings['auth0_client_secret'] = '${<< parameters.envVariablePrefix >>AUTH0_CLIENT_SECRET}';
80-
\$settings['auth0_cookie_secret'] = '${<< parameters.envVariablePrefix >>AUTH0_COOKIE_SECRET}';
81-
\$settings['auth0_redirect_uri'] = '${<< parameters.envVariablePrefix >>AUTH0_REDIRECT_URI}';
82-
\$settings['v2_base_url'] = '${<< parameters.envVariablePrefix >>V2_BASE_URL}';
83-
\$settings['jwt_claim_prefix'] = 'https://www.boxtribute.com';" > library/config.php
84-
echo "paths:
85-
migrations: '%%PHINX_CONFIG_DIR%%/db/migrations'
86-
environments:
87-
default_migration_table: phinxlog
88-
<< parameters.serviceName >>:
89-
adapter: mysql
90-
host: 127.0.0.1
91-
name: ${<< parameters.envVariablePrefix >>DBNAME}
92-
user: ${<< parameters.envVariablePrefix >>DBNAME}
93-
pass: ${<< parameters.envVariablePrefix >>DBPASS}
94-
port: 3306
95-
charset: utf8
96-
mysql_attr_init_command: SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO'
97-
version_order: creation" > phinx.yml
98-
# generate google app engine config for target environment
99-
sed 's/service: default/service: << parameters.serviceName >>/g' app.yaml > app-<< parameters.serviceName >>.yaml
100-
if [ << parameters.serviceName >> == production ]; then echo -e "\ninstance_class: F2" >> app-production.yaml; fi;
101-
- run: |
102-
# get google credentials
103-
echo $GOOGLE_SERVICE_KEY | gcloud auth activate-service-account --key-file=-
104-
gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
105-
# download cloud sql proxy to enable db access
106-
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
107-
chmod +x cloud_sql_proxy
10855
- run:
56+
name: Install deploy dependencies
57+
command: sudo docker-php-ext-install pdo_mysql
58+
- run:
59+
name: Generate config.php and phinx.yml files
60+
command: |
61+
cd workspace
62+
# record version
63+
echo "CircleCI build number:${CIRCLE_BUILD_NUM}
64+
Git hash: ${CIRCLE_SHA1}
65+
${CIRCLE_TAG+Release: ${CIRCLE_TAG}}" > assets/version.txt
66+
# generate config file
67+
echo "<?php
68+
\$settings['version'] = '${CIRCLE_BUILD_NUM}';
69+
${CIRCLE_TAG+\$settings['release'] = '${CIRCLE_TAG}';}
70+
\$settings['db_socket'] = '/cloudsql/${BOXWISE_PRIMARYDB_SOCKET}';
71+
\$settings['db_database'] = '${<< parameters.envVariablePrefix >>DBNAME}';
72+
\$settings['db_user'] = '${<< parameters.envVariablePrefix >>DBNAME}';
73+
\$settings['db_pass'] = '${<< parameters.envVariablePrefix >>DBPASS}';
74+
\$settings['sentry_key'] = '${BOXWISE_SENTRY}';
75+
\$settings['test_pwd'] = '${CYPRESS_TEST_PWD}';
76+
\$settings['upload_dir'] = '${UPLOAD_DIR}/<< parameters.serviceName >>';
77+
\$settings['auth0_domain'] = '${<< parameters.envVariablePrefix >>AUTH0_DOMAIN}';
78+
\$settings['auth0_api_id'] = '${<< parameters.envVariablePrefix >>AUTH0_API_ID}';
79+
\$settings['auth0_api_domain'] = '${<< parameters.envVariablePrefix >>AUTH0_API_DOMAIN}';
80+
\$settings['auth0_api_audience'] = '${<< parameters.envVariablePrefix >>AUTH0_API_AUDIENCE}';
81+
\$settings['auth0_client_id'] = '${<< parameters.envVariablePrefix >>AUTH0_CLIENT_ID}';
82+
\$settings['auth0_db_connection_id'] = '${<< parameters.envVariablePrefix >>AUTH0_DB_CONNECTION_ID}';
83+
\$settings['auth0_client_secret'] = '${<< parameters.envVariablePrefix >>AUTH0_CLIENT_SECRET}';
84+
\$settings['auth0_cookie_secret'] = '${<< parameters.envVariablePrefix >>AUTH0_COOKIE_SECRET}';
85+
\$settings['auth0_redirect_uri'] = '${<< parameters.envVariablePrefix >>AUTH0_REDIRECT_URI}';
86+
\$settings['v2_base_url'] = '${<< parameters.envVariablePrefix >>V2_BASE_URL}';
87+
\$settings['jwt_claim_prefix'] = 'https://www.boxtribute.com';" > library/config.php
88+
echo "paths:
89+
migrations: '%%PHINX_CONFIG_DIR%%/db/migrations'
90+
environments:
91+
default_migration_table: phinxlog
92+
<< parameters.serviceName >>:
93+
adapter: mysql
94+
host: 127.0.0.1
95+
name: ${<< parameters.envVariablePrefix >>DBNAME}
96+
user: ${<< parameters.envVariablePrefix >>DBNAME}
97+
pass: ${<< parameters.envVariablePrefix >>DBPASS}
98+
port: 3306
99+
charset: utf8
100+
mysql_attr_init_command: SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO'
101+
version_order: creation" > phinx.yml
102+
# generate google app engine config for target environment
103+
sed 's/service: default/service: << parameters.serviceName >>/g' app.yaml > app-<< parameters.serviceName >>.yaml
104+
if [ << parameters.serviceName >> == production ]; then echo -e "\ninstance_class: F2" >> app-production.yaml; fi;
105+
- run:
106+
name: Download cloud_sql_proxy
107+
command: |
108+
# get google credentials
109+
echo $GOOGLE_SERVICE_KEY | gcloud auth activate-service-account --key-file=-
110+
gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
111+
# download cloud sql proxy to enable db access
112+
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
113+
chmod +x cloud_sql_proxy
114+
- run:
115+
name: Launch cloud_sql_proxy
109116
command: ./cloud_sql_proxy -instances=${BOXWISE_PRIMARYDB_SOCKET}=tcp:3306
110117
background: true
111-
- run: |
112-
# wait for cloud sql proxy to initialize
113-
sleep 3s
114-
cd workspace
115-
# apply db changes
116-
echo "Migrating << parameters.serviceName >> database"
117-
vendor/bin/phinx migrate -e << parameters.serviceName >>
118-
# deploy
119-
gcloud app deploy app-<< parameters.serviceName >>.yaml --version ${CIRCLE_BUILD_NUM}
118+
- run:
119+
name: Run DB migrations and deploy to GCloud
120+
command: |
121+
# wait for cloud sql proxy to initialize
122+
sleep 3s
123+
cd workspace
124+
# apply db changes
125+
echo "Migrating << parameters.serviceName >> database"
126+
vendor/bin/phinx migrate -e << parameters.serviceName >>
127+
# deploy
128+
gcloud app deploy app-<< parameters.serviceName >>.yaml --version ${CIRCLE_BUILD_NUM}
120129
121130
create-sentry-release:
122131
docker:

0 commit comments

Comments
 (0)