Skip to content

Commit dd1d534

Browse files
LPowlettjasonedm
authored andcommitted
Added support for internal build levels
* Dummy change to see if things are working * Initial internal build support * Add SSH key support * Add SSH key support pt 2 * Add SSH key support pt 3 * Add Push support * Full package support * Correct typo * Correct typo 2 * Disable some tests as per master * Change rsync variable names * Fix build issues * Remove the -full package support for now Co-authored-by: Jason Edmeades <jason_edmeades@uk.ibm.com>
1 parent c39a532 commit dd1d534

File tree

5 files changed

+88
-33
lines changed

5 files changed

+88
-33
lines changed

Makefile

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ MQ_ARCHIVE_DEV ?= $(MQ_VERSION)-IBM-MQ-Advanced-for-Developers-Non-Install-$(MQ_
3838
# MQ_SDK_ARCHIVE specifies the archive to use for building the golang programs. Defaults vary on developer or advanced.
3939
MQ_SDK_ARCHIVE ?= $(MQ_ARCHIVE_DEV_$(MQ_VERSION))
4040
# Options to `go test` for the Docker tests
41-
TEST_OPTS_DOCKER ?=
41+
TEST_OPTS_DOCKER ?=
4242
# Timeout for the Docker tests
4343
TEST_TIMEOUT_DOCKER ?= 30m
4444
# MQ_IMAGE_ADVANCEDSERVER is the name of the built MQ Advanced image
@@ -113,7 +113,7 @@ endif
113113

114114
# LTS_TAG is the tag modifier for an LTS container build
115115
LTS_TAG=
116-
ifeq "$(LTS)" "true"
116+
ifeq "$(LTS)" "true"
117117
ifneq "$(LTS_TAG_OVERRIDE)" "$(EMPTY)"
118118
LTS_TAG=$(LTS_TAG_OVERRIDE)
119119
else
@@ -201,18 +201,37 @@ incubating: build-explorer
201201
downloads/$(MQ_ARCHIVE_DEV):
202202
$(info $(SPACER)$(shell printf $(TITLE)"Downloading IBM MQ Advanced for Developers "$(MQ_VERSION)$(END)))
203203
mkdir -p downloads
204+
ifneq "$(BUILD_RSYNC_SERVER)" "$(EMPTY)"
205+
# Use key which is not stored in the repository to fetch the files from the fileserver
206+
curl -L $(BUILD_RSYNC_ENCRYPTED_KEY_URL) -o ./host.key.gpg
207+
@echo $(BUILD_RSYNC_ENCRYPTION_PASSWORD)|gpg --passphrase-fd 0 ./host.key.gpg
208+
chmod 600 ./host.key
209+
rsync -rv -e "ssh -o BatchMode=yes -q -o StrictHostKeyChecking=no -i ./host.key" --include="*/" --include="*.tar.gz" --exclude="*" $(BUILD_RSYNC_USER)@$(BUILD_RSYNC_SERVER):"$(BUILD_RSYNC_PATH)" downloads/$(MQ_ARCHIVE_DEV)
210+
-@rm host.key.gpg host.key
211+
else
204212
ifneq "$(MQ_ARCHIVE_REPOSITORY_DEV)" "$(EMPTY)"
205213
curl -u $(MQ_ARCHIVE_REPOSITORY_USER):$(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) -X GET "$(MQ_ARCHIVE_REPOSITORY_DEV)" -o downloads/$(MQ_ARCHIVE_DEV)
206214
else
207215
curl -L https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqadv/$(MQ_ARCHIVE_DEV) -o downloads/$(MQ_ARCHIVE_DEV)
208216
endif
217+
endif
209218

210219
downloads/$(MQ_ARCHIVE):
211220
$(info $(SPACER)$(shell printf $(TITLE)"Downloading IBM MQ Advanced "$(MQ_VERSION)$(END)))
212221
mkdir -p downloads
222+
ifneq "$(BUILD_RSYNC_SERVER)" "$(EMPTY)"
223+
# Use key which is not stored in the repository to fetch the files from the fileserver
224+
-@rm host.key.gpg host.key
225+
curl -L $(BUILD_RSYNC_ENCRYPTED_KEY_URL) -o ./host.key.gpg
226+
@echo $(BUILD_RSYNC_ENCRYPTION_PASSWORD)|gpg --passphrase-fd 0 ./host.key.gpg
227+
chmod 600 ./host.key
228+
rsync -rv -e "ssh -o BatchMode=yes -q -o StrictHostKeyChecking=no -i ./host.key" --include="*/" --include="*.tar.gz" --exclude="*" $(BUILD_RSYNC_USER)@$(BUILD_RSYNC_SERVER):"$(BUILD_RSYNC_PATH)" downloads/$(MQ_ARCHIVE)
229+
-@rm host.key.gpg host.key
230+
else
213231
ifneq "$(MQ_ARCHIVE_REPOSITORY)" "$(EMPTY)"
214232
curl -u $(MQ_ARCHIVE_REPOSITORY_USER):$(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) -X GET "$(MQ_ARCHIVE_REPOSITORY)" -o downloads/$(MQ_ARCHIVE)
215233
endif
234+
endif
216235

217236
.PHONY: downloads
218237
downloads: downloads/$(MQ_ARCHIVE_DEV) downloads/$(MQ_SDK_ARCHIVE)
@@ -283,7 +302,7 @@ define build-mq
283302
$(COMMAND) build \
284303
--tag $1:$2 \
285304
--file $3 \
286-
$(EXTRA_ARGS) \
305+
$(EXTRA_ARGS) \
287306
--build-arg IMAGE_REVISION="$(IMAGE_REVISION)" \
288307
--build-arg IMAGE_SOURCE="$(IMAGE_SOURCE)" \
289308
--build-arg IMAGE_TAG="$1:$2" \
@@ -415,15 +434,15 @@ ifneq "$(LTS)" "true"
415434
$(eval MQ_IMAGE_DEVSERVER_S390X_DIGEST=$(shell $(COMMAND) run skopeo:latest --override-os linux inspect --creds $(MQ_ARCHIVE_REPOSITORY_USER):$(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) docker://$(MQ_IMAGE_DEVSERVER_S390X) | jq -r .Digest))
416435
$(info $(shell printf "** Determined the built $(MQ_IMAGE_DEVSERVER_AMD64) has a digest of $(MQ_IMAGE_DEVSERVER_AMD64_DIGEST)**"$(END)))
417436
$(info $(shell printf "** Determined the built $(MQ_IMAGE_DEVSERVER_S390X) has a digest of $(MQ_IMAGE_DEVSERVER_S390X_DIGEST)**"$(END)))
418-
endif
437+
endif
419438
$(eval MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST=$(shell $(COMMAND) run skopeo:latest --override-os linux inspect --creds $(MQ_ARCHIVE_REPOSITORY_USER):$(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) docker://$(MQ_IMAGE_ADVANCEDSERVER_AMD64) | jq -r .Digest))
420439
$(eval MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST=$(shell $(COMMAND) run skopeo:latest --override-os linux inspect --creds $(MQ_ARCHIVE_REPOSITORY_USER):$(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) docker://$(MQ_IMAGE_ADVANCEDSERVER_S390X) | jq -r .Digest))
421440
$(info $(shell printf "** Determined the built $(MQ_IMAGE_ADVANCEDSERVER_AMD64) has a digest of $(MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST)**"$(END)))
422441
$(info $(shell printf "** Determined the built $(MQ_IMAGE_ADVANCEDSERVER_S390X) has a digest of $(MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST)**"$(END)))
423-
ifneq "$(LTS)" "true"
442+
ifneq "$(LTS)" "true"
424443
$(info $(shell printf "** Calling script to create fat-manifest for $(MQ_IMAGE_DEVSERVER_MANIFEST)**"$(END)))
425444
echo $(shell ./travis-build-scripts/create-manifest-list.sh -r $(MQ_DELIVERY_REGISTRY_HOSTNAME) -n $(MQ_DELIVERY_REGISTRY_NAMESPACE) -i $(MQ_IMAGE_DEVSERVER) -t $(MQ_MANIFEST_TAG) -u $(MQ_ARCHIVE_REPOSITORY_USER) -p $(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) -d "$(MQ_IMAGE_DEVSERVER_AMD64_DIGEST) $(MQ_IMAGE_DEVSERVER_S390X_DIGEST)" $(END))
426-
endif
445+
endif
427446
$(info $(shell printf "** Calling script to create fat-manifest for $(MQ_IMAGE_ADVANCEDSERVER_MANIFEST)**"$(END)))
428447
echo $(shell ./travis-build-scripts/create-manifest-list.sh -r $(MQ_DELIVERY_REGISTRY_HOSTNAME) -n $(MQ_DELIVERY_REGISTRY_NAMESPACE) -i $(MQ_IMAGE_ADVANCEDSERVER) -t $(MQ_MANIFEST_TAG) -u $(MQ_ARCHIVE_REPOSITORY_USER) -p $(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) -d "$(MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST) $(MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST)" $(END))
429448

travis-build-scripts/build.sh

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,36 @@ if [ "$TRAVIS_BRANCH" = "$MAIN_BRANCH" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]
2020
echo 'Retrieving global tagcache' && echo -en 'travis_fold:start:tag-cache-retrieve\\r'
2121
./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} -l ./.tagcache --check
2222
./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} -l ./.tagcache --get
23-
echo -en 'travis_fold:end:tag-cache-retrieve\\r'
23+
echo -en 'travis_fold:end:tag-cache-retrieve\\r'
2424
fi
25-
if [ "$LTS" != true ] ; then
25+
if [ -z "$BUILD_INTERNAL_LEVEL" ] ; then
26+
if [ "$LTS" != true ] ; then
27+
echo 'Building Developer JMS test image...' && echo -en 'travis_fold:start:build-devjmstest\\r'
28+
make build-devjmstest
29+
echo -en 'travis_fold:end:build-devjmstest\\r'
30+
echo 'Building Developer image...' && echo -en 'travis_fold:start:build-devserver\\r'
31+
make build-devserver
32+
echo -en 'travis_fold:end:build-devserver\\r'
33+
fi
34+
if [ "$BUILD_ALL" = true ] || [ "$LTS" = true ] ; then
35+
if [[ "$ARCH" = "amd64" || "$ARCH" = "s390x" ]] ; then
36+
echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r'
37+
make build-advancedserver
38+
echo -en 'travis_fold:end:build-advancedserver\\r'
39+
fi
40+
fi
41+
else
2642
echo 'Building Developer JMS test image...' && echo -en 'travis_fold:start:build-devjmstest\\r'
2743
make build-devjmstest
2844
echo -en 'travis_fold:end:build-devjmstest\\r'
29-
echo 'Building Developer image...' && echo -en 'travis_fold:start:build-devserver\\r'
30-
make build-devserver
31-
echo -en 'travis_fold:end:build-devserver\\r'
32-
fi
33-
if [ "$BUILD_ALL" = true ] || [ "$LTS" = true ] ; then
34-
if [[ "$ARCH" = "amd64" || "$ARCH" = "s390x" ]] ; then
35-
echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r'
36-
make build-advancedserver
37-
echo -en 'travis_fold:end:build-advancedserver\\r'
38-
fi
45+
46+
if [[ "$BUILD_INTERNAL_LEVEL" == *".DE"* ]]; then
47+
echo 'Building Developer image...' && echo -en 'travis_fold:start:build-devserver\\r'
48+
make build-devserver
49+
echo -en 'travis_fold:end:build-devserver\\r'
50+
else
51+
echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r'
52+
make build-advancedserver
53+
echo -en 'travis_fold:end:build-advancedserver\\r'
54+
fi
3955
fi

travis-build-scripts/push.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
2121
exit 0
2222
fi
2323

24-
if [ ! -z $2 ]; then
24+
if [ ! -z $2 ]; then
2525
export ARCH=$2
2626
fi
2727

@@ -50,7 +50,7 @@ if [ ! -z $1 ]; then
5050
exit 1
5151
;;
5252
esac
53-
else
53+
else
5454
echo "ERROR: Type ( developer | production ) must be passed to push.sh"
5555
exit 1
5656
fi

travis-build-scripts/run.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ if [ "$(uname -m)" = "x86_64" ] ; then export ARCH="amd64" ; else export ARCH=$(
2121
if [ "$PUSH_MANIFEST_ONLY" = true ] ; then
2222
echo 'Retrieving remote tagcache' && echo -en 'travis_fold:start:retrieve-tag-cache\\r'
2323
./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} -l ./.tagcache --get
24-
echo -en 'travis_fold:end:retrieve-tag-cache\\r'
24+
echo -en 'travis_fold:end:retrieve-tag-cache\\r'
2525
make push-manifest
2626
./travis-build-scripts/cleanup-cache.sh
2727
exit 0
@@ -38,9 +38,17 @@ echo -en 'travis_fold:end:docker-downgrade\\r'
3838
./travis-build-scripts/test.sh
3939

4040
## Push images
41-
if [ "$BUILD_ALL" = true ] ; then
41+
if [ -z "$BUILD_INTERNAL_LEVEL" ] ; then
42+
if [ "$BUILD_ALL" = true ] ; then
4243
./travis-build-scripts/push.sh developer
4344
./travis-build-scripts/push.sh production
45+
fi
46+
else
47+
if [[ "$BUILD_INTERNAL_LEVEL" == *".DE"* ]]; then
48+
./travis-build-scripts/push.sh developer
49+
else
50+
./travis-build-scripts/push.sh production
51+
fi
4452
fi
4553

4654
if [ "$LTS" = true ] ; then

travis-build-scripts/test.sh

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,29 @@
1616

1717
set -e
1818

19-
if [ "$LTS" != true ] ; then
20-
echo 'Testing Developer image...' && echo -en 'travis_fold:start:test-devserver\\r'
21-
make test-devserver
22-
echo -en 'travis_fold:end:test-devserver\\r'
23-
fi
24-
if [ "$BUILD_ALL" = true ] || [ "$LTS" = true ] ; then
25-
if [[ "$ARCH" = "amd64" || "$ARCH" = "s390x" ]] ; then
26-
echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r'
27-
make test-advancedserver
28-
echo -en 'travis_fold:end:test-advancedserver\\r'
29-
fi
19+
if [ -z "$BUILD_INTERNAL_LEVEL" ] ; then
20+
if [ "$LTS" != true ] ; then
21+
echo 'Testing Developer image...' && echo -en 'travis_fold:start:test-devserver\\r'
22+
make test-devserver
23+
echo -en 'travis_fold:end:test-devserver\\r'
24+
fi
25+
if [ "$BUILD_ALL" = true ] || [ "$LTS" = true ] ; then
26+
if [[ "$ARCH" = "amd64" || "$ARCH" = "s390x" ]] ; then
27+
echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r'
28+
make test-advancedserver
29+
echo -en 'travis_fold:end:test-advancedserver\\r'
30+
fi
31+
fi
32+
else
33+
if [[ "$BUILD_INTERNAL_LEVEL" == *".DE"* ]]; then
34+
echo 'Testing Developer image...' && echo -en 'travis_fold:start:test-devserver\\r'
35+
make test-devserver
36+
echo -en 'travis_fold:end:test-devserver\\r'
37+
else
38+
echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r'
39+
make test-advancedserver
40+
echo -en 'travis_fold:end:test-advancedserver\\r'
41+
fi
3042
fi
3143
echo 'Running gosec scan...' && echo -en 'travis_fold:start:gosec-scan\\r'
3244
if [ "$ARCH" = "amd64" ] ; then

0 commit comments

Comments
 (0)