Get Started. It's Free
or sign up with your email address
build stage by Mind Map: build stage

1. def

1.1. create deployable artifacts

1.2. build python wheel artifacts

1.2.1. create a deployable artifact

1.2.1.1. pre-compiled/built

1.2.2. installation requires no dev dependencies

2. application artifact types

2.1. overview

2.1.1. Untitled

2.2. source distribution requires recompiling and building

2.2.1. may require different dependencies

2.2.2. invalidate previous testing

3. build application artifacts

3.1. create build env

3.1.1. adding package metadata to application

3.1.1.1. course folder

3.1.1.1.1. Untitled

3.1.1.2. setup.py

3.1.1.2.1. python universal standard to define metadata

3.1.1.2.2. file

3.1.1.2.3. packages

3.1.1.2.4. include_package_data

3.1.1.2.5. scripts

3.1.1.2.6. install_requires

3.1.1.3. MANIFEST.in

3.1.1.3.1. specify non-application static files to include application

3.1.1.3.2. Untitled

3.1.1.3.3. not needed here because contains app contains no static contents

3.1.2. test and build consistency

3.1.2.1. overview

3.1.2.1.1. Untitled

3.1.2.2. problem

3.1.2.2.1. Untitled

3.1.2.2.2. if test stage takes longer, the scenario more possible

3.1.2.3. solution

3.1.2.3.1. overview

3.1.2.3.2. snapshot of app dependencies inside cache

3.1.2.3.3. base test and builder service on the same build cache

3.1.2.4. same application source code

3.1.2.5. same application dependencies

3.1.3. implement build cache feature

3.1.3.1. configure test stage to use build cache

3.1.3.2. configure build stage to use build cache

3.1.3.3. test.sh

3.1.3.3.1. Untitled

3.1.3.3.2. pip download command

3.1.3.3.3. pip install command

3.1.3.4. add volume inside docker/dev/Dockerfile

3.1.3.4.1. Untitled

3.1.3.5. update docker/dev/docker-compose.xml

3.1.3.5.1. add a build volume

3.1.4. creating a builder service

3.1.4.1. use the same dockerfile as test

3.1.4.1.1. Untitled

3.1.4.2. volumes

3.1.4.2.1. where build output build artifacts: volumes

3.1.4.2.2. Untitled

3.1.4.3. volumes_from

3.1.4.3.1. Untitled

3.1.4.4. entrypoint / command

3.1.4.4.1. Untitled

3.1.4.4.2. --no-index

3.1.4.4.3. -f /build

3.1.4.4.4. .

3.1.4.5. previously configured build env

3.1.4.5.1. Untitled

3.2. build artifacts

3.2.1. commands

3.2.1.1. $docker-compose build

3.2.1.1.1. docker-compose command will always use cached images if available

3.2.1.1.2. always run docker build command

3.2.1.1.3. images are rebuilt

3.2.1.2. $docker-compose up agent

3.2.1.3. $docker-compose up test

3.2.1.4. $docker-compose up builder

3.2.2. artifacts

3.2.2.1. Untitled

3.2.3. review

3.2.3.1. copy todobackend/src to /application inside container

3.2.3.1.1. Untitled

3.2.3.2. entrypoint scripts triggered: build python wheel

3.2.3.2.1. Untitled

3.2.3.3. publishing application artifacts

3.2.3.3.1. Untitled

3.3. publish artifacts

3.3.1. publish locally

3.3.2. release stage image

4. summary

4.1. build application artifacts

4.2. source vs built distributions

4.3. python wheels

4.4. build using test environment

4.5. test and build consistency

4.6. publish locally for later stages