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
continue
fi
+ echo "::group::$varfile"
echo "-----> Test var: $varfile"
for template in "${templates[@]}"; do
if [[ "$template" == *"variables.pkr.hcl"* ]] || \
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
exit 1
fi
done
+ echo "::endgroup::"
done
vote: