-
Notifications
You must be signed in to change notification settings - Fork 10
How CDeep3M release system works
This page describes how CDeep3M releases work.
CDeep3M relies on a Makefile with several targets that package and deploy CDeep3M.
There are several important make targets that relate to the release of software. The following bullet points provide summary descriptions of what these targets do.
-
checkrepo
Verifies the git repo is the official CDeep3M repo by using the
git remote get-url origin
(added in git 2.7) command to get the repo url. -
updateversion
Prompts user for new version which is saved in the
VERSION
file -
test
Runs bats (version 0.4.0) tests which are located in the
tests/
directory -
dist
This target packages CDeep3M into a tarball under the
dist/
directory and contains a lot of tasks. First this target copies over CDeep3M code (andREADME.md
) intodist/cdeep3m-<VERSION>/
directory. Then using cat, theaws/motd
file is copied into that same directory and the@@VERSION@@
keyword is replaced using the sed command. Also using cat theaws/basic_cloudformation.json
file is copied todist/cdeep3m_<VERSION>_basic_cloudformation.json
and using sed@@VERSION@@
tag is replaced in the file. Using sed the version and the CloudFormation link is updated in theREADME.md
file. Finally thedist/cdeep3m-<VERSION>/
is gzipped and tarred into a file nameddist/cdeep3m-VERSION.tar.gz
-
release
This target creates the formal release. First this target pushes the cloudformation template file and the CDeep3M tarball to S3
cdeep3m-releases/<VERSION>
using the AWS cli which is assumed to be installed and correctly configured. This target then copies back the updatedREADME.md
file and commits/pushes its changes to github to the same branch that is currently active. What this means is if you are on say the dev branch the commit/push is sent to that branch which is good for testing. This target also tags the code with tag of formatv<VERSION>
and pushes that tag up.