Files
project_6/cccl_upstream/ci/util/artifacts/upload.sh
muh-bot 2a7ca101d7 feat(cccl): integrate missing CCCL directories — python/, ci/, .agent/, docs/, test/
Sparse-checkout from NVIDIA/cccl main branch to complete cccl_upstream:

Added:
- python/cuda_cccl/ (226 files) — Python bindings for device-level algorithms
  Critical for muh toolchain: cuda.compute.reduce_into, scan, radix_sort, etc.
  Includes 204 .py files with full test coverage for all 27 algorithms
- ci/ (163 files) — Build/test infrastructure
  build_cub.sh, test_cub.sh, build_and_test_targets.sh, matrix.yaml
  Directly maps to our [INFRA-CI] and [INFRA-BUILD] items
- .agent/skills/ (7 files) — NVIDIA's own agent skills for CCCL
  cccl-style/SKILL.md, cccl-test/SKILL.md, sass-diff/SKILL.md
- docs/ (491 files) — Official CCCL documentation
  CI references, CMake guides, Python compute docs, libcudacxx PTX docs
- test/ (12 files) — Top-level integration tests (cuda_smoke, stdpar)
- Root configs: .clang-format, .clang-tidy, CONTRIBUTING.md, pyproject.toml
- CLAUDE.md symlink → AGENTS.md (NVIDIA's standard)

cccl_upstream now mirrors full NVIDIA/cccl structure:
  Before: 42M (cub + thrust + libcudacxx + cudax + c + examples + benchmarks)
  After:  53M (+python +ci +docs +.agent +test +configs)

This completes the CCCL base needed for:
- [muh-bench] items: ci/util/build_and_test_targets.sh for targeted builds
- [CCCL-verify] items: python/cuda_cccl/tests/ as reference implementations
- [CCCL-test] items: ci/test_cub.sh, ci/test_thrust.sh
- Agent workflow: .agent/skills/ for consistent style and test patterns
2026-08-07 02:34:33 +00:00

60 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ci_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../" && pwd)"
readonly ci_dir
# shellcheck source=ci/util/artifacts/common.sh
source "$ci_dir/util/artifacts/common.sh"
usage=$(cat <<EOF
Usage: $0 <name> [<regex> ...]
Creates an artifact consisting of a zip file containing a single file or set of regex matches.
Regexes are passed to the $(command -v find) command's -regex option in the current directory.
'./' is prepended to all regexes for convenience.
The artifact will contain all matching files with paths relative to the current directory.
If no regexes are provided, the artifact will be created from a file in the current directory.
The file must have the same name as the artifact.
Example Usage:
Create an artifact of the given file in the current directory using the filename as the artifact name:
$0 some_resource.log
Copy all files that match the regexes to a staging directory, and upload a artifact that zips this directory.
$0 job-\$JOB_ID-products \
'build\.ninja$' \
'.*rules\.ninja$' \
'CMakeCache\.txt$' \
'.*VerifyGlobs\.cmake$' \
'.*CTestTestfile\.cmake$' \
'bin/.*' \
'lib/.*'
EOF
)
readonly usage
if [[ "$#" -lt 1 ]]; then
echo "Error: Missing artifact name." >&2
echo "$usage" >&2
exit 1
fi
readonly artifact_name="$1"
# If no regexes are provided, use the artifact name as the path:
if [[ "$#" -eq 1 ]]; then
"$ci_dir/util/artifacts/upload/register.sh" "$artifact_name" "$artifact_name"
exit
fi
shift
"$ci_dir/util/artifacts/stage.sh" "$artifact_name" "$@" > /dev/null
"$ci_dir/util/artifacts/upload_stage.sh" "$artifact_name"