stages: - generate - lint - trigger generate: stage: generate artifacts: paths: - distros/**/*.pkrvars.hcl script: |- for vars in $(find distros/ -name '*.pkrvars.hcl.sh'); do "./${vars}" done validate: stage: lint needs: - generate cache: paths: - /var/lib/gitlab-runner/.config/packer/plugins/ script: |- set -exo pipefail packer init sources for vars in $(find distros/ -name '*.pkrvars.hcl'); do packer validate -except=upload -var-file=${vars} sources/ done shellcheck: stage: lint script: |- shellcheck --version shellcheck $(find . -name '*.sh') distros: stage: generate image: python:3.11 artifacts: reports: dotenv: build.env paths: - .gitlab-ci-build.yml script: |- xonsh ./build.xsh -a --list echo "BUILD=$(date +'%Y.%m.%d.%H')" >> build.env trigger: stage: trigger trigger: include: - artifact: .gitlab-ci-build.yml job: distros variables: PARENT_PIPELINE_ID: $CI_PIPELINE_ID