Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/check_build_status.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
#
# This workflow checks the bot's status table (posted in PR comments) to verify
# that all supported CPU targets have been successfully built before deployment.
name: Check bot build status
on:
issue_comment:
types: [created, edited]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
check_builds:
if: >
github.event.issue.pull_request &&
contains(github.event.comment.body, 'This is the status of all the `bot: build` commands:')
runs-on: ubuntu-24.04
steps:
- name: Check out software-layer repository (shallow)
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 1
- name: Check bot build status
# We pass the comment body via env variable instead of a command-line argument
# because the body contains special characters (pipes |, backticks, newlines, etc.)
# that would need complex quoting/escaping in bash. Passing via env is safer
# and preserves the content exactly as-is. The Python script reads both
# PR_NUMBER and COMMENT_BODY from the environment.
env:
PR_NUMBER: ${{ github.event.issue.number }}
COMMENT_BODY: ${{ github.event.comment.body }}
run: |
python3 .github/workflows/scripts/check_builds.py
182 changes: 182 additions & 0 deletions .github/workflows/eessi_targets.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
# Supported targets per EESSI version, shared by the CI workflows and scripts.
#
# cpu_targets: should correspond with the table @ https://eessi.io/docs/software_layer/cpu_targets/
# Per EESSI version, the CPU targets for each CPU family.
# accelerator_targets: should correspond with the table @ https://eessi.io/docs/software_layer/gpu_targets/
# Per EESSI version, the accelerator targets to build for. 'default' applies to every CPU target,
# unless a CPU target has an entry of its own (which may be empty, i.e. no accelerators).

[cpu_targets."2023.06"]
aarch64 = [
"aarch64/a64fx",
"aarch64/generic",
"aarch64/neoverse_n1",
"aarch64/neoverse_v1",
"aarch64/nvidia/grace",
]
x86_64 = [
"x86_64/amd/zen2",
"x86_64/amd/zen3",
"x86_64/amd/zen4",
"x86_64/generic",
"x86_64/intel/cascadelake",
"x86_64/intel/haswell",
"x86_64/intel/icelake",
"x86_64/intel/sapphirerapids",
"x86_64/intel/skylake_avx512",
]

[cpu_targets."2025.06"]
aarch64 = [
"aarch64/a64fx",
"aarch64/generic",
"aarch64/neoverse_n1",
"aarch64/neoverse_v1",
"aarch64/nvidia/grace",
]
x86_64 = [
"x86_64/amd/zen2",
"x86_64/amd/zen3",
"x86_64/amd/zen4",
"x86_64/amd/zen5",
"x86_64/generic",
"x86_64/intel/cascadelake",
"x86_64/intel/haswell",
"x86_64/intel/icelake",
"x86_64/intel/sapphirerapids",
"x86_64/intel/skylake_avx512",
]

[cpu_targets."2026.06"]
aarch64 = [
"aarch64/a64fx",
"aarch64/aws/graviton4",
"aarch64/generic",
"aarch64/neoverse_n1",
"aarch64/neoverse_v1",
"aarch64/nvidia/grace",
]
x86_64 = [
"x86_64/amd/zen2",
"x86_64/amd/zen3",
"x86_64/amd/zen4",
"x86_64/amd/zen5",
"x86_64/generic",
"x86_64/intel/cascadelake",
"x86_64/intel/graniterapids",
"x86_64/intel/haswell",
"x86_64/intel/icelake",
"x86_64/intel/sapphirerapids",
"x86_64/intel/skylake_avx512",
]

[accelerator_targets."2023.06"]
# Provide a default set of compute capabilities
default = [
"nvidia/cc70",
"nvidia/cc80",
"nvidia/cc90",
]
# and then allow for special cases for specific CPU targets
"aarch64/a64fx" = []
"x86_64/amd/zen2" = [
"nvidia/cc70",
"nvidia/cc80",
"nvidia/cc90",
]

[accelerator_targets."2025.06"]
# Provide a default set of compute capabilities
default = [
"amd/gfx1030",
"amd/gfx1100",
"amd/gfx1101",
"amd/gfx1200",
"amd/gfx1201",
"amd/gfx908",
"amd/gfx90a",
"amd/gfx942",
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc70",
"nvidia/cc80",
"nvidia/cc90",
]
# and then allow for special cases for specific CPU targets
"aarch64/a64fx" = []
"aarch64/generic" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc70",
"nvidia/cc80",
"nvidia/cc90",
]
"aarch64/neoverse_n1" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc70",
"nvidia/cc80",
"nvidia/cc90",
]
"aarch64/neoverse_v1" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc70",
"nvidia/cc80",
"nvidia/cc90",
]
"aarch64/nvidia/grace" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc70",
"nvidia/cc80",
"nvidia/cc90",
]

[accelerator_targets."2026.06"]
# Provide a default set of compute capabilities
default = [
"amd/gfx1030",
"amd/gfx1100",
"amd/gfx1101",
"amd/gfx1200",
"amd/gfx1201",
"amd/gfx908",
"amd/gfx90a",
"amd/gfx942",
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc75",
"nvidia/cc80",
"nvidia/cc90",
]
# and then allow for special cases for specific CPU targets
"aarch64/a64fx" = []
"aarch64/generic" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc75",
"nvidia/cc80",
"nvidia/cc90",
]
"aarch64/neoverse_n1" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc75",
"nvidia/cc80",
"nvidia/cc90",
]
"aarch64/neoverse_v1" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc75",
"nvidia/cc80",
"nvidia/cc90",
]
"aarch64/nvidia/grace" = [
"nvidia/cc100",
"nvidia/cc120",
"nvidia/cc75",
"nvidia/cc80",
"nvidia/cc90",
]
Loading
Loading