diff --git a/.travis.yml b/.travis.yml index c312f2a..f2e500f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,14 +39,17 @@ jobs: name: "Basic build" if: branch != private-master os: linux + env: + - MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_AMD64 + - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_AMD64 script: bash -e build-scripts/build.sh - if: branch = private-master - name: "Multi-Arch ADM64 build" + name: "Multi-Arch AMD64 build" os: linux env: - BUILD_ALL=true - - MQ_ARCHIVE_REPOSITORY=$MQ_ARCHIVE_REPOSITORY_AMD64 - - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_ARCHIVE_REPOSITORY_DEV_AMD64 + - MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_AMD64 + - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_AMD64 script: bash -e build-scripts/build.sh - if: branch = private-master name: "Multi-Arch PPC64LE build" @@ -54,8 +57,7 @@ jobs: env: - BUILD_ALL=true - TEST_OPTS_DOCKER="-run TestGoldenPathWithMetrics" - - MQ_ARCHIVE_REPOSITORY=$MQ_ARCHIVE_REPOSITORY_PPC64LE - - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_ARCHIVE_REPOSITORY_DEV_PPC64LE + - MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_PPC64LE script: bash -e build-scripts/build.sh - if: branch = private-master name: "Multi-Arch S390X build" @@ -63,8 +65,7 @@ jobs: env: - BUILD_ALL=true - TEST_OPTS_DOCKER="-run TestGoldenPathWithMetrics" - - MQ_ARCHIVE_REPOSITORY=$MQ_ARCHIVE_REPOSITORY_S390X - - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_ARCHIVE_REPOSITORY_DEV_S390X + - MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_S390X script: bash -e build-scripts/build.sh # - stage: deploy # name: "Pre-release deploy" diff --git a/CHANGELOG.md b/CHANGELOG.md index 0935fc3..79d07d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log +## 9.1.4.0 (2019-12-06) + +* Updated to MQ version 9.1.4.0 +* Updated to use UBI8 as base image +* Added required security settings to self signed certificates to align with macOS Catalina requirements + ## 9.1.3.0 (2019-07-19) * Updated to MQ version 9.1.3.0 diff --git a/Dockerfile-server b/Dockerfile-server index 898cba9..8dd2dd2 100644 --- a/Dockerfile-server +++ b/Dockerfile-server @@ -56,7 +56,7 @@ RUN go vet ./cmd/... ./internal/... ############################################################################### FROM $BASE_IMAGE:$BASE_TAG AS mq-server # The MQ packages to install - see install-mq.sh for default value -ARG MQ_URL="https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqadv/mqadv_dev913_linux_x86-64.tar.gz" +ARG MQ_URL="https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqadv/mqadv_dev914_linux_x86-64.tar.gz" ARG MQ_PACKAGES="MQSeriesRuntime-*.rpm MQSeriesServer-*.rpm MQSeriesJava*.rpm MQSeriesJRE*.rpm MQSeriesGSKit*.rpm MQSeriesMsg*.rpm MQSeriesSamples*.rpm MQSeriesWeb*.rpm MQSeriesAMS-*.rpm" #ARG MQ_PACKAGES="ibmmq-server ibmmq-java ibmmq-jre ibmmq-gskit ibmmq-msg-.* ibmmq-samples ibmmq-web ibmmq-ams" ARG MQM_UID=888 diff --git a/Makefile b/Makefile index 9cd3ce6..afed746 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ # RELEASE shows what release of the container code has been built RELEASE ?= # MQ_VERSION is the fully qualified MQ version number to build -MQ_VERSION ?= 9.1.3.0 +MQ_VERSION ?= 9.1.4.0 # MQ_ARCHIVE_REPOSITORY is a remote repository from which to pull the MQ_ARCHIVE (if required) MQ_ARCHIVE_REPOSITORY ?= # MQ_ARCHIVE_REPOSITORY_DEV is a remote repository from which to pull the MQ_ARCHIVE_DEV (if required) @@ -88,7 +88,7 @@ IMAGE_REVISION=$(shell git rev-parse HEAD) IMAGE_SOURCE=$(shell git config --get remote.origin.url) EMPTY:= SPACE:= $(EMPTY) $(EMPTY) -# MQ_VERSION_VRM is MQ_VERSION with only the Version, Release and Modifier fields (no Fix field). e.g. 9.1.3 instead of 9.1.3.0 +# MQ_VERSION_VRM is MQ_VERSION with only the Version, Release and Modifier fields (no Fix field). e.g. 9.1.4 instead of 9.1.4.0 MQ_VERSION_VRM=$(subst $(SPACE),.,$(wordlist 1,3,$(subst .,$(SPACE),$(MQ_VERSION)))) ifneq (,$(findstring Microsoft,$(shell uname -r))) @@ -115,6 +115,7 @@ MQ_ARCHIVE_DEV_9.1.0.0=mqadv_dev910_$(MQ_ARCHIVE_DEV_PLATFORM)_$(MQ_DEV_ARCH).ta MQ_ARCHIVE_DEV_9.1.1.0=mqadv_dev911_$(MQ_ARCHIVE_DEV_PLATFORM)_$(MQ_DEV_ARCH).tar.gz MQ_ARCHIVE_DEV_9.1.2.0=mqadv_dev912_$(MQ_ARCHIVE_DEV_PLATFORM)_$(MQ_DEV_ARCH).tar.gz MQ_ARCHIVE_DEV_9.1.3.0=mqadv_dev913_$(MQ_ARCHIVE_DEV_PLATFORM)_$(MQ_DEV_ARCH).tar.gz +MQ_ARCHIVE_DEV_9.1.4.0=mqadv_dev914_$(MQ_ARCHIVE_DEV_PLATFORM)_$(MQ_DEV_ARCH).tar.gz ifneq "$(RELEASE)" "$(EMPTY)" MQ_IMAGE_FULL_RELEASE_NAME=ibm-mqadvanced-server:$(MQ_VERSION)-$(RELEASE)-$(ARCH) diff --git a/build-scripts/build.sh b/build-scripts/build.sh index f5f5182..4cdf0ed 100755 --- a/build-scripts/build.sh +++ b/build-scripts/build.sh @@ -16,22 +16,22 @@ set -e +if [ "$(uname -m)" = "x86_64" ] ; then export ARCH="amd64" ; else export ARCH=$(uname -m) ; fi + echo 'Downgrading Docker (if necessary)...' && echo -en 'travis_fold:start:docker-downgrade\\r' eval "$DOCKER_DOWNGRADE" echo -en 'travis_fold:end:docker-downgrade\\r' -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' -if [ "$BUILD_ALL" = true ] ; then - echo 'Building Developer image...' && echo -en 'travis_fold:start:build-devserver\\r' - make build-devserver - echo -en 'travis_fold:end:build-devserver\\r' - echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r' - make build-advancedserver - echo -en 'travis_fold:end:build-advancedserver\\r' -else +if [ "$ARCH" = "amd64" ] ; 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 ] ; then + echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r' + make build-advancedserver + echo -en 'travis_fold:end:build-advancedserver\\r' +fi ./build-scripts/test.sh diff --git a/build-scripts/push-dev.sh b/build-scripts/push-dev.sh index bf7b39c..30c42fd 100755 --- a/build-scripts/push-dev.sh +++ b/build-scripts/push-dev.sh @@ -20,6 +20,11 @@ if [ ! -z $1 ]; then export ARCH=$1 fi +if [ "$ARCH" != "amd64" ] ; then + echo No developer image to push as we are not an amd64 build + exit 0 +fi + if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then echo Not pushing as we are a pull request exit 0 diff --git a/build-scripts/test.sh b/build-scripts/test.sh index 6c336ae..c30ea0f 100755 --- a/build-scripts/test.sh +++ b/build-scripts/test.sh @@ -16,9 +16,11 @@ 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 [ "$ARCH" = "amd64" ] ; 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 ] ; then echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r' make test-advancedserver diff --git a/docs/building.md b/docs/building.md index fc3db8e..7a2cfbb 100644 --- a/docs/building.md +++ b/docs/building.md @@ -16,7 +16,7 @@ You will also need a [Red Hat Account](https://access.redhat.com) to be able to 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 -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, `IBM_MQ_9.1.3_LINUX_X86-64.tar.gz`) in the `downloads` directory +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, `IBM_MQ_9.1.4_LINUX_X86-64.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 `make build-advancedserver` diff --git a/docs/security.md b/docs/security.md index caba98c..f124ade 100644 --- a/docs/security.md +++ b/docs/security.md @@ -16,7 +16,7 @@ docker run \ --env LICENSE=accept \ --env MQ_QMGR_NAME=QM1 \ --detach \ - mqadvanced-server:9.1.3.0-amd64 + mqadvanced-server:9.1.4.0-amd64 ``` The MQ Advanced for Developers image does require the "chown", "setuid", "setgid" and "audit_write" capabilities (plus "dac_override" if you're using an image based on Red Hat Enterprise Linux). This is because it uses the "sudo" command to change passwords inside the container. For example, in Docker, you could do the following: @@ -31,7 +31,7 @@ docker run \ --env LICENSE=accept \ --env MQ_QMGR_NAME=QM1 \ --detach \ - mqadvanced-server-dev:9.1.3.0-amd64 + mqadvanced-server-dev:9.1.4.0-amd64 ``` ### SELinux diff --git a/docs/testing.md b/docs/testing.md index c1b9438..f684c79 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -24,7 +24,7 @@ make test-advancedserver You can specify the image to use directly by using the `MQ_IMAGE_ADVANCEDSERVER` or `MQ_IMAGE_DEVSERVER` variables, for example: ``` -MQ_IMAGE_ADVANCEDSERVER=mqadvanced-server:9.1.3.0-amd64 make test-advancedserver +MQ_IMAGE_ADVANCEDSERVER=mqadvanced-server:9.1.4.0-amd64 make test-advancedserver ``` You can pass parameters to `go test` with an environment variable. For example, to run the "TestGoldenPath" test, run the following command:: @@ -33,10 +33,10 @@ You can pass parameters to `go test` with an environment variable. For example, TEST_OPTS_DOCKER="-run TestGoldenPath" make test-advancedserver ``` -You can also use the same environment variables you specified when [building](./building), for example, the following will try and test an image called `mqadvanced-server:9.1.3.0-amd64`: +You can also use the same environment variables you specified when [building](./building), for example, the following will try and test an image called `mqadvanced-server:9.1.4.0-amd64`: ``` -MQ_VERSION=9.1.3.0 make test-advancedserver +MQ_VERSION=9.1.4.0 make test-advancedserver ``` ### Running the Docker tests with code coverage diff --git a/manifests/dockerhub/manifest-9.1.4.yaml b/manifests/dockerhub/manifest-9.1.4.yaml new file mode 100644 index 0000000..9628ed8 --- /dev/null +++ b/manifests/dockerhub/manifest-9.1.4.yaml @@ -0,0 +1,28 @@ +# © Copyright IBM Corporation 2019 +# +# 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. + +image: ibmcom/mq:9.1.4.0-r1 +manifests: + - image: ibmcom/mq:9.1.4.0-r1-amd64 + platform: + architecture: amd64 + os: linux + - image: ibmcom/mq:9.1.4.0-r1-ppc64le + platform: + architecture: ppc64le + os: linux + - image: ibmcom/mq:9.1.4.0-r1-s390x + platform: + architecture: s390x + os: linux diff --git a/manifests/dockerhub/manifest-latest.yaml b/manifests/dockerhub/manifest-latest.yaml index 6a039a8..5d1e0ac 100644 --- a/manifests/dockerhub/manifest-latest.yaml +++ b/manifests/dockerhub/manifest-latest.yaml @@ -14,15 +14,15 @@ image: ibmcom/mq:latest manifests: - - image: ibmcom/mq:9.1.3.0-r3-amd64 + - image: ibmcom/mq:9.1.4.0-r1-amd64 platform: architecture: amd64 os: linux - - image: ibmcom/mq:9.1.3.0-r3-ppc64le + - image: ibmcom/mq:9.1.4.0-r1-ppc64le platform: architecture: ppc64le os: linux - - image: ibmcom/mq:9.1.3.0-r3-s390x + - image: ibmcom/mq:9.1.4.0-r1-s390x platform: architecture: s390x os: linux