Skip to main content

Build and Package Management: Code to Artifact

Learn how code becomes a deployable artifact with Gradle, Poetry, Docker and Makefiles, plus dependency locking and artifact versioning.

Prerequisites
~2.5 hours
10 Topics
Hands-on Scenarios

What You'll Learn

Understanding Why Build and Package Management Exists

It is Friday evening in Dublin. A payments team re-runs a build that passed on Tuesday.

Recognising Build Tools Across Languages

Every language has its own build tools, and they all do roughly the same jobs.

Building Java Projects with Gradle

Gradle builds Java projects from a config file, and the same ideas carry over to other build tools.

Building Python Projects with Poetry

Poetry manages your Python dependencies, your virtual environment and your packaging from one config file.

Managing Dependencies and Versions Safely

Dependencies are code you did not write, so how you declare, split and update them has a real effect on stability and security.

Versioning and Storing Artifacts

An artifact with no clear version is a mystery in production.

Skills You'll Master

BUILD-TOOLSGRADLEPOETRYDOCKERMAKEFILEDEPENDENCIES

Curriculum Index10 topics

Career Impact

Roles that use the skills in this module.

  • DevOps Engineer

  • Site Reliability Engineer

  • Platform Engineer

  • Release Engineer

See how this is asked in interviews

Practice on the Coding Sheet

Not a software engineer sheet. Every problem comes from real DevOps, SRE, Platform and Cloud interviews, from your first script to a system you build yourself.

Open the Coding Sheet

Frequently Asked Questions

A package manager finds, downloads and locks the libraries your project depends on. A build tool compiles, tests and packages your code into an artifact. Many modern tools do both jobs. Gradle and Poetry each manage dependencies and also build or package your project.

A lock file records the exact version of every dependency, including the dependencies of your dependencies. With it, your laptop, your teammate's machine and CI all install the same versions. Without it, each install may pick newer versions and builds drift apart.

The latest tag is only a name, and it can point to a different image tomorrow. You cannot tell which version is running or roll back to a known one. Deploy an exact version tag instead, such as 1.2.3 or 1.2.3 plus a git commit SHA.

No, but it is a handy habit. A Makefile gives your team short, memorable commands such as make test and make build, and your CI pipeline can call the same commands. It keeps long tool commands out of your head and out of your README.