# .github/workflows/ansible-deploy.yml
name: Ansible Deploy
on:
workflow_dispatch:
inputs:
job_id:
description: "Ctrlplane Job ID"
required: true
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Ansible
run: pip install ansible
- name: Get job context
uses: ctrlplanedev/get-job-inputs@v1
id: job
with:
job_id: ${{ inputs.job_id }}
api_key: ${{ secrets.CTRLPLANE_API_KEY }}
- name: Build inventory
run: |
echo '${{ steps.job.outputs.resource_config }}' | jq -r '.hosts[]' > inventory.txt
- name: Run playbook
run: |
ansible-playbook \
-i inventory.txt \
playbooks/deploy.yml \
--extra-vars "version=${{ steps.job.outputs.version_tag }} env=${{ steps.job.outputs.environment_name }}"