You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible-homelab/.github/workflows/ci.yml

54 lines
1.6 KiB
YAML

name: CI
on:
workflow_dispatch:
pull_request:
env:
VAULT_PASSWORD: ${{ secrets.VAULT_PASSWORD }}
SSH_PUB: ${{ secrets.SSH_PUB }}
ANSIBLE_FORCE_COLOR: '1'
jobs:
tests:
name: Test Ansible Playbooks
runs-on: ubuntu-latest
steps:
- name: Create SSH pub
run: |
echo "creating ~/.ssh/id_rsa.pub file"
mkdir -p ~/.ssh/
echo "$SSH_PUB" > ~/.ssh/id_rsa.pub
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
- name: Check out the codebase.
uses: actions/checkout@v3
- name: Prepare Test Files
run: |
mv tests/.vault-pass.sh ./.vault-pass.sh
mv tests/ansible.cfg ./ansible.cfg
mv tests/hosts.ini ./hosts.ini
- uses: actions/setup-python@v4
with:
python-version: 3.8.9
- name: Install test dependencies.
run: pip install -r requirements.txt
- name: Install ansible dependencies.
run: ansible-galaxy install -r requirements.yml
- name: Syntax Check
run: |
ansible-playbook setup-linode.yml --syntax-check
ansible-playbook setup-homelab.yml --syntax-check
ansible-playbook verify-homelab.yml --syntax-check
- name: Setup Linode Instance
run: ansible-playbook setup-linode.yml
- name: Setup Home Lab
run: ansible-playbook setup-homelab.yml
- name: Verify Home Lab
run: ansible-playbook verify-homelab.yml
- name: Delete Linode Instance
run: ansible-playbook setup-linode.yml --extra-vars "state=absent"