Добавил деплой с Circle CI

This commit is contained in:
Anton Vakhrushev 2020-03-18 20:05:35 +03:00
parent f92417c109
commit 60c202325e
5 changed files with 114 additions and 26 deletions

80
.circleci/config.yml Normal file
View File

@ -0,0 +1,80 @@
version: 2.1
jobs:
build_assets:
docker:
- image: node:12-alpine
environment:
OUTPUT_DIR: ./output_prod/static
steps:
- checkout
- run: npm ci
- run: mkdir -p ${OUTPUT_DIR}
- run: npm run-script build-prod
- run: ls -la ${OUTPUT_DIR}
- run: mkdir -p /tmp/workspace/static
- run: cp -R ${OUTPUT_DIR}/* /tmp/workspace/static
- persist_to_workspace:
root: /tmp/workspace
paths:
- static/*
build_html:
docker:
- image: php:7.4-cli
environment:
APP_ENV: prod
APP_URL: https://vakhrushev.me
STATIC_DIR: ./output_prod/static
steps:
- attach_workspace:
at: /tmp/workspace
- checkout
- run: docker/provision.sh
- run: composer install --no-interaction --no-progress
- run: mkdir -p ${STATIC_DIR}
- run: cp -R /tmp/workspace/static/* ${STATIC_DIR}
- run: |
./vendor/bin/sculpin generate \
--env="${APP_ENV}" \
--url="${APP_URL}" \
--no-interaction \
-vv
- run: mkdir -p /tmp/workspace/html
- run: cp -R ./output_prod/* /tmp/workspace/html
- persist_to_workspace:
root: /tmp/workspace
paths:
- html/*
deploy:
docker:
- image: php:7.4-cli
steps:
- checkout
- add_ssh_keys
- run: apt-get update; apt-get install -yy openssh-client
- run: ssh-keyscan "vakhrushev.me" >> ~/.ssh/known_hosts
- run: docker/provision.sh
- attach_workspace:
at: /tmp/workspace
- run: mkdir -p ./output_prod
- run: cp -R /tmp/workspace/html/* ./output_prod
- run: ls -la ./output_prod
- run: ls -la ./output_prod/static
- run: dep deploy production -vv
workflows:
version: 2
build_and_deploy:
jobs:
- build_assets:
filters:
branches:
only: master
- build_html:
requires:
- build_assets
- deploy:
requires:
- build_html

View File

@ -4,7 +4,7 @@ namespace Deployer;
require 'recipe/common.php'; require 'recipe/common.php';
host('homepage.vakhrushev.me') host('vakhrushev.me')
->user('homepage') ->user('homepage')
->stage('production') ->stage('production')
->set('deploy_path', '/var/www/homepage') ->set('deploy_path', '/var/www/homepage')

View File

@ -1,30 +1,7 @@
FROM php:7.4-cli FROM php:7.4-cli
RUN apt-get update && apt-get install -y \ COPY ./docker/provision.sh /opt/
libtidy-dev \
curl \
git \
gzip \
rsync
RUN docker-php-ext-install tidy \ RUN /opt/provision.sh
&& docker-php-ext-enable tidy
# Project folder
RUN mkdir -p /srv/app
WORKDIR /srv/app WORKDIR /srv/app
RUN apt-get update \
&& apt-get install -y git zip curl gnupg \
&& rm -rf /var/lib/apt/lists/*
# get composer and required tools
RUN curl -sLO https://getcomposer.org/download/1.9.3/composer.phar \
&& mv composer.phar /usr/local/bin/composer \
&& chmod +x /usr/local/bin/composer
# Deployer
RUN curl -sLO https://deployer.org/releases/v6.7.3/deployer.phar \
&& mv deployer.phar /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep

29
docker/provision.sh Executable file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env sh
set -eux
apt-get update && apt-get install -y \
curl \
git \
gnupg \
gzip \
libtidy-dev \
rsync \
zip \
;
docker-php-ext-install tidy \
&& docker-php-ext-enable tidy
# Project folder
mkdir -p /srv/app
# Composer and required tools
curl -sLO https://getcomposer.org/download/1.10.1/composer.phar \
&& mv composer.phar /usr/local/bin/composer \
&& chmod +x /usr/local/bin/composer
# Deployer
curl -sLO https://deployer.org/releases/v6.7.3/deployer.phar \
&& mv deployer.phar /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep

View File

@ -24,5 +24,7 @@
{# Extra fonts #} {# Extra fonts #}
{% include 'font-awesome.twig' %} {% include 'font-awesome.twig' %}
<!-- Deployed wih Circle CI -->
</body> </body>
</html> </html>