Skip to content

Commit

Permalink
CI: Update GHA packer validation job
Browse files Browse the repository at this point in the history
The job steps are run optionally when changes includes
files that found in the path filter.

Change-Id: I2f23b48bca6b4f9ac7a72d36b7238c5088e70267
Signed-off-by: Anil Belur <[email protected]>
  • Loading branch information
askb committed Aug 25, 2023
1 parent 35fc758 commit 1059836
Showing 1 changed file with 32 additions and 16 deletions.
48 changes: 32 additions & 16 deletions .github/workflows/gerrit-verify.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -148,49 +148,63 @@ jobs:
needs: prepare
runs-on: ubuntu-latest
steps:
- uses: lfit/[email protected]
- 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
Expand All @@ -210,6 +224,7 @@ jobs:
continue
fi
echo "::group::$varfile"
echo "-----> Test var: $varfile"
for template in "${templates[@]}"; do
if [[ "$template" == *"variables.pkr.hcl"* ]] || \
Expand All @@ -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
Expand All @@ -234,6 +249,7 @@ jobs:
exit 1
fi
done
echo "::endgroup::"
done
vote:
Expand Down

0 comments on commit 1059836

Please sign in to comment.