Skip to content

Commit 12202f1

Browse files
JackPlowmanCorbisc
authored andcommitted
Update Make Devops Library (#328)
Update make devops library
1 parent 11c20d2 commit 12202f1

49 files changed

Lines changed: 344 additions & 273 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build/automation/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20211010103151-6b3f50e-0.8.0
1+
20220305083544-02c220f-snapshot

build/automation/init.mk

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ devops-copy: ### Copy the DevOps automation toolchain scripts from this codebase
108108
cp -fv build/automation/lib/project/template/.github/CODEOWNERS $(DIR)/.github
109109
cp -fv build/automation/lib/project/template/.gitattributes $(DIR)
110110
)
111+
mkdir -p $(DIR)/.vscode
112+
cp -fv build/automation/lib/project/template/.vscode/extensions.json $(DIR)/.vscode
111113
cp -fv build/automation/tmp/.gitignore $(DIR)/build/automation/tmp/.gitignore
112114
cp -fv LICENSE.md $(DIR)/build/automation/LICENSE.md
113115
[ -f $(DIR)/docker/docker-compose.yml ] && rm -fv $(DIR)/docker/.gitkeep
@@ -225,6 +227,8 @@ devops-update devops-synchronise: ### Update/upgrade the DevOps automation toolc
225227
cp -fv build/automation/lib/project/template/.github/CODEOWNERS $(PARENT_PROJECT_DIR)/.github
226228
cp -fv build/automation/lib/project/template/.gitattributes $(PARENT_PROJECT_DIR)
227229
)
230+
mkdir -p $(PARENT_PROJECT_DIR)/.vscode
231+
cp -fv build/automation/lib/project/template/.vscode/extensions.json $(PARENT_PROJECT_DIR)/.vscode/extensions.json
228232
cp -fv build/automation/tmp/.gitignore $(PARENT_PROJECT_DIR)/build/automation/tmp/.gitignore
229233
cp -fv LICENSE.md $(PARENT_PROJECT_DIR)/build/automation/LICENSE.md
230234
[ -f $(PARENT_PROJECT_DIR)/docker/docker-compose.yml ] && rm -fv $(PARENT_PROJECT_DIR)/docker/.gitkeep
@@ -284,7 +288,9 @@ devops-update devops-synchronise: ### Update/upgrade the DevOps automation toolc
284288
if [ 0 -lt $$(git status -s | wc -l) ]; then
285289
git add .
286290
if [[ "$(PERFORM_COMMIT)" =~ ^(true|yes|y|on|1|TRUE|YES|Y|ON)$$ ]]; then
287-
git commit -S -m "Update automation scripts to $$version" || echo "Please, check and commit the changes with the following message: \"Update automation scripts to $$version\""
291+
git commit -S -m "Update automation scripts to $$version"
292+
else
293+
echo "Please, check and commit the changes with the following message: \"Update automation scripts to $$version\""
288294
fi
289295
fi
290296
}
@@ -573,29 +579,29 @@ VAR_DIR := $(abspath $(DEVOPS_PROJECT_DIR)/var)
573579
VAR_DIR_REL := $(shell echo $(VAR_DIR) | sed "s;$(PROJECT_DIR);;g")
574580

575581
APPLICATION_DIR := $(abspath $(or $(APPLICATION_DIR), $(PROJECT_DIR)/application))
576-
APPLICATION_DIR_REL = $(shell echo $(APPLICATION_DIR) | sed "s;$(PROJECT_DIR);;g")
582+
APPLICATION_DIR_REL := $(shell echo $(APPLICATION_DIR) | sed "s;$(PROJECT_DIR);;g")
577583
APPLICATION_TEST_DIR := $(abspath $(or $(APPLICATION_TEST_DIR), $(PROJECT_DIR)/test))
578584
APPLICATION_TEST_DIR_REL = $(shell echo $(APPLICATION_TEST_DIR) | sed "s;$(PROJECT_DIR);;g")
579585
CONFIG_DIR := $(abspath $(or $(CONFIG_DIR), $(PROJECT_DIR)/config))
580-
CONFIG_DIR_REL = $(shell echo $(CONFIG_DIR) | sed "s;$(PROJECT_DIR);;g")
586+
CONFIG_DIR_REL := $(shell echo $(CONFIG_DIR) | sed "s;$(PROJECT_DIR);;g")
581587
DATA_DIR := $(abspath $(or $(DATA_DIR), $(PROJECT_DIR)/data))
582-
DATA_DIR_REL = $(shell echo $(DATA_DIR) | sed "s;$(PROJECT_DIR);;g")
588+
DATA_DIR_REL := $(shell echo $(DATA_DIR) | sed "s;$(PROJECT_DIR);;g")
583589
DEPLOYMENT_DIR := $(abspath $(or $(DEPLOYMENT_DIR), $(PROJECT_DIR)/deployment))
584590
DEPLOYMENT_DIR_REL = $(shell echo $(DEPLOYMENT_DIR) | sed "s;$(PROJECT_DIR);;g")
585591
GITHOOKS_DIR := $(abspath $(ETC_DIR)/githooks)
586-
GITHOOKS_DIR_REL = $(shell echo $(GITHOOKS_DIR) | sed "s;$(PROJECT_DIR);;g")
592+
GITHOOKS_DIR_REL := $(shell echo $(GITHOOKS_DIR) | sed "s;$(PROJECT_DIR);;g")
587593
DOCUMENTATION_DIR := $(abspath $(or $(DOCUMENTATION_DIR), $(PROJECT_DIR)/documentation))
588-
DOCUMENTATION_DIR_REL = $(shell echo $(DOCUMENTATION_DIR) | sed "s;$(PROJECT_DIR);;g")
594+
DOCUMENTATION_DIR_REL := $(shell echo $(DOCUMENTATION_DIR) | sed "s;$(PROJECT_DIR);;g")
589595
INFRASTRUCTURE_DIR := $(abspath $(or $(INFRASTRUCTURE_DIR), $(PROJECT_DIR)/infrastructure))
590-
INFRASTRUCTURE_DIR_REL = $(shell echo $(INFRASTRUCTURE_DIR) | sed "s;$(PROJECT_DIR);;g")
596+
INFRASTRUCTURE_DIR_REL := $(shell echo $(INFRASTRUCTURE_DIR) | sed "s;$(PROJECT_DIR);;g")
591597
JQ_DIR_REL := $(shell echo $(abspath $(LIB_DIR)/jq) | sed "s;$(PROJECT_DIR);;g")
592598

593-
GIT_BRANCH_PATTERN_MAIN := ^(master|develop)$$
594-
GIT_BRANCH_PATTERN_PREFIX := ^(task|spike|automation|test|bugfix|hotfix|fix|release|migration)
599+
GIT_BRANCH_PATTERN_MAIN := ^(main|master|develop)$$
600+
GIT_BRANCH_PATTERN_PREFIX := ^(task|spike|automation|test|bugfix|hotfix|fix|release|migration|refactor)
595601
GIT_BRANCH_PATTERN_SUFFIX := ([A-Z]{2,5}-([0-9]{1,5}|X{1,5})_[A-Z][a-z]+_[A-Za-z0-9]+_[A-Za-z0-9_]+)$$
596-
GIT_BRANCH_PATTERN_ADDITIONAL := ^(task/Update_(automation_scripts|dependencies|documentation|tests|versions)|task/Refactor|devops/[A-Z][a-z]+_[A-Za-z0-9_]+_[A-Za-z0-9_]+|alignment/[A-Z][a-z]+_[A-Za-z0-9_]+_[A-Za-z0-9_]+|dependabot/.*)$$
602+
GIT_BRANCH_PATTERN_ADDITIONAL := ^(task/Update_(automation_scripts|dependencies|documentation|tests|versions)|task/Refactor|task/Refactor_[A-Za-z0-9_]+_[A-Za-z0-9_]+|refactor/[A-Z][a-z]+_[A-Za-z0-9_]+_[A-Za-z0-9_]+|devops/[A-Z][a-z]+_[A-Za-z0-9_]+_[A-Za-z0-9_]+|alignment/[A-Z][a-z]+_[A-Za-z0-9_]+_[A-Za-z0-9_]+|dependabot/.*)$$
597603
GIT_BRANCH_PATTERN := $(GIT_BRANCH_PATTERN_MAIN)|$(GIT_BRANCH_PATTERN_PREFIX)/$(GIT_BRANCH_PATTERN_SUFFIX)|$(GIT_BRANCH_PATTERN_ADDITIONAL)
598-
GIT_BRANCH_MAX_LENGTH := 72
604+
GIT_BRANCH_MAX_LENGTH := 100
599605
GIT_TAG_PATTERN := [0-9]{12,14}-[a-z]{3,10}
600606
GIT_COMMIT_MESSAGE_PATTERN_MAIN := ^(([A-Z]{2,5}-([0-9]{1,5}|X{1,5}) [A-Z][a-z]+ [[:print:]]+ [[:print:]]+[^!?,.:;=-]|Update (automation scripts|dependencies|documentation|tests|versions))([[:print:]][^!?,.:;=-])*)$$|^((Update|Refactor|Automate|Test|Fix|Release|Migrate) [[:print:]]+ [[:print:]]+[^!?,.:;=-])$$
601607
GIT_COMMIT_MESSAGE_PATTERN_ADDITIONAL := ^([A-Z]{2,5}-([0-9]{1,5}|X{1,5}) [A-Z][a-z]+ [[:print:]]+ [[:print:]]+[^!?,.:;=-]|[A-Z][a-z]+ [[:print:]]+ [[:print:]]+[^!?,.:;=-])$$|([A-Z][[:print:]]+ \[ci:[[:blank:]]?[,a-z0-9-]+\])
@@ -622,12 +628,15 @@ GOSS_PATH := $(BIN_DIR)/goss-linux-amd64
622628
SETUP_COMPLETE_FLAG_FILE := $(TMP_DIR)/.make-devops-setup-complete
623629

624630
PROFILE := $(or $(PROFILE), local)
625-
ENVIRONMENT := $(or $(ENVIRONMENT), $(or $(shell ([ $(PROFILE) = local ] && echo local) || (echo $(BUILD_BRANCH) | grep -Eoq '$(GIT_BRANCH_PATTERN_SUFFIX)' && (echo $(BUILD_BRANCH) | grep -Eo '[A-Za-z]{2,5}-[0-9]{1,5}' | tr '[:upper:]' '[:lower:]') || (echo $(BUILD_BRANCH) | grep -Eoq '^tags/$(GIT_TAG_PATTERN)' && echo $(PROFILE)) || (echo $(BUILD_BRANCH) | grep -Eoq '$(GIT_BRANCH_PATTERN_MAIN)' && echo $(PROFILE)))), unknown))
631+
ENVIRONMENT := $(or $(ENVIRONMENT), $(or $(shell ([ $(PROFILE) = local ] && echo local) || (echo $(BUILD_BRANCH) | grep -Eoq '$(GIT_BRANCH_PATTERN_SUFFIX)' && (echo $(BUILD_BRANCH) | grep -Eo '[A-Za-z]{2,5}-[0-9]{1,5}' | tr '[:upper:]' '[:lower:]') || (echo $(BUILD_BRANCH) | grep -Eoq '^tags/$(GIT_TAG_PATTERN)' && echo $(PROFILE)) || (([ $(BUILD_BRANCH) = main ] || [ $(BUILD_BRANCH) = master ]) && echo $(PROFILE)))), unknown))
626632

627633
PATH_HOMEBREW := /opt/homebrew/opt/coreutils/libexec/gnubin:/opt/homebrew/opt/findutils/libexec/gnubin:/opt/homebrew/opt/grep/libexec/gnubin:/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/opt/gnu-tar/libexec/gnubin:/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/opt/findutils/libexec/gnubin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/gnu-tar/libexec/gnubin:/usr/local/opt/make/libexec/gnubin
628634
PATH_DEVOPS := $(BIN_DIR):$(HOME)/.pyenv/bin:$(HOME)/.pyenv/shims
629635
PATH_SYSTEM := /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
630636

637+
BASH_VERSION := $(shell bash --version | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
638+
MAKE_VERSION := $(shell make --version | grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' | head -1)
639+
631640
# ==============================================================================
632641
# `make` configuration
633642

build/automation/lib/docker.mk

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ DOCKER_NETWORK = $(PROJECT_GROUP_SHORT)/$(PROJECT_NAME_SHORT)/$(BUILD_ID)
99
DOCKER_REGISTRY = $(AWS_ECR)/$(PROJECT_GROUP_SHORT)/$(PROJECT_NAME_SHORT)
1010
DOCKER_LIBRARY_REGISTRY = nhsd
1111

12-
DOCKER_ALPINE_VERSION = 3.14.2
12+
DOCKER_ALPINE_VERSION = 3.15.0
1313
DOCKER_COMPOSER_VERSION = 2.0.13
1414
DOCKER_CONFIG_LINT_VERSION = v1.6.0
15-
DOCKER_DIND_VERSION = 20.10.8-dind
16-
DOCKER_EDITORCONFIG_CHECKER_VERSION = 2.3.5
17-
DOCKER_ELASTICSEARCH_VERSION = 7.13.0
15+
DOCKER_DIND_VERSION = 20.10.12-dind
16+
DOCKER_EDITORCONFIG_CHECKER_VERSION = 2.4.0
17+
DOCKER_ELASTICSEARCH_VERSION = 7.17.0
1818
DOCKER_GRADLE_VERSION = 7.0.2-jdk$(JAVA_VERSION)
1919
DOCKER_LOCALSTACK_VERSION = $(LOCALSTACK_VERSION)
2020
DOCKER_MAVEN_VERSION = 3.8.1-openjdk-$(JAVA_VERSION)-slim
21-
DOCKER_NGINX_VERSION = 1.21.0-alpine
21+
DOCKER_NGINX_VERSION = 1.21.6-alpine
2222
DOCKER_NODE_VERSION = $(NODE_VERSION)-alpine
2323
DOCKER_OPENJDK_VERSION = $(JAVA_VERSION)-alpine
2424
DOCKER_POSTGRES_VERSION = $(POSTGRES_VERSION)-alpine
@@ -822,14 +822,14 @@ _docker-get-login-password:
822822

823823
_docker-get-docker-compose-yml:
824824
yml=$(or $(YML), $(DOCKER_COMPOSE_YML))
825-
# if [ "$(BUILD_ID)" != 0 ]; then
826-
# make -s docker-run-tools ARGS="--env BUILD_ID=$(BUILD_ID)" CMD=" \
827-
# $(BIN_DIR_REL)/docker-compose-processor.py \
828-
# $$(echo $$yml | sed 's;//;/;g' | sed "s;$(PROJECT_DIR);;g") \
829-
# $(TMP_DIR_REL)/docker-compose-$(BUILD_ID).yml \
830-
# "
831-
# yml=$(TMP_DIR)/docker-compose-$(BUILD_ID).yml
832-
# fi
825+
if [ "$(BUILD_ID)" != 0 ]; then
826+
make -s docker-run-tools ARGS="--env BUILD_ID=$(BUILD_ID)" CMD=" \
827+
$(BIN_DIR_REL)/docker-compose-processor.py \
828+
$$(echo $$yml | sed 's;//;/;g' | sed "s;$(PROJECT_DIR);;g") \
829+
$(TMP_DIR_REL)/docker-compose-$(BUILD_ID).yml \
830+
"
831+
yml=$(TMP_DIR)/docker-compose-$(BUILD_ID).yml
832+
fi
833833
echo $$yml
834834

835835
_docker-is-lib-image:
@@ -846,13 +846,13 @@ docker-image-get-digest: ### Get image digest by matching tag pattern - mandato
846846
REPO=$$(make _docker-get-reg)/$(NAME) \
847847
TAG=$(or $(VERSION), $(TAG))
848848

849-
docker-image-find-and-version-as: ### Find image based on git commit hash and tag it - mandatory: VERSION|TAG=[new version/tag],NAME=[image name]; optional: COMMIT=[git commit hash, defaults to HEAD]
850-
commit=$(or $(COMMIT), master)
849+
docker-image-find-and-version-as: ### Find image based on git commit hash and tag it - mandatory: VERSION|TAG=[new version/tag],NAME=[image name]; optional: COMMIT=[git commit hash, defaults to main]
850+
commit=$(or $(COMMIT), $$(make git-branch-get-main-name))
851851
hash=$$(make git-commit-get-hash COMMIT=$$commit)
852852
digest=$$(make docker-image-get-digest NAME=$(NAME) TAG=$$hash)
853853
make docker-pull NAME=$(NAME) DIGEST=$$digest
854854
make docker-tag NAME=$(NAME) DIGEST=$$digest TAG=$(or $(VERSION), $(TAG))
855-
make docker-push-for-production NAME=$(NAME) TAG=$(or $(VERSION), $(TAG))
855+
make docker-push NAME=$(NAME) TAG=$(or $(VERSION), $(TAG))
856856

857857
docker-repo-list-tags: ### List repository tags - mandatory: REPO=[repository name]
858858
(

build/automation/lib/docker/image/elasticsearch/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
FROM bitnami/elasticsearch:latest
22
ENV \
33
DEBIAN_FRONTEND="noninteractive" \
4-
GOSU_VERSION="1.12" \
4+
GOSU_VERSION="1.14" \
55
LANG="C.UTF-8" \
66
LC_ALL="C.UTF-8" \
77
SYSTEM_USER_GID="999" \
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20210530
1+
20220301

build/automation/lib/docker/image/nginx/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ FROM nginx:latest as base
44

55
FROM base as builder
66
ENV \
7-
GOSU_VERSION="1.12"
7+
GOSU_VERSION="1.14"
88

99
RUN set -eux && \
1010
\
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20210530
1+
20220301

build/automation/lib/docker/image/nginx/assets/sbin/init.d/50-init.sh

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,14 @@ function _replace_variables() {
3838
for str in $(cat $file | grep -Eo "[A-Za-z0-9_]*_TO_REPLACE" | sort | uniq); do
3939
key=$(cut -d "=" -f1 <<<"$str" | sed "s/_TO_REPLACE//g")
4040
value=$(echo $(eval echo "\$$key"))
41-
[ -z "$value" ] && echo "WARNING: Variable $key has no value in '$file'" || sed -i \
42-
"s;${key}_TO_REPLACE;${value//&/\\&};g" \
43-
$file ||:
41+
[ -z "$value" ] && echo "WARNING: Variable $key has no value in '$file'" || (
42+
# Replace `${VARIABLE_TO_REPLACE}`
43+
sed -i "s;\${${key}_TO_REPLACE};${value//&/\\&};g" $file ||:
44+
# Replace `$VARIABLE_TO_REPLACE`
45+
sed -i "s;\$${key}_TO_REPLACE;${value//&/\\&};g" $file ||:
46+
# Replace `VARIABLE_TO_REPLACE`
47+
sed -i "s;${key}_TO_REPLACE;${value//&/\\&};g" $file ||:
48+
)
4449
done
4550
}
4651

build/automation/lib/docker/image/node/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ FROM node:latest as base
44

55
FROM base as builder
66
ENV \
7-
GOSU_VERSION="1.12"
7+
GOSU_VERSION="1.14"
88

99
RUN set -eux && \
1010
\
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20210530
1+
20220301

0 commit comments

Comments
 (0)