Compare commits

..

17 Commits

Author SHA1 Message Date
ad17dbc06e
Move bsc-ci test into let 2025-10-01 15:03:51 +02:00
46990fc8f7
Rework bsc-ci 2025-10-01 15:03:51 +02:00
2d125cabaf
Add riscv64 cross compilation to bsc-ci and hydra 2025-10-01 15:03:51 +02:00
00f5aad8e6
Put helper attrs of ompss2 drv to passthru 2025-10-01 15:03:50 +02:00
4cbc9b81e3
Remove gcc from tampi *buildInputs 2025-10-01 15:03:50 +02:00
21516bd96b
Fix strictDeps ovni 2025-10-01 15:03:50 +02:00
c30a1ed96d
Fix strictDeps osu 2025-10-01 15:03:50 +02:00
adbee036ef
Fix strictDeps mercurium 2025-10-01 15:03:50 +02:00
8092140a9c
Fix strictDeps tampi 2025-10-01 15:03:50 +02:00
cf2239d2db
Fix strictDeps sonar 2025-10-01 15:03:50 +02:00
6c54675da4
Fix strictDeps nanos6 2025-10-01 15:03:49 +02:00
d91db4afb4
Fix strictDeps paraver 2025-10-01 15:03:49 +02:00
c07c5efbfa
Fix strictDeps ompss2 2025-10-01 15:03:49 +02:00
aa55166cf3
Fix strictDeps intel 2023 2025-10-01 15:03:49 +02:00
914ee07439
Fix strictDeps bench6 2025-10-01 15:03:49 +02:00
de99a89845
Fix strictDeps bigotes 2025-10-01 15:03:49 +02:00
5df49dcfab Add gitea CI configuration
Builds the .#bsc-ci.all target on each PR. Causes all packages to be
built in hut, populating the nix cache.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-10-01 14:59:25 +02:00
2 changed files with 62 additions and 45 deletions

15
.gitea/workflows/ci.yaml Normal file
View File

@ -0,0 +1,15 @@
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:all:
runs-on: native
steps:
- uses: https://gitea.com/ScMi1/checkout@v1.4
- run: nix build -L --no-link --print-out-paths .#bsc-ci.all

View File

@ -6,9 +6,6 @@ with final.lib;
let
callPackage = final.callPackage;
mkDeps = name: pkgs: final.runCommand name { }
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
bscPkgs = {
bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { };
@ -49,6 +46,38 @@ let
wxparaver = callPackage ./pkgs/paraver/default.nix { };
};
test = rec {
#hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
hello-c = callPackage ./test/compilers/hello-c.nix { };
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
lto = callPackage ./test/compilers/lto.nix { };
asan = callPackage ./test/compilers/asan.nix { };
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
stdenv = final.intelPackages_2023.stdenv-ifort;
};
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nanos6;
};
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
};
pkgs = filterAttrs (_: isDerivation) bscPkgs;
@ -57,18 +86,24 @@ let
final.pkgsCross.${target}.bsc-ci.pkgs
);
buildList = name: paths: final.runCommand name ''
deps=${toString paths}
cat $deps
printf '%s\n' $deps > $out
'';
buildList = name: paths:
final.runCommandLocal name { } ''
printf '%s\n' ${toString paths} | tee $out
'';
crossList = builtins.mapAttrs (t: v: buildList t (builtins.attrValues v)) final.bsc-ci.cross;
buildList' = name: paths:
final.runCommandLocal name { } ''
deps="${toString paths}"
cat $deps
printf '%s\n' $deps >$out
'';
crossList = builtins.mapAttrs (t: v: buildList t (builtins.attrValues v)) cross;
pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgs);
tests = buildList "ci-tests" (collect isDerivation final.bsc-ci.test);
tests = buildList "ci-tests" (collect isDerivation test);
all = buildList "ci-all" [tests pkgsList];
all = buildList' "ci-all" [ pkgsList tests ];
in bscPkgs // {
# Prevent accidental usage of bsc attribute
@ -76,41 +111,8 @@ in bscPkgs // {
# Internal for our CI tests
bsc-ci = {
test = rec {
#hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
hello-c = callPackage ./test/compilers/hello-c.nix { };
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
lto = callPackage ./test/compilers/lto.nix { };
asan = callPackage ./test/compilers/asan.nix { };
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
stdenv = final.intelPackages_2023.stdenv-ifort;
};
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nanos6;
};
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
};
inherit tests;
inherit pkgs pkgsList;
inherit test tests;
inherit cross crossList;
inherit all;
};