2020-11-09 23:04:42 +00:00
|
|
|
---
|
|
|
|
name: CI
|
|
|
|
'on':
|
|
|
|
pull_request:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- master
|
|
|
|
schedule:
|
|
|
|
- cron: "0 5 * * 4"
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
|
|
|
lint:
|
|
|
|
name: Lint
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Check out the codebase.
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
- name: Set up Python 3.
|
|
|
|
uses: actions/setup-python@v2
|
|
|
|
with:
|
|
|
|
python-version: '3.x'
|
|
|
|
|
|
|
|
- name: Install test dependencies.
|
2021-02-18 15:00:54 +00:00
|
|
|
run: pip3 install yamllint ansible ansible-lint
|
2020-11-09 23:04:42 +00:00
|
|
|
|
|
|
|
- name: Lint code.
|
|
|
|
run: |
|
|
|
|
yamllint .
|
|
|
|
ansible-lint
|
|
|
|
|
|
|
|
integration:
|
|
|
|
name: Integration
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- macos-10.15
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Check out the codebase.
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
- name: Uninstall GitHub Actions' built-in Homebrew.
|
|
|
|
run: tests/uninstall-homebrew.sh
|
|
|
|
|
|
|
|
- name: Uninstall GitHub Actions' built-in browser installs.
|
|
|
|
run: |
|
|
|
|
sudo rm -rf /Applications/Firefox.app
|
|
|
|
sudo rm -rf /Applications/Google\ Chrome.app
|
|
|
|
|
|
|
|
- name: Install test dependencies.
|
|
|
|
run: sudo pip3 install ansible
|
|
|
|
|
|
|
|
- name: Set up the test environment.
|
|
|
|
run: |
|
|
|
|
cp tests/ansible.cfg ./ansible.cfg
|
|
|
|
cp tests/inventory ./inventory
|
|
|
|
cp tests/config.yml ./config.yml
|
|
|
|
ansible-galaxy install -r requirements.yml -p ./roles
|
|
|
|
|
|
|
|
- name: Test the playbook's syntax.
|
2020-11-09 23:15:21 +00:00
|
|
|
run: ansible-playbook main.yml --syntax-check
|
2020-11-09 23:04:42 +00:00
|
|
|
|
|
|
|
- name: Test the playbook.
|
2020-11-09 23:15:21 +00:00
|
|
|
run: ansible-playbook main.yml
|
2020-11-09 23:04:42 +00:00
|
|
|
env:
|
|
|
|
ANSIBLE_FORCE_COLOR: '1'
|
|
|
|
|
|
|
|
- name: Idempotence check.
|
|
|
|
run: |
|
|
|
|
idempotence=$(mktemp)
|
2020-11-09 23:15:21 +00:00
|
|
|
ansible-playbook main.yml | tee -a ${idempotence}
|
2020-11-09 23:04:42 +00:00
|
|
|
tail ${idempotence} | grep -q 'changed=0.*failed=0' && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1)
|
|
|
|
env:
|
|
|
|
ANSIBLE_FORCE_COLOR: '1'
|