Re-usable continuous integration (CI) scripts
Inspired by: https://circleci.com/blog/continuous-integration-at-segment/
Owned by #eng-infra
.
The following scripts don't rely on any Clever-specific tooling.
Logs into Docker registry, then builds and pushes docker image. Docker image is tagged with 7 character git commit SHA.
$ ./circleci/docker-publish [DOCKER_USER] [DOCKER_PASS] [DOCKER_EMAIL] [ORG]
Authenticates to NPM and publishes a package.
$ ./circleci/npm-publish [NPM_TOKEN] [PACKAGE_DIR]
Publishes content from [ARTIFACTS_DIR]
as a Github Release.
$ ./circleci/github-release [--pre-release] <GITHUB_TOKEN> [ARTIFACTS_DIR]
The following scripts depend on Clever-specific infrastructure and tooling.
Publishes your application and build in catapult.
$ ./circleci/catapult-publish [CATAPULT_URL] [CATAPULT_USER] [CATAPULT_PASS] [APP_NAME]
If you need to publish multiple applications, run this command once for each.
Deploys your application with dapple. Requires that you've first pushed the Docker image and published the application to Catapult.
$ ./circleci/dapple-deploy <DAPPLE_URL> <DAPPLE_USER> <DAPPLE_PASS> <APP_NAME> [ENVIRONMENT] [DEPLOYMENT_STRATEGY]
Note: The default environment is clever-dev
and the default deployment strategy is confirm-then-deploy
.
Additionally you can choose a no-confirm-deploy
strategy that does not require confirmation before deploying.
If you need to deploy multiple applications, run this command once for each.
Publishes a workflow to workflow-manager.
$ ./circleci/workflow-publish [WF_URL] [WF_USER] [WF_PASS] [WF_JSON]
Disabled.
We still are keeping the script here so that repos that invoke it can do so safely. But it is a no-op.