Skip to content

Commit

Permalink
move specific variables in a dedicated file
Browse files Browse the repository at this point in the history
define default value for KNK_CACHE

build_img_docker=no
  • Loading branch information
nqb committed Nov 25, 2022
1 parent 24ee9e1 commit b39c9d5
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 20 deletions.
1 change: 0 additions & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ variables:
KANIKOBUILD_IMG: ghcr.io/inverse-inc/packetfence/kaniko-build
KNK_REGISTRY: ghcr.io
KNK_REGISTRY_URL: ${KNK_REGISTRY}/inverse-inc/packetfence
KNK_CACHE: "true"
PFBUILD_DEFAULT_DEV_TAG: latest
CIDIR: ci
CILIBDIR: ci/lib
Expand Down
10 changes: 10 additions & 0 deletions containers/kaniko_vars
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
### collect variables needed inside Dockerfile

# returns X.Y
export PF_VERSION=$(egrep -o '[0-9]+\.[0-9]+' $CI_PROJECT_DIR/conf/pf-release)

# only used for pfdebian build
export PKGS_TO_EXCLUDE="packetfence|freeradius"

# variables to pass during build
DOCKFILE_VARS='PF_VERSION KNK_REGISTRY_URL IMAGE_TAG FINGERBANK_BUILD_API_KEY BUILD_PFAPPSERVER_VUE PKGS_TO_EXCLUDE'
40 changes: 21 additions & 19 deletions containers/kanikobuild
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@ set -o nounset -o pipefail -o errexit
# CI_PROJECT_DIR must be equal to root of PF source tree (full path)

setup_vars() {
DOCKFILE_PATH=$CI_PROJECT_DIR/containers/$IMAGE_NAME/Dockerfile
# all specific variables need to be defined in kaniko_vars
if [ -f "$CI_PROJECT_DIR/containers/kaniko_vars" ]; then
source $CI_PROJECT_DIR/containers/kaniko_vars
else
echo "No specific variables added to build"
fi

### collect variables needed inside Dockerfile
# returns X.Y
export PF_VERSION=$(egrep -o '[0-9]+\.[0-9]+' $CI_PROJECT_DIR/conf/pf-release)
# necessary if variables are not defined in kaniko_vars or in environment
DOCKFILE_PATH=${DOCKFILE_PATH:-"$CI_PROJECT_DIR/containers/$IMAGE_NAME/Dockerfile"}
DOCKFILE_VARS=${DOCKFILE_VARS:-}
KNK_CACHE=${KNK_CACHE:-true}

# IMAGE_TAG is used inside DockerFile to reference other image
# only one tag can be used in Dockerfile
export IMAGE_TAG=$(echo $IMAGE_TAGS | cut -d ',' -f 1)

# only used for pfdebian build
export PKGS_TO_EXCLUDE="packetfence|freeradius"

# variables to pass during build
DOCKFILE_VARS='PF_VERSION KNK_REGISTRY_URL IMAGE_TAG FINGERBANK_BUILD_API_KEY BUILD_PFAPPSERVER_VUE PKGS_TO_EXCLUDE'

echo "Building ${IMAGE_NAME} using ${DOCKFILE_PATH}"
}

Expand All @@ -35,15 +35,17 @@ generate_knk_config() {
# already in the environment
generate_build_args() {
local build_args=''
for var in ${DOCKFILE_VARS}; do
# just to handle case of first iteration
if [ -z "$build_args" ]; then
build_args="--build-arg ${var}"
else
build_args="$build_args --build-arg ${var}"
fi
done
echo "$build_args"
if [ -n "${DOCKFILE_VARS}" ]; then
for var in ${DOCKFILE_VARS}; do
# just to handle case of first iteration
if [ -z "$build_args" ]; then
build_args="--build-arg ${var}"
else
build_args="$build_args --build-arg ${var}"
fi
done
echo "$build_args"
fi
}

detect_multi_tags() {
Expand Down

0 comments on commit b39c9d5

Please sign in to comment.