|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Here we assume that you've pushed to artifactory an artifact containing all contracts for all projects. |
| 4 | +# Example of such a project is available under https://github.com/spring-cloud-samples/spring-cloud-contract-nodejs-external-contracts |
| 5 | + |
| 6 | +SC_CONTRACT_DOCKER_VERSION="${SC_CONTRACT_DOCKER_VERSION:-1.2.4.BUILD-SNAPSHOT}" |
| 7 | +APP_IP="$( ./whats_my_ip.sh )" |
| 8 | +APP_PORT="${APP_PORT:-3000}" |
| 9 | +ARTIFACTORY_PORT="${ARTIFACTORY_PORT:-8081}" |
| 10 | +APPLICATION_BASE_URL="http://${APP_IP}:${APP_PORT}" |
| 11 | +ARTIFACTORY_URL="http://${APP_IP}:${ARTIFACTORY_PORT}/artifactory/libs-release-local" |
| 12 | +CURRENT_DIR="$( pwd )" |
| 13 | +PROJECT_NAME="${PROJECT_NAME:-bookstore}" |
| 14 | +PROJECT_GROUP="${PROJECT_GROUP:-com.example}" |
| 15 | +PROJECT_VERSION="${PROJECT_VERSION:-0.0.1.RELEASE}" |
| 16 | +# External repo |
| 17 | +EXTERNAL_CONTRACTS_ARTIFACT_ID="${EXTERNAL_CONTRACTS_ARTIFACT_ID:-external-contracts}" |
| 18 | +EXTERNAL_CONTRACTS_GROUP_ID="${EXTERNAL_CONTRACTS_GROUP_ID:-com.example}" |
| 19 | +EXTERNAL_CONTRACTS_VERSION="${EXTERNAL_CONTRACTS_VERSION:-+}" |
| 20 | +EXTERNAL_CONTRACTS_CLASSIFIER="${EXTERNAL_CONTRACTS_CLASSIFIER:-}" |
| 21 | +# you can mount your .m2 as a volume and point the plugin to work offline |
| 22 | +EXTERNAL_CONTRACTS_WORK_OFFLINE="${EXTERNAL_CONTRACTS_WORK_OFFLINE:-false}" |
| 23 | + |
| 24 | +echo "Sc Contract Version [${SC_CONTRACT_DOCKER_VERSION}]" |
| 25 | +echo "Application URL [${APPLICATION_BASE_URL}]" |
| 26 | +echo "Artifactory URL [${ARTIFACTORY_URL}]" |
| 27 | +echo "Project Version [${PROJECT_VERSION}]" |
| 28 | + |
| 29 | +# If you want to work offline just attach this volume |
| 30 | +# -v "${HOME}/.m2/:/root/.m2:ro" |
| 31 | + |
| 32 | +docker run --rm -e "APPLICATION_BASE_URL=${APPLICATION_BASE_URL}" -e "PUBLISH_ARTIFACTS=true" -e "PROJECT_NAME=${PROJECT_NAME}" -e "PROJECT_GROUP=${PROJECT_GROUP}" -e "REPO_WITH_BINARIES_URL=${ARTIFACTORY_URL}" -e "PROJECT_VERSION=${PROJECT_VERSION}" -e "EXTERNAL_CONTRACTS_ARTIFACT_ID=${EXTERNAL_CONTRACTS_ARTIFACT_ID}" -e "EXTERNAL_CONTRACTS_GROUP_ID=${EXTERNAL_CONTRACTS_GROUP_ID}" -e "EXTERNAL_CONTRACTS_VERSION=${EXTERNAL_CONTRACTS_VERSION}" -e "EXTERNAL_CONTRACTS_CLASSIFIER=${EXTERNAL_CONTRACTS_CLASSIFIER}" -e "EXTERNAL_CONTRACTS_WORK_OFFLINE=${EXTERNAL_CONTRACTS_WORK_OFFLINE}" -v "${CURRENT_DIR}/node_modules/spring-cloud-contract/output:/spring-cloud-contract-output/" springcloud/spring-cloud-contract:"${SC_CONTRACT_DOCKER_VERSION}" |
0 commit comments