name: Ansible Apply Playbook that Triggered the Workflow on: push: branches: - main paths: - ansible/playbook_*.yml - '!ansible/playbook_websites.yml' jobs: ansible-apply: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup environment id: setup_env uses: ./.github/actions/setup-env - name: Setup Ansible environment uses: ./.github/actions/setup-ansible-env with: project-id: ${{ secrets.BW_PROJECT_ID }} organization-id: ${{ secrets.BW_ORGANIZATION_ID }} access-token: ${{ secrets.BW_ACCESS_TOKEN }} ansible-user: ${{ secrets.ANSIBLE_USER }} trusted-hosts: ${{ secrets.TRUSTED_HOSTS }} - name: Apply the playbook that triggered the workflow env: BW_PROJECT_ID: ${{ secrets.BW_PROJECT_ID }} BW_ORGANIZATION_ID: ${{ secrets.BW_ORGANIZATION_ID }} BW_ACCESS_TOKEN: ${{ secrets.BW_ACCESS_TOKEN }} ANSIBLE_USER: ${{ secrets.ANSIBLE_USER }} SSH_AUTH_SOCK: /tmp/ssh_agent.sock CHANGED_FILES: ${{ steps.setup_env.outputs.CHANGED_FILES }} run: | cd ansible for PLAYBOOK in $(echo $CHANGED_FILES | grep -oP 'playbook_\K\w+'); do sectool -f ../sectool.json exec ansible-playbook -u $ANSIBLE_USER playbook_$PLAYBOOK.yml done