From 10598363c71c8c49a9e214017b095c182dc27163 Mon Sep 17 00:00:00 2001 From: Anil Belur Date: Fri, 25 Aug 2023 13:47:18 +1000 Subject: [PATCH] CI: Update GHA packer validation job The job steps are run optionally when changes includes files that found in the path filter. Change-Id: I2f23b48bca6b4f9ac7a72d36b7238c5088e70267 Signed-off-by: Anil Belur --- .github/workflows/gerrit-verify.yaml | 48 ++++++++++++++++++---------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/.github/workflows/gerrit-verify.yaml b/.github/workflows/gerrit-verify.yaml index 3fa83baa0..eb49273dc 100644 --- a/.github/workflows/gerrit-verify.yaml +++ b/.github/workflows/gerrit-verify.yaml @@ -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: -- 2.36.6