diff --git a/.travis.yml b/.travis.yml index c4892e1..1b3ee46 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,11 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Temporarily removing dist tag as not supported by power build -# dist: xenial - +dist: xenial sudo: required language: go +group: xeniallegacy go: - "1.13.15" @@ -24,6 +23,12 @@ go: services: - docker +env: + global: + - MAIN_BRANCH=private-master + - MQ_LTS_VERSION=9.2.0.1 + - TAGCACHE_FILE=tagcache + go_import_path: "github.com/ibm-messaging/mq-container" # cache: @@ -39,6 +44,9 @@ jobs: env: - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_920_ARCHIVE_REPOSITORY_DEV_AMD64 script: bash -e travis-build-scripts/run.sh + + # CD Build + - stage: global-tag if: branch = private-master AND type != pull_request OR tag =~ ^release-candidate* name: "Generate Global Tag" @@ -80,6 +88,49 @@ jobs: env: - PUSH_MANIFEST_ONLY=true script: bash -e travis-build-scripts/run.sh + + # LTS Build + + - stage: global-tag + if: branch = private-master AND type != pull_request OR tag =~ ^release-candidate* + name: "Generate Global Tag" + os: linux + env: + - LTS=true + - TAGCACHE_FILE=tagcache-lts + - MQ_VERSION=$MQ_LTS_VERSION + script: bash -e travis-build-scripts/global-tag.sh + - stage: build + if: branch = private-master OR tag =~ ^release-candidate* + name: "Multi-Arch AMD64 build" + os: linux + env: + - LTS=true + - TAGCACHE_FILE=tagcache-lts + - MQ_VERSION=$MQ_LTS_VERSION + - MQ_ARCHIVE_REPOSITORY=$MQ_9201_EUS_ARCHIVE_REPOSITORY_AMD64 + script: bash -e travis-build-scripts/run.sh + - stage: build + if: branch = private-master OR tag =~ ^release-candidate* + name: "Multi-Arch S390X build" + os: linux-s390 + env: + - LTS=true + - TAGCACHE_FILE=tagcache-lts + - MQ_VERSION=$MQ_LTS_VERSION + - TEST_OPTS_DOCKER="-run TestGoldenPathWithMetrics" + - MQ_ARCHIVE_REPOSITORY=$MQ_9201_EUS_ARCHIVE_REPOSITORY_S390X + script: bash -e travis-build-scripts/run.sh + - stage: push-manifest + if: branch = private-master AND type != pull_request OR tag =~ ^release-candidate* + name: "Push Manifest-list to registry" + env: + - LTS=true + - TAGCACHE_FILE=tagcache-lts + - MQ_VERSION=$MQ_LTS_VERSION + - PUSH_MANIFEST_ONLY=true + script: bash -e travis-build-scripts/run.sh + before_install: - make install-build-deps - make install-credential-helper @@ -91,6 +142,3 @@ before_script: echo nothing after_success: - make lint - -after_failure: - - ./travis-build-scripts/cleanup-cache.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 0758a40..47dee2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log +## 9.2.0.1-LTS (2020-12-04) + +* Added support for MQ Long Term Support (production licensed only) in the mq-container + ## 9.2.0.0 (2020-07-23) * Updated to [MQ version 9.2.0.0](https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.2.0/com.ibm.mq.pro.doc/q113110_.htm) diff --git a/Dockerfile-server b/Dockerfile-server index 6b1bd9b..251a5b4 100644 --- a/Dockerfile-server +++ b/Dockerfile-server @@ -41,6 +41,7 @@ COPY pkg/ ./pkg COPY vendor/ ./vendor ENV CGO_CFLAGS="-I/opt/mqm/inc/" \ CGO_LDFLAGS_ALLOW="-Wl,-rpath.*" +ENV PATH="${PATH}:/opt/mqm/bin" RUN go build -ldflags "-X \"main.ImageCreated=$(date --iso-8601=seconds)\" -X \"main.ImageRevision=$IMAGE_REVISION\" -X \"main.ImageSource=$IMAGE_SOURCE\" -X \"main.ImageTag=$IMAGE_TAG\"" ./cmd/runmqserver/ RUN go build ./cmd/chkmqready/ RUN go build ./cmd/chkmqhealthy/ diff --git a/Makefile b/Makefile index 3556d79..8a3c42f 100644 --- a/Makefile +++ b/Makefile @@ -45,8 +45,10 @@ TEST_OPTS_DOCKER ?= MQ_IMAGE_ADVANCEDSERVER ?=ibm-mqadvanced-server # MQ_IMAGE_DEVSERVER is the name of the built MQ Advanced for Developers image MQ_IMAGE_DEVSERVER ?=ibm-mqadvanced-server-dev +# MQ_MANIFEST_TAG is the tag to use for fat-manifest +MQ_MANIFEST_TAG ?= $(MQ_VERSION)$(LTS_TAG) # MQ_TAG is the tag of the built MQ Advanced image & MQ Advanced for Developers image -MQ_TAG ?=$(MQ_VERSION)-$(ARCH) +MQ_TAG ?= $(MQ_MANIFEST_TAG)-$(ARCH) # COMMAND is the container command to run. "podman" or "docker" COMMAND ?=$(shell type -p podman 2>&1 >/dev/null && echo podman || echo docker) # MQ_DELIVERY_REGISTRY_HOSTNAME is a remote registry to push the MQ Image to (if required) @@ -63,8 +65,8 @@ REGISTRY_USER ?= REGISTRY_PASS ?= # ARCH is the platform architecture (e.g. amd64, ppc64le or s390x) ARCH ?= $(if $(findstring x86_64,$(shell uname -m)),amd64,$(shell uname -m)) -# Tag to use for fat-manifest -MQ_MANIFEST_TAG=$(MQ_VERSION) +# LTS is a boolean value to enable/disable LTS container build +LTS ?= false ############################################################################### # Other variables @@ -109,6 +111,22 @@ else ifeq "$(ARCH)" "s390x" MQ_ARCHIVE_ARCH=S390X endif +# LTS_TAG is the tag modifier for an LTS container build +LTS_TAG= +ifeq "$(LTS)" "true" +ifneq "$(LTS_TAG_OVERRIDE)" "$(EMPTY)" + LTS_TAG=$(LTS_TAG_OVERRIDE) +else + LTS_TAG=-lts +endif + MQ_ARCHIVE:=$(MQ_VERSION)-IBM-MQ-Advanced-Non-Install-Linux$(MQ_ARCHIVE_ARCH).tar.gz + MQ_DELIVERY_REGISTRY_NAMESPACE:=$(MQ_DELIVERY_REGISTRY_NAMESPACE)$(LTS_TAG) +endif + +ifneq (,$(findstring release-candidate,$(TRAVIS_TAG))) + MQ_DELIVERY_REGISTRY_NAMESPACE=release-candidates +endif + ifneq "$(MQ_DELIVERY_REGISTRY_NAMESPACE)" "$(EMPTY)" MQ_DELIVERY_REGISTRY_FULL_PATH=$(MQ_DELIVERY_REGISTRY_HOSTNAME)/$(MQ_DELIVERY_REGISTRY_NAMESPACE) else @@ -119,7 +137,7 @@ endif ifneq "$(RELEASE)" "$(EMPTY)" EXTRA_LABELS=--label release=$(RELEASE) - MQ_MANIFEST_TAG=$(MQ_VERSION)-$(RELEASE)-$(RELEASE_CANDIDATE) + MQ_MANIFEST_TAG=$(MQ_VERSION)-$(RELEASE)$(LTS_TAG)-$(RELEASE_CANDIDATE) MQ_TAG=$(MQ_MANIFEST_TAG)-$(ARCH) endif @@ -131,9 +149,10 @@ ifeq "$(GIT_COMMIT)" "$(EMPTY)" GIT_COMMIT=$(shell git rev-parse --short HEAD) endif -ifeq ($(shell [ ! -z $(TRAVIS) ] && [ "$(TRAVIS_PULL_REQUEST)" = "false" ] && [ "$(TRAVIS_BRANCH)" = "private-master" ] && echo true), true) - RELEASE_TAG=$(shell [ -z "$(RELEASE)" ] || echo "-$(RELEASE)-$(RELEASE_CANDIDATE)") - MQ_MANIFEST_TAG=$(MQ_VERSION)$(RELEASE_TAG).$(TIMESTAMPFLAT).$(GIT_COMMIT) +ifeq ($(shell [ ! -z $(TRAVIS) ] && [ "$(TRAVIS_PULL_REQUEST)" = "false" ] && [ "$(TRAVIS_BRANCH)" = "$(MAIN_BRANCH)" ] && echo true), true) + RELEASE_TAG=$(shell [ -z "$(RELEASE)" ] || echo "-$(RELEASE)") + RELEASE_CANDIDATE_TAG=$(shell [ -z "$(RELEASE_CANDIDATE)" ] || echo "-$(RELEASE_CANDIDATE)") + MQ_MANIFEST_TAG=$(MQ_VERSION)$(RELEASE_TAG)$(LTS_TAG).$(TIMESTAMPFLAT).$(GIT_COMMIT)$(RELEASE_CANDIDATE_TAG) MQ_TAG=$(MQ_MANIFEST_TAG)-$(ARCH) endif @@ -205,9 +224,9 @@ downloads: downloads/$(MQ_ARCHIVE_DEV) downloads/$(MQ_SDK_ARCHIVE) .PHONY: cache-mq-tag cache-mq-tag: - @$(shell printf "MQ_MANIFEST_TAG_CACHED=$(MQ_MANIFEST_TAG)\n" > $(PATH_TO_MQ_TAG_CACHE)) - @$(shell printf "MQ_TAG_CACHED_amd64=$(MQ_MANIFEST_TAG)-amd64\n" >> $(PATH_TO_MQ_TAG_CACHE)) - @$(shell printf "MQ_TAG_CACHED_s390x=$(MQ_MANIFEST_TAG)-s390x\n" >> $(PATH_TO_MQ_TAG_CACHE)) + @printf "MQ_MANIFEST_TAG_CACHED=$(MQ_MANIFEST_TAG)\n" | tee $(PATH_TO_MQ_TAG_CACHE) + @printf "MQ_TAG_CACHED_amd64=$(MQ_MANIFEST_TAG)-amd64\n" | tee -a $(PATH_TO_MQ_TAG_CACHE) + @printf "MQ_TAG_CACHED_s390x=$(MQ_MANIFEST_TAG)-s390x\n" | tee -a $(PATH_TO_MQ_TAG_CACHE) # Vendor Go dependencies for the Docker tests test/docker/vendor: @@ -398,16 +417,20 @@ pull-devserver: .PHONY: push-manifest push-manifest: build-skopeo-container $(info $(SPACER)$(shell printf $(TITLE)"** Determining the image digests **"$(END))) +ifneq "$(LTS)" "true" $(eval MQ_IMAGE_DEVSERVER_AMD64_DIGEST=$(shell $(COMMAND) run skopeo:latest --override-os linux --override-arch s390x inspect --creds $(MQ_ARCHIVE_REPOSITORY_USER):$(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) docker://$(MQ_IMAGE_DEVSERVER_AMD64) | jq -r .Digest)) $(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)) - $(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)) - $(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)) $(info $(shell printf "** Determined the built $(MQ_IMAGE_DEVSERVER_AMD64) has a digest of $(MQ_IMAGE_DEVSERVER_AMD64_DIGEST)**"$(END))) $(info $(shell printf "** Determined the built $(MQ_IMAGE_DEVSERVER_S390X) has a digest of $(MQ_IMAGE_DEVSERVER_S390X_DIGEST)**"$(END))) +endif + $(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)) + $(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)) $(info $(shell printf "** Determined the built $(MQ_IMAGE_ADVANCEDSERVER_AMD64) has a digest of $(MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST)**"$(END))) $(info $(shell printf "** Determined the built $(MQ_IMAGE_ADVANCEDSERVER_S390X) has a digest of $(MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST)**"$(END))) +ifneq "$(LTS)" "true" $(info $(shell printf "** Calling script to create fat-manifest for $(MQ_IMAGE_DEVSERVER_MANIFEST)**"$(END))) 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_CACHED) -u $(MQ_ARCHIVE_REPOSITORY_USER) -p $(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) -d "$(MQ_IMAGE_DEVSERVER_AMD64_DIGEST) $(MQ_IMAGE_DEVSERVER_S390X_DIGEST)" $(END)) +endif $(info $(shell printf "** Calling script to create fat-manifest for $(MQ_IMAGE_ADVANCEDSERVER_MANIFEST)**"$(END))) 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_CACHED) -u $(MQ_ARCHIVE_REPOSITORY_USER) -p $(MQ_ARCHIVE_REPOSITORY_CREDENTIAL) -d "$(MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST) $(MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST)" $(END)) diff --git a/cmd/runmqserver/version.go b/cmd/runmqserver/version.go index ea7d6f8..fe57529 100644 --- a/cmd/runmqserver/version.go +++ b/cmd/runmqserver/version.go @@ -20,6 +20,7 @@ import ( "strings" "github.com/ibm-messaging/mq-container/internal/command" + "github.com/ibm-messaging/mq-container/internal/mqversion" ) var ( @@ -50,7 +51,7 @@ func logImageTag() { } func logMQVersion() { - mqVersion, _, err := command.Run("dspmqver", "-b", "-f", "2") + mqVersion, err := mqversion.Get() if err != nil { log.Printf("Error Getting MQ version: %v", strings.TrimSuffix(string(mqVersion), "\n")) } diff --git a/config.env b/config.env index 95180fc..7dcfb5d 100644 --- a/config.env +++ b/config.env @@ -1,6 +1,6 @@ ########################################################################################################################################################### # MQ_VERSION is the fully qualified MQ version number to build -MQ_VERSION=9.2.0.0 +MQ_VERSION ?= 9.2.0.0 ########################################################################################################################################################### diff --git a/docs/building.md b/docs/building.md index e5afa69..12a96d5 100644 --- a/docs/building.md +++ b/docs/building.md @@ -13,6 +13,10 @@ You will also need a [Red Hat Account](https://access.redhat.com) to be able to ## Building a production image +From MQ 9.2.X, the MQ container adds support for MQ Long Term Support (LTS) **production licensed** releases. + +### MQ Continuous Delivery (CD) + This procedure works for building the MQ Continuous Delivery release, on `amd64`, `ppc64le` and `s390x` architectures. 1. Create a `downloads` directory in the root of this repository @@ -20,7 +24,7 @@ This procedure works for building the MQ Continuous Delivery release, on `amd64` 3. Login to the Red Hat Registry: `docker login registry.redhat.io` using your Customer Portal credentials. 4. Run `make build-advancedserver` -> **Warning**: Note that from MQ 9.2.X, the MQ container build uses a 'No-Install' MQ Package, available under `IBM MQ V9.2.x Continuous Delivery Release components eAssembly, part no. CJ7CNML` +> **Warning**: Note that from MQ 9.2.X CD, the MQ container build uses a 'No-Install' MQ Package, available under `IBM MQ V9.2.x Continuous Delivery Release components eAssembly, part no. CJ7CNML` If you have an MQ archive file with a different file name, you can specify a particular file (which must be in the `downloads` directory). You should also specify the MQ version, so that the resulting image is tagged correctly, for example: @@ -28,6 +32,23 @@ If you have an MQ archive file with a different file name, you can specify a par MQ_ARCHIVE=mq-1.2.3.4.tar.gz MQ_VERSION=1.2.3.4 make build-advancedserver ``` +### MQ Long Term Support (LTS) + +This procedure works for building the MQ Long Term Support release, on `amd64`, `ppc64le` and `s390x` architectures. + +1. Create a `downloads` directory in the root of this repository +2. Download MQ from [IBM Passport Advantage](https://www.ibm.com/software/passportadvantage/) or [IBM Fix Central](https://www.ibm.com/support/fixcentral), and place the downloaded file (for example, `9.2.0.1-IBM-MQ-Advanced-Non-Install-LinuxX86.tar.gz`) in the `downloads` directory +3. Login to the Red Hat Registry: `docker login registry.redhat.io` using your Customer Portal credentials. +4. Run `LTS=true make build-advancedserver` + +> **Warning**: Note that from MQ 9.2 LTS, the MQ container build uses a 'No-Install' MQ Package, available under `IBM MQ V9.2 Long Term Support Release components eAssembly, part no. CXXXXXX` + +If you have an MQ archive file with a different file name, you can specify a particular file (which must be in the `downloads` directory). You should also specify the MQ version, so that the resulting image is tagged correctly, for example: + +```bash +MQ_ARCHIVE=mq-1.2.3.4.tar.gz MQ_VERSION=1.2.3.4 LTS=true make build-advancedserver +``` + ## Building a developer image Login to the Red Hat Registry: `docker login registry.redhat.io` using your Customer Portal credentials. diff --git a/internal/mqversion/mqversion.go b/internal/mqversion/mqversion.go new file mode 100644 index 0000000..de4928c --- /dev/null +++ b/internal/mqversion/mqversion.go @@ -0,0 +1,51 @@ +/* +© Copyright IBM Corporation 2020 + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mqversion + +import ( + "fmt" + "strings" + + "github.com/ibm-messaging/mq-container/internal/command" +) + +// Get will return the current MQ version +func Get() (string, error) { + mqVersion, _, err := command.Run("dspmqver", "-b", "-f", "2") + if err != nil { + return "", fmt.Errorf("Error Getting MQ version: %v", err) + } + return strings.TrimSpace(mqVersion), nil +} + +// Compare returns an integer comparing two MQ version strings lexicographically. The result will be 0 if currentVersion==checkVersion, -1 if currentVersion < checkVersion, and +1 if currentVersion > checkVersion +func Compare(checkVersion string) (int, error) { + currentVersion, err := Get() + if err != nil { + return 0, err + } + // trim any suffix from MQ version x.x.x.x + currentVersion = currentVersion[0:7] + if currentVersion < checkVersion { + return -1, nil + } else if currentVersion == checkVersion { + return 0, nil + } else if currentVersion > checkVersion { + return 1, nil + } + return 0, fmt.Errorf("Failed to compare MQ versions") +} diff --git a/internal/mqversion/mqversion_test.go b/internal/mqversion/mqversion_test.go new file mode 100644 index 0000000..1496855 --- /dev/null +++ b/internal/mqversion/mqversion_test.go @@ -0,0 +1,55 @@ +/* +© Copyright IBM Corporation 2020 + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mqversion + +import "testing" + +func TestCompareLower(t *testing.T) { + checkVersion := "9.9.9.9" + mqVersionCheck, err := Compare(checkVersion) + if err != nil { + t.Fatalf("Failed to compare MQ versions: %v", err) + } + if mqVersionCheck != -1 { + t.Errorf("MQ version compare result failed. Expected -1, Got %v", mqVersionCheck) + } +} + +func TestCompareHigher(t *testing.T) { + checkVersion := "1.1.1.1" + mqVersionCheck, err := Compare(checkVersion) + if err != nil { + t.Fatalf("Failed to compare MQ versions: %v", err) + } + if mqVersionCheck != 1 { + t.Errorf("MQ version compare result failed. Expected 1, Got %v", mqVersionCheck) + } +} + +func TestCompareEqual(t *testing.T) { + checkVersion, err := Get() + if err != nil { + t.Fatalf("Failed to get current MQ version: %v", err) + } + mqVersionCheck, err := Compare(checkVersion) + if err != nil { + t.Fatalf("Failed to compare MQ versions: %v", err) + } + if mqVersionCheck != 0 { + t.Errorf("MQ version compare result failed. Expected 0, Got %v", mqVersionCheck) + } +} diff --git a/travis-build-scripts/build.sh b/travis-build-scripts/build.sh index 8c08368..f68a253 100755 --- a/travis-build-scripts/build.sh +++ b/travis-build-scripts/build.sh @@ -16,19 +16,21 @@ set -e -if [ "$TRAVIS_BRANCH" = "private-master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then +if [ "$TRAVIS_BRANCH" = "$MAIN_BRANCH" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then echo 'Retrieving global tagcache' && echo -en 'travis_fold:start:tag-cache-retrieve\\r' - ./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/tagcache -l ./.tagcache --check - ./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/tagcache -l ./.tagcache --get + ./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} -l ./.tagcache --check + ./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} -l ./.tagcache --get echo -en 'travis_fold:end:tag-cache-retrieve\\r' fi -echo 'Building Developer JMS test image...' && echo -en 'travis_fold:start:build-devjmstest\\r' -make build-devjmstest -echo -en 'travis_fold:end:build-devjmstest\\r' -echo 'Building Developer image...' && echo -en 'travis_fold:start:build-devserver\\r' -make build-devserver -echo -en 'travis_fold:end:build-devserver\\r' -if [ "$BUILD_ALL" = true ] ; then +if [ "$LTS" != true ] ; then + echo 'Building Developer JMS test image...' && echo -en 'travis_fold:start:build-devjmstest\\r' + make build-devjmstest + echo -en 'travis_fold:end:build-devjmstest\\r' + echo 'Building Developer image...' && echo -en 'travis_fold:start:build-devserver\\r' + make build-devserver + echo -en 'travis_fold:end:build-devserver\\r' +fi +if [ "$BUILD_ALL" = true ] || [ "$LTS" = true ] ; then if [[ "$ARCH" = "amd64" || "$ARCH" = "s390x" ]] ; then echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r' make build-advancedserver diff --git a/travis-build-scripts/cleanup-cache.sh b/travis-build-scripts/cleanup-cache.sh index 911d6df..fb0ea9b 100755 --- a/travis-build-scripts/cleanup-cache.sh +++ b/travis-build-scripts/cleanup-cache.sh @@ -15,6 +15,5 @@ # limitations under the License. echo 'Cleaning up remote cache' && echo -en 'travis_fold:start:cleanup\\r' -./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/tagcache --delete -./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/tagcache --delete-namespace +./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} --delete echo -en 'travis_fold:end:cleanup\\r' diff --git a/travis-build-scripts/global-tag.sh b/travis-build-scripts/global-tag.sh index 4787321..530e74d 100755 --- a/travis-build-scripts/global-tag.sh +++ b/travis-build-scripts/global-tag.sh @@ -20,5 +20,5 @@ echo 'Cacheing MQ tag...' && echo -en 'travis_fold:start:build-cache-mq-tag\\r' make cache-mq-tag echo -en 'travis_fold:end:cache-mq-tag\\r' echo 'Caching tagcache for future stages' && echo -en 'travis_fold:start:tag-cache\\r' -./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/tagcache -l ./.tagcache --upload +./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} -l ./.tagcache --upload echo -en 'travis_fold:end:tag-cache\\r' diff --git a/travis-build-scripts/run.sh b/travis-build-scripts/run.sh index f56c5da..470f1aa 100755 --- a/travis-build-scripts/run.sh +++ b/travis-build-scripts/run.sh @@ -20,7 +20,7 @@ if [ "$(uname -m)" = "x86_64" ] ; then export ARCH="amd64" ; else export ARCH=$( if [ "$PUSH_MANIFEST_ONLY" = true ] ; then echo 'Retrieving remote tagcache' && echo -en 'travis_fold:start:retrieve-tag-cache\\r' - ./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/tagcache -l ./.tagcache --get + ./travis-build-scripts/artifact-util.sh -c ${CACHE_PATH} -u ${REPOSITORY_USER} -p ${REPOSITORY_CREDENTIAL} -f cache/${TAGCACHE_FILE} -l ./.tagcache --get echo -en 'travis_fold:end:retrieve-tag-cache\\r' make push-manifest ./travis-build-scripts/cleanup-cache.sh @@ -42,3 +42,7 @@ if [ "$BUILD_ALL" = true ] ; then ./travis-build-scripts/push.sh developer ./travis-build-scripts/push.sh production fi + +if [ "$LTS" = true ] ; then + ./travis-build-scripts/push.sh production +fi diff --git a/travis-build-scripts/test.sh b/travis-build-scripts/test.sh index 036bf04..0baa241 100755 --- a/travis-build-scripts/test.sh +++ b/travis-build-scripts/test.sh @@ -16,10 +16,12 @@ set -e -echo 'Testing Developer image...' && echo -en 'travis_fold:start:test-devserver\\r' -make test-devserver -echo -en 'travis_fold:end:test-devserver\\r' -if [ "$BUILD_ALL" = true ] ; then +if [ "$LTS" != true ] ; then + echo 'Testing Developer image...' && echo -en 'travis_fold:start:test-devserver\\r' + make test-devserver + echo -en 'travis_fold:end:test-devserver\\r' +fi +if [ "$BUILD_ALL" = true ] || [ "$LTS" = true ] ; then if [[ "$ARCH" = "amd64" || "$ARCH" = "s390x" ]] ; then echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r' make test-advancedserver