Updated release process for operators
This commit is contained in:
committed by
Luke J Powlett
parent
59baa97e91
commit
b9d48aa980
45
.travis.yml
45
.travis.yml
@@ -43,7 +43,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_AMD64
|
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_AMD64
|
||||||
script: bash -e travis-build-scripts/run.sh
|
script: bash -e travis-build-scripts/run.sh
|
||||||
- if: branch = private-master OR tag =~ ^pre-release*
|
- if: branch = private-master OR tag =~ ^release-candidate*
|
||||||
name: "Multi-Arch AMD64 build"
|
name: "Multi-Arch AMD64 build"
|
||||||
os: linux
|
os: linux
|
||||||
env:
|
env:
|
||||||
@@ -51,31 +51,24 @@ jobs:
|
|||||||
- MQ_ARCHIVE_REPOSITORY=$MQ_915_ARCHIVE_REPOSITORY_AMD64
|
- MQ_ARCHIVE_REPOSITORY=$MQ_915_ARCHIVE_REPOSITORY_AMD64
|
||||||
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_AMD64
|
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_AMD64
|
||||||
script: bash -e travis-build-scripts/run.sh
|
script: bash -e travis-build-scripts/run.sh
|
||||||
- if: branch = private-master OR tag =~ ^pre-release*
|
# - if: branch = private-master OR tag =~ ^release-candidate*
|
||||||
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_915_ARCHIVE_REPOSITORY_PPC64LE
|
# # - MQ_ARCHIVE_REPOSITORY=$MQ_915_ARCHIVE_REPOSITORY_PPC64LE
|
||||||
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_PPC64LE
|
# - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_PPC64LE
|
||||||
script: bash -e travis-build-scripts/run.sh
|
# script: bash -e travis-build-scripts/run.sh
|
||||||
- if: branch = private-master OR tag =~ ^pre-release*
|
# - if: branch = private-master OR tag =~ ^release-candidate*
|
||||||
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_915_ARCHIVE_REPOSITORY_S390X
|
# # - MQ_ARCHIVE_REPOSITORY=$MQ_915_ARCHIVE_REPOSITORY_S390X
|
||||||
- MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_S390X
|
# - MQ_ARCHIVE_REPOSITORY_DEV=$MQ_915_ARCHIVE_REPOSITORY_DEV_S390X
|
||||||
script: bash -e travis-build-scripts/run.sh
|
# script: bash -e travis-build-scripts/run.sh
|
||||||
- stage: deploy
|
|
||||||
name: "Pre-release deploy"
|
|
||||||
if: tag =~ ^pre-release*
|
|
||||||
script: bash -e travis-build-scripts/release.sh staging
|
|
||||||
- name: "Production release deploy"
|
|
||||||
if: tag =~ ^production-release*
|
|
||||||
script: bash -e travis-build-scripts/release.sh production
|
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- make install-build-deps
|
- make install-build-deps
|
||||||
|
|||||||
11
Makefile
11
Makefile
@@ -113,10 +113,6 @@ endif
|
|||||||
MQ_IMAGE_FULL_RELEASE_NAME=$(MQ_IMAGE_ADVANCEDSERVER):$(MQ_TAG)
|
MQ_IMAGE_FULL_RELEASE_NAME=$(MQ_IMAGE_ADVANCEDSERVER):$(MQ_TAG)
|
||||||
MQ_IMAGE_DEV_FULL_RELEASE_NAME=$(MQ_IMAGE_DEVSERVER):$(MQ_TAG)
|
MQ_IMAGE_DEV_FULL_RELEASE_NAME=$(MQ_IMAGE_DEVSERVER):$(MQ_TAG)
|
||||||
|
|
||||||
ifeq "$(MQ_DELIVERY_REGISTRY_HOSTNAME)" "ibmcom"
|
|
||||||
MQ_IMAGE_DEVSERVER_DOCKERHUB=mq
|
|
||||||
endif
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Build targets
|
# Build targets
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -334,13 +330,6 @@ push-devserver:
|
|||||||
$(COMMAND) tag $(MQ_IMAGE_DEVSERVER)\:$(MQ_TAG) $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
$(COMMAND) 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)
|
$(COMMAND) push $(MQ_DELIVERY_REGISTRY_FULL_PATH)/$(MQ_IMAGE_DEV_FULL_RELEASE_NAME)
|
||||||
|
|
||||||
.PHONY: push-devserver-dockerhub
|
|
||||||
push-devserver-dockerhub:
|
|
||||||
$(info $(SPACER)$(shell printf $(TITLE)"Push developer image to $(MQ_DELIVERY_REGISTRY_FULL_PATH)"$(END)))
|
|
||||||
$(COMMAND) login -u $(MQ_DELIVERY_REGISTRY_USER) -p $(MQ_DELIVERY_REGISTRY_CREDENTIAL)
|
|
||||||
$(COMMAND) tag $(MQ_IMAGE_DEVSERVER)\:$(MQ_TAG) $(MQ_DELIVERY_REGISTRY_HOSTNAME)/$(MQ_IMAGE_DEVSERVER_DOCKERHUB):$(MQ_TAG)
|
|
||||||
$(COMMAND) push $(MQ_DELIVERY_REGISTRY_HOSTNAME)/$(MQ_IMAGE_DEVSERVER_DOCKERHUB):$(MQ_TAG)
|
|
||||||
|
|
||||||
.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)))
|
||||||
|
|||||||
@@ -1,108 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# © Copyright IBM Corporation 2019, 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.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# staging or production
|
|
||||||
TYPE=""
|
|
||||||
MANIFEST_FILE=manifest-9.1.5.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=""
|
|
||||||
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 image with fat manifest
|
|
||||||
set_docker_hub
|
|
||||||
|
|
||||||
ARCH=amd64 make push-devserver-dockerhub
|
|
||||||
ARCH=ppc64le make push-devserver-dockerhub
|
|
||||||
ARCH=s390x make push-devserver-dockerhub
|
|
||||||
|
|
||||||
curl -LO https://github.com/estesp/manifest-tool/releases/download/v0.9.0/manifest-tool-linux-amd64
|
|
||||||
chmod a+x manifest-tool-linux-amd64
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
Reference in New Issue
Block a user