CI: Update GHA packer validation job
[releng/builder.git] / .github / workflows / gerrit-verify.yaml
index 3fa83baa0f71a7926e360a777c88327e0d7cf56c..eb49273dc33f58bb2be3a8121f78743399783dae 100644 (file)
@@ -148,49 +148,63 @@ jobs:
     needs: prepare
     runs-on: ubuntu-latest
     steps:
-      - uses: lfit/checkout-gerrit-change-action@v0.4
+      - name: Gerrit Checkout
+        # yamllint disable-line rule:line-length
+        uses: lfit/checkout-gerrit-change-action@70360ca2f8bee3e6a15224d8a03f8e017b1ac91f # v0.4
         with:
           gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
           delay: "0s"
       - name: Clone git submodules
+        shell: bash
         run: git submodule update --init
+      - name: Check for changes
+        # yamllint disable-line rule:line-length
+        uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
+        id: changes
+        with:
+          base: ${{ inputs.GERRIT_BRANCH }}
+          ref: ${{ inputs.GERRIT_PATCHSET_REVISION }}
+          filters: |
+            src:
+              - 'packer/**'
       - name: Setup packer
+        if: steps.changes.outputs.src == 'true'
         uses: hashicorp/setup-packer@main
         id: setup
         with:
           version: ${{ env.PACKER_VERSION }}
       - name: Create cloud-env file required for packer
         id: create-cloud-env-file
+        if: steps.changes.outputs.src == 'true'
         shell: bash
         run: |
           echo "${{ secrets.CLOUDS_ENV_B64 }}" | base64 --decode \
-                > "${GITHUB_WORKSPACE}/cloud-env.pkrvars.hcl"
+                  > "${GITHUB_WORKSPACE}/cloud-env.pkrvars.hcl"
       - name: Create cloud.yaml file for openstack client
         id: create-cloud-yaml-file
+        if: steps.changes.outputs.src == 'true'
         shell: bash
         run: |
           mkdir -p "$HOME/.config/openstack"
           echo "${{ secrets.CLOUDS_YAML_B64 }}" | base64 --decode \
-                > "$HOME/.config/openstack/clouds.yaml"
-      - uses: actions/setup-python@v4
-        id: setup-python
+                  > "$HOME/.config/openstack/clouds.yaml"
+      - name: Setup Python
+        if: steps.changes.outputs.src == 'true'
+        # yamllint disable-line rule:line-length
+        uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0
         with:
           python-version: "3.11"
       - name: Install openstack deps
         id: install-openstack-deps
+        if: steps.changes.outputs.src == 'true'
+        shell: bash
         run: |
           python -m pip install --upgrade pip
           pip install python-openstackclient
           pip freeze
-      - uses: dorny/paths-filter@v2
-        id: changes
-        with:
-          base: ${{ inputs.GERRIT_BRANCH }}
-          ref: ${{ inputs.GERRIT_PATCHSET_REVISION }}
-          filters: |
-            src:
-              - 'packer/**'
-      - if: steps.changes.outputs.src == 'true'
+      - name: Verify packer files
+        if: steps.changes.outputs.src == 'true'
+        shell: bash
         run: |
           set -x
           cd packer
@@ -210,6 +224,7 @@ jobs:
                   continue
               fi
 
+              echo "::group::$varfile"
               echo "-----> Test var: $varfile"
               for template in "${templates[@]}"; do
                   if [[ "$template" == *"variables.pkr.hcl"* ]] || \
@@ -222,9 +237,9 @@ jobs:
                       packer init "$template"
                   fi
 
-                  LOG_FILE_NAME="packer-validate-${varfile##*/}-${template##*/}.log"
+                  LOG_FILE="packer-validate-${varfile##*/}-${template##*/}.log"
                   export PACKER_LOG="yes"
-                  export PACKER_LOG_PATH="${PACKER_LOGS_DIR}/${LOG_FILE_NAME}"
+                  export PACKER_LOG_PATH="$PACKER_LOGS_DIR/$LOG_FILE"
                   if output=$(OS_CLOUD=${{ env.OS_CLOUD }} packer validate \
                         -var-file="${GITHUB_WORKSPACE}/cloud-env.pkrvars.hcl" \
                         -var-file="$varfile" "$template"); then
@@ -234,6 +249,7 @@ jobs:
                       exit 1
                   fi
               done
+              echo "::endgroup::"
           done
 
   vote: