Skip to content

Commit

Permalink
Merge pull request #8436 from dragonchaser/check-env-var-annotations
Browse files Browse the repository at this point in the history
Check env var annotations
  • Loading branch information
dragonchaser authored Feb 13, 2024
2 parents befc73b + 1ef0916 commit f08d286
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 0 deletions.
51 changes: 51 additions & 0 deletions .make/check-env-var-annotations.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash

# The following grep will filter out every line containing an `env` annotation
# it will ignore every line that has allready a valid `introductionVersion` annotation
#
# valid examples:
#
# introductionVersion:"pre5.0"
# introductionVersion:"5.0"
# introductionVersion:"4.9.3-rc5"
# introductionVersion:"5.0.1-cheesecake"
# introductionVersion:"5.10.100.15"
# introductionVersion:"0.0"
#
# invalid examples:
#
# introductionVersion:"5.0cheesecake"
# introductionVersion:"5"
# introductionVersion:"5blueberry"
# introductionVersion:"5-lasagna"
# introductionVersion:"4.9.3rc5"

ERROR=0

SEMVER_REGEX="([0-9]|[1-9][0-9]*)(\.([0-9]|[1-9][0-9]*)){1,2}(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?"

QUERY_INTRO=$(git grep "env:" -- '*.go' |grep -v -P "introductionVersion:\"($SEMVER_REGEX|(pre5\.0))\""|grep -v "_test.go"|grep -v "vendor/")

RESULTS_INTRO=$(echo "${QUERY_INTRO}"|wc -l)
if [ "${RESULTS_INTRO}" -gt 0 ]; then
echo "==============================================================================================="
echo "The following ${RESULTS_INTRO} files contain an invalid introductionVersion annotation:"
echo "==============================================================================================="
echo "$QUERY_INTRO"
ERROR=1
fi

# The following grep will filter out every line containing an `env` annotation
# it will ignore every line that has allready a valid `desc` annotation

QUERY_DESC=$(git grep "env:" -- '*.go' |grep -v -P "desc:\".{10,}\""|grep -v "_test.go"|grep -v "vendor/")

RESULTS_DESC=$(echo "${QUERY_DESC}"|wc -l)
if [ "${RESULTS_DESC}" -gt 0 ]; then
echo "==============================================================================================="
echo "The following ${RESULTS_DESC} files contain an invalid description annotation:"
echo "==============================================================================================="
echo "$QUERY_DESC"
ERROR=1
fi
exit ${ERROR}
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,10 @@ docs-generate:
$(MAKE) --no-print-directory -C docs docs-generate || exit 1
cp docs/services/general-info/env-var-deltas/*.adoc docs/services/_includes/adoc/env-var-deltas/

.PHONY: check-env-var-annotations
check-env-var-annotations:
.make/check-env-var-annotations.sh

.PHONY: ci-go-generate
ci-go-generate:
@for mod in $(OCIS_MODULES); do \
Expand Down
6 changes: 6 additions & 0 deletions changelog/unreleased/env-var-annotations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Enhancement: Add a make step to validate the env var annotations

We have added a make step `make validate-env-var-annotations` to validate the env var annotations in to the environment variables.

https://github.com/owncloud/ocis/pull/8436
https://github.com/owncloud/ocis/issues/8258

0 comments on commit f08d286

Please sign in to comment.