name: Deploy to Hosts on: pull_request: types: [closed] jobs: deploy: if: github.event.pull_request.merged == true runs-on: docker steps: - name: Checkout repository uses: actions/checkout@v4 - name: Detect modified folders id: detect-changes run: | folders=$(git diff-tree --no-commit-id --name-only -r HEAD^..HEAD | cut -d/ -f1 | sort | uniq) echo "Modified folders: $folders" echo "::set-output name=folders::$folders" - name: Determine target host id: determine-host run: | folder=${{ steps.detect-changes.outputs.folders }} case $folder in arrs) echo "::set-output name=target_host::${{ secrets.ARRS_IP }}" ;; ag_main) echo "::set-output name=target_host::${{ secrets.AGMAIN_IP }}" ;; downloaders) echo "::set-output name=target_host::${{ secrets.DOWNLOADERS_IP }}" ;; # Add cases for other folders/hosts *) echo "Unknown folder: $folder" exit 1 ;; esac echo "::set-output name=folder::$folder" - name: Trigger AWX Job run: | curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${{ secrets.AWX_API_TOKEN }}" \ -d '{ "extra_vars": { "target_host": "${{ steps.determine-host.outputs.target_host }}", "folder": "${{ steps.determine-host.outputs.folder }}" } }' \ "https://awx.mafyuh.xyz/api/v2/job_templates/13/github/"