Release documentation (Link to workflow file)
A release
is the distribution of the final version or the newest version of a software application. A software release may be public or private and generally signifies the unveiling of a new or upgraded version of the application.
In agile software development, a release is a deployable software package culminating in several iterations and can be made before the end of an iteration.
To be successful, software release management requires careful planning and execution, with customer-centric goals, time and budget efficiency, and minimal negative impact on customers.
Note
You need to have a docker hub account. You can create one here.
-
In a GitHub workflow, we are in a different repository and to checkout to our project, we often used the action actions/checkout@v4.
-
docker/setup-buildx-action@v3 This action will create and boot a builder that can be used in the following steps of your workflow if you're using
Buildx
which is what is used by the next actions -
The next step is to connect to docker hub via docker/login-action@v3 action. Here you will need to provide your
username
andpassword
used when you want to connect to docker hub. The registry used here isdocker.io
to point to docker hub directly -
We extract metadata from Git reference and GitHub events. This docker/metadata-action@v4 is particularly useful if used with
Docker Build Push action
to tag and label Docker images. -
We build and push the image using the docker/build-push-action@v6. To achieve it we need to specify some information like:
context
: Build's context is the set of files located in the specified PATH or URLpush
: Push is a shorthand for--output=type=registry
. It is set totrue
to accept to be push once the image is buildtags
: list of tags.${{ steps.meta.outputs.tags }}
will ge the release version that trigger the actionannotations
: List of annotation to set to the imagelabels
: List of metadata for an image