From 3472e413608c7e075891a7447b5ccfc6e33f5a02 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Sat, 2 Sep 2023 18:47:53 +0100 Subject: [PATCH] done? --- .github/workflows/infra.yaml | 44 ++++++++++++++++++++++++------------ inventory/proxmox.yaml | 1 + 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/.github/workflows/infra.yaml b/.github/workflows/infra.yaml index 5f4e516..f87af7b 100644 --- a/.github/workflows/infra.yaml +++ b/.github/workflows/infra.yaml @@ -11,6 +11,7 @@ on: paths: - infra/**-playbook.yaml - .github/workflows/infra.yaml + fork: jobs: check: @@ -19,13 +20,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - with: - fetch-depth: 2 - - - name: Fetch PR base - if: github.event.pull_request - run: | - git fetch --no-tags --progress --no-recurse-submodules --depth=1 origin ${{ github.event.pull_request.base.sha }} - name: Setup Python uses: actions/setup-python@v4 @@ -37,12 +31,34 @@ jobs: pip3 install -r requirements.txt ansible-galaxy collection install community.general - - name: Get changed playbooks - id: changed-playbooks - run: | - git diff --name-only ${{ github.event.pull_request.base.sha }} HEAD | base64 | xargs -I {} echo "files_b64={}" >> "$GITHUB_OUTPUT" - - name: Check modified playbooks run: | - export FILES="${{ steps.changed-playbooks.outputs.files_b64 }}" - echo "Got changed files: '$(echo $FILES | base64 -d | xargs echo)'" + find . -wholename "*/infra/*-playbook.yaml" -type f -exec ansible-playbook --inventory ./inventory --check {} \; + deploy: + name: Deploy modified infrastructure + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 2 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + pip3 install -r requirements.txt + ansible-galaxy collection install community.general + + - name: Get changed files + id: files + uses: tj-actions/changed-files@v38 + + - name: Run changed playbooks + run: | + for file in ${{ steps.files.outputs.all_changed_files }}; do + ansible-playbook --inventory ./inventory "$file" + done diff --git a/inventory/proxmox.yaml b/inventory/proxmox.yaml index 6b4033d..ff90334 100644 --- a/inventory/proxmox.yaml +++ b/inventory/proxmox.yaml @@ -8,5 +8,6 @@ proxmox: pve2.mgmt.home.local.koval.net: managed: hosts: + test-vm.mgmt.home.local.koval.net: unmanaged: hosts: