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
29
travis-build-scripts/build.sh
Executable file
29
travis-build-scripts/build.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/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
|
||||
|
||||
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
|
||||
echo 'Building Production image...' && echo -en 'travis_fold:start:build-advancedserver\\r'
|
||||
make build-advancedserver
|
||||
echo -en 'travis_fold:end:build-advancedserver\\r'
|
||||
fi
|
||||
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
|
||||
36
travis-build-scripts/run.sh
Executable file
36
travis-build-scripts/run.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/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 [ "$(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'
|
||||
|
||||
## Build images
|
||||
./travis-build-scripts/build.sh
|
||||
|
||||
## Test images
|
||||
./travis-build-scripts/test.sh
|
||||
|
||||
## Push images
|
||||
if [ "$BUILD_ALL" = true ] ; then
|
||||
./travis-build-scripts/push.sh developer
|
||||
./travis-build-scripts/push.sh production
|
||||
fi
|
||||
|
||||
33
travis-build-scripts/test.sh
Executable file
33
travis-build-scripts/test.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/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
|
||||
|
||||
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
|
||||
echo 'Testing Production image...' && echo -en 'travis_fold:start:test-advancedserver\\r'
|
||||
make test-advancedserver
|
||||
echo -en 'travis_fold:end:test-advancedserver\\r'
|
||||
fi
|
||||
echo 'Running gosec scan...' && echo -en 'travis_fold:start:gosec-scan\\r'
|
||||
if [ "$ARCH" = "amd64" ] ; then
|
||||
make gosec
|
||||
else
|
||||
echo "Gosec not available on ppc64le/s390x...skipping gosec scan"
|
||||
fi
|
||||
echo -en 'travis_fold:end:gosec-scan\\r'
|
||||
Reference in New Issue
Block a user