Pipeline changes for travis release (#43)
* Added changes for travis release process * Renamed build scripts directory * Don't run basic build if tag is set * Pull production images from staging on production-release
This commit is contained in:
committed by
GitHub Enterprise
parent
5b5951ec3c
commit
34f7a57c5d
37
.travis.yml
37
.travis.yml
@@ -37,47 +37,44 @@ jobs:
|
|||||||
include:
|
include:
|
||||||
- stage: build
|
- stage: build
|
||||||
name: "Basic build"
|
name: "Basic build"
|
||||||
if: branch != private-master
|
if: branch != private-master AND tag IS blank
|
||||||
os: linux
|
os: linux
|
||||||
env:
|
env:
|
||||||
- MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_AMD64
|
|
||||||
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_AMD64
|
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_AMD64
|
||||||
script: bash -e build-scripts/build.sh
|
script: bash -e travis-build-scripts/run.sh
|
||||||
- if: branch = private-master
|
- if: branch = private-master OR tag =~ ^pre-release*
|
||||||
name: "Multi-Arch AMD64 build"
|
name: "Multi-Arch AMD64 build"
|
||||||
os: linux
|
os: linux
|
||||||
env:
|
env:
|
||||||
- BUILD_ALL=true
|
- BUILD_ALL=true
|
||||||
- MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_AMD64
|
- MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_AMD64
|
||||||
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_AMD64
|
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_AMD64
|
||||||
script: bash -e build-scripts/build.sh
|
script: bash -e travis-build-scripts/run.sh
|
||||||
- if: branch = private-master
|
- if: branch = private-master OR tag =~ ^pre-release*
|
||||||
name: "Multi-Arch PPC64LE build"
|
name: "Multi-Arch PPC64LE build"
|
||||||
os: linux-ppc64le
|
os: linux-ppc64le
|
||||||
env:
|
env:
|
||||||
- BUILD_ALL=true
|
- BUILD_ALL=true
|
||||||
- TEST_OPTS_DOCKER="-run TestGoldenPathWithMetrics"
|
- TEST_OPTS_DOCKER="-run TestGoldenPathWithMetrics"
|
||||||
- MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_PPC64LE
|
- MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_PPC64LE
|
||||||
script: bash -e build-scripts/build.sh
|
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_PPC64LE
|
||||||
- if: branch = private-master
|
script: bash -e travis-build-scripts/run.sh
|
||||||
|
- if: branch = private-master OR tag =~ ^pre-release*
|
||||||
name: "Multi-Arch S390X build"
|
name: "Multi-Arch S390X build"
|
||||||
os: linux-s390
|
os: linux-s390
|
||||||
env:
|
env:
|
||||||
- BUILD_ALL=true
|
- BUILD_ALL=true
|
||||||
- TEST_OPTS_DOCKER="-run TestGoldenPathWithMetrics"
|
- TEST_OPTS_DOCKER="-run TestGoldenPathWithMetrics"
|
||||||
- MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_S390X
|
- MQ_ARCHIVE_REPOSITORY=$MQ_914_ARCHIVE_REPOSITORY_S390X
|
||||||
script: bash -e build-scripts/build.sh
|
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_914_ARCHIVE_REPOSITORY_DEV_S390X
|
||||||
# - stage: deploy
|
script: bash -e travis-build-scripts/run.sh
|
||||||
# name: "Pre-release deploy"
|
- stage: deploy
|
||||||
# if: tag =~ ^pre-release*
|
name: "Pre-release deploy"
|
||||||
# deploy:
|
if: tag =~ ^pre-release*
|
||||||
# provider: script
|
script: bash -e travis-build-scripts/release.sh staging
|
||||||
# script: bash -e build-scripts/release.sh staging
|
- name: "Production release deploy"
|
||||||
# - name: "Production release deploy"
|
if: tag =~ ^production-release*
|
||||||
# if: tag =~ ^release-production*
|
script: bash -e travis-build-scripts/release.sh production
|
||||||
# deploy:
|
|
||||||
# provider: script
|
|
||||||
# script: bash -e build-scripts/release.sh production
|
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- make install-build-deps
|
- make install-build-deps
|
||||||
|
|||||||
27
Makefile
27
Makefile
@@ -334,31 +334,30 @@ pull-mq-archive-dev:
|
|||||||
.PHONY: push-advancedserver
|
.PHONY: push-advancedserver
|
||||||
push-advancedserver:
|
push-advancedserver:
|
||||||
$(info $(SPACER)$(shell printf $(TITLE)"Push production image to $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
$(info $(SPACER)$(shell printf $(TITLE)"Push production image to $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
||||||
docker login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
$(COMMAND) login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
||||||
docker tag $(MQ_IMAGE_ADVANCEDSERVER)\:$(MQ_TAG) $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME)
|
$(COMMAND) tag $(MQ_IMAGE_ADVANCEDSERVER)\:$(MQ_TAG) $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME)
|
||||||
docker push $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME)
|
$(COMMAND) push $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME)
|
||||||
|
|
||||||
.PHONY: push-devserver
|
.PHONY: push-devserver
|
||||||
push-devserver:
|
push-devserver:
|
||||||
$(info $(SPACER)$(shell printf $(TITLE)"Push developer image to $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
$(info $(SPACER)$(shell printf $(TITLE)"Push developer image to $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
||||||
echo $(ARCH)
|
$(COMMAND) login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
||||||
docker login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
$(COMMAND) tag $(MQ_IMAGE_DEVSERVER)\:$(MQ_TAG) $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
||||||
docker tag $(MQ_IMAGE_DEVSERVER)\:$(MQ_TAG) $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
$(COMMAND) push $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
||||||
docker push $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
|
||||||
|
|
||||||
.PHONY: pull-advancedserver
|
.PHONY: pull-advancedserver
|
||||||
pull-advancedserver:
|
pull-advancedserver:
|
||||||
$(info $(SPACER)$(shell printf $(TITLE)"Pull production image from $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
$(info $(SPACER)$(shell printf $(TITLE)"Pull production image from $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
||||||
docker login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
$(COMMAND) login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
||||||
docker pull $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME)
|
$(COMMAND) pull $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME)
|
||||||
docker tag $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME) $(MQ_IMAGE_FULL_RELEASE_NAME)
|
$(COMMAND) tag $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_FULL_RELEASE_NAME) $(MQ_IMAGE_ADVANCEDSERVER)\:$(MQ_TAG)
|
||||||
|
|
||||||
.PHONY: pull-devserver
|
.PHONY: pull-devserver
|
||||||
pull-devserver:
|
pull-devserver:
|
||||||
$(info $(SPACER)$(shell printf $(TITLE)"Push developer image to $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
$(info $(SPACER)$(shell printf $(TITLE)"Pull developer image from $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
||||||
docker login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
$(COMMAND) login $(MQ_DELIVERY_REGISTRY_HOSTNAME) -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
||||||
docker pull $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
$(COMMAND) pull $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
||||||
docker tag $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME) $(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
$(COMMAND) tag $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME) $(MQ_IMAGE_DEVSERVER)\:$(MQ_TAG)
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# © 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.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ ! -z $1 ]; then
|
|
||||||
export ARCH=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
|
|
||||||
echo Not pushing as we are a pull request
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 'Pushing Production image...' && echo -en 'travis_fold:start:push-advancedserver\\r'
|
|
||||||
make push-advancedserver
|
|
||||||
echo -en 'travis_fold:end:push-advancedserver\\r'
|
|
||||||
@@ -1,96 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# © 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.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# staging or production
|
|
||||||
TYPE=""
|
|
||||||
MANIFEST_FILE=manifest-9.1.4.yaml
|
|
||||||
|
|
||||||
# set type of release
|
|
||||||
if [ ! -z $1 ]; then
|
|
||||||
case "$1" in
|
|
||||||
staging) TYPE=$1
|
|
||||||
;;
|
|
||||||
production) TYPE=$1
|
|
||||||
;;
|
|
||||||
*) echo "echo Release type ( staging | production ) must passed to release.sh"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
echo "Release type ( staging | production ) must passed to release.sh"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ TYPE = "staging" ]; then
|
|
||||||
# push developer image to pre-release registry
|
|
||||||
./build-scripts/push-dev.sh amd64
|
|
||||||
./build-scripts/push-dev.sh ppc64le
|
|
||||||
./build-scripts/push-dev.sh s390x
|
|
||||||
|
|
||||||
# staging registry
|
|
||||||
export MQ_DELIVERY_REGISTRY_HOSTNAME=$MQ_STAGING_REGISTRY
|
|
||||||
export MQ_DELIVERY_REGISTRY_USER=$MQ_STAGING_REGISTRY_USER
|
|
||||||
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_STAGING_REGISTRY_CREDENTIAL
|
|
||||||
|
|
||||||
# push production image to staging registy
|
|
||||||
./build-scripts/push-prod.sh amd64
|
|
||||||
./build-scripts/push-prod.sh ppc64le
|
|
||||||
./build-scripts/push-prod.sh s390x
|
|
||||||
|
|
||||||
elif [ TYPE = "production" ]; then
|
|
||||||
# pull developer image from pre-release registry
|
|
||||||
make pull-devserver
|
|
||||||
# pull production image from staging
|
|
||||||
export MQ_DELIVERY_REGISTRY_HOSTNAME=$MQ_STAGING_REGISTRY
|
|
||||||
export MQ_DELIVERY_REGISTRY_USER=$MQ_STAGING_REGISTRY_USER
|
|
||||||
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_STAGING_REGISTRY_CREDENTIAL
|
|
||||||
make pull-advancedserver
|
|
||||||
|
|
||||||
# release developer images with fat manifests
|
|
||||||
# dockerhub
|
|
||||||
export MQ_DELIVERY_REGISTRY_HOSTNAME=ibmcom
|
|
||||||
export MQ_DELIVERY_REGISTRY_NAMESPACE=mq
|
|
||||||
export MQ_DELIVERY_REGISTRY_USER=$MQ_DOCKERHUB_REGISTRY_USER
|
|
||||||
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_DOCKERHUB_REGISTRY_CREDENTIAL
|
|
||||||
# UNCOMMENT WHEN FINISHED TESTING
|
|
||||||
# ./build-scripts/push-dev.sh amd64
|
|
||||||
# ./build-scripts/push-dev.sh ppc64le
|
|
||||||
# ./build-scripts/push-dev.sh s390x
|
|
||||||
|
|
||||||
docker login --username $MQ_DOCKERHUB_REGISTRY_USER --password $MQ_DOCKERHUB_REGISTRY_CREDENTIAL
|
|
||||||
# ./manifest-tool-linux-amd64 push from-spec manifests/dockerhub/$MANIFEST_FILE
|
|
||||||
# ./manifest-tool-linux-amd64 push from-spec manifests/dockerhub/manifest-latest.yaml
|
|
||||||
|
|
||||||
# dockerstore
|
|
||||||
export MQ_DELIVERY_REGISTRY_HOSTNAME=ibmcorp
|
|
||||||
export MQ_DELIVERY_REGISTRY_NAMESPACE=""
|
|
||||||
# ./build-scripts/push-dev.sh amd64
|
|
||||||
# ./build-scripts/push-dev.sh ppc64le
|
|
||||||
# ./build-scripts/push-dev.sh s390x
|
|
||||||
|
|
||||||
# docker login --username $MQ_DOCKERHUB_REGISTRY_USER --password $MQ_DOCKERHUB_REGISTRY_CREDENTIAL
|
|
||||||
# ./manifest-tool-linux-amd64 push from-spec manifests/dockerstore/$MANIFEST_FILE
|
|
||||||
|
|
||||||
# release production image
|
|
||||||
export MQ_DELIVERY_REGISTRY_HOSTNAME=$MQ_PRODUCTION_REGISTRY
|
|
||||||
export MQ_DELIVERY_REGISTRY_USER=$MQ_PRODUCTION_REGISTRY_USER
|
|
||||||
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_PRODUCTION_REGISTRY_CREDENTIAL
|
|
||||||
# ./build-scripts/push-prod.sh amd64
|
|
||||||
# ./build-scripts/push-prod.sh ppc64le
|
|
||||||
# ./build-scripts/push-prod.sh s390x
|
|
||||||
fi
|
|
||||||
@@ -16,20 +16,14 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [ ! -z $1 ]; then
|
echo 'Building Developer JMS test image...' && echo -en 'travis_fold:start:build-devjmstest\\r'
|
||||||
export ARCH=$1
|
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
|
||||||
|
echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r'
|
||||||
|
make build-advancedserver
|
||||||
|
echo -en 'travis_fold:end:build-advancedserver\\r'
|
||||||
fi
|
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
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 'Pushing Developer image...' && echo -en 'travis_fold:start:push-devserver\\r'
|
|
||||||
make push-devserver
|
|
||||||
echo -en 'travis_fold:end:push-devserver\\r'
|
|
||||||
54
travis-build-scripts/push.sh
Executable file
54
travis-build-scripts/push.sh
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# © 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.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
|
||||||
|
echo "Not pushing as we are a pull request"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z $2 ]; then
|
||||||
|
export ARCH=$2
|
||||||
|
fi
|
||||||
|
|
||||||
|
function push_developer {
|
||||||
|
echo 'Pushing Developer image...' && echo -en 'travis_fold:start:push-devserver\\r'
|
||||||
|
make push-devserver
|
||||||
|
echo -en 'travis_fold:end:push-devserver\\r'
|
||||||
|
}
|
||||||
|
|
||||||
|
function push_production {
|
||||||
|
echo 'Pushing Production image...' && echo -en 'travis_fold:start:push-advancedserver\\r'
|
||||||
|
make push-advancedserver
|
||||||
|
echo -en 'travis_fold:end:push-advancedserver\\r'
|
||||||
|
}
|
||||||
|
|
||||||
|
# call relevant push function
|
||||||
|
if [ ! -z $1 ]; then
|
||||||
|
case "$1" in
|
||||||
|
developer) push_developer
|
||||||
|
;;
|
||||||
|
production) push_production
|
||||||
|
;;
|
||||||
|
*) echo "ERROR: Type ( developer | production ) must be passed to push.sh"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "ERROR: Type ( developer | production ) must be passed to push.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
121
travis-build-scripts/release.sh
Executable file
121
travis-build-scripts/release.sh
Executable file
@@ -0,0 +1,121 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# © 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.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# staging or production
|
||||||
|
TYPE=""
|
||||||
|
MANIFEST_FILE=manifest-9.1.4.yaml
|
||||||
|
|
||||||
|
# set type of release
|
||||||
|
if [ ! -z $1 ]; then
|
||||||
|
case "$1" in
|
||||||
|
staging) TYPE=$1
|
||||||
|
;;
|
||||||
|
production) TYPE=$1
|
||||||
|
;;
|
||||||
|
*) echo "ERROR: Release type ( staging | production ) must passed to release.sh"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "ERROR: Release type ( staging | production ) must passed to release.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Pull all images from default repository
|
||||||
|
ARCH=amd64 make pull-devserver
|
||||||
|
ARCH=ppc64le make pull-devserver
|
||||||
|
ARCH=s390x make pull-devserver
|
||||||
|
|
||||||
|
ARCH=amd64 make pull-advancedserver
|
||||||
|
ARCH=ppc64le make pull-advancedserver
|
||||||
|
ARCH=s390x make pull-advancedserver
|
||||||
|
|
||||||
|
|
||||||
|
function set_staging_registry {
|
||||||
|
export MQ_DELIVERY_REGISTRY_HOSTNAME=$MQ_STAGING_REGISTRY
|
||||||
|
export MQ_DELIVERY_REGISTRY_NAMESPACE=""
|
||||||
|
export MQ_DELIVERY_REGISTRY_USER=$MQ_STAGING_REGISTRY_USER
|
||||||
|
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_STAGING_REGISTRY_CREDENTIAL
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_docker_hub {
|
||||||
|
export MQ_DELIVERY_REGISTRY_HOSTNAME=ibmcom
|
||||||
|
export MQ_DELIVERY_REGISTRY_NAMESPACE=mq
|
||||||
|
export MQ_DELIVERY_REGISTRY_USER=$MQ_DOCKERHUB_REGISTRY_USER
|
||||||
|
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_DOCKERHUB_REGISTRY_CREDENTIAL
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_docker_store {
|
||||||
|
export MQ_DELIVERY_REGISTRY_HOSTNAME=ibmcorp
|
||||||
|
export MQ_DELIVERY_REGISTRY_NAMESPACE=""
|
||||||
|
export MQ_DELIVERY_REGISTRY_USER=$MQ_DOCKERHUB_REGISTRY_USER
|
||||||
|
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_DOCKERHUB_REGISTRY_CREDENTIAL
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_production_registry {
|
||||||
|
export MQ_DELIVERY_REGISTRY_HOSTNAME=$MQ_PRODUCTION_REGISTRY
|
||||||
|
export MQ_DELIVERY_REGISTRY_NAMESPACE=""
|
||||||
|
export MQ_DELIVERY_REGISTRY_USER=$MQ_PRODUCTION_REGISTRY_USER
|
||||||
|
export MQ_DELIVERY_REGISTRY_CREDENTIAL=$MQ_PRODUCTION_REGISTRY_CREDENTIAL
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$TYPE" = "staging" ]; then
|
||||||
|
|
||||||
|
set_staging_registry
|
||||||
|
|
||||||
|
# push production images to staging registy
|
||||||
|
./travis-build-scripts/push.sh production amd64
|
||||||
|
./travis-build-scripts/push.sh production ppc64le
|
||||||
|
./travis-build-scripts/push.sh production s390x
|
||||||
|
|
||||||
|
elif [ "$TYPE" = "production" ]; then
|
||||||
|
|
||||||
|
# pull production images from staging
|
||||||
|
set_staging_registry
|
||||||
|
|
||||||
|
ARCH=amd64 make pull-advancedserver
|
||||||
|
ARCH=ppc64le make pull-advancedserver
|
||||||
|
ARCH=s390x make pull-advancedserver
|
||||||
|
|
||||||
|
# release developer images with fat manifests
|
||||||
|
set_docker_hub
|
||||||
|
|
||||||
|
./travis-build-scripts/push.sh developer amd64
|
||||||
|
./travis-build-scripts/push.sh developer ppc64le
|
||||||
|
./travis-build-scripts/push.sh developer s390x
|
||||||
|
|
||||||
|
docker login --username $MQ_DOCKERHUB_REGISTRY_USER --password $MQ_DOCKERHUB_REGISTRY_CREDENTIAL
|
||||||
|
./manifest-tool-linux-amd64 push from-spec manifests/dockerhub/$MANIFEST_FILE
|
||||||
|
./manifest-tool-linux-amd64 push from-spec manifests/dockerhub/manifest-latest.yaml
|
||||||
|
|
||||||
|
set_docker_store
|
||||||
|
|
||||||
|
./travis-build-scripts/push.sh developer amd64
|
||||||
|
./travis-build-scripts/push.sh developer ppc64le
|
||||||
|
./travis-build-scripts/push.sh developer s390x
|
||||||
|
|
||||||
|
docker login --username $MQ_DOCKERHUB_REGISTRY_USER --password $MQ_DOCKERHUB_REGISTRY_CREDENTIAL
|
||||||
|
./manifest-tool-linux-amd64 push from-spec manifests/dockerstore/$MANIFEST_FILE
|
||||||
|
|
||||||
|
# release production image
|
||||||
|
set_production_registry
|
||||||
|
|
||||||
|
./travis-build-scripts/push.sh production amd64
|
||||||
|
./travis-build-scripts/push.sh production ppc64le
|
||||||
|
./travis-build-scripts/push.sh production s390x
|
||||||
|
fi
|
||||||
@@ -21,17 +21,16 @@ if [ "$(uname -m)" = "x86_64" ] ; then export ARCH="amd64" ; else export ARCH=$(
|
|||||||
echo 'Downgrading Docker (if necessary)...' && echo -en 'travis_fold:start:docker-downgrade\\r'
|
echo 'Downgrading Docker (if necessary)...' && echo -en 'travis_fold:start:docker-downgrade\\r'
|
||||||
eval "$DOCKER_DOWNGRADE"
|
eval "$DOCKER_DOWNGRADE"
|
||||||
echo -en 'travis_fold:end:docker-downgrade\\r'
|
echo -en 'travis_fold:end:docker-downgrade\\r'
|
||||||
if [ "$ARCH" = "amd64" ] ; then
|
|
||||||
echo 'Building Developer JMS test image...' && echo -en 'travis_fold:start:build-devjmstest\\r'
|
## Build images
|
||||||
make build-devjmstest
|
./travis-build-scripts/build.sh
|
||||||
echo -en 'travis_fold:end:build-devjmstest\\r'
|
|
||||||
echo 'Building Developer image...' && echo -en 'travis_fold:start:build-devserver\\r'
|
## Test images
|
||||||
make build-devserver
|
./travis-build-scripts/test.sh
|
||||||
echo -en 'travis_fold:end:build-devserver\\r'
|
|
||||||
fi
|
## Push images
|
||||||
if [ "$BUILD_ALL" = true ] ; then
|
if [ "$BUILD_ALL" = true ] ; then
|
||||||
echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r'
|
./travis-build-scripts/push.sh developer
|
||||||
make build-advancedserver
|
./travis-build-scripts/push.sh production
|
||||||
echo -en 'travis_fold:end:build-advancedserver\\r'
|
|
||||||
fi
|
fi
|
||||||
./build-scripts/test.sh
|
|
||||||
@@ -16,11 +16,9 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [ "$ARCH" = "amd64" ] ; then
|
echo 'Testing Developer image...' && echo -en 'travis_fold:start:test-devserver\\r'
|
||||||
echo 'Testing Developer image...' && echo -en 'travis_fold:start:test-devserver\\r'
|
make test-devserver
|
||||||
make test-devserver
|
echo -en 'travis_fold:end:test-devserver\\r'
|
||||||
echo -en 'travis_fold:end:test-devserver\\r'
|
|
||||||
fi
|
|
||||||
if [ "$BUILD_ALL" = true ] ; then
|
if [ "$BUILD_ALL" = true ] ; then
|
||||||
echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r'
|
echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r'
|
||||||
make test-advancedserver
|
make test-advancedserver
|
||||||
@@ -33,7 +31,3 @@ else
|
|||||||
echo "Gosec not available on ppc64le/s390x...skipping gosec scan"
|
echo "Gosec not available on ppc64le/s390x...skipping gosec scan"
|
||||||
fi
|
fi
|
||||||
echo -en 'travis_fold:end:gosec-scan\\r'
|
echo -en 'travis_fold:end:gosec-scan\\r'
|
||||||
if [ "$BUILD_ALL" = true ] ; then
|
|
||||||
./build-scripts/push-dev.sh
|
|
||||||
./build-scripts/push-prod.sh
|
|
||||||
fi
|
|
||||||
Reference in New Issue
Block a user