1. GUN make build system
1.1. workflow automation strategy
1.1.1. Untitled
1.2. why make
1.2.1. designed for shell
1.2.2. simple, imperative format
1.2.3. popular
1.2.3.1. installed by default on OS X
1.3. create a makefile
1.3.1. folder structure
1.3.1.1. Untitled
1.3.2. .PHONY: test build release
1.3.2.1. .PHONY avoids the same file name problem
1.3.3. test
1.3.3.1. echo "Hello"
1.3.3.2. echo "from make"
1.3.4. build
1.3.4.1. echo "Hello from build"
1.3.5. release
1.3.5.1. echo "hello from release"
1.4. test the workflow
2. describe the workflow
2.1. test stage
2.1.1. docker-compose -f docker/dev/docker-compose.yml build
2.1.2. docker-compose -f docker/dev/docker-compose.yml up agent
2.1.3. docker-compose -f docker/dev/docker-compose.yml up test
2.2. build stage
2.2.1. docker-compose -f docker/dev/docker-compose.yml up builder
2.3. release stage
2.3.1. docker-compose -f docker/release/docker-compose.yml build
2.3.2. docker-compose -f docker/release/docker-compose.yml up agent
2.3.3. docker-compose -f docker/release/docker-compose.yml run --rm app manage.py collect static --noinput
2.3.4. docker-compose -f docker/release/docker-compose.yml run --rm app manage.py migrate --noinput
2.3.5. docker-compose -f docker/release/docker-compose.yml up test
2.4. clean stage
2.4.1. docker-compose -f docker/dev/docker-compose.yml kill
2.4.2. docker-compose -f docker/dev/docker-compose.yml rm -f
2.4.3. docker-compose -f docker/release/docker-compose.yml kill
2.4.4. docker-compose -f docker/release/docker-compose.yml rm -f
3. parameterize the makefile
3.1. project variables
3.1.1. PROJECT_NAME ?= todobackendd
3.1.2. ORG_NAME ?= jmenga
3.1.3. REPO_NAME ?= todobackend
3.2. filenames
3.2.1. DEV_COMPOSE_FILE := docker/dev/docker-compose.yml
3.2.2. REL_COMPOSE_FILE := docker/dev/docker-compose.yml
3.3. docker-compose project names
3.3.1. docker compose default project naming
3.3.1.1. Untitled
3.3.2. REL_PROJECT := $(PROJECT_NAME)$(BUILD_ID)
3.3.3. DEV_PROJECT := $(REL_PROJECT)dev
3.3.4. Untitled
4. workflow infrastructure
4.1. github
4.1.1. Untitled
4.2. docker hub
4.2.1. Untitled
4.3. connect docker hub to github
5. summary
5.1. continuous delivery automation
5.1.1. make build system
5.1.2. make test, make build, make release
5.1.3. makefile variables
5.2. workflow infrastructure
5.2.1. github
5.2.2. docker hub
5.2.3. automated image builds