diff --git a/.forgejo/workflows/CD.yml b/.forgejo/workflows/CD.yml index e3d5d12..f6640fc 100644 --- a/.forgejo/workflows/CD.yml +++ b/.forgejo/workflows/CD.yml @@ -20,13 +20,32 @@ jobs: if [ "$(git rev-parse --is-shallow-repository)" = "true" ]; then git fetch --unshallow fi - folders=$(git diff --name-only HEAD~1 HEAD | grep '^iac/docker/' | cut -d/ -f3 | sort | uniq) + folders=$(git diff --name-only HEAD~1 HEAD | grep '^docker/' | cut -d/ -f2 | sort | uniq) echo "Modified folders: $folders" echo "::set-output name=folders::$folders" + - name: Set condition for deployment + id: set-condition + run: | + if [ -z "${{ steps.detect-changes.outputs.folders }}" ]; then + echo "No relevant changes detected." + echo "::set-output name=continue::false" + else + echo "Relevant changes detected." + echo "::set-output name=continue::true" + fi + + conditional-deploy: + if: needs.deploy.outputs.continue == 'true' + runs-on: ubuntu-22.04 + needs: deploy + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Deploy to hosts run: | - IFS=' ' read -r -a folder_array <<< "${{ steps.detect-changes.outputs.folders }}" + IFS=' ' read -r -a folder_array <<< "${{ needs.deploy.outputs.folders }}" for folder in "${folder_array[@]}"; do case $folder in arrs)