summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml91
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml18
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml10
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml25
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml4
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py10
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml12
8 files changed, 155 insertions, 18 deletions
diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
index 8f8628030a..9a743f0bff 100644
--- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
+++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
@@ -64,6 +64,11 @@ default:
SPACK_TARGET_PLATFORM: "linux"
SPACK_TARGET_ARCH: "ppc64le"
+.win64-msvc2019:
+ variables:
+ SPACK_TARGET_PLATFORM: "win64"
+ SPACK_TARGET_ARCH: "x86_64"
+
########################################
# Job templates
########################################
@@ -72,6 +77,8 @@ default:
PIPELINE_MIRROR_TEMPLATE: "single-src-protected-mirrors.yaml.in"
# TODO: We can remove this when we drop the "deprecated" stack
PUSH_BUILDCACHE_DEPRECATED: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME}"
+ SPACK_CI_CONFIG_ROOT: "${CI_PROJECT_DIR}/share/spack/gitlab/cloud_pipelines/configs"
+ SPACK_CI_SCRIPTS_ROOT: "${CI_PROJECT_DIR}/share/spack/gitlab/cloud_pipelines/scripts"
rules:
- if: $SPACK_CI_DISABLE_STACKS =~ /.+/ && $SPACK_CI_STACK_NAME =~ $SPACK_CI_DISABLE_STACKS
@@ -114,16 +121,8 @@ default:
.generate-common:
stage: generate
script:
- - uname -a || true
- - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
- - nproc || true
- - cat /proc/loadavg || true
- - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
- - . "./share/spack/setup-env.sh"
- spack --version
- - cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
- - spack env activate --without-view .
- - export SPACK_CI_CONFIG_ROOT="${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/configs"
+ - spack env activate --without-view share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
- spack
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
@@ -134,29 +133,25 @@ default:
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
- ${CI_STACK_CONFIG_SCOPES}
audit configs
- - spack python -c "import os,sys; print(os.path.expandvars(sys.stdin.read()))"
- < "${SPACK_CI_CONFIG_ROOT}/${PIPELINE_MIRROR_TEMPLATE}" > "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
+ # Command below needs to be `spack python` due to naming differences accross platforms
+ - spack python ${SPACK_CI_SCRIPTS_ROOT}/common/expand_vars.py
+ "${SPACK_CI_CONFIG_ROOT}/${PIPELINE_MIRROR_TEMPLATE}"
+ "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
- spack config add -f "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
- - mkdir -p "${CI_PROJECT_DIR}/jobs_scratch_dir"
+ - mkdir "${CI_PROJECT_DIR}/jobs_scratch_dir"
- spack
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
- ${CI_STACK_CONFIG_SCOPES}
config blame > "${CI_PROJECT_DIR}/jobs_scratch_dir/spack.yaml.blame"
- spack -v --color=always
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
- ${CI_STACK_CONFIG_SCOPES}
ci generate --check-index-only
--artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
- after_script:
- - cat /proc/loadavg || true
- - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
@@ -179,6 +174,16 @@ default:
# Generate without tags for cases using external runners
.generate-base:
extends: [ ".base-job", ".generate-common" ]
+ before_script:
+ - uname -a || true
+ - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
+ - nproc || true
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
+ - . "./share/spack/setup-env.sh"
+ after_script:
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
.generate-x86_64:
extends: [ ".generate-base" ]
@@ -196,6 +201,25 @@ default:
extends: [ ".generate-base" ]
tags: ["spack", "public", "medium", "neoverse_v2"]
+.generate-win64:
+ extends: [ ".base-job", ".generate-common" ]
+ before_script:
+ - $ErrorActionOld=$ErrorActionPreference
+ - $ErrorActionPreference="SilentlyContinue"
+ - python -c"import psutil;print(psutil.getloadavg())"
+ - (Get-WmiObject Win32_PhysicalMemory | measure-object Capacity -sum).sum/1kb
+ - $ErrorActionPreference=$ErrorActionOld
+ - . .\share\spack\setup-env.ps1
+ after_script:
+ - $ErrorActionOld=$ErrorActionPreference
+ - $ErrorActionPreference="SilentlyContinue"
+ - python -c"import psutil;print(psutil.getloadavg())"
+ - (Get-WmiObject Win32_PhysicalMemory | measure-object Capacity -sum).sum/1kb
+ - $ErrorActionPreference=$ErrorActionOld
+
+ tags: ["spack", "public", "medium", "x86_64-win"]
+ image: "ghcr.io/johnwparent/windows-server21h2:sha-c749cf3"
+
.generate-deprecated:
extends: [ ".base-job" ]
stage: generate
@@ -859,6 +883,15 @@ aws-pcluster-build-neoverse_v1:
- echo $PATH
- module avail
- module list
+ - uname -a || true
+ - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
+ - nproc || true
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
+ - . "./share/spack/setup-env.sh"
+ after_script:
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
.generate-cray-rhel:
tags: [ "cray-rhel-zen4", "public" ]
@@ -912,3 +945,25 @@ e4s-cray-sles-build:
needs:
- artifacts: True
job: e4s-cray-sles-generate
+
+#######################################
+# Windows Visualization Tools
+#######################################
+.windows-vis:
+ extends: [".win64-msvc2019"]
+ variables:
+ SPACK_CI_STACK_NAME: windows-vis
+
+windows-vis-generate:
+ extends: [ ".generate-win64", ".windows-vis" ]
+
+windows-vis-build:
+ extends: [ ".build", ".windows-vis"]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: windows-vis-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: windows-vis-generate
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml
new file mode 100644
index 0000000000..834c640fc3
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml
@@ -0,0 +1,18 @@
+ci:
+ pipeline-gen:
+ - build-job:
+ after_script::
+ - Write-Output "Done"
+
+ before_script::
+ - fsutil 8dot3name set C:\ 0
+ - . .\share\spack\setup-env.ps1
+ - If (Test-Path -path C:\\key\intermediate_ci_signing_key.gpg) { spack.ps1 gpg trust C:\\key\intermediate_ci_signing_key.gpg }
+ - If (Test-Path -path C:\\key\spack_public_key.gpg) { spack.ps1 gpg trust C:\\key\spack_public_key.gpg }
+
+ script::
+ - spack.ps1 env activate --without-view ${SPACK_CONCRETE_ENV_DIR}
+ - spack.ps1 config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{hash}'"
+ - mkdir ${SPACK_ARTIFACTS_ROOT}/user_data
+ - spack.ps1 --backtrace ci rebuild | Tee-Object -FilePath "${env:SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt" 2>&1 | Tee-Object -FilePath "${env:SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt"
+ image: "ghcr.io/johnwparent/windows-server21h2:sha-c749cf3"
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml
new file mode 100644
index 0000000000..dcabcb2c8a
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml
@@ -0,0 +1,10 @@
+config:
+ build_stage::
+ - 'C:/spack stage'
+ install_tree:
+ root: "C:/spack install"
+ # Path lengths on windows doesn't support much padding
+ padded_length: 0
+ # Reduce the projections to only including the hash to avoid path length issues
+ projections:
+ all: '{hash}'
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml
new file mode 100644
index 0000000000..b6d0089c5a
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml
@@ -0,0 +1,25 @@
+packages:
+ all:
+ target: [x86_64]
+ tbb:
+ require: "intel-tbb"
+ cmake:
+ externals:
+ - spec: cmake@3.28.0-msvc1
+ prefix: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake"
+ buildable: False
+ ninja:
+ externals:
+ - spec: ninja@1.11.0
+ prefix: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\Ninja"
+ buildable: False
+ wgl:
+ externals:
+ - spec: wgl@10.0.22621 plat=x64
+ prefix: "C:\\Program Files (x86)\\Windows Kits\\10"
+ buildable: False
+ win-sdk:
+ externals:
+ - spec: win-sdk@10.0.22621 plat=x64
+ prefix: "C:\\Program Files (x86)\\Windows Kits\\10"
+ buildable: False
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml
new file mode 100644
index 0000000000..8e3b45c336
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml
@@ -0,0 +1,4 @@
+ci:
+ pipeline-gen:
+ - build-job:
+ tags: [x86_64-win]
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml
new file mode 100644
index 0000000000..a08b7cdcfb
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml
@@ -0,0 +1,3 @@
+packages:
+ all:
+ target: [x86_64]
diff --git a/share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py b/share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py
new file mode 100644
index 0000000000..7806e10201
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py
@@ -0,0 +1,10 @@
+import argparse
+import os
+
+parser = argparse.ArgumentParser()
+parser.add_argument("input", type=argparse.FileType("r"))
+parser.add_argument("out", type=argparse.FileType("w"))
+
+args = parser.parse_args()
+
+args.out.write(os.path.expandvars(args.input.read()))
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml
new file mode 100644
index 0000000000..498c054d8b
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml
@@ -0,0 +1,12 @@
+# Windows Visualization Stack
+# maintainers:
+# - John Parent (@johnwparent)
+# - Ryan Krattiger (@kwryankrattiger)
+
+spack:
+ view: false
+ specs:
+ - vtk
+
+ cdash:
+ build-group: Windows Visualization (Kitware)