From ac35c204e1b836c9be2ad4cd59aaa89f4ee48c3f Mon Sep 17 00:00:00 2001
From: Bartek Wrona <wrona@syncad.com>
Date: Tue, 5 Sep 2023 22:13:39 +0200
Subject: [PATCH] Defined common base job to perform a WASM specific build

---
 templates/wasm_build.gitlab-ci.yml | 35 ++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 templates/wasm_build.gitlab-ci.yml

diff --git a/templates/wasm_build.gitlab-ci.yml b/templates/wasm_build.gitlab-ci.yml
new file mode 100644
index 0000000..65c2162
--- /dev/null
+++ b/templates/wasm_build.gitlab-ci.yml
@@ -0,0 +1,35 @@
+include:
+  - local: templates/base.gitlab-ci.yml
+
+variables:
+  # uses registry.gitlab.syncad.com/hive/common-ci-configuration/emsdk:4366b64c39a1cba49b632c6ec426895e9aa92e94
+  EMSCRIPTEN_IMAGE_TAG: "@sha256:e6f967440d44d7e6f1f896caa366f4af8ef17f46af87e6984bca8ea500d0e519"
+  EMSCRIPTEN_IMAGE: "registry.gitlab.syncad.com/hive/common-ci-configuration/emsdk:3.1.43$EMSCRIPTEN_IMAGE_TAG"
+
+.wasm_build_job_template:
+  extends: .job-defaults
+  interruptible: true
+  variables:
+    # The directory containing sources to be built - it should be overrided by derived job
+    SOURCE_DIR: ""
+    # Output directory where should be stored binaries - it should be overrided by derived job
+    BINARIES_DIR: ""
+
+  image: ${EMSCRIPTEN_IMAGE}
+
+  before_script:
+    - git config --global --add safe.directory '*'
+
+  script:
+    - mkdir -vp "${BINARIES_DIR}"
+    - cd "${BINARIES_DIR}"
+    - cmake -DBoost_NO_WARN_NEW_VERSIONS=1 -DBoost_USE_STATIC_RUNTIME=ON -DCMAKE_TOOLCHAIN_FILE=/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" -S "${SOURCE_DIR}" -B "${BINARIES_DIR}"
+    - make -j 8
+
+  artifacts:
+    paths:
+      - "${BINARIES_DIR}/*.d.ts"
+      - "${BINARIES_DIR}/*.mjs"
+      - "${BINARIES_DIR}/*.wasm"
+    when: always
+    expire_in: 1 week
-- 
GitLab