diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index a5d7c37b8a2a534afbe8f9d7fdac37fa0d1c8031..d733c0faa35e39679ca3beebabc1bdbb935443a5 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -21,9 +21,12 @@ jobs:
     runs-on: self-hosted
     strategy:
       matrix:
-        LCG_RELEASE: [LCG_EXTERNAL, KEY4HEP_STACK]
-        # CEPCSW_BLDTOOL: [make, ninja]
-        CEPCSW_BLDTOOL: [ninja]
+        LCG_RELEASE: 
+          - LCG_EXTERNAL
+          - KEY4HEP_STACK
+        CEPCSW_BLDTOOL:
+          - ninja
+        # - make
 
     # Steps represent a sequence of tasks that will be executed as part of the job
     steps:
diff --git a/build-k4.sh b/build-k4.sh
index 4570c559aca12e47b9e7cc603af30ab9cd259d59..4142103aec86db6e2a4b0a7dc6a751e772c3d8e4 100755
--- a/build-k4.sh
+++ b/build-k4.sh
@@ -20,8 +20,12 @@ function error:() {
 }
 
 function check-cepcsw-envvar() {
-    # source /cvmfs/sw.hsf.org/key4hep/setup.sh
-    source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh
+    if [ "${k4_version}" = "nightlies" ]; then
+        source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh
+    else
+        source /cvmfs/sw.hsf.org/key4hep/setup.sh -r ${k4_version}
+    fi
+
     # fix the order of compiler
     local ccdir=$(dirname $CC)
     export PATH=$ccdir:$PATH
@@ -113,8 +117,8 @@ function run-install() {
 ##############################################################################
 
 # The current default platform
-k4_platform=x86_64-linux-gcc11-opt
-k4_version=master
+k4_platform=${K4_PLATFORM:-x86_64-linux-gcc11-opt}
+k4_version=${K4_VERSION:-2024-03-10} # or nightlies
 bldtool=${CEPCSW_BLDTOOL} # make, ninja # set in env var
 
 check-cepcsw-envvar || exit -1