CI Templates API Reference
Alpine templates
- .fdo.container-build@alpine
Checks for a pre-existing alpine container image and builds it if it does not yet exist.
If an image with the same version or suffix exists in the upstream project’s registry, the image is copied into this project’s registry. If no such image exists, the image is built and pushed to the local registry.
The architecture is native to the runner, use the tags: field in the job to select a runner that is not the default x86_64.
Example:
my-alpine-image: extends: .fdo.container-build@alpine variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: 'latest' FDO_DISTRIBUTION_TAG: '2020-03-20' my-alpine-arm-image: extends: .fdo.container-build@alpine variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: 'latest' FDO_DISTRIBUTION_TAG: '2020-03-20-arm' tags: - aarch64
Reserved by this template:
image:
do not overridescript:
do not override
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is optional. If missing, ‘latest’ will be used.
The alpine version to build, e.g. ‘latest’, ‘edge’
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
- FDO_UPSTREAM_REPO
The GitLab project path to the upstream project
- FDO_REPO_SUFFIX
The repository name suffix to use, see below.
- FDO_DISTRIBUTION_PACKAGES
Packages to install as a space-separated single string, e.g. “curl wget”. These packages must be available in the default distribution repositories; use
FDO_DISTRIBUTION_EXEC
followed by the distribution-specific command(s) to enable additional repositories and/or install additional packages.
- FDO_DISTRIBUTION_EXEC
An executable run after the installation of the
FDO_DISTRIBUTION_PACKAGES
- FDO_DISTRIBUTION_ENTRYPOINT
The path to the binary that should be used as an entrypoint
- FDO_DISTRIBUTION_WORKINGDIR
The path that will be used as the default working directory (default: /app)
- FDO_FORCE_REBUILD
If set, the image will be built even if it exists in the registry already
- FDO_BASE_IMAGE
By default, the base image to start with is
alpine:$FDO_DISTRIBUTION_VERSION
and all dependencies are installed on top of that base image. IfFDO_BASE_IMAGE
is given, it references a different base image to start with. This image usually requires the full registry path, e.g.registry.freedesktop.org/projectGroup/projectName/repo_suffix:tag-name
- FDO_EXPIRES_AFTER
If set, enables an expiration time on the image to aid the garbage collector in deciding when an image can be removed. This should be set for temporary images that are not intended to be kept forever. Allowed values are e.g.
1h
(one hour),2d
(two days) or3w
(three weeks).
- FDO_CACHE_DIR
If set, the given directory is mounted as
/cache
whenFDO_DISTRIBUTION_EXEC
is run. This can allow for passing of cache values between build jobs (if run on the same runner). You should not usually need to set this, it defaults to/cache
from the host and thus enables cache sharing by default.
- FDO_USER
If set, the given unix username is used when running containers based on this image instead of root. If the username is not created by the
FDO_DISTRIBUTION_EXEC
script, it will be created automatically. Note that $HOME will be set to/home/$FDO_USER
, if the user is created manually byFDO_DISTRIBUTION_EXEC
script it is important to ensure that directory is created as well and writable by the user.
The resulting image will be pushed to the local registry.
If
FDO_REPO_SUFFIX
was specified, the image path is$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FDO_DISTRIBUTION_TAG
. Use the.fdo.suffixed-image@alpine
template to access or use this image.If
FDO_REPO_SUFFIX
was not specified, the image path is$CI_REGISTRY_IMAGE/alpine/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
. Use the.fdo.distribution-image@alpine
template to access or use this image.- .fdo.container-build@alpine@x86_64
Alias to
.fdo.container-build@alpine
.This template is deprecated, use .fdo.container-build@alpine instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.container-build@alpine@aarch64
Checks for a pre-existing alpine container image for the
aarch64
processor architecture and builds it if it does not yet exist.This template requires runners with the
aarch64
tag.See
.fdo.container-build@alpine
for details.This template is deprecated, use .fdo.container-build@alpine instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.distribution-image@alpine
alpine template that pulls the alpine image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@alpine
.This template sets
image:
to the generated image. You may override this.Example:
my-alpine-test: extends: .fdo.distribution-image@alpine variables: FDO_DISTRIBUTION_VERSION: 'latest' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is optional. If missing, ‘latest’ will be used.
The alpine version to build, e.g. ‘latest’, ‘edge’
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “alpine”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.suffixed-image@alpine
instead.- .fdo.suffixed-image@alpine
alpine template that pulls the alpine image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@alpine
.This template sets
image:
to the generated image. You may override this.Example:
my-alpine-test: extends: .fdo.distribution-image@alpine variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “alpine”
Variables provided by this template should be considered read-only.
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.distribution-image@alpine
instead.- .fdo.b2c-image@alpine
boot2container alpine template that pulls the alpine image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@alpine
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-alpine-test: extends: .fdo.b2c-image@alpine variables: FDO_DISTRIBUTION_VERSION: 'latest' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is optional. If missing, ‘latest’ will be used.
The alpine version to build, e.g. ‘latest’, ‘edge’
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “alpine”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-suffixed-image@alpine
instead.- .fdo.b2c-suffixed-image@alpine
boot2container alpine template that pulls the alpine image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@alpine
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-alpine-test: extends: .fdo.b2c-suffixed-image@alpine variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@alpine
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “alpine”
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-image@alpine
instead.
Arch templates
- .fdo.container-build@arch
Checks for a pre-existing arch container image and builds it if it does not yet exist.
If an image with the same version or suffix exists in the upstream project’s registry, the image is copied into this project’s registry. If no such image exists, the image is built and pushed to the local registry.
The architecture is native to the runner, use the tags: field in the job to select a runner that is not the default x86_64.
Example:
my-arch-image: extends: .fdo.container-build@arch variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_TAG: '2020-03-20' my-arch-arm-image: extends: .fdo.container-build@arch variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_TAG: '2020-03-20-arm' tags: - aarch64
Reserved by this template:
image:
do not overridescript:
do not override
Variables:
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
- FDO_UPSTREAM_REPO
The GitLab project path to the upstream project
- FDO_REPO_SUFFIX
The repository name suffix to use, see below.
- FDO_DISTRIBUTION_PACKAGES
Packages to install as a space-separated single string, e.g. “curl wget”. These packages must be available in the default distribution repositories; use
FDO_DISTRIBUTION_EXEC
followed by the distribution-specific command(s) to enable additional repositories and/or install additional packages.
- FDO_DISTRIBUTION_EXEC
An executable run after the installation of the
FDO_DISTRIBUTION_PACKAGES
- FDO_DISTRIBUTION_ENTRYPOINT
The path to the binary that should be used as an entrypoint
- FDO_DISTRIBUTION_WORKINGDIR
The path that will be used as the default working directory (default: /app)
- FDO_FORCE_REBUILD
If set, the image will be built even if it exists in the registry already
- FDO_BASE_IMAGE
By default, the base image to start with is
arch:rolling
and all dependencies are installed on top of that base image. IfFDO_BASE_IMAGE
is given, it references a different base image to start with. This image usually requires the full registry path, e.g.registry.freedesktop.org/projectGroup/projectName/repo_suffix:tag-name
- FDO_EXPIRES_AFTER
If set, enables an expiration time on the image to aid the garbage collector in deciding when an image can be removed. This should be set for temporary images that are not intended to be kept forever. Allowed values are e.g.
1h
(one hour),2d
(two days) or3w
(three weeks).
- FDO_CACHE_DIR
If set, the given directory is mounted as
/cache
whenFDO_DISTRIBUTION_EXEC
is run. This can allow for passing of cache values between build jobs (if run on the same runner). You should not usually need to set this, it defaults to/cache
from the host and thus enables cache sharing by default.
- FDO_USER
If set, the given unix username is used when running containers based on this image instead of root. If the username is not created by the
FDO_DISTRIBUTION_EXEC
script, it will be created automatically. Note that $HOME will be set to/home/$FDO_USER
, if the user is created manually byFDO_DISTRIBUTION_EXEC
script it is important to ensure that directory is created as well and writable by the user.
The resulting image will be pushed to the local registry.
If
FDO_REPO_SUFFIX
was specified, the image path is$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FDO_DISTRIBUTION_TAG
. Use the.fdo.suffixed-image@arch
template to access or use this image.If
FDO_REPO_SUFFIX
was not specified, the image path is$CI_REGISTRY_IMAGE/arch/rolling:$FDO_DISTRIBUTION_TAG
. Use the.fdo.distribution-image@arch
template to access or use this image.- .fdo.container-build@arch@x86_64
Alias to
.fdo.container-build@arch
.This template is deprecated, use .fdo.container-build@arch instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.distribution-image@arch
arch template that pulls the arch image from the registry based on
FDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@arch
.This template sets
image:
to the generated image. You may override this.Example:
my-arch-test: extends: .fdo.distribution-image@arch variables: FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@arch
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “arch”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.suffixed-image@arch
instead.- .fdo.suffixed-image@arch
arch template that pulls the arch image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@arch
.This template sets
image:
to the generated image. You may override this.Example:
my-arch-test: extends: .fdo.distribution-image@arch variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@arch
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@arch
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “arch”
Variables provided by this template should be considered read-only.
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.distribution-image@arch
instead.- .fdo.b2c-image@arch
boot2container arch template that pulls the arch image from the registry based on
FDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@arch
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-arch-test: extends: .fdo.b2c-image@arch variables: FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@arch
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “arch”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-suffixed-image@arch
instead.- .fdo.b2c-suffixed-image@arch
boot2container arch template that pulls the arch image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@arch
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-arch-test: extends: .fdo.b2c-suffixed-image@arch variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@arch
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@arch
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “arch”
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-image@arch
instead.
CentOS templates
- .fdo.container-build@centos
Checks for a pre-existing centos container image and builds it if it does not yet exist.
If an image with the same version or suffix exists in the upstream project’s registry, the image is copied into this project’s registry. If no such image exists, the image is built and pushed to the local registry.
The architecture is native to the runner, use the tags: field in the job to select a runner that is not the default x86_64.
Example:
my-centos-image: extends: .fdo.container-build@centos variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: '7' FDO_DISTRIBUTION_TAG: '2020-03-20' my-centos-arm-image: extends: .fdo.container-build@centos variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: '7' FDO_DISTRIBUTION_TAG: '2020-03-20-arm' tags: - aarch64
Reserved by this template:
image:
do not overridescript:
do not override
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The centos version to build, e.g. ‘7’, ‘8’
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
- FDO_UPSTREAM_REPO
The GitLab project path to the upstream project
- FDO_REPO_SUFFIX
The repository name suffix to use, see below.
- FDO_DISTRIBUTION_PACKAGES
Packages to install as a space-separated single string, e.g. “curl wget”. These packages must be available in the default distribution repositories; use
FDO_DISTRIBUTION_EXEC
followed by the distribution-specific command(s) to enable additional repositories and/or install additional packages.
- FDO_DISTRIBUTION_EXEC
An executable run after the installation of the
FDO_DISTRIBUTION_PACKAGES
- FDO_DISTRIBUTION_ENTRYPOINT
The path to the binary that should be used as an entrypoint
- FDO_DISTRIBUTION_WORKINGDIR
The path that will be used as the default working directory (default: /app)
- FDO_FORCE_REBUILD
If set, the image will be built even if it exists in the registry already
- FDO_BASE_IMAGE
By default, the base image to start with is
centos:$FDO_DISTRIBUTION_VERSION
and all dependencies are installed on top of that base image. IfFDO_BASE_IMAGE
is given, it references a different base image to start with. This image usually requires the full registry path, e.g.registry.freedesktop.org/projectGroup/projectName/repo_suffix:tag-name
- FDO_EXPIRES_AFTER
If set, enables an expiration time on the image to aid the garbage collector in deciding when an image can be removed. This should be set for temporary images that are not intended to be kept forever. Allowed values are e.g.
1h
(one hour),2d
(two days) or3w
(three weeks).
- FDO_CACHE_DIR
If set, the given directory is mounted as
/cache
whenFDO_DISTRIBUTION_EXEC
is run. This can allow for passing of cache values between build jobs (if run on the same runner). You should not usually need to set this, it defaults to/cache
from the host and thus enables cache sharing by default.
- FDO_USER
If set, the given unix username is used when running containers based on this image instead of root. If the username is not created by the
FDO_DISTRIBUTION_EXEC
script, it will be created automatically. Note that $HOME will be set to/home/$FDO_USER
, if the user is created manually byFDO_DISTRIBUTION_EXEC
script it is important to ensure that directory is created as well and writable by the user.
The resulting image will be pushed to the local registry.
If
FDO_REPO_SUFFIX
was specified, the image path is$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FDO_DISTRIBUTION_TAG
. Use the.fdo.suffixed-image@centos
template to access or use this image.If
FDO_REPO_SUFFIX
was not specified, the image path is$CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
. Use the.fdo.distribution-image@centos
template to access or use this image.- .fdo.container-build@centos@x86_64
Alias to
.fdo.container-build@centos
.This template is deprecated, use .fdo.container-build@centos instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.distribution-image@centos
centos template that pulls the centos image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@centos
.This template sets
image:
to the generated image. You may override this.Example:
my-centos-test: extends: .fdo.distribution-image@centos variables: FDO_DISTRIBUTION_VERSION: '7' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The centos version to build, e.g. ‘7’, ‘8’
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “centos”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.suffixed-image@centos
instead.- .fdo.suffixed-image@centos
centos template that pulls the centos image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@centos
.This template sets
image:
to the generated image. You may override this.Example:
my-centos-test: extends: .fdo.distribution-image@centos variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “centos”
Variables provided by this template should be considered read-only.
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.distribution-image@centos
instead.- .fdo.b2c-image@centos
boot2container centos template that pulls the centos image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@centos
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-centos-test: extends: .fdo.b2c-image@centos variables: FDO_DISTRIBUTION_VERSION: '7' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The centos version to build, e.g. ‘7’, ‘8’
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “centos”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-suffixed-image@centos
instead.- .fdo.b2c-suffixed-image@centos
boot2container centos template that pulls the centos image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@centos
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-centos-test: extends: .fdo.b2c-suffixed-image@centos variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@centos
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “centos”
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-image@centos
instead.
Debian templates
- .fdo.container-build@debian
Checks for a pre-existing debian container image and builds it if it does not yet exist.
If an image with the same version or suffix exists in the upstream project’s registry, the image is copied into this project’s registry. If no such image exists, the image is built and pushed to the local registry.
The architecture is native to the runner, use the tags: field in the job to select a runner that is not the default x86_64.
Example:
my-debian-image: extends: .fdo.container-build@debian variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: 'bullseye' FDO_DISTRIBUTION_TAG: '2020-03-20' my-debian-arm-image: extends: .fdo.container-build@debian variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: 'bullseye' FDO_DISTRIBUTION_TAG: '2020-03-20-arm' tags: - aarch64
Reserved by this template:
image:
do not overridescript:
do not override
Environment variables set by default:
DEBIAN_FRONTEND=noninteractive
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The debian version to build, e.g. ‘bullseye’, ‘buster’, ‘sid’, ‘stretch’
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
- FDO_UPSTREAM_REPO
The GitLab project path to the upstream project
- FDO_REPO_SUFFIX
The repository name suffix to use, see below.
- FDO_DISTRIBUTION_PACKAGES
Packages to install as a space-separated single string, e.g. “curl wget”. These packages must be available in the default distribution repositories; use
FDO_DISTRIBUTION_EXEC
followed by the distribution-specific command(s) to enable additional repositories and/or install additional packages.
- FDO_DISTRIBUTION_EXEC
An executable run after the installation of the
FDO_DISTRIBUTION_PACKAGES
- FDO_DISTRIBUTION_ENTRYPOINT
The path to the binary that should be used as an entrypoint
- FDO_DISTRIBUTION_WORKINGDIR
The path that will be used as the default working directory (default: /app)
- FDO_FORCE_REBUILD
If set, the image will be built even if it exists in the registry already
- FDO_BASE_IMAGE
By default, the base image to start with is
debian:$FDO_DISTRIBUTION_VERSION
and all dependencies are installed on top of that base image. IfFDO_BASE_IMAGE
is given, it references a different base image to start with. This image usually requires the full registry path, e.g.registry.freedesktop.org/projectGroup/projectName/repo_suffix:tag-name
- FDO_EXPIRES_AFTER
If set, enables an expiration time on the image to aid the garbage collector in deciding when an image can be removed. This should be set for temporary images that are not intended to be kept forever. Allowed values are e.g.
1h
(one hour),2d
(two days) or3w
(three weeks).
- FDO_CACHE_DIR
If set, the given directory is mounted as
/cache
whenFDO_DISTRIBUTION_EXEC
is run. This can allow for passing of cache values between build jobs (if run on the same runner). You should not usually need to set this, it defaults to/cache
from the host and thus enables cache sharing by default.
- FDO_USER
If set, the given unix username is used when running containers based on this image instead of root. If the username is not created by the
FDO_DISTRIBUTION_EXEC
script, it will be created automatically. Note that $HOME will be set to/home/$FDO_USER
, if the user is created manually byFDO_DISTRIBUTION_EXEC
script it is important to ensure that directory is created as well and writable by the user.
The resulting image will be pushed to the local registry.
If
FDO_REPO_SUFFIX
was specified, the image path is$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FDO_DISTRIBUTION_TAG
. Use the.fdo.suffixed-image@debian
template to access or use this image.If
FDO_REPO_SUFFIX
was not specified, the image path is$CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
. Use the.fdo.distribution-image@debian
template to access or use this image.- .fdo.container-build@debian@x86_64
Alias to
.fdo.container-build@debian
.This template is deprecated, use .fdo.container-build@debian instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.container-build@debian@aarch64
Checks for a pre-existing debian container image for the
aarch64
processor architecture and builds it if it does not yet exist.This template requires runners with the
aarch64
tag.See
.fdo.container-build@debian
for details.This template is deprecated, use .fdo.container-build@debian instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.distribution-image@debian
debian template that pulls the debian image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@debian
.This template sets
image:
to the generated image. You may override this.Example:
my-debian-test: extends: .fdo.distribution-image@debian variables: FDO_DISTRIBUTION_VERSION: 'bullseye' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The debian version to build, e.g. ‘bullseye’, ‘buster’, ‘sid’, ‘stretch’
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “debian”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.suffixed-image@debian
instead.- .fdo.suffixed-image@debian
debian template that pulls the debian image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@debian
.This template sets
image:
to the generated image. You may override this.Example:
my-debian-test: extends: .fdo.distribution-image@debian variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “debian”
Variables provided by this template should be considered read-only.
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.distribution-image@debian
instead.- .fdo.b2c-image@debian
boot2container debian template that pulls the debian image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@debian
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-debian-test: extends: .fdo.b2c-image@debian variables: FDO_DISTRIBUTION_VERSION: 'bullseye' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The debian version to build, e.g. ‘bullseye’, ‘buster’, ‘sid’, ‘stretch’
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “debian”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-suffixed-image@debian
instead.- .fdo.b2c-suffixed-image@debian
boot2container debian template that pulls the debian image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@debian
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-debian-test: extends: .fdo.b2c-suffixed-image@debian variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@debian
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “debian”
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-image@debian
instead.
Fedora templates
- .fdo.container-build@fedora
Checks for a pre-existing fedora container image and builds it if it does not yet exist.
If an image with the same version or suffix exists in the upstream project’s registry, the image is copied into this project’s registry. If no such image exists, the image is built and pushed to the local registry.
The architecture is native to the runner, use the tags: field in the job to select a runner that is not the default x86_64.
Example:
my-fedora-image: extends: .fdo.container-build@fedora variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: '41' FDO_DISTRIBUTION_TAG: '2020-03-20' my-fedora-arm-image: extends: .fdo.container-build@fedora variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: '41' FDO_DISTRIBUTION_TAG: '2020-03-20-arm' tags: - aarch64
Reserved by this template:
image:
do not overridescript:
do not override
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The fedora version to build, e.g. ‘41’, ‘40’, ‘39’
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
- FDO_UPSTREAM_REPO
The GitLab project path to the upstream project
- FDO_REPO_SUFFIX
The repository name suffix to use, see below.
- FDO_DISTRIBUTION_PACKAGES
Packages to install as a space-separated single string, e.g. “curl wget”. These packages must be available in the default distribution repositories; use
FDO_DISTRIBUTION_EXEC
followed by the distribution-specific command(s) to enable additional repositories and/or install additional packages.
- FDO_DISTRIBUTION_EXEC
An executable run after the installation of the
FDO_DISTRIBUTION_PACKAGES
- FDO_DISTRIBUTION_ENTRYPOINT
The path to the binary that should be used as an entrypoint
- FDO_DISTRIBUTION_WORKINGDIR
The path that will be used as the default working directory (default: /app)
- FDO_FORCE_REBUILD
If set, the image will be built even if it exists in the registry already
- FDO_BASE_IMAGE
By default, the base image to start with is
fedora:$FDO_DISTRIBUTION_VERSION
and all dependencies are installed on top of that base image. IfFDO_BASE_IMAGE
is given, it references a different base image to start with. This image usually requires the full registry path, e.g.registry.freedesktop.org/projectGroup/projectName/repo_suffix:tag-name
- FDO_EXPIRES_AFTER
If set, enables an expiration time on the image to aid the garbage collector in deciding when an image can be removed. This should be set for temporary images that are not intended to be kept forever. Allowed values are e.g.
1h
(one hour),2d
(two days) or3w
(three weeks).
- FDO_CACHE_DIR
If set, the given directory is mounted as
/cache
whenFDO_DISTRIBUTION_EXEC
is run. This can allow for passing of cache values between build jobs (if run on the same runner). You should not usually need to set this, it defaults to/cache
from the host and thus enables cache sharing by default.
- FDO_USER
If set, the given unix username is used when running containers based on this image instead of root. If the username is not created by the
FDO_DISTRIBUTION_EXEC
script, it will be created automatically. Note that $HOME will be set to/home/$FDO_USER
, if the user is created manually byFDO_DISTRIBUTION_EXEC
script it is important to ensure that directory is created as well and writable by the user.
The resulting image will be pushed to the local registry.
If
FDO_REPO_SUFFIX
was specified, the image path is$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FDO_DISTRIBUTION_TAG
. Use the.fdo.suffixed-image@fedora
template to access or use this image.If
FDO_REPO_SUFFIX
was not specified, the image path is$CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
. Use the.fdo.distribution-image@fedora
template to access or use this image.- .fdo.container-build@fedora@x86_64
Alias to
.fdo.container-build@fedora
.This template is deprecated, use .fdo.container-build@fedora instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.container-build@fedora@aarch64
Checks for a pre-existing fedora container image for the
aarch64
processor architecture and builds it if it does not yet exist.This template requires runners with the
aarch64
tag.See
.fdo.container-build@fedora
for details.This template is deprecated, use .fdo.container-build@fedora instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.distribution-image@fedora
fedora template that pulls the fedora image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@fedora
.This template sets
image:
to the generated image. You may override this.Example:
my-fedora-test: extends: .fdo.distribution-image@fedora variables: FDO_DISTRIBUTION_VERSION: '41' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The fedora version to build, e.g. ‘41’, ‘40’, ‘39’
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “fedora”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.suffixed-image@fedora
instead.- .fdo.suffixed-image@fedora
fedora template that pulls the fedora image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@fedora
.This template sets
image:
to the generated image. You may override this.Example:
my-fedora-test: extends: .fdo.distribution-image@fedora variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “fedora”
Variables provided by this template should be considered read-only.
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.distribution-image@fedora
instead.- .fdo.b2c-image@fedora
boot2container fedora template that pulls the fedora image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@fedora
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-fedora-test: extends: .fdo.b2c-image@fedora variables: FDO_DISTRIBUTION_VERSION: '41' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The fedora version to build, e.g. ‘41’, ‘40’, ‘39’
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “fedora”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-suffixed-image@fedora
instead.- .fdo.b2c-suffixed-image@fedora
boot2container fedora template that pulls the fedora image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@fedora
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-fedora-test: extends: .fdo.b2c-suffixed-image@fedora variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@fedora
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “fedora”
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-image@fedora
instead.
openSUSE templates
- .fdo.container-build@opensuse
Checks for a pre-existing opensuse container image and builds it if it does not yet exist.
If an image with the same version or suffix exists in the upstream project’s registry, the image is copied into this project’s registry. If no such image exists, the image is built and pushed to the local registry.
The architecture is native to the runner, use the tags: field in the job to select a runner that is not the default x86_64.
Example:
my-opensuse-image: extends: .fdo.container-build@opensuse variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: 'tumbleweed' FDO_DISTRIBUTION_TAG: '2020-03-20' my-opensuse-arm-image: extends: .fdo.container-build@opensuse variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: 'tumbleweed' FDO_DISTRIBUTION_TAG: '2020-03-20-arm' tags: - aarch64
Reserved by this template:
image:
do not overridescript:
do not override
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The opensuse version to build, e.g. ‘tumbleweed’
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
- FDO_UPSTREAM_REPO
The GitLab project path to the upstream project
- FDO_REPO_SUFFIX
The repository name suffix to use, see below.
- FDO_DISTRIBUTION_PACKAGES
Packages to install as a space-separated single string, e.g. “curl wget”. These packages must be available in the default distribution repositories; use
FDO_DISTRIBUTION_EXEC
followed by the distribution-specific command(s) to enable additional repositories and/or install additional packages.
- FDO_DISTRIBUTION_EXEC
An executable run after the installation of the
FDO_DISTRIBUTION_PACKAGES
- FDO_DISTRIBUTION_ENTRYPOINT
The path to the binary that should be used as an entrypoint
- FDO_DISTRIBUTION_WORKINGDIR
The path that will be used as the default working directory (default: /app)
- FDO_FORCE_REBUILD
If set, the image will be built even if it exists in the registry already
- FDO_BASE_IMAGE
By default, the base image to start with is
opensuse:$FDO_DISTRIBUTION_VERSION
and all dependencies are installed on top of that base image. IfFDO_BASE_IMAGE
is given, it references a different base image to start with. This image usually requires the full registry path, e.g.registry.freedesktop.org/projectGroup/projectName/repo_suffix:tag-name
- FDO_EXPIRES_AFTER
If set, enables an expiration time on the image to aid the garbage collector in deciding when an image can be removed. This should be set for temporary images that are not intended to be kept forever. Allowed values are e.g.
1h
(one hour),2d
(two days) or3w
(three weeks).
- FDO_CACHE_DIR
If set, the given directory is mounted as
/cache
whenFDO_DISTRIBUTION_EXEC
is run. This can allow for passing of cache values between build jobs (if run on the same runner). You should not usually need to set this, it defaults to/cache
from the host and thus enables cache sharing by default.
- FDO_USER
If set, the given unix username is used when running containers based on this image instead of root. If the username is not created by the
FDO_DISTRIBUTION_EXEC
script, it will be created automatically. Note that $HOME will be set to/home/$FDO_USER
, if the user is created manually byFDO_DISTRIBUTION_EXEC
script it is important to ensure that directory is created as well and writable by the user.
The resulting image will be pushed to the local registry.
If
FDO_REPO_SUFFIX
was specified, the image path is$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FDO_DISTRIBUTION_TAG
. Use the.fdo.suffixed-image@opensuse
template to access or use this image.If
FDO_REPO_SUFFIX
was not specified, the image path is$CI_REGISTRY_IMAGE/opensuse/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
. Use the.fdo.distribution-image@opensuse
template to access or use this image.- .fdo.container-build@opensuse@x86_64
Alias to
.fdo.container-build@opensuse
.This template is deprecated, use .fdo.container-build@opensuse instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.container-build@opensuse@aarch64
Checks for a pre-existing opensuse container image for the
aarch64
processor architecture and builds it if it does not yet exist.This template requires runners with the
aarch64
tag.See
.fdo.container-build@opensuse
for details.This template is deprecated, use .fdo.container-build@opensuse instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.distribution-image@opensuse
opensuse template that pulls the opensuse image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@opensuse
.This template sets
image:
to the generated image. You may override this.Example:
my-opensuse-test: extends: .fdo.distribution-image@opensuse variables: FDO_DISTRIBUTION_VERSION: 'tumbleweed' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The opensuse version to build, e.g. ‘tumbleweed’
The value supplied must be the same as supplied in
.fdo.container-build@opensuse
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@opensuse
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “opensuse”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.suffixed-image@opensuse
instead.- .fdo.suffixed-image@opensuse
opensuse template that pulls the opensuse image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@opensuse
.This template sets
image:
to the generated image. You may override this.Example:
my-opensuse-test: extends: .fdo.distribution-image@opensuse variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@opensuse
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@opensuse
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “opensuse”
Variables provided by this template should be considered read-only.
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.distribution-image@opensuse
instead.
Ubuntu templates
- .fdo.container-build@ubuntu
Checks for a pre-existing ubuntu container image and builds it if it does not yet exist.
If an image with the same version or suffix exists in the upstream project’s registry, the image is copied into this project’s registry. If no such image exists, the image is built and pushed to the local registry.
The architecture is native to the runner, use the tags: field in the job to select a runner that is not the default x86_64.
Example:
my-ubuntu-image: extends: .fdo.container-build@ubuntu variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: '20.04' FDO_DISTRIBUTION_TAG: '2020-03-20' my-ubuntu-arm-image: extends: .fdo.container-build@ubuntu variables: FDO_DISTRIBUTION_PACKAGES: 'curl wget gcc valgrind' FDO_DISTRIBUTION_VERSION: '20.04' FDO_DISTRIBUTION_TAG: '2020-03-20-arm' tags: - aarch64
Reserved by this template:
image:
do not overridescript:
do not override
Environment variables set by default:
DEBIAN_FRONTEND=noninteractive
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The ubuntu version to build, e.g. ‘20.04’, ‘22.04’
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
- FDO_UPSTREAM_REPO
The GitLab project path to the upstream project
- FDO_REPO_SUFFIX
The repository name suffix to use, see below.
- FDO_DISTRIBUTION_PACKAGES
Packages to install as a space-separated single string, e.g. “curl wget”. These packages must be available in the default distribution repositories; use
FDO_DISTRIBUTION_EXEC
followed by the distribution-specific command(s) to enable additional repositories and/or install additional packages.
- FDO_DISTRIBUTION_EXEC
An executable run after the installation of the
FDO_DISTRIBUTION_PACKAGES
- FDO_DISTRIBUTION_ENTRYPOINT
The path to the binary that should be used as an entrypoint
- FDO_DISTRIBUTION_WORKINGDIR
The path that will be used as the default working directory (default: /app)
- FDO_FORCE_REBUILD
If set, the image will be built even if it exists in the registry already
- FDO_BASE_IMAGE
By default, the base image to start with is
ubuntu:$FDO_DISTRIBUTION_VERSION
and all dependencies are installed on top of that base image. IfFDO_BASE_IMAGE
is given, it references a different base image to start with. This image usually requires the full registry path, e.g.registry.freedesktop.org/projectGroup/projectName/repo_suffix:tag-name
- FDO_EXPIRES_AFTER
If set, enables an expiration time on the image to aid the garbage collector in deciding when an image can be removed. This should be set for temporary images that are not intended to be kept forever. Allowed values are e.g.
1h
(one hour),2d
(two days) or3w
(three weeks).
- FDO_CACHE_DIR
If set, the given directory is mounted as
/cache
whenFDO_DISTRIBUTION_EXEC
is run. This can allow for passing of cache values between build jobs (if run on the same runner). You should not usually need to set this, it defaults to/cache
from the host and thus enables cache sharing by default.
- FDO_USER
If set, the given unix username is used when running containers based on this image instead of root. If the username is not created by the
FDO_DISTRIBUTION_EXEC
script, it will be created automatically. Note that $HOME will be set to/home/$FDO_USER
, if the user is created manually byFDO_DISTRIBUTION_EXEC
script it is important to ensure that directory is created as well and writable by the user.
The resulting image will be pushed to the local registry.
If
FDO_REPO_SUFFIX
was specified, the image path is$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FDO_DISTRIBUTION_TAG
. Use the.fdo.suffixed-image@ubuntu
template to access or use this image.If
FDO_REPO_SUFFIX
was not specified, the image path is$CI_REGISTRY_IMAGE/ubuntu/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
. Use the.fdo.distribution-image@ubuntu
template to access or use this image.- .fdo.container-build@ubuntu@x86_64
Alias to
.fdo.container-build@ubuntu
.This template is deprecated, use .fdo.container-build@ubuntu instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.container-build@ubuntu@aarch64
Checks for a pre-existing ubuntu container image for the
aarch64
processor architecture and builds it if it does not yet exist.This template requires runners with the
aarch64
tag.See
.fdo.container-build@ubuntu
for details.This template is deprecated, use .fdo.container-build@ubuntu instead. The architecture is inferred by the runner selected by the tags on the job (if any).
- .fdo.distribution-image@ubuntu
ubuntu template that pulls the ubuntu image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@ubuntu
.This template sets
image:
to the generated image. You may override this.Example:
my-ubuntu-test: extends: .fdo.distribution-image@ubuntu variables: FDO_DISTRIBUTION_VERSION: '20.04' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The ubuntu version to build, e.g. ‘20.04’, ‘22.04’
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “ubuntu”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.suffixed-image@ubuntu
instead.- .fdo.suffixed-image@ubuntu
ubuntu template that pulls the ubuntu image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@ubuntu
.This template sets
image:
to the generated image. You may override this.Example:
my-ubuntu-test: extends: .fdo.distribution-image@ubuntu variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - meson builddir - ninja -C builddir test
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “ubuntu”
Variables provided by this template should be considered read-only.
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.distribution-image@ubuntu
instead.- .fdo.b2c-image@ubuntu
boot2container ubuntu template that pulls the ubuntu image from the registry based on
FDO_DISTRIBUTION_VERSION
andFDO_DISTRIBUTION_TAG
. This template must be provided the same variable values as supplied in.fdo.container-build@ubuntu
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-ubuntu-test: extends: .fdo.b2c-image@ubuntu variables: FDO_DISTRIBUTION_VERSION: '20.04' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_DISTRIBUTION_VERSION
This variable is required
The ubuntu version to build, e.g. ‘20.04’, ‘22.04’
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “ubuntu”
Note
If you used
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-suffixed-image@ubuntu
instead.- .fdo.b2c-suffixed-image@ubuntu
boot2container ubuntu template that pulls the ubuntu image from the registry based on
FDO_REPO_SUFFIX
. This template must be provided the same variable values as supplied in.fdo.container-build@ubuntu
.This template sets
image:
to a boot2container capable image. You may override this if your image is also capable of running it.This template will also set the following environment variables:
B2C_IMAGE
: will default to$FDO_DISTRIBUTION_IMAGE
if not set
Example:
my-ubuntu-test: extends: .fdo.b2c-suffixed-image@ubuntu variables: FDO_REPO_SUFFIX: 'some/path' FDO_DISTRIBUTION_TAG: '2020-03-20' script: - B2C_COMMAND="meson builddir" /app/boot2container - B2C_COMMAND="ninja -C builddir test" /app/boot2container
Variables:
- FDO_REPO_SUFFIX
This variable is required
The repository name suffix.
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_TAG
This variable is required
String to identify the image in the registry.
The value supplied must be the same as supplied in
.fdo.container-build@ubuntu
.
- FDO_DISTRIBUTION_IMAGE
This variable is set by this template and should be treated as read-only
Path to the registry image
- FDO_DISTRIBUTION_NAME
This variable is set by this template and should be treated as read-only
Set to the string “ubuntu”
Note
If you did not use
FDO_REPO_SUFFIX
when building the container, use.fdo.b2c-image@ubuntu
instead.