Skip to content

Instantly share code, notes, and snippets.

@gkarugi
Created January 29, 2019 12:19
Show Gist options
  • Save gkarugi/12cffce223cac8382c2e00bfef3e7172 to your computer and use it in GitHub Desktop.
Save gkarugi/12cffce223cac8382c2e00bfef3e7172 to your computer and use it in GitHub Desktop.
image: lorisleiva/laravel-docker:latest
.init_ssh: &init_ssh |
eval $(ssh-agent -s)
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
mkdir -p ~/.ssh
chmod 700 ~/.ssh
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
# Replace the last line with the following lines if you'd rather
# leave StrictHostKeyChecking enabled (replace yourdomain.com):
#
# ssh-keyscan yourdomain.com >> ~/.ssh/known_hosts
# chmod 644 ~/.ssh/known_hosts
.change_file_permissions: &change_file_permissions |
find . -type f -not -path "./vendor/*" -exec chmod 664 {} \;
find . -type d -not -path "./vendor/*" -exec chmod 775 {} \;
.prepare_env_file: &prepare_env_file |
cat > .env <<EOF
APP_ENV="production"
APP_KEY="$APP_KEY"
APP_DEBUG=false
APP_LOG_LEVEL="debug"
APP_URL="$APP_URL"
LOG_CHANNEL="stack"
DB_CONNECTION="mysql"
DB_HOST="$DB_HOST"
DB_PORT=3306
DB_DATABASE="$DB_DATABASE"
DB_USERNAME="$DB_USERNAME"
DB_PASSWORD="$DB_PASSWORD"
SESSION_LIFETIME=120
QUEUE_CONNECTION="database"
MAIL_DRIVER="sparkpost"
SPARKPOST_SECRET="$SPARKPOST_SECRET"
MEDIA_DEFAULT_DISK="$MEDIA_DEFAULT_DISK"
FILESYSTEM_DRIVER="$FILESYSTEM_DRIVER"
AZURE_STORAGE_NAME="$AZURE_STORAGE_NAME"
AZURE_STORAGE_KEY="$AZURE_STORAGE_KEY"
AZURE_STORAGE_CONTAINER="$AZURE_STORAGE_CONTAINER"
AFRICAS_TALKING_USERNAME="$AFRICAS_TALKING_USERNAME"
AFRICAS_TALKING_KEY="$AFRICAS_TALKING_KEY"
ADMIN_NOTIFICATION_EMAIL="$ADMIN_NOTIFICATION_EMAIL"
ADMIN_NOTIFICATION_PHONE="$ADMIN_NOTIFICATION_PHONE"
SENTRY_LARAVEL_DSN="$SENTRY_LARAVEL_DSN"
EOF
# echo -e "APP_ENV=production
# APP_KEY="$APP_KEY"
# APP_DEBUG=false
# APP_LOG_LEVEL=debug
# APP_URL="$APP_URL"
# LOG_CHANNEL=stack
# DB_CONNECTION=mysql
# DB_HOST="$DB_HOST"
# DB_PORT=3306
# DB_DATABASE="$DB_DATABASE"
# DB_USERNAME="$DB_USERNAME"
# DB_PASSWORD="$DB_PASSWORD"
# SESSION_LIFETIME=120
# QUEUE_CONNECTION=database
# MAIL_DRIVER=sparkpost
# SPARKPOST_SECRET="$SPARKPOST_SECRET"
# MEDIA_DEFAULT_DISK="$MEDIA_DEFAULT_DISK"
# FILESYSTEM_DRIVER="$FILESYSTEM_DRIVER"
# AZURE_STORAGE_NAME="$AZURE_STORAGE_NAME"
# AZURE_STORAGE_KEY="$AZURE_STORAGE_KEY"
# AZURE_STORAGE_CONTAINER="$AZURE_STORAGE_CONTAINER"
# AFRICAS_TALKING_USERNAME="$AFRICAS_TALKING_USERNAME"
# AFRICAS_TALKING_KEY="$AFRICAS_TALKING_KEY"
# ADMIN_NOTIFICATION_EMAIL="$ADMIN_NOTIFICATION_EMAIL"
# ADMIN_NOTIFICATION_PHONE="$ADMIN_NOTIFICATION_PHONE"
# SENTRY_LARAVEL_DSN="$SENTRY_LARAVEL_DSN"
# " > .env
#composer:
# stage: build
# cache:
# key: ${CI_COMMIT_REF_SLUG}-composer
# paths:
# - vendor/
# script:
# - *prepare_env_file
# - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts --ignore-platform-reqs
# artifacts:
# expire_in: 1 day
# paths:
# - vendor/
# - .env
# only:
# - master
production:
stage: deploy
cache:
key: ${CI_COMMIT_REF_SLUG}-composer
paths:
- vendor/
script:
- *init_ssh
- *change_file_permissions
- *prepare_env_file
- composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts --ignore-platform-reqs
- php artisan deploy <your domain> -s upload
artifacts:
expire_in: 1 day
paths:
- vendor/
environment:
name: production
url: <Your domain - this is configured in gitlab environments>
when: manual
only:
- master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment