Skip to content

Instantly share code, notes, and snippets.

@Mistat
Created January 5, 2017 06:04
Show Gist options
  • Save Mistat/069ac8e7058cc7fce14269fc9190af52 to your computer and use it in GitHub Desktop.
Save Mistat/069ac8e7058cc7fce14269fc9190af52 to your computer and use it in GitHub Desktop.
machine:
php:
version: 7.0.7
timezone:
Asia/Tokyo
dependencies:
post:
- sudo service postgresql stop
- sudo service mongod stop
override:
- echo "memory_limit = 1024M" > /opt/circleci/php/7.0.7/etc/conf.d/memory.ini
- echo $GCLOUD_SERVICE_KEY | base64 --decode > ${HOME}/gcloud-service-key.json
- sudo /opt/google-cloud-sdk/bin/gcloud --quiet components update
- sudo /opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json
- sudo /opt/google-cloud-sdk/bin/gcloud config set project $GCLOUD_PROJECT
- sudo chmod -R 757 /home/ubuntu/.config/gcloud/logs
- sudo chmod -R 757 /home/ubuntu/.config/gcloud/credentials
- curl https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 > ${HOME}/cloud_sql_proxy && chmod 777 ${HOME}/cloud_sql_proxy
- mkdir -p ${HOME}/cloud_sql sudo chmod 777 ${HOME}/cloud_sql
- composer install
database:
override:
- php artisan migrate
test:
override:
- phpunit -c phpunit.xml
deployment:
appengine:
branch: develop
commands:
- sudo chmod -R 757 ${HOME}/${CIRCLE_PROJECT_REPONAME}/storage
- ${HOME}/cloud_sql_proxy -credential_file ${HOME}/gcloud-service-key.json -dir=${HOME}/cloud_sql -instances=$CLOUD_SQL_INSTANCE_NAME & DB_UNIX_SOCKET=${HOME}/cloud_sql/${CLOUD_SQL_INSTANCE_NAME} DB_HOST="" DB_PORT="" DB_DATABASE=${CLOUD_SQL_DB_NAME} DB_USERNAME=${CLOUD_SQL_USERNAME} DB_PASSWORD=${CLOUD_SQL_PASSWORD} php artisan migrate:recreate ; pgrep cloud_sql_proxy | xargs kill; exit $?
- >
echo "env_variables:" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " APP_ENV:" "production" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " APP_DEBUG:" "true" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " APP_KEY:" "$STG_APP_KEY" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " APP_LOG:" "syslog" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " DB_UNIX_SOCKET:" "/cloudsql/$CLOUD_SQL_INSTANCE_NAME" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo ' DB_HOST:' '""' >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo ' DB_PORT:' '""' >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " DB_DATABASE:" "$CLOUD_SQL_DB_NAME" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " DB_USERNAME:" "$CLOUD_SQL_USERNAME" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " DB_PASSWORD:" "$CLOUD_SQL_PASSWORD" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " FILESYSTEM:" "$FILESYSTEM" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " STORAGE_BUCKET:" "$CLOUD_STORAGE_BUCKET_NAME" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " SENTRY_DSN:" "$SENTRY_DSN" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
echo " APP_STORAGE:" "$STORAGE_PATH" >> ${HOME}/${CIRCLE_PROJECT_REPONAME}/app.yaml;
- sudo /opt/google-cloud-sdk/bin/gcloud config set app/cloud_build_timeout 2000
- /opt/google-cloud-sdk/bin/gcloud -q app deploy app.yaml --promote --version=staging --no-stop-previous-version & while [ true ]; do if [ "`pgrep 'gcloud'`" == "" ]; then echo '$(date) complete'; exit $?; else echo "$(date) running"; sleep 30; fi done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment