diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 439ff341e..e49714f7b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -276,15 +276,7 @@ jobs: - uses: redhat-actions/oc-installer@v1 - name: Process template run: | - mkdir processed-templates - oc process -f templates/openshift/composer.yml \ - -p IMAGE_TAG=image_tag \ - --local \ - -o yaml > processed-templates/composer.yml - oc process -f templates/openshift/maintenance.yml \ - -p IMAGE_TAG=image_tag \ - --local \ - -o yaml > processed-templates/maintenance.yml + make process-templates - uses: stackrox/kube-linter-action@v1.0.5 with: diff --git a/.gitignore b/.gitignore index f4cc59761..b83ec1955 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ __pycache__ /docs/osbuild-composer.7 .cache container_composer_golangci_built.info +processed-templates + diff --git a/Makefile b/Makefile index 3e3171085..92be7c001 100644 --- a/Makefile +++ b/Makefile @@ -89,6 +89,7 @@ help: @echo " push-check: Replicates the github workflow checks as close as possible" @echo " (do this before pushing!)" @echo " lint: Runs linters as close as github workflow as possible" + @echo " process-templates: Execute the OpenShift CLI to check the templates" $(BUILDDIR)/: mkdir -p "$@" @@ -166,6 +167,7 @@ clean: rm -rf $(BUILDDIR)/bin/ rm -rf $(CURDIR)/rpmbuild rm -rf container_composer_golangci_built.info + rm -rf $(BUILDDIR)/$(PROCESSED_TEMPLATE_DIR) .PHONY: push-check push-check: lint build unit-tests srpm man @@ -293,3 +295,24 @@ container_composer_golangci_built.info: Makefile Containerfile_golangci_lint too .PHONY: lint lint: $(GOLANGCI_LINT_CACHE_DIR) container_composer_golangci_built.info podman run -t --rm -v $(SRCDIR):/app:z -v $(GOLANGCI_LINT_CACHE_DIR):/root/.cache:z -w /app $(GOLANGCI_COMPOSER_IMAGE) golangci-lint run -v + +# The OpenShift CLI - maybe get it from https://access.redhat.com/downloads/content/290 +OC_EXECUTABLE ?= oc + +OPENSHIFT_TEMPLATES_DIR := templates/openshift +OPENSHIFT_TEMPLATES := $(notdir $(wildcard $(OPENSHIFT_TEMPLATES_DIR)/*.yml)) + +PROCESSED_TEMPLATE_DIR := $(BUILDDIR)/processed-templates + +$(PROCESSED_TEMPLATE_DIR): $(BUILDDIR) + mkdir -p $@ + +$(PROCESSED_TEMPLATE_DIR)/%.yml: $(PROCESSED_TEMPLATE_DIR) $(OPENSHIFT_TEMPLATES_DIR)/%.yml + $(OC_EXECUTABLE) process -f $(OPENSHIFT_TEMPLATES_DIR)/$*.yml \ + -p IMAGE_TAG=image_tag \ + --local \ + -o yaml > $@ + +.PHONY: process-templates +process-templates: $(addprefix $(PROCESSED_TEMPLATE_DIR)/, $(OPENSHIFT_TEMPLATES)) +