Skip to content
This repository has been archived by the owner on Feb 13, 2023. It is now read-only.

Commit

Permalink
Update Composer role to latest version.
Browse files Browse the repository at this point in the history
  • Loading branch information
geerlingguy committed Feb 9, 2017
1 parent bed6546 commit 14f6a3b
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 21 deletions.
2 changes: 1 addition & 1 deletion provisioning/requirements.yml
Expand Up @@ -14,7 +14,7 @@
- src: geerlingguy.blackfire
version: 1.0.0
- src: geerlingguy.composer
version: 1.5.0
version: 1.6.0
- src: geerlingguy.daemonize
version: 1.1.1
- src: geerlingguy.drupal-console
Expand Down
25 changes: 11 additions & 14 deletions provisioning/roles/geerlingguy.composer/.travis.yml
@@ -1,5 +1,5 @@
---
sudo: required
services: docker

env:
- distro: centos7
Expand All @@ -11,42 +11,39 @@ env:
- distro: ubuntu1604
init: /lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"

services:
- docker
- distro: debian8
init: /lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"

before_install:
# Pull container.
- 'sudo docker pull geerlingguy/docker-${distro}-ansible:latest'
- 'docker pull geerlingguy/docker-${distro}-ansible:latest'

script:
- container_id=$(mktemp)
# Run container in detached state.
- 'sudo docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"'
- 'docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"'

# Install dependencies.
- 'sudo docker exec "$(cat ${container_id})" ansible-galaxy install -r /etc/ansible/roles/role_under_test/tests/requirements.yml'
- 'docker exec "$(cat ${container_id})" ansible-galaxy install -r /etc/ansible/roles/role_under_test/tests/requirements.yml'

# Ansible syntax check.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check'
- 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check'

# Test role.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml'
- 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml'

# Test role idempotence.
- idempotence=$(mktemp)
- sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence}
- docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence}
- >
tail ${idempotence}
| grep -q 'changed=0.*failed=0'
&& (echo 'Idempotence test: pass' && exit 0)
|| (echo 'Idempotence test: fail' && exit 1)
# Ensure Composer is installed and working.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm composer || true'

# Clean up.
- 'sudo docker stop "$(cat ${container_id})"'
- 'docker exec --tty "$(cat ${container_id})" env TERM=xterm composer || true'

notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/
10 changes: 9 additions & 1 deletion provisioning/roles/geerlingguy.composer/README.md
Expand Up @@ -39,6 +39,14 @@ A list of packages to install globally (using `composer global require`). If you

If `true`, and if there are any configured `composer_global_packages`, the `vendor/bin` directory inside `composer_home_path` will be added to the system's default `$PATH` (for all users).

composer_project_path: /path/to/project

Path to a composer project.

composer_add_project_to_path: false

If `true`, and if you have configured a `composer_project_path`, the `vendor/bin` directory inside `composer_project_path` will be added to the system's default `$PATH` (for all users).

composer_github_oauth_token: ''

GitHub OAuth token, used to avoid GitHub API rate limiting errors when building and rebuilding applications using Composer. Follow GitHub's directions to [Create a personal access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/) if you run into these rate limit errors.
Expand All @@ -65,4 +73,4 @@ MIT / BSD

## Author Information

This role was created in 2014 by [Jeff Geerling](http://www.jeffgeerling.com/), author of [Ansible for DevOps](https://www.ansiblefordevops.com/).
This role was created in 2014 by [Jeff Geerling](https://www.jeffgeerling.com/), author of [Ansible for DevOps](https://www.ansiblefordevops.com/).
4 changes: 4 additions & 0 deletions provisioning/roles/geerlingguy.composer/defaults/main.yml
Expand Up @@ -16,5 +16,9 @@ composer_global_packages: []

composer_add_to_path: true

# Add a project vendor/bin directory to the PATH
composer_add_project_to_path: false
#composer_project_path: /path/to/project/vendor/bin

# GitHub OAuth token (used to help overcome API rate limits).
composer_github_oauth_token: ''
@@ -1,11 +1,12 @@
---
- name: Install configured globally-required packages.
become: yes
become_user: "{{ composer_home_owner }}"
shell: >
COMPOSER_HOME={{ composer_home_path }}
command: >
{{ composer_path }} global require {{ item.name }}:{{ item.release | default('@stable') }} --no-progress
creates={{ composer_home_path }}/vendor/{{ item.name }}
environment:
COMPOSER_HOME: "{{ composer_home_path }}"
become: yes
become_user: "{{ composer_home_owner }}"
register: composer_global_require_result
with_items: "{{ composer_global_packages }}"

Expand Down
5 changes: 5 additions & 0 deletions provisioning/roles/geerlingguy.composer/tasks/main.yml
Expand Up @@ -42,6 +42,8 @@
state: directory

- name: Add GitHub OAuth token for Composer (if configured).
become: yes
become_user: "{{ composer_home_owner }}"
template:
src: "auth.json.j2"
dest: "{{ composer_home_path }}/auth.json"
Expand All @@ -51,3 +53,6 @@

- include: global-require.yml
when: composer_global_packages|length > 0

- include: project-bin.yml
when: composer_add_project_to_path
6 changes: 6 additions & 0 deletions provisioning/roles/geerlingguy.composer/tasks/project-bin.yml
@@ -0,0 +1,6 @@
---
- name: Add composer_project_path bin directory to global $PATH.
template:
src: composer-project.sh.j2
dest: /etc/profile.d/composer-project.sh
mode: 0644
@@ -0,0 +1 @@
export PATH={{ composer_project_path }}/vendor/bin:$PATH
@@ -1,4 +1,5 @@
---
- src: geerlingguy.repo-remi
- src: geerlingguy.repo-dotdeb
- src: geerlingguy.git
- src: geerlingguy.php
17 changes: 16 additions & 1 deletion provisioning/roles/geerlingguy.composer/tests/test.yml
Expand Up @@ -13,12 +13,27 @@

pre_tasks:
- name: Update apt cache.
apt: update_cache=yes
apt: update_cache=yes cache_valid_time=600
when: ansible_distribution == 'Ubuntu'

- name: Set php_packages for PHP 7.0 Debian 8 install.
set_fact:
php_packages:
- php7.0-common
- php7.0-cli
- php7.0-dev
- php7.0-fpm
- libpcre3-dev
- php7.0-opcache
- php7.0-apcu
- php7.0-xml
when: ansible_distribution == 'Debian'

roles:
- role: geerlingguy.repo-remi
when: ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora'
- role: geerlingguy.repo-dotdeb
when: ansible_distribution == 'Debian'
- geerlingguy.git
- geerlingguy.php
- role_under_test

0 comments on commit 14f6a3b

Please sign in to comment.