Re-add ansistrano and circle files
This commit is contained in:
parent
20d2a42a82
commit
9cf83920b2
45
.circleci/config.yml
Normal file
45
.circleci/config.yml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
docker:
|
||||||
|
- image: circleci/php:7.1
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
keys:
|
||||||
|
- v1-dependencies-{{ checksum "composer.json" }}
|
||||||
|
- v1-dependencies-
|
||||||
|
- run: composer install -n --prefer-dist
|
||||||
|
- save_cache:
|
||||||
|
paths:
|
||||||
|
- ./vendor
|
||||||
|
key: v1-dependencies-{{ checksum "composer.json" }}
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
docker:
|
||||||
|
- image: ansible/ansible:ubuntu1604
|
||||||
|
environment:
|
||||||
|
ANSIBLE_HOST_KEY_CHECKING: no
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Install system packages.
|
||||||
|
command: pip install --upgrade pip && pip install ansible
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
key: v1-{{ .Branch }}-{{ checksum "./ansible/requirements.yml" }}
|
||||||
|
- run: ansible-galaxy install -r ansible/requirements.yml
|
||||||
|
- save_cache:
|
||||||
|
key: v1-{{ .Branch }}-{{ checksum "./ansible/requirements.yml" }}
|
||||||
|
paths:
|
||||||
|
- '/root/.ansible/roles'
|
||||||
|
- run: ansible-playbook ansible/deploy.yml -i ansible/hosts -e 'git_branch=master' -u opdavies --become
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
build_test_and_deploy:
|
||||||
|
jobs:
|
||||||
|
- build
|
||||||
|
- deploy:
|
||||||
|
requires:
|
||||||
|
- build
|
|
@ -5,9 +5,21 @@
|
||||||
vars_files:
|
vars_files:
|
||||||
- ./vars/main.yml
|
- ./vars/main.yml
|
||||||
|
|
||||||
tasks:
|
vars_prompt:
|
||||||
- synchronize:
|
- name: git_branch
|
||||||
src: ../output_prod/
|
prompt: 'Enter a branch to deploy'
|
||||||
dest: '/srv/{{ server_name }}'
|
default: master
|
||||||
delete: yes
|
private: false
|
||||||
recursive: yes
|
|
||||||
|
vars:
|
||||||
|
ansistrano_deploy_to: "/srv/{{ server_name }}/current/output_prod"
|
||||||
|
ansistrano_deploy_via: git
|
||||||
|
ansistrano_git_repo: https://github.com/opdavies/oliverdavi.es
|
||||||
|
ansistrano_git_branch: "{{ git_branch }}"
|
||||||
|
ansistrano_keep_releases: 3
|
||||||
|
ansistrano_allow_anonymous_stats: false
|
||||||
|
ansistrano_after_symlink_shared_tasks_file: "{{ playbook_dir }}/deploy/after-symlink-shared.yml"
|
||||||
|
ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/deploy/after-symlink.yml"
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- carlosbuenosvinos.ansistrano-deploy
|
||||||
|
|
25
ansible/deploy/after-symlink-shared.yml
Normal file
25
ansible/deploy/after-symlink-shared.yml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
- name: Install Composer dependencies
|
||||||
|
composer:
|
||||||
|
command: install
|
||||||
|
working_dir: "{{ ansistrano_release_path.stdout }}"
|
||||||
|
|
||||||
|
- name: Generate the site once without assets
|
||||||
|
command: vendor/bin/sculpin generate -e prod
|
||||||
|
args:
|
||||||
|
chdir: '{{ ansistrano_release_path.stdout }}'
|
||||||
|
|
||||||
|
- name: Install Node dependencies
|
||||||
|
command: yarn install
|
||||||
|
args:
|
||||||
|
chdir: '{{ ansistrano_release_path.stdout }}'
|
||||||
|
|
||||||
|
- name: Generate assets
|
||||||
|
command: yarn build
|
||||||
|
args:
|
||||||
|
chdir: '{{ ansistrano_release_path.stdout }}'
|
||||||
|
|
||||||
|
- name: Generate the site, including assets
|
||||||
|
command: ./vendor/bin/sculpin generate -e prod
|
||||||
|
args:
|
||||||
|
chdir: '{{ ansistrano_release_path.stdout }}'
|
5
ansible/deploy/after-symlink.yml
Normal file
5
ansible/deploy/after-symlink.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- name: Reload nginx
|
||||||
|
service:
|
||||||
|
name: nginx
|
||||||
|
state: reloaded
|
|
@ -46,10 +46,10 @@
|
||||||
filename: oliverdavi.es.443.conf
|
filename: oliverdavi.es.443.conf
|
||||||
|
|
||||||
- listen: 443 ssl
|
- listen: 443 ssl
|
||||||
server_name: "{{ server_name }}"
|
server_name: '{{ server_name }}'
|
||||||
root: "/srv/{{ server_name }}"
|
root: '/srv/{{ server_name }}/{{ ansistrano_current_dir }}/output_prod'
|
||||||
nginx_error_log: "/var/log/nginx/{{ server_name }}_error.log warn"
|
nginx_error_log: '/var/log/nginx/{{ server_name }}_error.log warn'
|
||||||
nginx_access_log: "/var/log/nginx/{{ server_name }}_access.log warn"
|
nginx_access_log: '/var/log/nginx/{{ server_name }}_access.log warn'
|
||||||
error_page: 404 /404.html
|
error_page: 404 /404.html
|
||||||
extra_parameters: |
|
extra_parameters: |
|
||||||
ssl_certificate /etc/letsencrypt/live/oliverdavi.es/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/oliverdavi.es/fullchain.pem;
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
---
|
---
|
||||||
|
- src: carlosbuenosvinos.ansistrano-deploy
|
||||||
|
version: 2.2.0
|
||||||
|
|
||||||
- src: geerlingguy.certbot
|
- src: geerlingguy.certbot
|
||||||
version: 3.0.0
|
version: 3.0.0
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
---
|
---
|
||||||
server_name: www.oliverdavi.es
|
server_name: www.oliverdavi.es
|
||||||
|
ansistrano_current_dir: current
|
||||||
|
|
Reference in a new issue