--- 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"