init
This commit is contained in:
parent
bb3b7055bc
commit
7cb8f412a9
@ -27,7 +27,7 @@ spec:
|
||||
- name: coverage-html
|
||||
description: Comma-separated paths to generated HTML coverage report directories
|
||||
steps:
|
||||
- name: install-dependencies
|
||||
- name: analyze
|
||||
image: rust:1.75-slim
|
||||
workingDir: /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
||||
env:
|
||||
@ -37,12 +37,18 @@ spec:
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "🚀 Starting Rust + Nx Analysis"
|
||||
|
||||
##############################
|
||||
# Install system dependencies
|
||||
##############################
|
||||
apt-get update && apt-get install -y curl libssl-dev pkg-config build-essential jq
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt-get install -y nodejs
|
||||
|
||||
##############################
|
||||
# Install Rust tools
|
||||
##############################
|
||||
rustup component add clippy
|
||||
|
||||
# Install cargo-tarpaulin via prebuilt binary
|
||||
@ -50,46 +56,46 @@ spec:
|
||||
curl -L https://github.com/xd009642/tarpaulin/releases/latest/download/cargo-tarpaulin-x86_64-unknown-linux-gnu.tar.gz | tar xz -C ~/.cargo/bin
|
||||
chmod +x ~/.cargo/bin/cargo-tarpaulin
|
||||
|
||||
# Install pnpm
|
||||
corepack enable
|
||||
corepack prepare pnpm@10.8.1 --activate
|
||||
##############################
|
||||
# Install pnpm globally
|
||||
##############################
|
||||
npm install -g pnpm@10.8.1
|
||||
|
||||
##############################
|
||||
# Install Nx dependencies
|
||||
##############################
|
||||
pnpm install --frozen-lockfile
|
||||
|
||||
##############################
|
||||
# Version checks
|
||||
##############################
|
||||
echo "✅ Version Info:"
|
||||
rustc --version
|
||||
cargo --version
|
||||
node --version
|
||||
npm --version
|
||||
pnpm --version
|
||||
- name: lint-test-coverage
|
||||
image: rust:1.75-slim
|
||||
workingDir: /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
||||
env:
|
||||
- name: HOME
|
||||
value: /workspace/base/$(params.context)/home
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
##############################
|
||||
# Lint and Test
|
||||
##############################
|
||||
export NX_SOCKET_DIR=/tmp/nx-socket
|
||||
|
||||
# Convert comma-separated targetProjects to space-separated for Bash
|
||||
PROJECTS=$(echo "$(params.targetProjects)" | tr ',' ' ')
|
||||
|
||||
# Run lint and test in parallel using nx run-many
|
||||
echo "🔍 Running lint for projects: $PROJECTS"
|
||||
pnpm nx run-many --target=lint --projects="$(params.targetProjects)" --parallel=4
|
||||
|
||||
echo "🧪 Running tests for projects: $PROJECTS"
|
||||
pnpm nx run-many --target=test --projects="$(params.targetProjects)" --parallel=4
|
||||
|
||||
# Initialize result variables
|
||||
##############################
|
||||
# Coverage
|
||||
##############################
|
||||
COVERAGE_DIRS=""
|
||||
HTML_DIRS=""
|
||||
|
||||
# Run coverage for each project
|
||||
for project in $PROJECTS; do
|
||||
echo "📊 Generating coverage for project: $project"
|
||||
PROJECT_PATH=$(pnpm nx show project "$project" --json | jq -r '.root')
|
||||
@ -116,9 +122,14 @@ spec:
|
||||
echo "⚠️ HTML coverage report not found for $project"
|
||||
fi
|
||||
|
||||
# 돌아가기
|
||||
cd /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
||||
done
|
||||
|
||||
# Write results to Tekton results
|
||||
##############################
|
||||
# Output to Tekton results
|
||||
##############################
|
||||
echo "$COVERAGE_DIRS" > /tekton/results/coverage-dir
|
||||
echo "$HTML_DIRS" > /tekton/results/coverage-html
|
||||
echo "$HTML_DIRS" > /tekton/results/coverage-html
|
||||
|
||||
echo "🎉 Rust + Nx Analysis Task Completed!"
|
Loading…
x
Reference in New Issue
Block a user