build and upload
This commit is contained in:
parent
cfab267446
commit
9dd5176c77
@ -1,5 +1,7 @@
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
|
||||
test:
|
||||
stage: test
|
||||
@ -7,6 +9,40 @@ test:
|
||||
- echo "This job tests something"
|
||||
tags:
|
||||
- xcode_12_2
|
||||
|
||||
build_project:
|
||||
stage: build
|
||||
script:
|
||||
- xcodebuild build -project MVMCore/MVMCore.xcodeproj -scheme FatLibrary | xcpretty
|
||||
artifacts:
|
||||
paths:
|
||||
- RemoteViewFramework/**
|
||||
expire_in: 1 week
|
||||
only:
|
||||
- branches
|
||||
- feature/testing
|
||||
tags:
|
||||
- xcode_12_2
|
||||
environment:
|
||||
name: oneartifactory
|
||||
url: https://oneartifactoryprod.verizon.com/artifactory
|
||||
variables:
|
||||
ARTIFACTORY_URL: https://oneartifactoryprod.verizon.com/artifactory
|
||||
|
||||
deploy_snapshot:
|
||||
stage: deploy
|
||||
script:
|
||||
- cd Scripts && ./upload_remote_view_frameworks.sh
|
||||
only:
|
||||
- branches
|
||||
- feature/testing
|
||||
tags:
|
||||
- bash_shell
|
||||
environment:
|
||||
name: oneartifactory
|
||||
url: https://oneartifactoryprod.verizon.com/artifactory
|
||||
variables:
|
||||
ARTIFACTORY_URL: https://oneartifactoryprod.verizon.com/artifactory
|
||||
#
|
||||
#stages:
|
||||
# # - test
|
||||
|
||||
89
Scripts/upload_framework.sh
Normal file
89
Scripts/upload_framework.sh
Normal file
@ -0,0 +1,89 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# upload_framework.sh
|
||||
# RemoteView
|
||||
#
|
||||
# Uploads an iOS framework to Artificatory given the local path as the first argument and the remote project name in Verizon OneArtifactory for the second argument.
|
||||
#
|
||||
# An API key from Artifcatory is required in the api_key.private file before uploading.
|
||||
#
|
||||
# The script will replace [VER] in the provided remote path with the version found in the framework bundle.
|
||||
#
|
||||
# Created by Hedden, Kyle Matthew on 3/2/18.
|
||||
# Copyright © 2018 Verizon. All rights reserved.
|
||||
|
||||
URL=$1
|
||||
LOCALPATH=$2
|
||||
REMOTEPATH=$3
|
||||
|
||||
if [ -z $URL ]; then
|
||||
echo "The artifactory instance url must be specified as the first argument!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ">>> UPLOAD START <<<"
|
||||
echo "Local path: ${LOCALPATH}"
|
||||
echo "Remote path: ${REMOTEPATH}"
|
||||
|
||||
LOCALBASE=$(basename "${LOCALPATH}")
|
||||
LOCALDIR=$(dirname "${LOCALPATH}")
|
||||
|
||||
# Grab the framework version from the bundled Info.plist.
|
||||
FRAMEWORKVER=$(/usr/libexec/plistbuddy -c "Print :CFBundleShortVersionString" "${LOCALPATH}/Info.plist")
|
||||
echo -e "\nFramework version: \t${FRAMEWORKVER}"
|
||||
|
||||
# Replace the [VER] placeholders with the found version.
|
||||
REMOTEPATH="${REMOTEPATH//\[VER\]/$FRAMEWORKVER}"
|
||||
echo -e "Resolved path: \t\t${REMOTEPATH}"
|
||||
|
||||
if [ -z $ARTIFACTORY_APIKEY ]; then
|
||||
# Read the API key from a private file.
|
||||
read -r APIKEY < "api_key.private"
|
||||
else
|
||||
APIKEY=$ARTIFACTORY_APIKEY
|
||||
fi
|
||||
|
||||
if [ -z $APIKEY ]; then
|
||||
read -p "Artifactory API Key:" APIKEY
|
||||
echo $APIKEY >> api_key.private
|
||||
fi
|
||||
|
||||
echo -e "API Key: \t\t${APIKEY}"
|
||||
|
||||
# Zip the framework & DSYM for uploading.
|
||||
pushd $LOCALDIR
|
||||
echo -e "---------\nZipping: \t\t${LOCALBASE}.zip"
|
||||
zip -r -X "${LOCALBASE}.zip" $LOCALBASE
|
||||
# Generate framework's SHA-1 checksum.
|
||||
CHECKSUM=$(shasum -a 1 "${LOCALBASE}.zip" | cut -d " " -f 1)
|
||||
echo -e "SHA-1 Checksum: \t${CHECKSUM}"
|
||||
if [ -e ${LOCALBASE}.dSYM ]; then
|
||||
echo -e "---------\nZipping: \t\t${LOCALBASE}.dSYM.zip"
|
||||
zip -r -X "${LOCALBASE}.dSYM.zip" $LOCALBASE.dSYM
|
||||
# Generate its SHA-1 checksum for dsym.
|
||||
DSYM_CHECKSUM=$(shasum -a 1 "${LOCALBASE}.dSYM.zip" | cut -d " " -f 1)
|
||||
echo -e "SHA-1 Checksum: \t${DSYM_CHECKSUM}"
|
||||
fi
|
||||
popd
|
||||
mv ${LOCALPATH}.zip .
|
||||
if [ -e ${LOCALPATH}.dSYM.zip ]; then
|
||||
mv ${LOCALPATH}.dSYM.zip .
|
||||
fi
|
||||
|
||||
# Upload framework to Artifactory.
|
||||
echo -e "---------\nUploading to: \t\t${URL}/${REMOTEPATH}.zip"
|
||||
curl --header "X-JFrog-Art-Api: ${APIKEY}" --header "X-Checksum-Sha1: ${CHECKSUM}" -X PUT "${URL}/${REMOTEPATH}.zip" -T "${LOCALBASE}.zip"
|
||||
|
||||
# Cleanup.
|
||||
rm "${LOCALBASE}.zip"
|
||||
|
||||
if [ -e ${LOCALBASE}.dSYM.zip ]; then
|
||||
# Upload dsym Artifactory.
|
||||
echo -e "---------\nUploading to: \t\t${URL}/${REMOTEPATH}.dSYM.zip"
|
||||
curl --header "X-JFrog-Art-Api: ${APIKEY}" --header "X-Checksum-Sha1: ${DSYM_CHECKSUM}" -X PUT "${URL}/${REMOTEPATH}.dSYM.zip" -T "${LOCALBASE}.dSYM.zip"
|
||||
# Cleanup dsym.
|
||||
rm ${LOCALBASE}.dSYM.zip
|
||||
fi
|
||||
|
||||
|
||||
echo -e "\n\n<<< UPLOAD COMPLETE >>>\n\n"
|
||||
26
Scripts/upload_remote_view_frameworks.sh
Normal file
26
Scripts/upload_remote_view_frameworks.sh
Normal file
@ -0,0 +1,26 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# upload_remote_view_frameworks.sh
|
||||
#
|
||||
# Uploads all compiled framework flavors in RemoteViewFramework to Artifactory with the SNAPSHOT classifier. This is to avoid accidently clobbering a release build of a particular version. Remove the classifier in Artificatory to make a release.
|
||||
#
|
||||
# Created by Hedden, Kyle Matthew on 3/2/18.
|
||||
#
|
||||
|
||||
FRAMEWORK_VERSION=$(cd ../MVMCore && agvtool vers -terse)
|
||||
if [ $(git tag --list | grep "v${FRAMEWORK_VERSION}") ]; then
|
||||
echo This version tag has already been committed! Aborting!
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create new aggregate builds
|
||||
|
||||
if [ -z $ARTIFACTORY_URL ]; then
|
||||
ARTIFACTORY_URL="https://oneartifactoryprod.verizon.com/artifactory"
|
||||
fi
|
||||
|
||||
#xcodebuild -workspace "../RemoteView.xcworkspace" -scheme "RemoteViewAggregate"
|
||||
|
||||
# Remote View Versions
|
||||
|
||||
./upload_framework.sh $ARTIFACTORY_URL "../MVMCore/build/universal/MVMCore.framework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCore/[VER]/MVMCore-[VER]-Debug-SNAPSHOT
|
||||
Loading…
Reference in New Issue
Block a user